from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tensorflow_text_available, is_torch_available


_lowercase							:      Tuple      							={
    '''configuration_ernie''': ['''ERNIE_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''ErnieConfig''', '''ErnieOnnxConfig'''],
}

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    _lowercase							:      Tuple      							=[
        '''ERNIE_PRETRAINED_MODEL_ARCHIVE_LIST''',
        '''ErnieForCausalLM''',
        '''ErnieForMaskedLM''',
        '''ErnieForMultipleChoice''',
        '''ErnieForNextSentencePrediction''',
        '''ErnieForPreTraining''',
        '''ErnieForQuestionAnswering''',
        '''ErnieForSequenceClassification''',
        '''ErnieForTokenClassification''',
        '''ErnieModel''',
        '''ErniePreTrainedModel''',
    ]

if TYPE_CHECKING:
    from .configuration_ernie import ERNIE_PRETRAINED_CONFIG_ARCHIVE_MAP, ErnieConfig, ErnieOnnxConfig

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_ernie import (
            ERNIE_PRETRAINED_MODEL_ARCHIVE_LIST,
            ErnieForCausalLM,
            ErnieForMaskedLM,
            ErnieForMultipleChoice,
            ErnieForNextSentencePrediction,
            ErnieForPreTraining,
            ErnieForQuestionAnswering,
            ErnieForSequenceClassification,
            ErnieForTokenClassification,
            ErnieModel,
            ErniePreTrainedModel,
        )

else:
    import sys

    _lowercase							:      List[str]      							=_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







def A__  (			lowercase:     int					)				->		int:
       if not isinstance(lowercase,		lowercase					) or number < 0:
              raise ValueError('Input must be a non-negative integer'					)

       A						:     Any         =0
       while number:
              # This way we arrive at next set bit (next 1) instead of looping
              # through each bit and checking for 1s hence the
              # loop won't run 32 times it will only run the number of `1` times
              number &= number - 1
              count += 1
       return count


if __name__ == "__main__":
    import doctest

    doctest.testmod()






