





"""simple docstring"""




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


lowerCamelCase_     :						Union[str, Any]						=					{
    'configuration_layoutlmv2': ['LAYOUTLMV2_PRETRAINED_CONFIG_ARCHIVE_MAP', 'LayoutLMv2Config'],
    'processing_layoutlmv2': ['LayoutLMv2Processor'],
    'tokenization_layoutlmv2': ['LayoutLMv2Tokenizer'],
}

try:
   if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowerCamelCase_     :						Union[str, Any]						=					['LayoutLMv2TokenizerFast']

try:
   if not is_vision_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowerCamelCase_     :						Tuple						=					['LayoutLMv2FeatureExtractor']
   lowerCamelCase_     :						Optional[Any]						=					['LayoutLMv2ImageProcessor']

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowerCamelCase_     :						List[str]						=					[
       'LAYOUTLMV2_PRETRAINED_MODEL_ARCHIVE_LIST',
       'LayoutLMv2ForQuestionAnswering',
       'LayoutLMv2ForSequenceClassification',
       'LayoutLMv2ForTokenClassification',
       'LayoutLMv2Layer',
       'LayoutLMv2Model',
       'LayoutLMv2PreTrainedModel',
   ]

if TYPE_CHECKING:
   from .configuration_layoutlmva import LAYOUTLMV2_PRETRAINED_CONFIG_ARCHIVE_MAP, LayoutLMvaConfig
   from .processing_layoutlmva import LayoutLMvaProcessor
   from .tokenization_layoutlmva import LayoutLMvaTokenizer

   try:
      if not is_tokenizers_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .tokenization_layoutlmva_fast import LayoutLMvaTokenizerFast

   try:
      if not is_vision_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .feature_extraction_layoutlmva import LayoutLMvaFeatureExtractor, LayoutLMvaImageProcessor

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_layoutlmva import (
          LAYOUTLMV2_PRETRAINED_MODEL_ARCHIVE_LIST,
          LayoutLMvaForQuestionAnswering,
          LayoutLMvaForSequenceClassification,
          LayoutLMvaForTokenClassification,
          LayoutLMvaLayer,
          LayoutLMvaModel,
          LayoutLMvaPreTrainedModel,
      )
else:
   import sys

   lowerCamelCase_     :						Any						=					_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)






"""simple docstring"""




import qiskit





def 						UpperCAmelCase__		(     _UpperCAmelCase ,					_UpperCAmelCase					):






  """simple docstring"""





  A_  :       Tuple										=  qiskit.Aer.get_backend('aer_simulator'					)

  A_  :       str										=  qiskit.QuantumCircuit(4 ,					2					)
  # encode inputs in qubits 0 and 1
  if bita == 1:
    qc_ha.x(0					)
  if bita == 1:
    qc_ha.x(1					)
  qc_ha.barrier()

  # use cnots to write XOR of the inputs on qubit2
  qc_ha.cx(0 ,					2					)
  qc_ha.cx(1 ,					2					)

  # use ccx / toffoli gate to write AND of the inputs on qubit3
  qc_ha.ccx(0 ,					1 ,					3					)
  qc_ha.barrier()

  # extract outputs
  qc_ha.measure(2 ,					0					)  # extract XOR value
  qc_ha.measure(3 ,					1					)  # extract AND value

  # Execute the circuit on the qasm simulator
  A_  :       Optional[Any]										=  qiskit.execute(_UpperCAmelCase ,					_UpperCAmelCase ,					shots=1000					)

  # Return the histogram data of the results of the experiment
  return job.result().get_counts(_UpperCAmelCase					)


if __name__ == "__main__":
   lowerCamelCase_     :						List[str]						=					half_adder(1, 1)
   print(F"Half Adder Output Qubit Counts: {counts}")