
def 			lowerCamelCase_ (				lowerCamelCase__    ):
				return credit_card_number.startswith(("34", "35", "37", "4", "5", "6")    )





def 			lowerCamelCase_ (				lowerCamelCase__    ):
				lowerCamelCase_						=			credit_card_number
				lowerCamelCase_						=			0
				lowerCamelCase_						=			len(lowerCamelCase__    ) - 2
				for i in range(lowerCamelCase__	, -1	, -2    ):
								#  double the value of every second digit
								lowerCamelCase_						=			int(cc_number[i]    )
								digit *= 2
								# If doubling of a number results in a two digit number
								# i.e greater than 9(e.g., 6 × 2 = 12),
								# then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
								# to get a single digit number.
								if digit > 9:
												digit %= 1_0
												digit += 1
								lowerCamelCase_						=			cc_number[:i] + str(lowerCamelCase__    ) + cc_number[i + 1 :]
								total += digit

				# Sum up the remaining digits
				for i in range(len(lowerCamelCase__    ) - 1	, -1	, -2    ):
								total += int(cc_number[i]    )

				return total % 1_0 == 0





def 			lowerCamelCase_ (				lowerCamelCase__    ):
				lowerCamelCase_						=			F'{credit_card_number} is an invalid credit card number because'
				if not credit_card_number.isdigit():
								print(F'{error_message} it has nonnumerical characters.'    )
								return False

				if not 1_3 <= len(lowerCamelCase__    ) <= 1_6:
								print(F'{error_message} of its length.'    )
								return False

				if not validate_initial_digits(lowerCamelCase__    ):
								print(F'{error_message} of its first two digits.'    )
								return False

				if not luhn_validation(lowerCamelCase__    ):
								print(F'{error_message} it fails the Luhn check.'    )
								return False

				print(F'{credit_card_number} is a valid credit card number.'    )
				return True


if __name__ == "__main__":
			import doctest

			doctest.testmod()
			validate_credit_card_number('''4111111111111111''')
			validate_credit_card_number('''32323''')




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


__A				={'''configuration_xglm''': ['''XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''XGLMConfig''']}

try:
			if not is_sentencepiece_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			__A				=['''XGLMTokenizer''']

try:
			if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			__A				=['''XGLMTokenizerFast''']

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			__A				=[
			    '''XGLM_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''XGLMForCausalLM''',
			    '''XGLMModel''',
			    '''XGLMPreTrainedModel''',
			]


try:
			if not is_flax_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			__A				=[
			    '''FlaxXGLMForCausalLM''',
			    '''FlaxXGLMModel''',
			    '''FlaxXGLMPreTrainedModel''',
			]


try:
			if not is_tf_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			__A				=[
			    '''TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''TFXGLMForCausalLM''',
			    '''TFXGLMModel''',
			    '''TFXGLMPreTrainedModel''',
			]


if TYPE_CHECKING:
			from .configuration_xglm import XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP, XGLMConfig

			try:
						if not is_sentencepiece_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_xglm import XGLMTokenizer

			try:
						if not is_tokenizers_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_xglm_fast import XGLMTokenizerFast

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_xglm import XGLM_PRETRAINED_MODEL_ARCHIVE_LIST, XGLMForCausalLM, XGLMModel, XGLMPreTrainedModel

			try:
						if not is_flax_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_flax_xglm import FlaxXGLMForCausalLM, FlaxXGLMModel, FlaxXGLMPreTrainedModel

			try:
						if not is_tf_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_tf_xglm import (
						    TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST,
						    TFXGLMForCausalLM,
						    TFXGLMModel,
						    TFXGLMPreTrainedModel,
						)


else:
			import sys

			__A				=_LazyModule(__name__, globals()['''__file__'''], _import_structure)


