@aztec/l1-artifacts 1.0.0-nightly.20250608 → 1.0.0-nightly.20250611

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dest/CoinIssuerAbi.d.ts +21 -13
  2. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  3. package/dest/CoinIssuerAbi.js +26 -16
  4. package/dest/EmpireBaseAbi.d.ts +21 -13
  5. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  6. package/dest/EmpireBaseAbi.js +26 -16
  7. package/dest/ErrorsAbi.d.ts +21 -13
  8. package/dest/ErrorsAbi.d.ts.map +1 -1
  9. package/dest/ErrorsAbi.js +26 -16
  10. package/dest/ExtRollupLibAbi.d.ts +24 -16
  11. package/dest/ExtRollupLibAbi.d.ts.map +1 -1
  12. package/dest/ExtRollupLibAbi.js +29 -19
  13. package/dest/ExtRollupLibBytecode.d.ts +1 -1
  14. package/dest/ExtRollupLibBytecode.d.ts.map +1 -1
  15. package/dest/ExtRollupLibBytecode.js +1 -1
  16. package/dest/FeeAssetHandlerAbi.d.ts +21 -13
  17. package/dest/FeeAssetHandlerAbi.d.ts.map +1 -1
  18. package/dest/FeeAssetHandlerAbi.js +26 -16
  19. package/dest/FeeJuicePortalAbi.d.ts +21 -13
  20. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  21. package/dest/FeeJuicePortalAbi.js +26 -16
  22. package/dest/FeeJuicePortalBytecode.d.ts +1 -1
  23. package/dest/FeeJuicePortalBytecode.js +1 -1
  24. package/dest/ForwarderAbi.d.ts +21 -13
  25. package/dest/ForwarderAbi.d.ts.map +1 -1
  26. package/dest/ForwarderAbi.js +26 -16
  27. package/dest/GSEAbi.d.ts +32 -24
  28. package/dest/GSEAbi.d.ts.map +1 -1
  29. package/dest/GSEAbi.js +40 -30
  30. package/dest/GSEBytecode.d.ts +1 -1
  31. package/dest/GSEBytecode.d.ts.map +1 -1
  32. package/dest/GSEBytecode.js +1 -1
  33. package/dest/GovernanceAbi.d.ts +21 -13
  34. package/dest/GovernanceAbi.d.ts.map +1 -1
  35. package/dest/GovernanceAbi.js +26 -16
  36. package/dest/GovernanceBytecode.d.ts +1 -1
  37. package/dest/GovernanceBytecode.js +1 -1
  38. package/dest/GovernanceProposerAbi.d.ts +21 -13
  39. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  40. package/dest/GovernanceProposerAbi.js +26 -16
  41. package/dest/GovernanceProposerBytecode.d.ts +1 -1
  42. package/dest/GovernanceProposerBytecode.js +1 -1
  43. package/dest/HonkVerifierAbi.d.ts +21 -13
  44. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  45. package/dest/HonkVerifierAbi.js +26 -16
  46. package/dest/HonkVerifierBytecode.d.ts +1 -1
  47. package/dest/HonkVerifierBytecode.js +1 -1
  48. package/dest/IERC20Abi.d.ts +21 -13
  49. package/dest/IERC20Abi.d.ts.map +1 -1
  50. package/dest/IERC20Abi.js +26 -16
  51. package/dest/IVerifierAbi.d.ts +21 -13
  52. package/dest/IVerifierAbi.d.ts.map +1 -1
  53. package/dest/IVerifierAbi.js +26 -16
  54. package/dest/InboxAbi.d.ts +21 -13
  55. package/dest/InboxAbi.d.ts.map +1 -1
  56. package/dest/InboxAbi.js +26 -16
  57. package/dest/InboxBytecode.d.ts +1 -1
  58. package/dest/InboxBytecode.js +1 -1
  59. package/dest/MockVerifierAbi.d.ts +21 -13
  60. package/dest/MockVerifierAbi.d.ts.map +1 -1
  61. package/dest/MockVerifierAbi.js +26 -16
  62. package/dest/MockZKPassportVerifierAbi.d.ts +43 -13
  63. package/dest/MockZKPassportVerifierAbi.d.ts.map +1 -1
  64. package/dest/MockZKPassportVerifierAbi.js +55 -16
  65. package/dest/MockZKPassportVerifierBytecode.d.ts +1 -1
  66. package/dest/MockZKPassportVerifierBytecode.d.ts.map +1 -1
  67. package/dest/MockZKPassportVerifierBytecode.js +1 -1
  68. package/dest/MultiAdderAbi.d.ts +25 -13
  69. package/dest/MultiAdderAbi.d.ts.map +1 -1
  70. package/dest/MultiAdderAbi.js +31 -16
  71. package/dest/MultiAdderBytecode.d.ts +1 -1
  72. package/dest/MultiAdderBytecode.d.ts.map +1 -1
  73. package/dest/MultiAdderBytecode.js +1 -1
  74. package/dest/NewGovernanceProposerPayloadAbi.d.ts +21 -13
  75. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  76. package/dest/NewGovernanceProposerPayloadAbi.js +26 -16
  77. package/dest/NewGovernanceProposerPayloadBytecode.d.ts +1 -1
  78. package/dest/NewGovernanceProposerPayloadBytecode.js +1 -1
  79. package/dest/OutboxAbi.d.ts +21 -13
  80. package/dest/OutboxAbi.d.ts.map +1 -1
  81. package/dest/OutboxAbi.js +26 -16
  82. package/dest/OutboxBytecode.d.ts +1 -1
  83. package/dest/OutboxBytecode.d.ts.map +1 -1
  84. package/dest/OutboxBytecode.js +1 -1
  85. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +21 -13
  86. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
  87. package/dest/RegisterNewRollupVersionPayloadAbi.js +26 -16
  88. package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +1 -1
  89. package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
  90. package/dest/RegistryAbi.d.ts +21 -13
  91. package/dest/RegistryAbi.d.ts.map +1 -1
  92. package/dest/RegistryAbi.js +26 -16
  93. package/dest/RegistryBytecode.d.ts +1 -1
  94. package/dest/RegistryBytecode.js +1 -1
  95. package/dest/RewardDistributorAbi.d.ts +21 -13
  96. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  97. package/dest/RewardDistributorAbi.js +26 -16
  98. package/dest/RewardDistributorBytecode.d.ts +1 -1
  99. package/dest/RewardDistributorBytecode.js +1 -1
  100. package/dest/RollupAbi.d.ts +315 -23
  101. package/dest/RollupAbi.d.ts.map +1 -1
  102. package/dest/RollupAbi.js +407 -26
  103. package/dest/RollupBytecode.d.ts +11 -17
  104. package/dest/RollupBytecode.d.ts.map +1 -1
  105. package/dest/RollupBytecode.js +11 -19
  106. package/dest/RollupStorage.d.ts +3 -3
  107. package/dest/RollupStorage.js +3 -3
  108. package/dest/SlashFactoryAbi.d.ts +21 -13
  109. package/dest/SlashFactoryAbi.d.ts.map +1 -1
  110. package/dest/SlashFactoryAbi.js +26 -16
  111. package/dest/SlashFactoryBytecode.d.ts +1 -1
  112. package/dest/SlashFactoryBytecode.js +1 -1
  113. package/dest/SlasherAbi.d.ts +21 -13
  114. package/dest/SlasherAbi.d.ts.map +1 -1
  115. package/dest/SlasherAbi.js +26 -16
  116. package/dest/SlasherBytecode.d.ts +1 -1
  117. package/dest/SlasherBytecode.js +1 -1
  118. package/dest/SlashingProposerAbi.d.ts +21 -13
  119. package/dest/SlashingProposerAbi.d.ts.map +1 -1
  120. package/dest/SlashingProposerAbi.js +26 -16
  121. package/dest/SlashingProposerBytecode.d.ts +1 -1
  122. package/dest/SlashingProposerBytecode.js +1 -1
  123. package/dest/StakingAssetHandlerAbi.d.ts +138 -17
  124. package/dest/StakingAssetHandlerAbi.d.ts.map +1 -1
  125. package/dest/StakingAssetHandlerAbi.js +177 -20
  126. package/dest/StakingAssetHandlerBytecode.d.ts +1 -1
  127. package/dest/StakingAssetHandlerBytecode.d.ts.map +1 -1
  128. package/dest/StakingAssetHandlerBytecode.js +1 -1
  129. package/dest/TestERC20Abi.d.ts +23 -15
  130. package/dest/TestERC20Abi.d.ts.map +1 -1
  131. package/dest/TestERC20Abi.js +28 -18
  132. package/dest/TestERC20Bytecode.d.ts +1 -1
  133. package/dest/TestERC20Bytecode.js +1 -1
  134. package/dest/TokenPortalAbi.d.ts +21 -13
  135. package/dest/TokenPortalAbi.d.ts.map +1 -1
  136. package/dest/TokenPortalAbi.js +26 -16
  137. package/dest/TokenPortalBytecode.d.ts +1 -1
  138. package/dest/TokenPortalBytecode.js +1 -1
  139. package/dest/UniswapPortalAbi.d.ts +21 -13
  140. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  141. package/dest/UniswapPortalAbi.js +26 -16
  142. package/dest/UniswapPortalBytecode.d.ts +1 -1
  143. package/dest/UniswapPortalBytecode.js +1 -1
  144. package/dest/ValidatorSelectionLibAbi.d.ts +21 -13
  145. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  146. package/dest/ValidatorSelectionLibAbi.js +26 -16
  147. package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
  148. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  149. package/dest/checksum.d.ts +1 -1
  150. package/dest/checksum.js +1 -1
  151. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
3
  */
4
- export declare const HonkVerifierBytecode = "0x60e0604052348015600e575f5ffd5b506302000000608052601960a05261040760c05260805160a05160c05161525b61005a5f395f61063401525f818161073f01528181610d210152610dbd01525f6105d8015261525b5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614e7d565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614f55565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101a5565b90505f61009787876101ba565b9050601082604001516100aa9190614f6c565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100e0828787865f015187604001516001610513565b90506101308686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105c2565b815160a001525f6101418383610737565b905080610161576040516313f8744360e31b815260040160405180910390fd5b5f61016d848685610838565b90508061018d576040516352ec174560e11b815260040160405180910390fd5b8180156101975750805b9a9950505050505050505050565b6101ad614955565b6101b56110b5565b905090565b6101c2614ad2565b5f805b6010811015610224576101f18583866101df826020614f7f565b926101ec93929190614f92565b61199b565b8351826010811061020457610204614fb9565b60200201818152505060208261021a9190614f7f565b91506001016101c5565b50610248848285610236826080614f7f565b9261024393929190614f92565b6119fc565b6020830152610258608082614f7f565b905061026b848285610236826080614f7f565b604083015261027b608082614f7f565b905061028e848285610236826080614f7f565b606083015261029e608082614f7f565b90506102b1848285610236826080614f7f565b60c08301526102c1608082614f7f565b90506102d4848285610236826080614f7f565b60e08301526102e4608082614f7f565b90506102f7848285610236826080614f7f565b60808084019190915261030a9082614f7f565b905061031d848285610236826080614f7f565b61010083015261032e608082614f7f565b9050610341848285610236826080614f7f565b60a0830152610351608082614f7f565b90505f5b601c8110156103d0575f5b60088110156103c75761037a8684876101df826020614f7f565b84610120015183601c811061039157610391614fb9565b602002015182600881106103a7576103a7614fb9565b6020020181815250506020836103bd9190614f7f565b9250600101610360565b50600101610355565b505f5b6028811015610424576103ed8583866101df826020614f7f565b836101400151826028811061040457610404614fb9565b60200201818152505060208261041a9190614f7f565b91506001016103d3565b505f5b6104336001601c614f6c565b81101561047c5761044b858386610236826080614f7f565b83610160015182601b811061046257610462614fb9565b6020020152610472608083614f7f565b9150600101610427565b505f5b601c8110156104d0576104998583866101df826020614f7f565b83610180015182601c81106104b0576104b0614fb9565b6020020181815250506020826104c69190614f7f565b915060010161047f565b506104e2848285610236826080614f7f565b6101a08301526104f3608082614f7f565b9050610506848285610236826080614f7f565b6101c08301525092915050565b61051b614b9c565b5f61052b88888888888887611acc565b908352905061053a8189611b22565b6020840191909152905061054d81611cbc565b604084019190915290506105618882611d1d565b606084019190915290506105758882611df1565b608084019190915290506105898882611e7c565b60a0840191909152905061059d8882611fea565b60c084019190915290506105b1888261205c565b5060e0830152509695505050505050565b5f6001808261060b86610606896106016105fc8a7f0000000000000000000000000000000000000000000000000000000000000000614f7f565b6120b3565b6120d1565b6120ea565b90505f610629876106248a6106016105fc8b6001614f7f565b612103565b90505f5b61065860107f0000000000000000000000000000000000000000000000000000000000000000614f6c565b8110156106c5575f6106828c838151811061067557610675614fb9565b60200260200101516120b3565b90506106928661060186846120ea565b95506106a28561060185846120ea565b94506106ae848b6120ea565b93506106ba838b612103565b92505060010161062d565b505f5b601081101561072c575f8a82601081106106e4576106e4614fb9565b602002015190506106f98661060186846120ea565b95506107098561060185846120ea565b9450610715848b6120ea565b9350610721838b612103565b9250506001016106c8565b506101978484612132565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561080e575f86610120015182601c811061077d5761077d614fb9565b602002015190505f61078f8286612140565b9050806107af576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107c6576107c6614fb9565b602002015190506107d7838261215d565b95506107fe886040015185601c81106107f2576107f2614fb9565b6020020151868361230c565b945050505080600101905061073d565b505f610828866101400151865f0151876020015185612337565b90508281145b9695505050505050565b5f61087f6040518061012001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61088d8460a001516123a5565b9050610897614bf5565b61089f614c14565b60e08601516108be906108b990855f5b6020020151612103565b61240a565b60a085015260e08601516108dd906108b990855f5b60200201516120ea565b60c080860182905260a0860151908801516108fc9261060691906120d1565b845260a086015161092a906109109061240a565b6106018660a001516106248a60c001518960c001516120d1565b6020850152600182526101a088015161094290612473565b81526001606085018190525f60808601525b602381116109fa5761097561096b865f01516124b2565b86606001516120d1565b83826046811061098757610987614fb9565b602002015260808501516101408a01516109ca9190610606906109ab600186614f6c565b602881106109bb576109bb614fb9565b602002015188606001516120d1565b8560800181815250506109e5856060015188608001516120d1565b60608601526109f381614fcd565b9050610954565b505f610a0860236001614f7f565b90505b60288111610a8957610a2361096b86602001516124b2565b838260468110610a3557610a35614fb9565b602002015260808501516101408a0151610a599190610606906109ab600186614f6c565b856080018181525050610a74856060015188608001516120d1565b6060860152610a8281614fcd565b9050610a0b565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610c0f8860200151612473565b6103808201526040880151610c2390612473565b6103a08201526060880151610c3790612473565b6103c08201526080880151610c4b90612473565b6103e082015260a0880151610c5f90612473565b610400820152610100880151610c7490612473565b61042082015260c0880151610c8890612473565b61044082015260e0880151610c9c90612473565b6104608201526020880151610cb090612473565b6104808201526040880151610cc490612473565b6104a08201526060880151610cd890612473565b6104c08201526080880151610cec90612473565b6104e082015260a0880151610d0090612473565b610500820152606086015160808501516101808a01515f92610d45929091877f00000000000000000000000000000000000000000000000000000000000000006124ca565b805160a0870151919250610d58916120d1565b604086018190526101808a01515160c0890151610d88929161060691610d7e91906120d1565b8860c001516120d1565b604086015260c0870151610d9b906125e5565b60608601525f5b610dae6001601c614f6c565b811015610fb0575f610de160017f0000000000000000000000000000000000000000000000000000000000000000614f6c565b821015905080610f5657610e146108b98a60e0015188856001610e049190614f7f565b601c81106108af576108af614fb9565b60a088015260e0890151610e42906108b99088610e32866001614f7f565b601c81106108d3576108d3614fb9565b60c0880152606087015160a0880151610e5b91906120d1565b60e0880152606087015160c08a0151610e7791610d7e916120d1565b6101008801819052610e9990610e8c906124b2565b6106068960e001516124b2565b8583610ea760286001614f7f565b610eb19190614f7f565b60468110610ec157610ec1614fb9565b60200201526101008701516101808c01515f91610efd91610ee3866001614f7f565b601c8110610ef357610ef3614fb9565b60200201516120d1565b9050610f19816106068a60e0015187876001610ee39190614f7f565b9050610f298860400151826120ea565b6040890152606088015160c08b0151610f4f91610f45916120d1565b8b60c001516120d1565b6060890152505b610f7a8b610160015183601b8110610f7057610f70614fb9565b6020020151612473565b8483610f8860286001614f7f565b610f929190614f7f565b60468110610fa257610fa2614fb9565b602002015250600101610da2565b5060408051808201909152600181526002602082015282610fd3601c6028614f7f565b60468110610fe357610fe3614fb9565b6020020152604085015183610ffa601c6028614f7f565b6046811061100a5761100a614fb9565b60200201526101c08901515f9061102090612473565b90508083611030601c6028614f7f565b61103b906001614f7f565b6046811061104b5761104b614fb9565b602002015260e088015184611062601c6028614f7f565b61106d906001614f7f565b6046811061107d5761107d614fb9565b60200201525f61108d84866125f0565b90505f611099836126b6565b90506110a582826126fc565b9c9b505050505050505050505050565b6110bd614955565b50604080516103c08101825263020000008152601960208083019190915261040782840152825180840184527f157e956cae9cd9a046e9cd05cf64defdf4c055710b0669f4c40ad95c4323658d81527f195deb03b8cdfc3064eb2644b77bbba29459f340c3f84615891d8ebb0e15f545818301526060830152825180840184527f29c2314c3fd494edd09592d2e8eea8c12d350ca57593080b24c04fb48a3c5ea581527f1327216dec3efa861c5e8c08c3c92c1dead8b6345b6b1357b7bafae691dfa352818301526080830152825180840184527f1de46c6065134b29b7523ab8740579468cdfa0023614dc39b420bdcda739e6c681527f168ee0e6d8764686d9ed50eeab51145297af7ac0e328c679272a5886ea9b489e8183015260a0830152825180840184527f27481a063d9a31bd8b0c5e0b8d888c3237e5cf1cd5009ec3264592d581b25ec681527f0be328c8db5ddc06417e23343ea30e27c0e0ba43e2bfecb4b13823ceb80f877d8183015260c0830152825180840184527f15696356dcb4686e525bb8aea69eaef95e3eed038fb869d81fb86d7b9edb47a881527f075a3dac9fddd0fbedec2500548bdf0ef19ecee6844a14cc46a8ee953bb78f968183015260e0830152825180840184527f2018e7cda82aeb96f57339649335d8f6221c48a7eb3d1e9a89de73519ebe401681527f1a2b2bf43bae821907d53e4c638300c51b5b80a6bb637f74fcb3f92a5a2e68be81830152610100830152825180840184527f087955563d61e88ef26501161a9b24e8ab0cb742020598057720f42d74d9677a81527f1fc679cdcaa17e5781bc37c40c64103a14730808e1281a0a42f560d62acaa14481830152610120830152825180840184527f2db7e8b6f37f143b6114619334b61e62cc6e4f229b16dbbdd121fe3a0d289eab81527f021893236a4f8c736135430ed2b94d400ebf3fd8254ee651943a6b114f4dc23c81830152610140830152825180840184527f10b67fed19cef4569d86bbf58a81cba74883338a75dfffbe6e2107258465aa7c81527f265e80506f5a2d4517e60f55a0c950765d0552ddc7e8580d11ff69eaa42d0f1581830152610160830152825180840184527f0bf3ac4f0fe05e166b5de5c76cbda46ecb2e168b54e1f8fccb06dfbc11637c9481527f0e4aaf519bb39cbc0c565f2753882cdf01008d0f32d689980ac32a3eae154f9b81830152610180830152825180840184527f0ed3c8f288e6104b0af9fd9b9d4ddbf649d8ad295ef01b5de0501aba48747c1681527f12f4e476371aa3a345216ea17ccec2e5b047169daa63e63df9890baca3370b21818301526101a0830152825180840184527f0353b099b14d6d5a88f7feb354486b0363454017556ec95e3f8e5b95bd0429de81527f10eeee98d849f65203188c32baab4d228796050c33f4f41a48f550d0a23bcb53818301526101c0830152825180840184527f012865857151fa30cb8f81633ecf1bd08126e77781f9a3c817f195a9c352070a81527f0d2c29f7e167ab6ba01c2193483adb6747051201ca60cf26fbb722856845a947818301526101e0830152825180840184527f2f076d257670e05279621ef73d3697fd692d971ab181bd3a55a41e310bc8b95781527f109a5f48bc1678be0880cfbbccb5927ec9710a3663ab4f2322807ac1297ee42181830152610200830152825180840184527f11a96af945cd2271af5f9f51ad52e2e09c9359f2d8620241ebfa55815d76626481527f1f7e3f79f659432a5aa4f2d03f2baac0b9c21cef23482334e2187596c5bd267c81830152610220830152825180840184527f016546674547d019acf1be5aa3d1c836f0ec7b553a000ec257f59cf403bf452781527f29d41a74e8a271319662002bc7a3a3df986f2487193753ad03d504f557c5bb8381830152610240830152825180840184527f043b5d5f9c53cf305d5f03d1bb267eca3bdfc97d1325516edfe135153862479e81527f283cfd0ab6e6b9beee080d02d6d4c88217c0c339e32a927eac8da1ecd20fe5aa81830152610260830152825180840184527f0cdf2a9567d4141977f02b807e5eb0ebce13ccc3b9bebd3074782042101aa45e81527f2b198ba919794c48306e3ff98022b90ee28e290fab654a0291bb00ee677f10f881830152610280830152825180840184527f0f4f24e25a0d7b75e85100d2ccc65c9fff73b7f60b3bc9e3af0bf0058dd425ab81527f2b5f895b00a900f72aa652555cfd52ede6ae2bc22fca09b180a40c837436558a818301526102a0830152825180840184527f0bb3e3548b5428676d837dc0eb95962dcf2c0d8b68dffd3582c84f846ab6ae0481527e194b4345bd6df7d1fa0c6a1b21431990714e385cd7e2c92c01ab5d61be7497818301526102c0830152825180840184527e9d1990f1324ade4d8fabe3dc676cb3cb0a1ac20f87fe8079fff8645fb02de881527f2c14902f27d5b74a607f327a238ff22eeb2fa1568acabf5773c5ed85fb74d8ca818301526102e0830152825180840184527f1af8b94ffa6a7c80c4b5b69acb462ca90ebc779545e40d396da41afa48f7b0c081527f0f056612f4637e746c664df1dc4bc174b093b5d781cba3c5394f935cf49a860781830152610300830152825180840184527f1f33f1cf7c1fc45d18550bc590a8f5bfeea8dd024fb21886e1d7ae0faeeff18c81527f2a2c999df96a270651d3052417878896417f1501f0fc6ec9deca05be85de85f481830152610320830152825180840184527f2b77e4a23fbcbd768001577bf51528b90893610e126a531162fdb04cc01eb85881527f2776b668596aa59e0b8a617ef7116e54105c4016048983b017c663260e98f37b81830152610340830152825180840184527f28f515788786233704e340a1d308ce642ae2b0e6b4d469b06d4d56a2e5fab18d81527f1c4fb06062382bd15ca37c6e55096e8e2a5298f20621892a0daf855559c4a34d81830152610360830152825180840184526001815260028183015261038083015282518084019093527f086fb78033a1b52f2a6f1f2f635025c746492103b87e3c1e90124f0045c4579583527f19b4ba46f56df1d5078e5b3f67ff802ce2fce0cad3fdc95ed7c20ef0bcc84c0b908301526103a081019190915290565b5f602082146119e85760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b60448201526064015b60405180910390fd5b6119f56105fc8385614fe5565b9392505050565b611a04614c42565b60808214611a4a5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064016119df565b604080516080810190915280611a6360205f8688614f92565b611a6c91614fe5565b8152602090810190611a82906040908688614f92565b611a8b91614fe5565b8152602001611a9e606060408688614f92565b611aa791614fe5565b8152602001611aba608060608688614f92565b611ac391614fe5565b90529392505050565b611ad4614c66565b5f611ae3898989898989612900565b604086019190915260208501919091529083529250611b02838a612da6565b608085019190915260608401919091529199919850909650505050505050565b611b2a614c96565b5f611b33614cb5565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bc991611bae91849101615002565b604051602081830303815290604052805190602001206120b3565b9150611bd482612e75565b6020850152835260015b611bea6002601961504a565b811015611c6a57611c0783604051602001611bae91815260200190565b9250611c1283612e75565b85611c1e846002614f55565b60198110611c2e57611c2e614fb9565b6020020186611c3e856002614f55565b611c49906001614f7f565b60198110611c5957611c59614fb9565b602002019190915252600101611bde565b50611c8182604051602001611bae91815260200190565b91505f611c8d83612e75565b85611c9a60016019614f6c565b60198110611caa57611caa614fb9565b60200201919091525050509250929050565b611cc4614cd4565b5f805b601c811015611d1657611ce684604051602001611bae91815260200190565b93505f611cf285612e75565b8584601c8110611d0457611d04614fb9565b60200201919091525050600101611cc7565b5090929050565b611d25614cd4565b5f805b601c811015611de857611d39614cb5565b8481525f5b6008811015611da25786610120015183601c8110611d5e57611d5e614fb9565b60200201518160088110611d7457611d74614fb9565b602002015182611d85836001614f7f565b60098110611d9557611d95614fb9565b6020020152600101611d3e565b50611db781604051602001611bae9190615002565b94505f611dc386612e75565b8685601c8110611dd557611dd5614fb9565b6020020191909152505050600101611d28565b50909391925050565b5f5f611dfb614cf3565b8381525f5b6028811015611e4e578561014001518160288110611e2057611e20614fb9565b602002015182611e31836001614f7f565b60298110611e4157611e41614fb9565b6020020152600101611e00565b50611e6381604051602001611bae919061505d565b91505f611e6f83612e75565b5096929550919350505050565b5f5f611e86614d12565b8381525f5b611e976001601c614f6c565b811015611fd55785610160015181601b8110611eb557611eb5614fb9565b60200201515182611ec7836004614f55565b611ed2906001614f7f565b606d8110611ee257611ee2614fb9565b602002015261016086015181601b8110611efe57611efe614fb9565b60200201516020015182826004611f159190614f55565b611f20906002614f7f565b606d8110611f3057611f30614fb9565b602002015261016086015181601b8110611f4c57611f4c614fb9565b60200201516040015182611f61836004614f55565b611f6c906003614f7f565b606d8110611f7c57611f7c614fb9565b602002015261016086015181601b8110611f9857611f98614fb9565b60200201516060015182611fad836004614f55565b611fb8906004614f7f565b606d8110611fc857611fc8614fb9565b6020020152600101611e8b565b50611e6381604051602001611bae9190615091565b5f5f611ff4614d31565b8381525f5b601c8110156120475785610180015181601c811061201957612019614fb9565b60200201518261202a836001614f7f565b601d811061203a5761203a614fb9565b6020020152600101611ff9565b50611e6381604051602001611bae91906150c5565b5f5f612066614d50565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e6391611bae918491016150f9565b5f6120cb5f51602061523b5f395f51905f528361512c565b92915050565b5f5f51602061523b5f395f51905f528284099392505050565b5f5f51602061523b5f395f51905f528284089392505050565b5f5f51602061523b5f395f51905f52612129835f51602061523b5f395f51905f52614f6c565b84089392505050565b5f6119f5836106018461240a565b81515f908190612152908560016108d3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156122445761223a826106018784612103565b9150600101612223565b5061224d614d6e565b5f5b60088110156122ae575f84826008811061226b5761226b614fb9565b60200201519050612280816106018985612103565b905061228b8161240a565b9050808383600881106122a0576122a0614fb9565b60200201525060010161224f565b505f5b6008811015612301575f8782600881106122cd576122cd614fb9565b602002015190506122ea81848460088110610ef357610ef3614fb9565b90506122f686826120ea565b9550506001016122b1565b5061082e84836120d1565b5f5f612322600161060685610601896001612103565b905061232e84826120d1565b95945050505050565b5f612340614d8d565b61234b868285612ea5565b61235786868386613051565b61236386868386613239565b61236e868285613435565b61237986828561361d565b61238586868386613966565b612390868285614200565b61239b8682856145cb565b61082e81856148c0565b6123ad614cd4565b81815260015b601c811015612404576123e5826123cb600184614f6c565b601c81106123db576123db614fb9565b60200201516125e5565b8282601c81106123f7576123f7614fb9565b60200201526001016123b3565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061523b5f395f51905f520360808201525f51602061523b5f395f51905f5260a082015260205f60c08360055afa905080612468575f5ffd5b50505f519392505050565b61247b614dac565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f6120cb825f51602061523b5f395f51905f52614f6c565b6124d2614cd4565b601c5b80156125db575f846124e8600184614f6c565b601c81106124f8576124f8614fb9565b602002015190505f8861250c600185614f6c565b601c811061251c5761251c614fb9565b602002015190505f61257761253b612534858c6120d1565b60026120d1565b6106248a61254a600189614f6c565b601c811061255a5761255a614fb9565b60200201516106016125718861060160018a612103565b87612103565b9050612598816106016108b961259287610601600189612103565b866120ea565b90508584116125c75797508780856125b1600187614f6c565b601c81106125c1576125c1614fb9565b60200201525b505050806125d49061513f565b90506124d5565b5095945050505050565b5f6120cb82836120d1565b6125f8614dac565b5f612605601c6028614f7f565b612610906002614f7f565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561269e5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612645565b50805184526020810151602085015250505092915050565b6126be614dac565b5f51602061521b5f395f51905f5282602001515f51602061521b5f395f51905f526126e99190614f6c565b6126f3919061512c565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516128929190615154565b5f60405180830381855afa9150503d805f81146128ca576040519150601f19603f3d011682016040523d82523d5f602084013e6128cf565b606091505b50915091505f818060200190518101906128e9919061516a565b90508280156128f55750805b979650505050505050565b5f80808080612910876003614f7f565b61291b90600c614f7f565b6001600160401b0381111561293257612932615189565b60405190808252806020026020018201604052801561295b578160200160208202803683370190505b509050875f1b815f8151811061297357612973614fb9565b602002602001018181525050865f1b8160018151811061299557612995614fb9565b602002602001018181525050855f1b816002815181106129b7576129b7614fb9565b60209081029190910101525f5b6129cf601089614f6c565b811015612a20578a8a828181106129e8576129e8614fb9565b90506020020135828260036129fd9190614f7f565b81518110612a0d57612a0d614fb9565b60209081029190910101526001016129c4565b505f5b6010811015612a91578b51612a4b908260108110612a4357612a43614fb9565b602002015190565b82826010612a5a8c6003614f7f565b612a649190614f6c565b612a6e9190614f7f565b81518110612a7e57612a7e614fb9565b6020908102919091010152600101612a23565b5060208b01515181612aa4896003614f7f565b81518110612ab457612ab4614fb9565b6020908102919091018101919091528b810151015181612ad5896003614f7f565b612ae0906001614f7f565b81518110612af057612af0614fb9565b6020908102919091018101919091528b01516040015181612b12896003614f7f565b612b1d906002614f7f565b81518110612b2d57612b2d614fb9565b6020908102919091018101919091528b01516060015181612b4f896003614f7f565b612b5a906003614f7f565b81518110612b6a57612b6a614fb9565b602090810291909101015260408b01515181612b87896003614f7f565b612b92906004614f7f565b81518110612ba257612ba2614fb9565b60209081029190910181019190915260408c0151015181612bc4896003614f7f565b612bcf906005614f7f565b81518110612bdf57612bdf614fb9565b60209081029190910101526040808c0151015181612bfe896003614f7f565b612c09906006614f7f565b81518110612c1957612c19614fb9565b602090810291909101015260408b01516060015181612c39896003614f7f565b612c44906007614f7f565b81518110612c5457612c54614fb9565b602090810291909101015260608b01515181612c71896003614f7f565b612c7c906008614f7f565b81518110612c8c57612c8c614fb9565b60209081029190910181019190915260608c0151015181612cae896003614f7f565b612cb9906009614f7f565b81518110612cc957612cc9614fb9565b602090810291909101015260608b01516040015181612ce9896003614f7f565b612cf490600a614f7f565b81518110612d0457612d04614fb9565b60209081029190910101526060808c0151015181612d23896003614f7f565b612d2e90600b614f7f565b81518110612d3e57612d3e614fb9565b602002602001018181525050612d5e81604051602001611bae919061519d565b9150612d6982612e75565b6040805160208101869052929750909550612d849101611bae565b91505f612d9083612e75565b50959c949b509499509097509195505050505050565b5f5f5f612db1614dc4565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e5b91611bae918491016151d2565b9150612e6682612e75565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e90826120b3565b9450612e9b816120b3565b9350505050915091565b5f612eb1846007614925565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612f12612f0c612ee6856003612103565b610601612f01612ef68b5f614925565b6106018c601c614925565b6106018b601b614925565b836120d1565b9050612f93612f88612f6f612f56612f3d85610606612f328d6002614925565b6106018e601b614925565b610606612f4b8c6003614925565b6106018d601c614925565b610606612f648b6004614925565b6106018c601d614925565b610606612f7d8a6005614925565b6106018b601e614925565b610606886001614925565b9050612fb281610606612fa7866001612103565b6106018a6026614925565b9050612fbe81846120d1565b9050612fca81856120d1565b8552505f9050613004612ffa612fef612fe488601b614925565b61060689601e614925565b610624886023614925565b610606875f614925565b905061301581610601846002612103565b905061302681610601846001612103565b905061303281836120d1565b905061303e81846120d1565b9050808460015b60200201525050505050565b5f5f5f61308761307d61306589601b614925565b6106066130738b6011614925565b8a606001516120d1565b87608001516120ea565b90506130c0816106016130b661309e8b601c614925565b6106066130ac8d6012614925565b8c606001516120d1565b89608001516120ea565b90506130e5816106016130b66130d78b601d614925565b6106066130ac8d6013614925565b905061310a816106016130b66130fc8b601e614925565b6106066130ac8d6014614925565b92505f905061312e61307d61312089601b614925565b6106066130738b600d614925565b9050613153816106016130b66131458b601c614925565b6106066130ac8d600e614925565b9050613178816106016130b661316a8b601d614925565b6106066130ac8d600f614925565b905061319d816106016130b661318f8b601e614925565b6106066130ac8d6010614925565b91505f90506131c46131be6131b389601f614925565b6106068a6019614925565b846120d1565b90506131f9816106246131f36131db8b6027614925565b6106066131e98d601a614925565b8c60a001516120d1565b856120d1565b905061320581856120d1565b6040860152505f6132286131f361321d89601a614925565b6106018a6027614925565b606090950194909452505050505050565b5f5f61329761327f6132676132526130b68a6015614925565b6106066132608b6016614925565b8a516120d1565b6106066132758a6017614925565b89602001516120d1565b61060661328d896018614925565b88604001516120d1565b91505f6132ce6132b56132ab89601b614925565b88608001516120ea565b6106066132c38a6003614925565b6106018b6023614925565b90505f6132f76132df89601c614925565b6106066132ec8b5f614925565b6106018c6024614925565b90505f6133216133088a601d614925565b6106066133168c6001614925565b6106018d6025614925565b905061336061334861333a85610606868d5f01516120d1565b610606848c602001516120d1565b6106066133568c6004614925565b8b604001516120d1565b93505050505f6133746131be886020614925565b90505f6133856131be896020614925565b90505f6133bd6133a46133998b6022614925565b6106068c6006614925565b6106246133b28c6022614925565b6106018d6006614925565b90505f6133e16133db6133d087896120d1565b6106018d6020614925565b83612103565b90506133ed81886120d1565b90505f6134156134076134018d6006614925565b876120d1565b6106246134018e6021614925565b60808a018390529050808960055b60200201525050505050505050505050565b5f6134415f6001612103565b90505f61344f5f6002612103565b90505f61345d5f6003612103565b90505f61347961346e88601c614925565b61062489601b614925565b90505f61349561348a89601d614925565b6106248a601c614925565b90505f6134b16134a68a601e614925565b6106248b601d614925565b90505f6134cd6134c28b6023614925565b6106248c601e614925565b9050836134de81610601818b6120ea565b90506134ee81610601878a6120ea565b90506134fe8161060187896120ea565b905061350f816106018d6008614925565b905061351b818a6120d1565b60c08b0152508261353081610601818b6120ea565b905061354081610601868a6120ea565b90506135508161060186896120ea565b9050613561816106018d6008614925565b905061356d818a6120d1565b60e08b0152508161358281610601818b6120ea565b905061359281610601858a6120ea565b90506135a28161060185896120ea565b90506135b3816106018d6008614925565b90506135bf818a6120d1565b6101008b015250806135d581610601818b6120ea565b90506135e581610601848a6120ea565b90506135f58161060184896120ea565b9050613606816106018d6008614925565b9050613612818a6120d1565b9050808a6009613423565b6136566040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61366184601c614925565b815261366e84601d614925565b602082015261367e846023614925565b604082015261368e846026614925565b606082015261369e846025614925565b60808201526136ae846024614925565b60a08201525f6136bf856002614925565b90505f6136cc865f614925565b90505f6136e08460400151855f0151612103565b90505f6136f5856020015186602001516120d1565b606086015190915086905f9061370b90806120d1565b90505f61372961372389602001518a606001516120d1565b886120d1565b90505f6137486137418a60a001518b604001516120ea565b8a516120ea565b905061375761340182886120d1565b905061377e61377861377261376c8487612103565b88612103565b846120ea565b836120ea565b90506137a661379b61379083876120d1565b6106018f6009614925565b61060160018a612103565b6101408c015250505050602085015160808601515f916137c5916120ea565b90505f6137e36137d98860600151886120d1565b8860200151612103565b90505f6138076137f384876120d1565b6106066131f38b60a001518c5f0151612103565b905061382f613824613819838c6120d1565b6106018e6009614925565b610601600189612103565b6101608b0152505f915061385090506138498360116120ea565b87516120d1565b90505f61385d83846120ea565b905061386981826120ea565b90505f6138778360096120d1565b90506138a061389a6131be6138938b60a001518c5f01516120ea565b8b516120ea565b82612103565b60c089018190525f906138bb9061372390613790908d6120d1565b90506138ce8b600a6020020151826120ea565b6101408c0152505086515f92506138f59150613849906138ee90806120ea565b88516120ea565b90505f613935613910836106018a5f01518b60a00151612103565b60208901516106249061392390806120ea565b6106018b602001518c608001516120ea565b905061395289600b6020020151610606613723613790858d6120d1565b89600b602002015250505050505050505050565b6139fa604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a2f613a16613a0b87601b614925565b610601886024614925565b610606613a24886023614925565b61060189601c614925565b8152613a74613a69613a50613a4588601b614925565b61060189601e614925565b610606613a5e89601c614925565b6106018a601d614925565b610624876025614925565b60408201819052613a8990600160441b6120d1565b60408201819052613a9f90610624876026614925565b604082018190528151613ab291906120ea565b60408201819052613ac890610601876005614925565b60408201528051613add90600160441b6120d1565b808252613afd90610606613af2886023614925565b610601896024614925565b80825260208201819052613b1990610624612fe488601d614925565b60208201819052613b2f90610601876004614925565b6020820152805160608201819052613b4c9061060687601e614925565b60608201819052613b7090610624613b65886025614925565b610606896026614925565b60608201819052613b8590610601875f614925565b8160600181815250505f613bae613ba4836020015184604001516120ea565b83606001516120ea565b9050613bbf81610601886003614925565b9050613bd7613bcf876024614925565b6140006120d1565b60808301819052613bed90610606886023614925565b60808301819052613c00906140006120d1565b60808301819052613c169061060688601d614925565b60808301819052613c29906140006120d1565b60808301819052613c3f9061060688601c614925565b60808301819052613c52906140006120d1565b60808301819052613c689061060688601b614925565b60808301819052613c7e9061062488601e614925565b60808301819052613c9490610601886005614925565b6080830152613ca7613bcf876025614925565b60a08301819052613cbd90610606886024614925565b60a08301819052613cd0906140006120d1565b60a08301819052613ce690610606886023614925565b60a08301819052613cf9906140006120d1565b60a08301819052613d0f9061060688601e614925565b60a08301819052613d22906140006120d1565b60a08301819052613d389061060688601d614925565b60a08301819052613d4e90610624886026614925565b60a08301819052613d6390610601885f614925565b60a0830181905260808301515f91613d7b91906120ea565b9050613d8c81610601896004614925565b9050613da6613d9c88601d614925565b87604001516120d1565b60c08401819052613dbf906106066132758a601c614925565b60c08401819052613ddf90610606613dd88a601b614925565b89516120d1565b60c08401819052613df590610606896001614925565b60c0840181905260e08401819052613e129061062489601e614925565b60c0840152613e2561346e886023614925565b610140840152613e44613e39886026614925565b61062489601e614925565b610120840152610140830151613e6990613e5e90806120d1565b846101400151612103565b610280840152610140830151613eab90613ea090613e999061060160015f51602061523b5f395f51905f52614f6c565b60016120ea565b8461012001516120d1565b6101608401819052613ee290613ed490610601613ec98b6002614925565b6106018c6003614925565b6106016134018a600a614925565b6101a0860152610280830151613f0490613ed490610601613ec98b6002614925565b6101c086015260c0830151613f2c90610601613f218a6002614925565b6106018b6003614925565b6101e08401525f613f4b613f4189601e614925565b8560e00151612103565b9050613f5a61389a82836120d1565b6101a0850152613f6e61328d896025614925565b6101008501819052613f9290610606613f888b6024614925565b8a602001516120d1565b6101008501819052613fac906106066132608b6023614925565b610100850152613fcb613fc0896026614925565b856101000151612103565b6101008501525f613fe06134a68a6025614925565b905061403461400e612f0c613e9988610140015160015f51602061523b5f395f51905f526106019190614f6c565b610601613e9988610100015160015f51602061523b5f395f51905f526106019190614f6c565b6101808601526101008501516140599061404e90806120d1565b866101000151612103565b6101c086015261018085015161408c90614078906106018c6007614925565b6106016140868c600a614925565b896120d1565b6101e08801526102808501516140ab90614078906106018c6007614925565b6102008801526101c08501516140ca90614078906106018c6007614925565b6102208801526101a08501516140e5906106018b6007614925565b6102008601526141046140f98a6024614925565b6106248b601c614925565b610220860152610140850151614143906134a69061413890613e999061060160015f51602061523b5f395f51905f52614f6c565b8761022001516120d1565b61024086018190526101e0860151610260870181905261417a916106069061060161416f8e6005614925565b6106018f6002614925565b610260860181905260c086015161419d91906106069061060161416f8e5f614925565b61026086018190526102008601516141b591906120ea565b61026086018190526141cb9061377290866120ea565b6102a086018190526141e5906106016140868c600a614925565b6102a0860181905287600c6020020152505050505050505050565b6142766040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61428f61428485601b614925565b610606866002614925565b81526142aa61429f85601c614925565b610606866003614925565b60208201526142c86142bd85601d614925565b610606866004614925565b60408201526142e66142db85601e614925565b610606866005614925565b60608201528051614318906143119061430a9061430390806120d1565b84516120d1565b83516120d1565b82516120d1565b608082015260208101516143569061434c906143429061433890806120d1565b84602001516120d1565b83602001516120d1565b82602001516120d1565b60a082015260408101516143949061438a906143809061437690806120d1565b84604001516120d1565b83604001516120d1565b82604001516120d1565b60c082015260608101516143d2906143c8906143be906143b490806120d1565b84606001516120d1565b83606001516120d1565b82606001516120d1565b60e0820152608081015160a08201516143eb91906120ea565b61010082015260c081015160e082015161440591906120ea565b61012082015260a08101516144299061441e90806120ea565b8261012001516120ea565b61014082015260e081015161444d9061444290806120ea565b8261010001516120ea565b61016082015261012081015161446390806120ea565b6101e082018190526144849061447990806120ea565b8261016001516120ea565b6101e082015261010081015161449a90806120ea565b6101a082018190526144bb906144b090806120ea565b8261014001516120ea565b6101a082018190526101608201516144d2916120ea565b6101808201526101408101516101e08201516144ee91906120ea565b6101c0820152614502612f0c85600b614925565b610200820181905261024084015161018083015161452d9261060691610601906106248a6023614925565b836012602002015261455d8360136020020151610606836102000151610601856101a001516106248a6024614925565b836013602002015261458d8360146020020151610606836102000151610601856101c001516106248a6025614925565b83601460200201526145bd8360156020020151610606836102000151610601856101e001516106248a6026614925565b836015602002015250505050565b61461d6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806146527f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e76120b3565b81526020016146807f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b6120b3565b81526020016146ad7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac156120b3565b81526020016146db7f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b6120b3565b905290506146f86146ed86601b614925565b610606876002614925565b610120830181905261472c9061472190613ea09061471690806120d1565b8561012001516120d1565b8361012001516120d1565b825261473985601c614925565b602083015261474985601d614925565b604083015261475985601e614925565b60608301528151602083015161478191613ba49161477791906120ea565b84604001516120ea565b60808301526147946131be86600c614925565b61014083015281516147b5906147ab90835f610ef3565b83608001516120ea565b60a08301526147e184601660200201516106068461014001516106018660a001516106248b6023614925565b6102c085015260208201516147fc906147ab90836001610ef3565b60c083015261482884601760200201516106068461014001516106018660c001516106248b6024614925565b6102e08501526040820151614843906147ab90836002610ef3565b60e083015261486f84601860200201516106068461014001516106018660e001516106248b6025614925565b610300850152606082015161488a906147ab90836003610ef3565b6101008301526148b884601960200201516106068461014001516106018661010001516106248b6026614925565b846019613045565b5f6148cc8184816108d3565b905060015b601a81101561491e57614914826106068684601a81106148f3576148f3614fb9565b602002015186614904600187614f6c565b60198110610ef357610ef3614fb9565b91506001016148d1565b5092915050565b5f8282602781111561493957614939615206565b6028811061494957614949614fb9565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161497b614dac565b8152602001614988614dac565b8152602001614995614dac565b81526020016149a2614dac565b81526020016149af614dac565b81526020016149bc614dac565b81526020016149c9614dac565b81526020016149d6614dac565b81526020016149e3614dac565b81526020016149f0614dac565b81526020016149fd614dac565b8152602001614a0a614dac565b8152602001614a17614dac565b8152602001614a24614dac565b8152602001614a31614dac565b8152602001614a3e614dac565b8152602001614a4b614dac565b8152602001614a58614dac565b8152602001614a65614dac565b8152602001614a72614dac565b8152602001614a7f614dac565b8152602001614a8c614dac565b8152602001614a99614dac565b8152602001614aa6614dac565b8152602001614ab3614dac565b8152602001614ac0614dac565b8152602001614acd614dac565b905290565b604051806101e00160405280614ae6614de3565b8152602001614af3614c42565b8152602001614b00614c42565b8152602001614b0d614c42565b8152602001614b1a614c42565b8152602001614b27614c42565b8152602001614b34614c42565b8152602001614b41614c42565b8152602001614b4e614c42565b8152602001614b5b614e02565b8152602001614b68614e30565b8152602001614b75614e4f565b8152602001614b82614cd4565b8152602001614b8f614c42565b8152602001614acd614c42565b604051806101000160405280614bb0614c66565b8152602001614bbd614c96565b8152602001614bca614cd4565b8152602001614bd7614cd4565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c2c614dac565b815260200190600190039081614c245790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e1a614d6e565b815260200190600190039081614e125790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614e67614c42565b815260200190600190039081614e5f5790505090565b5f5f5f5f60408587031215614e90575f5ffd5b84356001600160401b03811115614ea5575f5ffd5b8501601f81018713614eb5575f5ffd5b80356001600160401b03811115614eca575f5ffd5b876020828401011115614edb575f5ffd5b6020918201955093508501356001600160401b03811115614efa575f5ffd5b8501601f81018713614f0a575f5ffd5b80356001600160401b03811115614f1f575f5ffd5b8760208260051b8401011115614f33575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176120cb576120cb614f41565b818103818111156120cb576120cb614f41565b808201808211156120cb576120cb614f41565b5f5f85851115614fa0575f5ffd5b83861115614fac575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f60018201614fde57614fde614f41565b5060010190565b803560208310156120cb575f19602084900360031b1b1692915050565b5f8183825b6009811015615026578151835260209283019290910190600101615007565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261505857615058615036565b500490565b5f8183825b6029811015615081578151835260209283019290910190600101615062565b5050506105208201905092915050565b5f8183825b606d8110156150b5578151835260209283019290910190600101615096565b505050610da08201905092915050565b5f8183825b601d8110156150e95781518352602092830192909101906001016150ca565b5050506103a08201905092915050565b5f8183825b600581101561511d5781518352602092830192909101906001016150fe565b50505060a08201905092915050565b5f8261513a5761513a615036565b500690565b5f8161514d5761514d614f41565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561517a575f5ffd5b815180151581146119f5575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156151c75781518452602093840193909101906001016151a9565b509195945050505050565b5f8183825b600d8110156151f65781518352602092830192909101906001016151d7565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
4
+ export declare const HonkVerifierBytecode = "0x60e0604052348015600e575f5ffd5b506302000000608052601960a05260ae60c05260805160a05160c05161525c6100595f395f61063401525f818161073f01528181610d210152610dbd01525f6105d8015261525c5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614e7e565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614f56565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101a5565b90505f61009787876101ba565b9050601082604001516100aa9190614f6d565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100e0828787865f015187604001516001610513565b90506101308686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105c2565b815160a001525f6101418383610737565b905080610161576040516313f8744360e31b815260040160405180910390fd5b5f61016d848685610838565b90508061018d576040516352ec174560e11b815260040160405180910390fd5b8180156101975750805b9a9950505050505050505050565b6101ad614956565b6101b56110b5565b905090565b6101c2614ad3565b5f805b6010811015610224576101f18583866101df826020614f80565b926101ec93929190614f93565b61199c565b8351826010811061020457610204614fba565b60200201818152505060208261021a9190614f80565b91506001016101c5565b50610248848285610236826080614f80565b9261024393929190614f93565b6119fd565b6020830152610258608082614f80565b905061026b848285610236826080614f80565b604083015261027b608082614f80565b905061028e848285610236826080614f80565b606083015261029e608082614f80565b90506102b1848285610236826080614f80565b60c08301526102c1608082614f80565b90506102d4848285610236826080614f80565b60e08301526102e4608082614f80565b90506102f7848285610236826080614f80565b60808084019190915261030a9082614f80565b905061031d848285610236826080614f80565b61010083015261032e608082614f80565b9050610341848285610236826080614f80565b60a0830152610351608082614f80565b90505f5b601c8110156103d0575f5b60088110156103c75761037a8684876101df826020614f80565b84610120015183601c811061039157610391614fba565b602002015182600881106103a7576103a7614fba565b6020020181815250506020836103bd9190614f80565b9250600101610360565b50600101610355565b505f5b6028811015610424576103ed8583866101df826020614f80565b836101400151826028811061040457610404614fba565b60200201818152505060208261041a9190614f80565b91506001016103d3565b505f5b6104336001601c614f6d565b81101561047c5761044b858386610236826080614f80565b83610160015182601b811061046257610462614fba565b6020020152610472608083614f80565b9150600101610427565b505f5b601c8110156104d0576104998583866101df826020614f80565b83610180015182601c81106104b0576104b0614fba565b6020020181815250506020826104c69190614f80565b915060010161047f565b506104e2848285610236826080614f80565b6101a08301526104f3608082614f80565b9050610506848285610236826080614f80565b6101c08301525092915050565b61051b614b9d565b5f61052b88888888888887611acd565b908352905061053a8189611b23565b6020840191909152905061054d81611cbd565b604084019190915290506105618882611d1e565b606084019190915290506105758882611df2565b608084019190915290506105898882611e7d565b60a0840191909152905061059d8882611feb565b60c084019190915290506105b1888261205d565b5060e0830152509695505050505050565b5f6001808261060b86610606896106016105fc8a7f0000000000000000000000000000000000000000000000000000000000000000614f80565b6120b4565b6120d2565b6120eb565b90505f610629876106248a6106016105fc8b6001614f80565b612104565b90505f5b61065860107f0000000000000000000000000000000000000000000000000000000000000000614f6d565b8110156106c5575f6106828c838151811061067557610675614fba565b60200260200101516120b4565b90506106928661060186846120eb565b95506106a28561060185846120eb565b94506106ae848b6120eb565b93506106ba838b612104565b92505060010161062d565b505f5b601081101561072c575f8a82601081106106e4576106e4614fba565b602002015190506106f98661060186846120eb565b95506107098561060185846120eb565b9450610715848b6120eb565b9350610721838b612104565b9250506001016106c8565b506101978484612133565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561080e575f86610120015182601c811061077d5761077d614fba565b602002015190505f61078f8286612141565b9050806107af576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107c6576107c6614fba565b602002015190506107d7838261215e565b95506107fe886040015185601c81106107f2576107f2614fba565b6020020151868361230d565b945050505080600101905061073d565b505f610828866101400151865f0151876020015185612338565b90508281145b9695505050505050565b5f61087f6040518061012001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61088d8460a001516123a6565b9050610897614bf6565b61089f614c15565b60e08601516108be906108b990855f5b6020020151612104565b61240b565b60a085015260e08601516108dd906108b990855f5b60200201516120eb565b60c080860182905260a0860151908801516108fc9261060691906120d2565b845260a086015161092a906109109061240b565b6106018660a001516106248a60c001518960c001516120d2565b6020850152600182526101a088015161094290612474565b81526001606085018190525f60808601525b602381116109fa5761097561096b865f01516124b3565b86606001516120d2565b83826046811061098757610987614fba565b602002015260808501516101408a01516109ca9190610606906109ab600186614f6d565b602881106109bb576109bb614fba565b602002015188606001516120d2565b8560800181815250506109e5856060015188608001516120d2565b60608601526109f381614fce565b9050610954565b505f610a0860236001614f80565b90505b60288111610a8957610a2361096b86602001516124b3565b838260468110610a3557610a35614fba565b602002015260808501516101408a0151610a599190610606906109ab600186614f6d565b856080018181525050610a74856060015188608001516120d2565b6060860152610a8281614fce565b9050610a0b565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610c0f8860200151612474565b6103808201526040880151610c2390612474565b6103a08201526060880151610c3790612474565b6103c08201526080880151610c4b90612474565b6103e082015260a0880151610c5f90612474565b610400820152610100880151610c7490612474565b61042082015260c0880151610c8890612474565b61044082015260e0880151610c9c90612474565b6104608201526020880151610cb090612474565b6104808201526040880151610cc490612474565b6104a08201526060880151610cd890612474565b6104c08201526080880151610cec90612474565b6104e082015260a0880151610d0090612474565b610500820152606086015160808501516101808a01515f92610d45929091877f00000000000000000000000000000000000000000000000000000000000000006124cb565b805160a0870151919250610d58916120d2565b604086018190526101808a01515160c0890151610d88929161060691610d7e91906120d2565b8860c001516120d2565b604086015260c0870151610d9b906125e6565b60608601525f5b610dae6001601c614f6d565b811015610fb0575f610de160017f0000000000000000000000000000000000000000000000000000000000000000614f6d565b821015905080610f5657610e146108b98a60e0015188856001610e049190614f80565b601c81106108af576108af614fba565b60a088015260e0890151610e42906108b99088610e32866001614f80565b601c81106108d3576108d3614fba565b60c0880152606087015160a0880151610e5b91906120d2565b60e0880152606087015160c08a0151610e7791610d7e916120d2565b6101008801819052610e9990610e8c906124b3565b6106068960e001516124b3565b8583610ea760286001614f80565b610eb19190614f80565b60468110610ec157610ec1614fba565b60200201526101008701516101808c01515f91610efd91610ee3866001614f80565b601c8110610ef357610ef3614fba565b60200201516120d2565b9050610f19816106068a60e0015187876001610ee39190614f80565b9050610f298860400151826120eb565b6040890152606088015160c08b0151610f4f91610f45916120d2565b8b60c001516120d2565b6060890152505b610f7a8b610160015183601b8110610f7057610f70614fba565b6020020151612474565b8483610f8860286001614f80565b610f929190614f80565b60468110610fa257610fa2614fba565b602002015250600101610da2565b5060408051808201909152600181526002602082015282610fd3601c6028614f80565b60468110610fe357610fe3614fba565b6020020152604085015183610ffa601c6028614f80565b6046811061100a5761100a614fba565b60200201526101c08901515f9061102090612474565b90508083611030601c6028614f80565b61103b906001614f80565b6046811061104b5761104b614fba565b602002015260e088015184611062601c6028614f80565b61106d906001614f80565b6046811061107d5761107d614fba565b60200201525f61108d84866125f1565b90505f611099836126b7565b90506110a582826126fd565b9c9b505050505050505050505050565b6110bd614956565b50604080516103c08101825263020000008152601960208083019190915260ae82840152825180840184527f1f3f3167e9f171033dc87c71577567f49d6810ef8545e640cd222bd04210a09b81527f15bc01132771896cd2604b735e4eb941e459350f14d20c6a01e69b67d710e05b818301526060830152825180840184527f1b11f81dd0290d636006a0df95f9647276fbc495a0808b84a1dfd1954d5b796281527f1e7dcdd05ba7456fd76c8f3cd7f15b8311875e34fe31422b598d57de74293ea4818301526080830152825180840184527f114d62328f1a64fde3cb4e9bfbf2a244ee29664fa64c4c2495bbb8c41bd4fdb381527f0a0ebcae0d854bc7056dbe90f269a77a9c19d06011ea80224daa1260c23855fc8183015260a0830152825180840184527f2755c0b29c781dae07294b48a3e1121f83c6b92a0f4cfed491b527773c521e4281527f1b442c425156a8b25625bde5fd6c8d6730913415cb436311d6140396da1d59058183015260c0830152825180840184527f18ddfdf791ed840070147976eec7bd59c4a15ba6549fd91862140ddc4077cdfb81527f2712f90ed4c5387aaca9be3f256281cdb9cf9175551dbcd876991dde0c44a9f68183015260e0830152825180840184527f285dd0b4457d06eb2dd81208ecb0cef9737e0a87af5254aa852d3f6ec4b5f4e781527f03f47a4f3c474cf6c2675a7d4834bbbe5fb922e3f0716d28a992dab9a7663dcd81830152610100830152825180840184527f01a8abe0d74344165494348196db5fa7da3a745f398fd1374cc2cb15bcc58ff481527f0f62b9babe865f3d0c422867d8b7f7fa5c13d85721a659f3b9ff8fc8cc6fc99281830152610120830152825180840184527f2b984d5a6f80d48f784134f7f864db2d60e27af9ab7b53c4943a15424d60a29881527f20ad0fb4f37f96080d8b906f1b128e75404f71e17c73ca3cec1c4b50871256cb81830152610140830152825180840184527f18873bff31132617133462506ae7a56a6ee3660ac9404c46cdd1a55066594d6181527f0664c1e11ba9147f46c466b1b4b11cdd16828eab9e99e6618b7332bc81b1e28981830152610160830152825180840184527f176c806c0b21b8905129b130b058fd575299152283f8c356c6e31f2b271be16681527f06e37492c0f0d33f8906dd3ea2670d862361968ca758cb4ee8fbefc0639134dd81830152610180830152825180840184527f0d0ece310e7db0cd0685012c1e8dfd37fb0d0fd4053c1595e106ec6ceb0b653081527f2cf9369f1107842ab3526ea26b75fa482d35dc9f9886ba440a386ccecaaada36818301526101a0830152825180840184527f1b519908e15b754d126a69bde4c6ad15ae3a1cd77cdd93d1f4d487ed5537793681527f06551beeaadccfa10215f0828f4d7748cace0c7f725a992cc6d87ec92e6bdfed818301526101c0830152825180840184527f294987d08ba1e695f11476bd83d6a41ce8e66edead4abd8e4c1d0de404d3086d81527f06f6a0d1447cd63407f8b90ababbd06d2e00a2be6aefa224852a162756ec1fe7818301526101e0830152825180840184527f11476bf6d3f8e69c71a6ce5722b640ab766cb2404ddbd516e6e2b161e614b8f481527f0a3d39a223b41b4bceaedbd47b91d2c0e1cedc4975c0126c81524696eaf8449a81830152610200830152825180840184527f278ad399f43a25f08a96800ad882438a8743db7ca4be0731b109f4aef9c62d3f81527f0ec43adffdcfd3aa936f3a21676537327c2e817ccd47b3d77e15a1a9302dda5981830152610220830152825180840184527f15916391e5c4b5897a2c8994f63cd58122fc4dd3bb5c2d4cfad412dad7018cce81527f2e19a62c4ec3caa43408ee051da133299010a24f8f6b0a75386960eb3055231581830152610240830152825180840184527f0758aed2719718f743de7bf20b9f8e01cd0105003cb55d815de30b2e1929016681527f297b885450a230b705c380fd6f49d7a04ad91681fd95e5d20cfd167c45c2cd5e81830152610260830152825180840184527f211828d7e82c360804cc3eeb3001e568889f1ae299de48cc687a5d87620a490981527f20bfbcf72e089d1c2923bc503a8748f30bf088a3a2eddd543825f18228c8c35d81830152610280830152825180840184527f19bb8f771423b115bf936a2f94ef93b36e61fbdafb9156314168e146912ccbb881527f1a4fb82564d610b8ca301c6723dda399e9b95732dae8b07d6b41c088dd3ab31a818301526102a0830152825180840184527f2244d0e4de09d1853e5255933cc3f308808865deb4ec5e42f8f7488185cd821f81527f2fedc198ff4abf4085af3aa7dd9ce5b171826597560550cb15ae20cf1a20af08818301526102c0830152825180840184527f17f955f705dc9dcd934fd1387211d5d220afa45e4f604fc1b6c7c583cc179d4c81527f071a8059ea3d12a4ac6d76a8769e97c178230ed6b9711b47a19c4349a0a7f933818301526102e0830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610300830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610320830152825180840184527f09d569252b4b229e483b00b1e67384ac4db29395d32e28c82f8b73983d30ac6b81527f2c47d5809e56ba32be655d4177db195bb450fd12587756c4b85b6506a7844ddb81830152610340830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f0315d4c5146a605e545e1ece9e264fff2c850947e9d8006893b7ca032c62352d83527f1f1f5cd755755281b80b955c2d6f1dc62fc2b341bbbf724599151027db322d86908301526103a081019190915290565b5f602082146119e95760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b60448201526064015b60405180910390fd5b6119f66105fc8385614fe6565b9392505050565b611a05614c43565b60808214611a4b5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064016119e0565b604080516080810190915280611a6460205f8688614f93565b611a6d91614fe6565b8152602090810190611a83906040908688614f93565b611a8c91614fe6565b8152602001611a9f606060408688614f93565b611aa891614fe6565b8152602001611abb608060608688614f93565b611ac491614fe6565b90529392505050565b611ad5614c67565b5f611ae4898989898989612901565b604086019190915260208501919091529083529250611b03838a612da7565b608085019190915260608401919091529199919850909650505050505050565b611b2b614c97565b5f611b34614cb6565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bca91611baf91849101615003565b604051602081830303815290604052805190602001206120b4565b9150611bd582612e76565b6020850152835260015b611beb6002601961504b565b811015611c6b57611c0883604051602001611baf91815260200190565b9250611c1383612e76565b85611c1f846002614f56565b60198110611c2f57611c2f614fba565b6020020186611c3f856002614f56565b611c4a906001614f80565b60198110611c5a57611c5a614fba565b602002019190915252600101611bdf565b50611c8282604051602001611baf91815260200190565b91505f611c8e83612e76565b85611c9b60016019614f6d565b60198110611cab57611cab614fba565b60200201919091525050509250929050565b611cc5614cd5565b5f805b601c811015611d1757611ce784604051602001611baf91815260200190565b93505f611cf385612e76565b8584601c8110611d0557611d05614fba565b60200201919091525050600101611cc8565b5090929050565b611d26614cd5565b5f805b601c811015611de957611d3a614cb6565b8481525f5b6008811015611da35786610120015183601c8110611d5f57611d5f614fba565b60200201518160088110611d7557611d75614fba565b602002015182611d86836001614f80565b60098110611d9657611d96614fba565b6020020152600101611d3f565b50611db881604051602001611baf9190615003565b94505f611dc486612e76565b8685601c8110611dd657611dd6614fba565b6020020191909152505050600101611d29565b50909391925050565b5f5f611dfc614cf4565b8381525f5b6028811015611e4f578561014001518160288110611e2157611e21614fba565b602002015182611e32836001614f80565b60298110611e4257611e42614fba565b6020020152600101611e01565b50611e6481604051602001611baf919061505e565b91505f611e7083612e76565b5096929550919350505050565b5f5f611e87614d13565b8381525f5b611e986001601c614f6d565b811015611fd65785610160015181601b8110611eb657611eb6614fba565b60200201515182611ec8836004614f56565b611ed3906001614f80565b606d8110611ee357611ee3614fba565b602002015261016086015181601b8110611eff57611eff614fba565b60200201516020015182826004611f169190614f56565b611f21906002614f80565b606d8110611f3157611f31614fba565b602002015261016086015181601b8110611f4d57611f4d614fba565b60200201516040015182611f62836004614f56565b611f6d906003614f80565b606d8110611f7d57611f7d614fba565b602002015261016086015181601b8110611f9957611f99614fba565b60200201516060015182611fae836004614f56565b611fb9906004614f80565b606d8110611fc957611fc9614fba565b6020020152600101611e8c565b50611e6481604051602001611baf9190615092565b5f5f611ff5614d32565b8381525f5b601c8110156120485785610180015181601c811061201a5761201a614fba565b60200201518261202b836001614f80565b601d811061203b5761203b614fba565b6020020152600101611ffa565b50611e6481604051602001611baf91906150c6565b5f5f612067614d51565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e6491611baf918491016150fa565b5f6120cc5f51602061523c5f395f51905f528361512d565b92915050565b5f5f51602061523c5f395f51905f528284099392505050565b5f5f51602061523c5f395f51905f528284089392505050565b5f5f51602061523c5f395f51905f5261212a835f51602061523c5f395f51905f52614f6d565b84089392505050565b5f6119f6836106018461240b565b81515f908190612153908560016108d3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156122455761223b826106018784612104565b9150600101612224565b5061224e614d6f565b5f5b60088110156122af575f84826008811061226c5761226c614fba565b60200201519050612281816106018985612104565b905061228c8161240b565b9050808383600881106122a1576122a1614fba565b602002015250600101612250565b505f5b6008811015612302575f8782600881106122ce576122ce614fba565b602002015190506122eb81848460088110610ef357610ef3614fba565b90506122f786826120eb565b9550506001016122b2565b5061082e84836120d2565b5f5f612323600161060685610601896001612104565b905061232f84826120d2565b95945050505050565b5f612341614d8e565b61234c868285612ea6565b61235886868386613052565b6123648686838661323a565b61236f868285613436565b61237a86828561361e565b61238686868386613967565b612391868285614201565b61239c8682856145cc565b61082e81856148c1565b6123ae614cd5565b81815260015b601c811015612405576123e6826123cc600184614f6d565b601c81106123dc576123dc614fba565b60200201516125e6565b8282601c81106123f8576123f8614fba565b60200201526001016123b4565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061523c5f395f51905f520360808201525f51602061523c5f395f51905f5260a082015260205f60c08360055afa905080612469575f5ffd5b50505f519392505050565b61247c614dad565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f6120cc825f51602061523c5f395f51905f52614f6d565b6124d3614cd5565b601c5b80156125dc575f846124e9600184614f6d565b601c81106124f9576124f9614fba565b602002015190505f8861250d600185614f6d565b601c811061251d5761251d614fba565b602002015190505f61257861253c612535858c6120d2565b60026120d2565b6106248a61254b600189614f6d565b601c811061255b5761255b614fba565b60200201516106016125728861060160018a612104565b87612104565b9050612599816106016108b961259387610601600189612104565b866120eb565b90508584116125c85797508780856125b2600187614f6d565b601c81106125c2576125c2614fba565b60200201525b505050806125d590615140565b90506124d6565b5095945050505050565b5f6120cc82836120d2565b6125f9614dad565b5f612606601c6028614f80565b612611906002614f80565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561269f5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612646565b50805184526020810151602085015250505092915050565b6126bf614dad565b5f51602061521c5f395f51905f5282602001515f51602061521c5f395f51905f526126ea9190614f6d565b6126f4919061512d565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516128939190615155565b5f60405180830381855afa9150503d805f81146128cb576040519150601f19603f3d011682016040523d82523d5f602084013e6128d0565b606091505b50915091505f818060200190518101906128ea919061516b565b90508280156128f65750805b979650505050505050565b5f80808080612911876003614f80565b61291c90600c614f80565b6001600160401b038111156129335761293361518a565b60405190808252806020026020018201604052801561295c578160200160208202803683370190505b509050875f1b815f8151811061297457612974614fba565b602002602001018181525050865f1b8160018151811061299657612996614fba565b602002602001018181525050855f1b816002815181106129b8576129b8614fba565b60209081029190910101525f5b6129d0601089614f6d565b811015612a21578a8a828181106129e9576129e9614fba565b90506020020135828260036129fe9190614f80565b81518110612a0e57612a0e614fba565b60209081029190910101526001016129c5565b505f5b6010811015612a92578b51612a4c908260108110612a4457612a44614fba565b602002015190565b82826010612a5b8c6003614f80565b612a659190614f6d565b612a6f9190614f80565b81518110612a7f57612a7f614fba565b6020908102919091010152600101612a24565b5060208b01515181612aa5896003614f80565b81518110612ab557612ab5614fba565b6020908102919091018101919091528b810151015181612ad6896003614f80565b612ae1906001614f80565b81518110612af157612af1614fba565b6020908102919091018101919091528b01516040015181612b13896003614f80565b612b1e906002614f80565b81518110612b2e57612b2e614fba565b6020908102919091018101919091528b01516060015181612b50896003614f80565b612b5b906003614f80565b81518110612b6b57612b6b614fba565b602090810291909101015260408b01515181612b88896003614f80565b612b93906004614f80565b81518110612ba357612ba3614fba565b60209081029190910181019190915260408c0151015181612bc5896003614f80565b612bd0906005614f80565b81518110612be057612be0614fba565b60209081029190910101526040808c0151015181612bff896003614f80565b612c0a906006614f80565b81518110612c1a57612c1a614fba565b602090810291909101015260408b01516060015181612c3a896003614f80565b612c45906007614f80565b81518110612c5557612c55614fba565b602090810291909101015260608b01515181612c72896003614f80565b612c7d906008614f80565b81518110612c8d57612c8d614fba565b60209081029190910181019190915260608c0151015181612caf896003614f80565b612cba906009614f80565b81518110612cca57612cca614fba565b602090810291909101015260608b01516040015181612cea896003614f80565b612cf590600a614f80565b81518110612d0557612d05614fba565b60209081029190910101526060808c0151015181612d24896003614f80565b612d2f90600b614f80565b81518110612d3f57612d3f614fba565b602002602001018181525050612d5f81604051602001611baf919061519e565b9150612d6a82612e76565b6040805160208101869052929750909550612d859101611baf565b91505f612d9183612e76565b50959c949b509499509097509195505050505050565b5f5f5f612db2614dc5565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e5c91611baf918491016151d3565b9150612e6782612e76565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e91826120b4565b9450612e9c816120b4565b9350505050915091565b5f612eb2846007614926565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612f13612f0d612ee7856003612104565b610601612f02612ef78b5f614926565b6106018c601c614926565b6106018b601b614926565b836120d2565b9050612f94612f89612f70612f57612f3e85610606612f338d6002614926565b6106018e601b614926565b610606612f4c8c6003614926565b6106018d601c614926565b610606612f658b6004614926565b6106018c601d614926565b610606612f7e8a6005614926565b6106018b601e614926565b610606886001614926565b9050612fb381610606612fa8866001612104565b6106018a6026614926565b9050612fbf81846120d2565b9050612fcb81856120d2565b8552505f9050613005612ffb612ff0612fe588601b614926565b61060689601e614926565b610624886023614926565b610606875f614926565b905061301681610601846002612104565b905061302781610601846001612104565b905061303381836120d2565b905061303f81846120d2565b9050808460015b60200201525050505050565b5f5f5f61308861307e61306689601b614926565b6106066130748b6011614926565b8a606001516120d2565b87608001516120eb565b90506130c1816106016130b761309f8b601c614926565b6106066130ad8d6012614926565b8c606001516120d2565b89608001516120eb565b90506130e6816106016130b76130d88b601d614926565b6106066130ad8d6013614926565b905061310b816106016130b76130fd8b601e614926565b6106066130ad8d6014614926565b92505f905061312f61307e61312189601b614926565b6106066130748b600d614926565b9050613154816106016130b76131468b601c614926565b6106066130ad8d600e614926565b9050613179816106016130b761316b8b601d614926565b6106066130ad8d600f614926565b905061319e816106016130b76131908b601e614926565b6106066130ad8d6010614926565b91505f90506131c56131bf6131b489601f614926565b6106068a6019614926565b846120d2565b90506131fa816106246131f46131dc8b6027614926565b6106066131ea8d601a614926565b8c60a001516120d2565b856120d2565b905061320681856120d2565b6040860152505f6132296131f461321e89601a614926565b6106018a6027614926565b606090950194909452505050505050565b5f5f6132986132806132686132536130b78a6015614926565b6106066132618b6016614926565b8a516120d2565b6106066132768a6017614926565b89602001516120d2565b61060661328e896018614926565b88604001516120d2565b91505f6132cf6132b66132ac89601b614926565b88608001516120eb565b6106066132c48a6003614926565b6106018b6023614926565b90505f6132f86132e089601c614926565b6106066132ed8b5f614926565b6106018c6024614926565b90505f6133226133098a601d614926565b6106066133178c6001614926565b6106018d6025614926565b905061336161334961333b85610606868d5f01516120d2565b610606848c602001516120d2565b6106066133578c6004614926565b8b604001516120d2565b93505050505f6133756131bf886020614926565b90505f6133866131bf896020614926565b90505f6133be6133a561339a8b6022614926565b6106068c6006614926565b6106246133b38c6022614926565b6106018d6006614926565b90505f6133e26133dc6133d187896120d2565b6106018d6020614926565b83612104565b90506133ee81886120d2565b90505f6134166134086134028d6006614926565b876120d2565b6106246134028e6021614926565b60808a018390529050808960055b60200201525050505050505050505050565b5f6134425f6001612104565b90505f6134505f6002612104565b90505f61345e5f6003612104565b90505f61347a61346f88601c614926565b61062489601b614926565b90505f61349661348b89601d614926565b6106248a601c614926565b90505f6134b26134a78a601e614926565b6106248b601d614926565b90505f6134ce6134c38b6023614926565b6106248c601e614926565b9050836134df81610601818b6120eb565b90506134ef81610601878a6120eb565b90506134ff8161060187896120eb565b9050613510816106018d6008614926565b905061351c818a6120d2565b60c08b0152508261353181610601818b6120eb565b905061354181610601868a6120eb565b90506135518161060186896120eb565b9050613562816106018d6008614926565b905061356e818a6120d2565b60e08b0152508161358381610601818b6120eb565b905061359381610601858a6120eb565b90506135a38161060185896120eb565b90506135b4816106018d6008614926565b90506135c0818a6120d2565b6101008b015250806135d681610601818b6120eb565b90506135e681610601848a6120eb565b90506135f68161060184896120eb565b9050613607816106018d6008614926565b9050613613818a6120d2565b9050808a6009613424565b6136576040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61366284601c614926565b815261366f84601d614926565b602082015261367f846023614926565b604082015261368f846026614926565b606082015261369f846025614926565b60808201526136af846024614926565b60a08201525f6136c0856002614926565b90505f6136cd865f614926565b90505f6136e18460400151855f0151612104565b90505f6136f6856020015186602001516120d2565b606086015190915086905f9061370c90806120d2565b90505f61372a61372489602001518a606001516120d2565b886120d2565b90505f6137496137428a60a001518b604001516120eb565b8a516120eb565b905061375861340282886120d2565b905061377f61377961377361376d8487612104565b88612104565b846120eb565b836120eb565b90506137a761379c61379183876120d2565b6106018f6009614926565b61060160018a612104565b6101408c015250505050602085015160808601515f916137c6916120eb565b90505f6137e46137da8860600151886120d2565b8860200151612104565b90505f6138086137f484876120d2565b6106066131f48b60a001518c5f0151612104565b905061383061382561381a838c6120d2565b6106018e6009614926565b610601600189612104565b6101608b0152505f9150613851905061384a8360116120eb565b87516120d2565b90505f61385e83846120eb565b905061386a81826120eb565b90505f6138788360096120d2565b90506138a161389b6131bf6138948b60a001518c5f01516120eb565b8b516120eb565b82612104565b60c089018190525f906138bc9061372490613791908d6120d2565b90506138cf8b600a6020020151826120eb565b6101408c0152505086515f92506138f6915061384a906138ef90806120eb565b88516120eb565b90505f613936613911836106018a5f01518b60a00151612104565b60208901516106249061392490806120eb565b6106018b602001518c608001516120eb565b905061395389600b6020020151610606613724613791858d6120d2565b89600b602002015250505050505050505050565b6139fb604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a30613a17613a0c87601b614926565b610601886024614926565b610606613a25886023614926565b61060189601c614926565b8152613a75613a6a613a51613a4688601b614926565b61060189601e614926565b610606613a5f89601c614926565b6106018a601d614926565b610624876025614926565b60408201819052613a8a90600160441b6120d2565b60408201819052613aa090610624876026614926565b604082018190528151613ab391906120eb565b60408201819052613ac990610601876005614926565b60408201528051613ade90600160441b6120d2565b808252613afe90610606613af3886023614926565b610601896024614926565b80825260208201819052613b1a90610624612fe588601d614926565b60208201819052613b3090610601876004614926565b6020820152805160608201819052613b4d9061060687601e614926565b60608201819052613b7190610624613b66886025614926565b610606896026614926565b60608201819052613b8690610601875f614926565b8160600181815250505f613baf613ba5836020015184604001516120eb565b83606001516120eb565b9050613bc081610601886003614926565b9050613bd8613bd0876024614926565b6140006120d2565b60808301819052613bee90610606886023614926565b60808301819052613c01906140006120d2565b60808301819052613c179061060688601d614926565b60808301819052613c2a906140006120d2565b60808301819052613c409061060688601c614926565b60808301819052613c53906140006120d2565b60808301819052613c699061060688601b614926565b60808301819052613c7f9061062488601e614926565b60808301819052613c9590610601886005614926565b6080830152613ca8613bd0876025614926565b60a08301819052613cbe90610606886024614926565b60a08301819052613cd1906140006120d2565b60a08301819052613ce790610606886023614926565b60a08301819052613cfa906140006120d2565b60a08301819052613d109061060688601e614926565b60a08301819052613d23906140006120d2565b60a08301819052613d399061060688601d614926565b60a08301819052613d4f90610624886026614926565b60a08301819052613d6490610601885f614926565b60a0830181905260808301515f91613d7c91906120eb565b9050613d8d81610601896004614926565b9050613da7613d9d88601d614926565b87604001516120d2565b60c08401819052613dc0906106066132768a601c614926565b60c08401819052613de090610606613dd98a601b614926565b89516120d2565b60c08401819052613df690610606896001614926565b60c0840181905260e08401819052613e139061062489601e614926565b60c0840152613e2661346f886023614926565b610140840152613e45613e3a886026614926565b61062489601e614926565b610120840152610140830151613e6a90613e5f90806120d2565b846101400151612104565b610280840152610140830151613eac90613ea190613e9a9061060160015f51602061523c5f395f51905f52614f6d565b60016120eb565b8461012001516120d2565b6101608401819052613ee390613ed590610601613eca8b6002614926565b6106018c6003614926565b6106016134028a600a614926565b6101a0860152610280830151613f0590613ed590610601613eca8b6002614926565b6101c086015260c0830151613f2d90610601613f228a6002614926565b6106018b6003614926565b6101e08401525f613f4c613f4289601e614926565b8560e00151612104565b9050613f5b61389b82836120d2565b6101a0850152613f6f61328e896025614926565b6101008501819052613f9390610606613f898b6024614926565b8a602001516120d2565b6101008501819052613fad906106066132618b6023614926565b610100850152613fcc613fc1896026614926565b856101000151612104565b6101008501525f613fe16134a78a6025614926565b905061403561400f612f0d613e9a88610140015160015f51602061523c5f395f51905f526106019190614f6d565b610601613e9a88610100015160015f51602061523c5f395f51905f526106019190614f6d565b61018086015261010085015161405a9061404f90806120d2565b866101000151612104565b6101c086015261018085015161408d90614079906106018c6007614926565b6106016140878c600a614926565b896120d2565b6101e08801526102808501516140ac90614079906106018c6007614926565b6102008801526101c08501516140cb90614079906106018c6007614926565b6102208801526101a08501516140e6906106018b6007614926565b6102008601526141056140fa8a6024614926565b6106248b601c614926565b610220860152610140850151614144906134a79061413990613e9a9061060160015f51602061523c5f395f51905f52614f6d565b8761022001516120d2565b61024086018190526101e0860151610260870181905261417b91610606906106016141708e6005614926565b6106018f6002614926565b610260860181905260c086015161419e9190610606906106016141708e5f614926565b61026086018190526102008601516141b691906120eb565b61026086018190526141cc9061377390866120eb565b6102a086018190526141e6906106016140878c600a614926565b6102a0860181905287600c6020020152505050505050505050565b6142776040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61429061428585601b614926565b610606866002614926565b81526142ab6142a085601c614926565b610606866003614926565b60208201526142c96142be85601d614926565b610606866004614926565b60408201526142e76142dc85601e614926565b610606866005614926565b60608201528051614319906143129061430b9061430490806120d2565b84516120d2565b83516120d2565b82516120d2565b608082015260208101516143579061434d906143439061433990806120d2565b84602001516120d2565b83602001516120d2565b82602001516120d2565b60a082015260408101516143959061438b906143819061437790806120d2565b84604001516120d2565b83604001516120d2565b82604001516120d2565b60c082015260608101516143d3906143c9906143bf906143b590806120d2565b84606001516120d2565b83606001516120d2565b82606001516120d2565b60e0820152608081015160a08201516143ec91906120eb565b61010082015260c081015160e082015161440691906120eb565b61012082015260a081015161442a9061441f90806120eb565b8261012001516120eb565b61014082015260e081015161444e9061444390806120eb565b8261010001516120eb565b61016082015261012081015161446490806120eb565b6101e082018190526144859061447a90806120eb565b8261016001516120eb565b6101e082015261010081015161449b90806120eb565b6101a082018190526144bc906144b190806120eb565b8261014001516120eb565b6101a082018190526101608201516144d3916120eb565b6101808201526101408101516101e08201516144ef91906120eb565b6101c0820152614503612f0d85600b614926565b610200820181905261024084015161018083015161452e9261060691610601906106248a6023614926565b836012602002015261455e8360136020020151610606836102000151610601856101a001516106248a6024614926565b836013602002015261458e8360146020020151610606836102000151610601856101c001516106248a6025614926565b83601460200201526145be8360156020020151610606836102000151610601856101e001516106248a6026614926565b836015602002015250505050565b61461e6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806146537f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e76120b4565b81526020016146817f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b6120b4565b81526020016146ae7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac156120b4565b81526020016146dc7f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b6120b4565b905290506146f96146ee86601b614926565b610606876002614926565b610120830181905261472d9061472290613ea19061471790806120d2565b8561012001516120d2565b8361012001516120d2565b825261473a85601c614926565b602083015261474a85601d614926565b604083015261475a85601e614926565b60608301528151602083015161478291613ba59161477891906120eb565b84604001516120eb565b60808301526147956131bf86600c614926565b61014083015281516147b6906147ac90835f610ef3565b83608001516120eb565b60a08301526147e284601660200201516106068461014001516106018660a001516106248b6023614926565b6102c085015260208201516147fd906147ac90836001610ef3565b60c083015261482984601760200201516106068461014001516106018660c001516106248b6024614926565b6102e08501526040820151614844906147ac90836002610ef3565b60e083015261487084601860200201516106068461014001516106018660e001516106248b6025614926565b610300850152606082015161488b906147ac90836003610ef3565b6101008301526148b984601960200201516106068461014001516106018661010001516106248b6026614926565b846019613046565b5f6148cd8184816108d3565b905060015b601a81101561491f57614915826106068684601a81106148f4576148f4614fba565b602002015186614905600187614f6d565b60198110610ef357610ef3614fba565b91506001016148d2565b5092915050565b5f8282602781111561493a5761493a615207565b6028811061494a5761494a614fba565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161497c614dad565b8152602001614989614dad565b8152602001614996614dad565b81526020016149a3614dad565b81526020016149b0614dad565b81526020016149bd614dad565b81526020016149ca614dad565b81526020016149d7614dad565b81526020016149e4614dad565b81526020016149f1614dad565b81526020016149fe614dad565b8152602001614a0b614dad565b8152602001614a18614dad565b8152602001614a25614dad565b8152602001614a32614dad565b8152602001614a3f614dad565b8152602001614a4c614dad565b8152602001614a59614dad565b8152602001614a66614dad565b8152602001614a73614dad565b8152602001614a80614dad565b8152602001614a8d614dad565b8152602001614a9a614dad565b8152602001614aa7614dad565b8152602001614ab4614dad565b8152602001614ac1614dad565b8152602001614ace614dad565b905290565b604051806101e00160405280614ae7614de4565b8152602001614af4614c43565b8152602001614b01614c43565b8152602001614b0e614c43565b8152602001614b1b614c43565b8152602001614b28614c43565b8152602001614b35614c43565b8152602001614b42614c43565b8152602001614b4f614c43565b8152602001614b5c614e03565b8152602001614b69614e31565b8152602001614b76614e50565b8152602001614b83614cd5565b8152602001614b90614c43565b8152602001614ace614c43565b604051806101000160405280614bb1614c67565b8152602001614bbe614c97565b8152602001614bcb614cd5565b8152602001614bd8614cd5565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c2d614dad565b815260200190600190039081614c255790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e1b614d6f565b815260200190600190039081614e135790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614e68614c43565b815260200190600190039081614e605790505090565b5f5f5f5f60408587031215614e91575f5ffd5b84356001600160401b03811115614ea6575f5ffd5b8501601f81018713614eb6575f5ffd5b80356001600160401b03811115614ecb575f5ffd5b876020828401011115614edc575f5ffd5b6020918201955093508501356001600160401b03811115614efb575f5ffd5b8501601f81018713614f0b575f5ffd5b80356001600160401b03811115614f20575f5ffd5b8760208260051b8401011115614f34575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176120cc576120cc614f42565b818103818111156120cc576120cc614f42565b808201808211156120cc576120cc614f42565b5f5f85851115614fa1575f5ffd5b83861115614fad575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f60018201614fdf57614fdf614f42565b5060010190565b803560208310156120cc575f19602084900360031b1b1692915050565b5f8183825b6009811015615027578151835260209283019290910190600101615008565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261505957615059615037565b500490565b5f8183825b6029811015615082578151835260209283019290910190600101615063565b5050506105208201905092915050565b5f8183825b606d8110156150b6578151835260209283019290910190600101615097565b505050610da08201905092915050565b5f8183825b601d8110156150ea5781518352602092830192909101906001016150cb565b5050506103a08201905092915050565b5f8183825b600581101561511e5781518352602092830192909101906001016150ff565b50505060a08201905092915050565b5f8261513b5761513b615037565b500690565b5f8161514e5761514e614f42565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561517b575f5ffd5b815180151581146119f6575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156151c85781518452602093840193909101906001016151aa565b509195945050505050565b5f8183825b600d8110156151f75781518352602092830192909101906001016151d8565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
5
5
  /**
6
6
  * HonkVerifier link references.
7
7
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
- */ export const HonkVerifierBytecode = "0x60e0604052348015600e575f5ffd5b506302000000608052601960a05261040760c05260805160a05160c05161525b61005a5f395f61063401525f818161073f01528181610d210152610dbd01525f6105d8015261525b5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614e7d565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614f55565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101a5565b90505f61009787876101ba565b9050601082604001516100aa9190614f6c565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100e0828787865f015187604001516001610513565b90506101308686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105c2565b815160a001525f6101418383610737565b905080610161576040516313f8744360e31b815260040160405180910390fd5b5f61016d848685610838565b90508061018d576040516352ec174560e11b815260040160405180910390fd5b8180156101975750805b9a9950505050505050505050565b6101ad614955565b6101b56110b5565b905090565b6101c2614ad2565b5f805b6010811015610224576101f18583866101df826020614f7f565b926101ec93929190614f92565b61199b565b8351826010811061020457610204614fb9565b60200201818152505060208261021a9190614f7f565b91506001016101c5565b50610248848285610236826080614f7f565b9261024393929190614f92565b6119fc565b6020830152610258608082614f7f565b905061026b848285610236826080614f7f565b604083015261027b608082614f7f565b905061028e848285610236826080614f7f565b606083015261029e608082614f7f565b90506102b1848285610236826080614f7f565b60c08301526102c1608082614f7f565b90506102d4848285610236826080614f7f565b60e08301526102e4608082614f7f565b90506102f7848285610236826080614f7f565b60808084019190915261030a9082614f7f565b905061031d848285610236826080614f7f565b61010083015261032e608082614f7f565b9050610341848285610236826080614f7f565b60a0830152610351608082614f7f565b90505f5b601c8110156103d0575f5b60088110156103c75761037a8684876101df826020614f7f565b84610120015183601c811061039157610391614fb9565b602002015182600881106103a7576103a7614fb9565b6020020181815250506020836103bd9190614f7f565b9250600101610360565b50600101610355565b505f5b6028811015610424576103ed8583866101df826020614f7f565b836101400151826028811061040457610404614fb9565b60200201818152505060208261041a9190614f7f565b91506001016103d3565b505f5b6104336001601c614f6c565b81101561047c5761044b858386610236826080614f7f565b83610160015182601b811061046257610462614fb9565b6020020152610472608083614f7f565b9150600101610427565b505f5b601c8110156104d0576104998583866101df826020614f7f565b83610180015182601c81106104b0576104b0614fb9565b6020020181815250506020826104c69190614f7f565b915060010161047f565b506104e2848285610236826080614f7f565b6101a08301526104f3608082614f7f565b9050610506848285610236826080614f7f565b6101c08301525092915050565b61051b614b9c565b5f61052b88888888888887611acc565b908352905061053a8189611b22565b6020840191909152905061054d81611cbc565b604084019190915290506105618882611d1d565b606084019190915290506105758882611df1565b608084019190915290506105898882611e7c565b60a0840191909152905061059d8882611fea565b60c084019190915290506105b1888261205c565b5060e0830152509695505050505050565b5f6001808261060b86610606896106016105fc8a7f0000000000000000000000000000000000000000000000000000000000000000614f7f565b6120b3565b6120d1565b6120ea565b90505f610629876106248a6106016105fc8b6001614f7f565b612103565b90505f5b61065860107f0000000000000000000000000000000000000000000000000000000000000000614f6c565b8110156106c5575f6106828c838151811061067557610675614fb9565b60200260200101516120b3565b90506106928661060186846120ea565b95506106a28561060185846120ea565b94506106ae848b6120ea565b93506106ba838b612103565b92505060010161062d565b505f5b601081101561072c575f8a82601081106106e4576106e4614fb9565b602002015190506106f98661060186846120ea565b95506107098561060185846120ea565b9450610715848b6120ea565b9350610721838b612103565b9250506001016106c8565b506101978484612132565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561080e575f86610120015182601c811061077d5761077d614fb9565b602002015190505f61078f8286612140565b9050806107af576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107c6576107c6614fb9565b602002015190506107d7838261215d565b95506107fe886040015185601c81106107f2576107f2614fb9565b6020020151868361230c565b945050505080600101905061073d565b505f610828866101400151865f0151876020015185612337565b90508281145b9695505050505050565b5f61087f6040518061012001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61088d8460a001516123a5565b9050610897614bf5565b61089f614c14565b60e08601516108be906108b990855f5b6020020151612103565b61240a565b60a085015260e08601516108dd906108b990855f5b60200201516120ea565b60c080860182905260a0860151908801516108fc9261060691906120d1565b845260a086015161092a906109109061240a565b6106018660a001516106248a60c001518960c001516120d1565b6020850152600182526101a088015161094290612473565b81526001606085018190525f60808601525b602381116109fa5761097561096b865f01516124b2565b86606001516120d1565b83826046811061098757610987614fb9565b602002015260808501516101408a01516109ca9190610606906109ab600186614f6c565b602881106109bb576109bb614fb9565b602002015188606001516120d1565b8560800181815250506109e5856060015188608001516120d1565b60608601526109f381614fcd565b9050610954565b505f610a0860236001614f7f565b90505b60288111610a8957610a2361096b86602001516124b2565b838260468110610a3557610a35614fb9565b602002015260808501516101408a0151610a599190610606906109ab600186614f6c565b856080018181525050610a74856060015188608001516120d1565b6060860152610a8281614fcd565b9050610a0b565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610c0f8860200151612473565b6103808201526040880151610c2390612473565b6103a08201526060880151610c3790612473565b6103c08201526080880151610c4b90612473565b6103e082015260a0880151610c5f90612473565b610400820152610100880151610c7490612473565b61042082015260c0880151610c8890612473565b61044082015260e0880151610c9c90612473565b6104608201526020880151610cb090612473565b6104808201526040880151610cc490612473565b6104a08201526060880151610cd890612473565b6104c08201526080880151610cec90612473565b6104e082015260a0880151610d0090612473565b610500820152606086015160808501516101808a01515f92610d45929091877f00000000000000000000000000000000000000000000000000000000000000006124ca565b805160a0870151919250610d58916120d1565b604086018190526101808a01515160c0890151610d88929161060691610d7e91906120d1565b8860c001516120d1565b604086015260c0870151610d9b906125e5565b60608601525f5b610dae6001601c614f6c565b811015610fb0575f610de160017f0000000000000000000000000000000000000000000000000000000000000000614f6c565b821015905080610f5657610e146108b98a60e0015188856001610e049190614f7f565b601c81106108af576108af614fb9565b60a088015260e0890151610e42906108b99088610e32866001614f7f565b601c81106108d3576108d3614fb9565b60c0880152606087015160a0880151610e5b91906120d1565b60e0880152606087015160c08a0151610e7791610d7e916120d1565b6101008801819052610e9990610e8c906124b2565b6106068960e001516124b2565b8583610ea760286001614f7f565b610eb19190614f7f565b60468110610ec157610ec1614fb9565b60200201526101008701516101808c01515f91610efd91610ee3866001614f7f565b601c8110610ef357610ef3614fb9565b60200201516120d1565b9050610f19816106068a60e0015187876001610ee39190614f7f565b9050610f298860400151826120ea565b6040890152606088015160c08b0151610f4f91610f45916120d1565b8b60c001516120d1565b6060890152505b610f7a8b610160015183601b8110610f7057610f70614fb9565b6020020151612473565b8483610f8860286001614f7f565b610f929190614f7f565b60468110610fa257610fa2614fb9565b602002015250600101610da2565b5060408051808201909152600181526002602082015282610fd3601c6028614f7f565b60468110610fe357610fe3614fb9565b6020020152604085015183610ffa601c6028614f7f565b6046811061100a5761100a614fb9565b60200201526101c08901515f9061102090612473565b90508083611030601c6028614f7f565b61103b906001614f7f565b6046811061104b5761104b614fb9565b602002015260e088015184611062601c6028614f7f565b61106d906001614f7f565b6046811061107d5761107d614fb9565b60200201525f61108d84866125f0565b90505f611099836126b6565b90506110a582826126fc565b9c9b505050505050505050505050565b6110bd614955565b50604080516103c08101825263020000008152601960208083019190915261040782840152825180840184527f157e956cae9cd9a046e9cd05cf64defdf4c055710b0669f4c40ad95c4323658d81527f195deb03b8cdfc3064eb2644b77bbba29459f340c3f84615891d8ebb0e15f545818301526060830152825180840184527f29c2314c3fd494edd09592d2e8eea8c12d350ca57593080b24c04fb48a3c5ea581527f1327216dec3efa861c5e8c08c3c92c1dead8b6345b6b1357b7bafae691dfa352818301526080830152825180840184527f1de46c6065134b29b7523ab8740579468cdfa0023614dc39b420bdcda739e6c681527f168ee0e6d8764686d9ed50eeab51145297af7ac0e328c679272a5886ea9b489e8183015260a0830152825180840184527f27481a063d9a31bd8b0c5e0b8d888c3237e5cf1cd5009ec3264592d581b25ec681527f0be328c8db5ddc06417e23343ea30e27c0e0ba43e2bfecb4b13823ceb80f877d8183015260c0830152825180840184527f15696356dcb4686e525bb8aea69eaef95e3eed038fb869d81fb86d7b9edb47a881527f075a3dac9fddd0fbedec2500548bdf0ef19ecee6844a14cc46a8ee953bb78f968183015260e0830152825180840184527f2018e7cda82aeb96f57339649335d8f6221c48a7eb3d1e9a89de73519ebe401681527f1a2b2bf43bae821907d53e4c638300c51b5b80a6bb637f74fcb3f92a5a2e68be81830152610100830152825180840184527f087955563d61e88ef26501161a9b24e8ab0cb742020598057720f42d74d9677a81527f1fc679cdcaa17e5781bc37c40c64103a14730808e1281a0a42f560d62acaa14481830152610120830152825180840184527f2db7e8b6f37f143b6114619334b61e62cc6e4f229b16dbbdd121fe3a0d289eab81527f021893236a4f8c736135430ed2b94d400ebf3fd8254ee651943a6b114f4dc23c81830152610140830152825180840184527f10b67fed19cef4569d86bbf58a81cba74883338a75dfffbe6e2107258465aa7c81527f265e80506f5a2d4517e60f55a0c950765d0552ddc7e8580d11ff69eaa42d0f1581830152610160830152825180840184527f0bf3ac4f0fe05e166b5de5c76cbda46ecb2e168b54e1f8fccb06dfbc11637c9481527f0e4aaf519bb39cbc0c565f2753882cdf01008d0f32d689980ac32a3eae154f9b81830152610180830152825180840184527f0ed3c8f288e6104b0af9fd9b9d4ddbf649d8ad295ef01b5de0501aba48747c1681527f12f4e476371aa3a345216ea17ccec2e5b047169daa63e63df9890baca3370b21818301526101a0830152825180840184527f0353b099b14d6d5a88f7feb354486b0363454017556ec95e3f8e5b95bd0429de81527f10eeee98d849f65203188c32baab4d228796050c33f4f41a48f550d0a23bcb53818301526101c0830152825180840184527f012865857151fa30cb8f81633ecf1bd08126e77781f9a3c817f195a9c352070a81527f0d2c29f7e167ab6ba01c2193483adb6747051201ca60cf26fbb722856845a947818301526101e0830152825180840184527f2f076d257670e05279621ef73d3697fd692d971ab181bd3a55a41e310bc8b95781527f109a5f48bc1678be0880cfbbccb5927ec9710a3663ab4f2322807ac1297ee42181830152610200830152825180840184527f11a96af945cd2271af5f9f51ad52e2e09c9359f2d8620241ebfa55815d76626481527f1f7e3f79f659432a5aa4f2d03f2baac0b9c21cef23482334e2187596c5bd267c81830152610220830152825180840184527f016546674547d019acf1be5aa3d1c836f0ec7b553a000ec257f59cf403bf452781527f29d41a74e8a271319662002bc7a3a3df986f2487193753ad03d504f557c5bb8381830152610240830152825180840184527f043b5d5f9c53cf305d5f03d1bb267eca3bdfc97d1325516edfe135153862479e81527f283cfd0ab6e6b9beee080d02d6d4c88217c0c339e32a927eac8da1ecd20fe5aa81830152610260830152825180840184527f0cdf2a9567d4141977f02b807e5eb0ebce13ccc3b9bebd3074782042101aa45e81527f2b198ba919794c48306e3ff98022b90ee28e290fab654a0291bb00ee677f10f881830152610280830152825180840184527f0f4f24e25a0d7b75e85100d2ccc65c9fff73b7f60b3bc9e3af0bf0058dd425ab81527f2b5f895b00a900f72aa652555cfd52ede6ae2bc22fca09b180a40c837436558a818301526102a0830152825180840184527f0bb3e3548b5428676d837dc0eb95962dcf2c0d8b68dffd3582c84f846ab6ae0481527e194b4345bd6df7d1fa0c6a1b21431990714e385cd7e2c92c01ab5d61be7497818301526102c0830152825180840184527e9d1990f1324ade4d8fabe3dc676cb3cb0a1ac20f87fe8079fff8645fb02de881527f2c14902f27d5b74a607f327a238ff22eeb2fa1568acabf5773c5ed85fb74d8ca818301526102e0830152825180840184527f1af8b94ffa6a7c80c4b5b69acb462ca90ebc779545e40d396da41afa48f7b0c081527f0f056612f4637e746c664df1dc4bc174b093b5d781cba3c5394f935cf49a860781830152610300830152825180840184527f1f33f1cf7c1fc45d18550bc590a8f5bfeea8dd024fb21886e1d7ae0faeeff18c81527f2a2c999df96a270651d3052417878896417f1501f0fc6ec9deca05be85de85f481830152610320830152825180840184527f2b77e4a23fbcbd768001577bf51528b90893610e126a531162fdb04cc01eb85881527f2776b668596aa59e0b8a617ef7116e54105c4016048983b017c663260e98f37b81830152610340830152825180840184527f28f515788786233704e340a1d308ce642ae2b0e6b4d469b06d4d56a2e5fab18d81527f1c4fb06062382bd15ca37c6e55096e8e2a5298f20621892a0daf855559c4a34d81830152610360830152825180840184526001815260028183015261038083015282518084019093527f086fb78033a1b52f2a6f1f2f635025c746492103b87e3c1e90124f0045c4579583527f19b4ba46f56df1d5078e5b3f67ff802ce2fce0cad3fdc95ed7c20ef0bcc84c0b908301526103a081019190915290565b5f602082146119e85760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b60448201526064015b60405180910390fd5b6119f56105fc8385614fe5565b9392505050565b611a04614c42565b60808214611a4a5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064016119df565b604080516080810190915280611a6360205f8688614f92565b611a6c91614fe5565b8152602090810190611a82906040908688614f92565b611a8b91614fe5565b8152602001611a9e606060408688614f92565b611aa791614fe5565b8152602001611aba608060608688614f92565b611ac391614fe5565b90529392505050565b611ad4614c66565b5f611ae3898989898989612900565b604086019190915260208501919091529083529250611b02838a612da6565b608085019190915260608401919091529199919850909650505050505050565b611b2a614c96565b5f611b33614cb5565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bc991611bae91849101615002565b604051602081830303815290604052805190602001206120b3565b9150611bd482612e75565b6020850152835260015b611bea6002601961504a565b811015611c6a57611c0783604051602001611bae91815260200190565b9250611c1283612e75565b85611c1e846002614f55565b60198110611c2e57611c2e614fb9565b6020020186611c3e856002614f55565b611c49906001614f7f565b60198110611c5957611c59614fb9565b602002019190915252600101611bde565b50611c8182604051602001611bae91815260200190565b91505f611c8d83612e75565b85611c9a60016019614f6c565b60198110611caa57611caa614fb9565b60200201919091525050509250929050565b611cc4614cd4565b5f805b601c811015611d1657611ce684604051602001611bae91815260200190565b93505f611cf285612e75565b8584601c8110611d0457611d04614fb9565b60200201919091525050600101611cc7565b5090929050565b611d25614cd4565b5f805b601c811015611de857611d39614cb5565b8481525f5b6008811015611da25786610120015183601c8110611d5e57611d5e614fb9565b60200201518160088110611d7457611d74614fb9565b602002015182611d85836001614f7f565b60098110611d9557611d95614fb9565b6020020152600101611d3e565b50611db781604051602001611bae9190615002565b94505f611dc386612e75565b8685601c8110611dd557611dd5614fb9565b6020020191909152505050600101611d28565b50909391925050565b5f5f611dfb614cf3565b8381525f5b6028811015611e4e578561014001518160288110611e2057611e20614fb9565b602002015182611e31836001614f7f565b60298110611e4157611e41614fb9565b6020020152600101611e00565b50611e6381604051602001611bae919061505d565b91505f611e6f83612e75565b5096929550919350505050565b5f5f611e86614d12565b8381525f5b611e976001601c614f6c565b811015611fd55785610160015181601b8110611eb557611eb5614fb9565b60200201515182611ec7836004614f55565b611ed2906001614f7f565b606d8110611ee257611ee2614fb9565b602002015261016086015181601b8110611efe57611efe614fb9565b60200201516020015182826004611f159190614f55565b611f20906002614f7f565b606d8110611f3057611f30614fb9565b602002015261016086015181601b8110611f4c57611f4c614fb9565b60200201516040015182611f61836004614f55565b611f6c906003614f7f565b606d8110611f7c57611f7c614fb9565b602002015261016086015181601b8110611f9857611f98614fb9565b60200201516060015182611fad836004614f55565b611fb8906004614f7f565b606d8110611fc857611fc8614fb9565b6020020152600101611e8b565b50611e6381604051602001611bae9190615091565b5f5f611ff4614d31565b8381525f5b601c8110156120475785610180015181601c811061201957612019614fb9565b60200201518261202a836001614f7f565b601d811061203a5761203a614fb9565b6020020152600101611ff9565b50611e6381604051602001611bae91906150c5565b5f5f612066614d50565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e6391611bae918491016150f9565b5f6120cb5f51602061523b5f395f51905f528361512c565b92915050565b5f5f51602061523b5f395f51905f528284099392505050565b5f5f51602061523b5f395f51905f528284089392505050565b5f5f51602061523b5f395f51905f52612129835f51602061523b5f395f51905f52614f6c565b84089392505050565b5f6119f5836106018461240a565b81515f908190612152908560016108d3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156122445761223a826106018784612103565b9150600101612223565b5061224d614d6e565b5f5b60088110156122ae575f84826008811061226b5761226b614fb9565b60200201519050612280816106018985612103565b905061228b8161240a565b9050808383600881106122a0576122a0614fb9565b60200201525060010161224f565b505f5b6008811015612301575f8782600881106122cd576122cd614fb9565b602002015190506122ea81848460088110610ef357610ef3614fb9565b90506122f686826120ea565b9550506001016122b1565b5061082e84836120d1565b5f5f612322600161060685610601896001612103565b905061232e84826120d1565b95945050505050565b5f612340614d8d565b61234b868285612ea5565b61235786868386613051565b61236386868386613239565b61236e868285613435565b61237986828561361d565b61238586868386613966565b612390868285614200565b61239b8682856145cb565b61082e81856148c0565b6123ad614cd4565b81815260015b601c811015612404576123e5826123cb600184614f6c565b601c81106123db576123db614fb9565b60200201516125e5565b8282601c81106123f7576123f7614fb9565b60200201526001016123b3565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061523b5f395f51905f520360808201525f51602061523b5f395f51905f5260a082015260205f60c08360055afa905080612468575f5ffd5b50505f519392505050565b61247b614dac565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f6120cb825f51602061523b5f395f51905f52614f6c565b6124d2614cd4565b601c5b80156125db575f846124e8600184614f6c565b601c81106124f8576124f8614fb9565b602002015190505f8861250c600185614f6c565b601c811061251c5761251c614fb9565b602002015190505f61257761253b612534858c6120d1565b60026120d1565b6106248a61254a600189614f6c565b601c811061255a5761255a614fb9565b60200201516106016125718861060160018a612103565b87612103565b9050612598816106016108b961259287610601600189612103565b866120ea565b90508584116125c75797508780856125b1600187614f6c565b601c81106125c1576125c1614fb9565b60200201525b505050806125d49061513f565b90506124d5565b5095945050505050565b5f6120cb82836120d1565b6125f8614dac565b5f612605601c6028614f7f565b612610906002614f7f565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561269e5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612645565b50805184526020810151602085015250505092915050565b6126be614dac565b5f51602061521b5f395f51905f5282602001515f51602061521b5f395f51905f526126e99190614f6c565b6126f3919061512c565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516128929190615154565b5f60405180830381855afa9150503d805f81146128ca576040519150601f19603f3d011682016040523d82523d5f602084013e6128cf565b606091505b50915091505f818060200190518101906128e9919061516a565b90508280156128f55750805b979650505050505050565b5f80808080612910876003614f7f565b61291b90600c614f7f565b6001600160401b0381111561293257612932615189565b60405190808252806020026020018201604052801561295b578160200160208202803683370190505b509050875f1b815f8151811061297357612973614fb9565b602002602001018181525050865f1b8160018151811061299557612995614fb9565b602002602001018181525050855f1b816002815181106129b7576129b7614fb9565b60209081029190910101525f5b6129cf601089614f6c565b811015612a20578a8a828181106129e8576129e8614fb9565b90506020020135828260036129fd9190614f7f565b81518110612a0d57612a0d614fb9565b60209081029190910101526001016129c4565b505f5b6010811015612a91578b51612a4b908260108110612a4357612a43614fb9565b602002015190565b82826010612a5a8c6003614f7f565b612a649190614f6c565b612a6e9190614f7f565b81518110612a7e57612a7e614fb9565b6020908102919091010152600101612a23565b5060208b01515181612aa4896003614f7f565b81518110612ab457612ab4614fb9565b6020908102919091018101919091528b810151015181612ad5896003614f7f565b612ae0906001614f7f565b81518110612af057612af0614fb9565b6020908102919091018101919091528b01516040015181612b12896003614f7f565b612b1d906002614f7f565b81518110612b2d57612b2d614fb9565b6020908102919091018101919091528b01516060015181612b4f896003614f7f565b612b5a906003614f7f565b81518110612b6a57612b6a614fb9565b602090810291909101015260408b01515181612b87896003614f7f565b612b92906004614f7f565b81518110612ba257612ba2614fb9565b60209081029190910181019190915260408c0151015181612bc4896003614f7f565b612bcf906005614f7f565b81518110612bdf57612bdf614fb9565b60209081029190910101526040808c0151015181612bfe896003614f7f565b612c09906006614f7f565b81518110612c1957612c19614fb9565b602090810291909101015260408b01516060015181612c39896003614f7f565b612c44906007614f7f565b81518110612c5457612c54614fb9565b602090810291909101015260608b01515181612c71896003614f7f565b612c7c906008614f7f565b81518110612c8c57612c8c614fb9565b60209081029190910181019190915260608c0151015181612cae896003614f7f565b612cb9906009614f7f565b81518110612cc957612cc9614fb9565b602090810291909101015260608b01516040015181612ce9896003614f7f565b612cf490600a614f7f565b81518110612d0457612d04614fb9565b60209081029190910101526060808c0151015181612d23896003614f7f565b612d2e90600b614f7f565b81518110612d3e57612d3e614fb9565b602002602001018181525050612d5e81604051602001611bae919061519d565b9150612d6982612e75565b6040805160208101869052929750909550612d849101611bae565b91505f612d9083612e75565b50959c949b509499509097509195505050505050565b5f5f5f612db1614dc4565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e5b91611bae918491016151d2565b9150612e6682612e75565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e90826120b3565b9450612e9b816120b3565b9350505050915091565b5f612eb1846007614925565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612f12612f0c612ee6856003612103565b610601612f01612ef68b5f614925565b6106018c601c614925565b6106018b601b614925565b836120d1565b9050612f93612f88612f6f612f56612f3d85610606612f328d6002614925565b6106018e601b614925565b610606612f4b8c6003614925565b6106018d601c614925565b610606612f648b6004614925565b6106018c601d614925565b610606612f7d8a6005614925565b6106018b601e614925565b610606886001614925565b9050612fb281610606612fa7866001612103565b6106018a6026614925565b9050612fbe81846120d1565b9050612fca81856120d1565b8552505f9050613004612ffa612fef612fe488601b614925565b61060689601e614925565b610624886023614925565b610606875f614925565b905061301581610601846002612103565b905061302681610601846001612103565b905061303281836120d1565b905061303e81846120d1565b9050808460015b60200201525050505050565b5f5f5f61308761307d61306589601b614925565b6106066130738b6011614925565b8a606001516120d1565b87608001516120ea565b90506130c0816106016130b661309e8b601c614925565b6106066130ac8d6012614925565b8c606001516120d1565b89608001516120ea565b90506130e5816106016130b66130d78b601d614925565b6106066130ac8d6013614925565b905061310a816106016130b66130fc8b601e614925565b6106066130ac8d6014614925565b92505f905061312e61307d61312089601b614925565b6106066130738b600d614925565b9050613153816106016130b66131458b601c614925565b6106066130ac8d600e614925565b9050613178816106016130b661316a8b601d614925565b6106066130ac8d600f614925565b905061319d816106016130b661318f8b601e614925565b6106066130ac8d6010614925565b91505f90506131c46131be6131b389601f614925565b6106068a6019614925565b846120d1565b90506131f9816106246131f36131db8b6027614925565b6106066131e98d601a614925565b8c60a001516120d1565b856120d1565b905061320581856120d1565b6040860152505f6132286131f361321d89601a614925565b6106018a6027614925565b606090950194909452505050505050565b5f5f61329761327f6132676132526130b68a6015614925565b6106066132608b6016614925565b8a516120d1565b6106066132758a6017614925565b89602001516120d1565b61060661328d896018614925565b88604001516120d1565b91505f6132ce6132b56132ab89601b614925565b88608001516120ea565b6106066132c38a6003614925565b6106018b6023614925565b90505f6132f76132df89601c614925565b6106066132ec8b5f614925565b6106018c6024614925565b90505f6133216133088a601d614925565b6106066133168c6001614925565b6106018d6025614925565b905061336061334861333a85610606868d5f01516120d1565b610606848c602001516120d1565b6106066133568c6004614925565b8b604001516120d1565b93505050505f6133746131be886020614925565b90505f6133856131be896020614925565b90505f6133bd6133a46133998b6022614925565b6106068c6006614925565b6106246133b28c6022614925565b6106018d6006614925565b90505f6133e16133db6133d087896120d1565b6106018d6020614925565b83612103565b90506133ed81886120d1565b90505f6134156134076134018d6006614925565b876120d1565b6106246134018e6021614925565b60808a018390529050808960055b60200201525050505050505050505050565b5f6134415f6001612103565b90505f61344f5f6002612103565b90505f61345d5f6003612103565b90505f61347961346e88601c614925565b61062489601b614925565b90505f61349561348a89601d614925565b6106248a601c614925565b90505f6134b16134a68a601e614925565b6106248b601d614925565b90505f6134cd6134c28b6023614925565b6106248c601e614925565b9050836134de81610601818b6120ea565b90506134ee81610601878a6120ea565b90506134fe8161060187896120ea565b905061350f816106018d6008614925565b905061351b818a6120d1565b60c08b0152508261353081610601818b6120ea565b905061354081610601868a6120ea565b90506135508161060186896120ea565b9050613561816106018d6008614925565b905061356d818a6120d1565b60e08b0152508161358281610601818b6120ea565b905061359281610601858a6120ea565b90506135a28161060185896120ea565b90506135b3816106018d6008614925565b90506135bf818a6120d1565b6101008b015250806135d581610601818b6120ea565b90506135e581610601848a6120ea565b90506135f58161060184896120ea565b9050613606816106018d6008614925565b9050613612818a6120d1565b9050808a6009613423565b6136566040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61366184601c614925565b815261366e84601d614925565b602082015261367e846023614925565b604082015261368e846026614925565b606082015261369e846025614925565b60808201526136ae846024614925565b60a08201525f6136bf856002614925565b90505f6136cc865f614925565b90505f6136e08460400151855f0151612103565b90505f6136f5856020015186602001516120d1565b606086015190915086905f9061370b90806120d1565b90505f61372961372389602001518a606001516120d1565b886120d1565b90505f6137486137418a60a001518b604001516120ea565b8a516120ea565b905061375761340182886120d1565b905061377e61377861377261376c8487612103565b88612103565b846120ea565b836120ea565b90506137a661379b61379083876120d1565b6106018f6009614925565b61060160018a612103565b6101408c015250505050602085015160808601515f916137c5916120ea565b90505f6137e36137d98860600151886120d1565b8860200151612103565b90505f6138076137f384876120d1565b6106066131f38b60a001518c5f0151612103565b905061382f613824613819838c6120d1565b6106018e6009614925565b610601600189612103565b6101608b0152505f915061385090506138498360116120ea565b87516120d1565b90505f61385d83846120ea565b905061386981826120ea565b90505f6138778360096120d1565b90506138a061389a6131be6138938b60a001518c5f01516120ea565b8b516120ea565b82612103565b60c089018190525f906138bb9061372390613790908d6120d1565b90506138ce8b600a6020020151826120ea565b6101408c0152505086515f92506138f59150613849906138ee90806120ea565b88516120ea565b90505f613935613910836106018a5f01518b60a00151612103565b60208901516106249061392390806120ea565b6106018b602001518c608001516120ea565b905061395289600b6020020151610606613723613790858d6120d1565b89600b602002015250505050505050505050565b6139fa604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a2f613a16613a0b87601b614925565b610601886024614925565b610606613a24886023614925565b61060189601c614925565b8152613a74613a69613a50613a4588601b614925565b61060189601e614925565b610606613a5e89601c614925565b6106018a601d614925565b610624876025614925565b60408201819052613a8990600160441b6120d1565b60408201819052613a9f90610624876026614925565b604082018190528151613ab291906120ea565b60408201819052613ac890610601876005614925565b60408201528051613add90600160441b6120d1565b808252613afd90610606613af2886023614925565b610601896024614925565b80825260208201819052613b1990610624612fe488601d614925565b60208201819052613b2f90610601876004614925565b6020820152805160608201819052613b4c9061060687601e614925565b60608201819052613b7090610624613b65886025614925565b610606896026614925565b60608201819052613b8590610601875f614925565b8160600181815250505f613bae613ba4836020015184604001516120ea565b83606001516120ea565b9050613bbf81610601886003614925565b9050613bd7613bcf876024614925565b6140006120d1565b60808301819052613bed90610606886023614925565b60808301819052613c00906140006120d1565b60808301819052613c169061060688601d614925565b60808301819052613c29906140006120d1565b60808301819052613c3f9061060688601c614925565b60808301819052613c52906140006120d1565b60808301819052613c689061060688601b614925565b60808301819052613c7e9061062488601e614925565b60808301819052613c9490610601886005614925565b6080830152613ca7613bcf876025614925565b60a08301819052613cbd90610606886024614925565b60a08301819052613cd0906140006120d1565b60a08301819052613ce690610606886023614925565b60a08301819052613cf9906140006120d1565b60a08301819052613d0f9061060688601e614925565b60a08301819052613d22906140006120d1565b60a08301819052613d389061060688601d614925565b60a08301819052613d4e90610624886026614925565b60a08301819052613d6390610601885f614925565b60a0830181905260808301515f91613d7b91906120ea565b9050613d8c81610601896004614925565b9050613da6613d9c88601d614925565b87604001516120d1565b60c08401819052613dbf906106066132758a601c614925565b60c08401819052613ddf90610606613dd88a601b614925565b89516120d1565b60c08401819052613df590610606896001614925565b60c0840181905260e08401819052613e129061062489601e614925565b60c0840152613e2561346e886023614925565b610140840152613e44613e39886026614925565b61062489601e614925565b610120840152610140830151613e6990613e5e90806120d1565b846101400151612103565b610280840152610140830151613eab90613ea090613e999061060160015f51602061523b5f395f51905f52614f6c565b60016120ea565b8461012001516120d1565b6101608401819052613ee290613ed490610601613ec98b6002614925565b6106018c6003614925565b6106016134018a600a614925565b6101a0860152610280830151613f0490613ed490610601613ec98b6002614925565b6101c086015260c0830151613f2c90610601613f218a6002614925565b6106018b6003614925565b6101e08401525f613f4b613f4189601e614925565b8560e00151612103565b9050613f5a61389a82836120d1565b6101a0850152613f6e61328d896025614925565b6101008501819052613f9290610606613f888b6024614925565b8a602001516120d1565b6101008501819052613fac906106066132608b6023614925565b610100850152613fcb613fc0896026614925565b856101000151612103565b6101008501525f613fe06134a68a6025614925565b905061403461400e612f0c613e9988610140015160015f51602061523b5f395f51905f526106019190614f6c565b610601613e9988610100015160015f51602061523b5f395f51905f526106019190614f6c565b6101808601526101008501516140599061404e90806120d1565b866101000151612103565b6101c086015261018085015161408c90614078906106018c6007614925565b6106016140868c600a614925565b896120d1565b6101e08801526102808501516140ab90614078906106018c6007614925565b6102008801526101c08501516140ca90614078906106018c6007614925565b6102208801526101a08501516140e5906106018b6007614925565b6102008601526141046140f98a6024614925565b6106248b601c614925565b610220860152610140850151614143906134a69061413890613e999061060160015f51602061523b5f395f51905f52614f6c565b8761022001516120d1565b61024086018190526101e0860151610260870181905261417a916106069061060161416f8e6005614925565b6106018f6002614925565b610260860181905260c086015161419d91906106069061060161416f8e5f614925565b61026086018190526102008601516141b591906120ea565b61026086018190526141cb9061377290866120ea565b6102a086018190526141e5906106016140868c600a614925565b6102a0860181905287600c6020020152505050505050505050565b6142766040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61428f61428485601b614925565b610606866002614925565b81526142aa61429f85601c614925565b610606866003614925565b60208201526142c86142bd85601d614925565b610606866004614925565b60408201526142e66142db85601e614925565b610606866005614925565b60608201528051614318906143119061430a9061430390806120d1565b84516120d1565b83516120d1565b82516120d1565b608082015260208101516143569061434c906143429061433890806120d1565b84602001516120d1565b83602001516120d1565b82602001516120d1565b60a082015260408101516143949061438a906143809061437690806120d1565b84604001516120d1565b83604001516120d1565b82604001516120d1565b60c082015260608101516143d2906143c8906143be906143b490806120d1565b84606001516120d1565b83606001516120d1565b82606001516120d1565b60e0820152608081015160a08201516143eb91906120ea565b61010082015260c081015160e082015161440591906120ea565b61012082015260a08101516144299061441e90806120ea565b8261012001516120ea565b61014082015260e081015161444d9061444290806120ea565b8261010001516120ea565b61016082015261012081015161446390806120ea565b6101e082018190526144849061447990806120ea565b8261016001516120ea565b6101e082015261010081015161449a90806120ea565b6101a082018190526144bb906144b090806120ea565b8261014001516120ea565b6101a082018190526101608201516144d2916120ea565b6101808201526101408101516101e08201516144ee91906120ea565b6101c0820152614502612f0c85600b614925565b610200820181905261024084015161018083015161452d9261060691610601906106248a6023614925565b836012602002015261455d8360136020020151610606836102000151610601856101a001516106248a6024614925565b836013602002015261458d8360146020020151610606836102000151610601856101c001516106248a6025614925565b83601460200201526145bd8360156020020151610606836102000151610601856101e001516106248a6026614925565b836015602002015250505050565b61461d6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806146527f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e76120b3565b81526020016146807f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b6120b3565b81526020016146ad7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac156120b3565b81526020016146db7f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b6120b3565b905290506146f86146ed86601b614925565b610606876002614925565b610120830181905261472c9061472190613ea09061471690806120d1565b8561012001516120d1565b8361012001516120d1565b825261473985601c614925565b602083015261474985601d614925565b604083015261475985601e614925565b60608301528151602083015161478191613ba49161477791906120ea565b84604001516120ea565b60808301526147946131be86600c614925565b61014083015281516147b5906147ab90835f610ef3565b83608001516120ea565b60a08301526147e184601660200201516106068461014001516106018660a001516106248b6023614925565b6102c085015260208201516147fc906147ab90836001610ef3565b60c083015261482884601760200201516106068461014001516106018660c001516106248b6024614925565b6102e08501526040820151614843906147ab90836002610ef3565b60e083015261486f84601860200201516106068461014001516106018660e001516106248b6025614925565b610300850152606082015161488a906147ab90836003610ef3565b6101008301526148b884601960200201516106068461014001516106018661010001516106248b6026614925565b846019613045565b5f6148cc8184816108d3565b905060015b601a81101561491e57614914826106068684601a81106148f3576148f3614fb9565b602002015186614904600187614f6c565b60198110610ef357610ef3614fb9565b91506001016148d1565b5092915050565b5f8282602781111561493957614939615206565b6028811061494957614949614fb9565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161497b614dac565b8152602001614988614dac565b8152602001614995614dac565b81526020016149a2614dac565b81526020016149af614dac565b81526020016149bc614dac565b81526020016149c9614dac565b81526020016149d6614dac565b81526020016149e3614dac565b81526020016149f0614dac565b81526020016149fd614dac565b8152602001614a0a614dac565b8152602001614a17614dac565b8152602001614a24614dac565b8152602001614a31614dac565b8152602001614a3e614dac565b8152602001614a4b614dac565b8152602001614a58614dac565b8152602001614a65614dac565b8152602001614a72614dac565b8152602001614a7f614dac565b8152602001614a8c614dac565b8152602001614a99614dac565b8152602001614aa6614dac565b8152602001614ab3614dac565b8152602001614ac0614dac565b8152602001614acd614dac565b905290565b604051806101e00160405280614ae6614de3565b8152602001614af3614c42565b8152602001614b00614c42565b8152602001614b0d614c42565b8152602001614b1a614c42565b8152602001614b27614c42565b8152602001614b34614c42565b8152602001614b41614c42565b8152602001614b4e614c42565b8152602001614b5b614e02565b8152602001614b68614e30565b8152602001614b75614e4f565b8152602001614b82614cd4565b8152602001614b8f614c42565b8152602001614acd614c42565b604051806101000160405280614bb0614c66565b8152602001614bbd614c96565b8152602001614bca614cd4565b8152602001614bd7614cd4565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c2c614dac565b815260200190600190039081614c245790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e1a614d6e565b815260200190600190039081614e125790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614e67614c42565b815260200190600190039081614e5f5790505090565b5f5f5f5f60408587031215614e90575f5ffd5b84356001600160401b03811115614ea5575f5ffd5b8501601f81018713614eb5575f5ffd5b80356001600160401b03811115614eca575f5ffd5b876020828401011115614edb575f5ffd5b6020918201955093508501356001600160401b03811115614efa575f5ffd5b8501601f81018713614f0a575f5ffd5b80356001600160401b03811115614f1f575f5ffd5b8760208260051b8401011115614f33575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176120cb576120cb614f41565b818103818111156120cb576120cb614f41565b808201808211156120cb576120cb614f41565b5f5f85851115614fa0575f5ffd5b83861115614fac575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f60018201614fde57614fde614f41565b5060010190565b803560208310156120cb575f19602084900360031b1b1692915050565b5f8183825b6009811015615026578151835260209283019290910190600101615007565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261505857615058615036565b500490565b5f8183825b6029811015615081578151835260209283019290910190600101615062565b5050506105208201905092915050565b5f8183825b606d8110156150b5578151835260209283019290910190600101615096565b505050610da08201905092915050565b5f8183825b601d8110156150e95781518352602092830192909101906001016150ca565b5050506103a08201905092915050565b5f8183825b600581101561511d5781518352602092830192909101906001016150fe565b50505060a08201905092915050565b5f8261513a5761513a615036565b500690565b5f8161514d5761514d614f41565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561517a575f5ffd5b815180151581146119f5575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156151c75781518452602093840193909101906001016151a9565b509195945050505050565b5f8183825b600d8110156151f65781518352602092830192909101906001016151d7565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
3
+ */ export const HonkVerifierBytecode = "0x60e0604052348015600e575f5ffd5b506302000000608052601960a05260ae60c05260805160a05160c05161525c6100595f395f61063401525f818161073f01528181610d210152610dbd01525f6105d8015261525c5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614e7e565b610054565b604051901515815260200160405180910390f35b5f6100626101c86020614f56565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a6101a5565b90505f61009787876101ba565b9050601082604001516100aa9190614f6d565b84146100c95760405163fa06659360e01b815260040160405180910390fd5b5f6100e0828787865f015187604001516001610513565b90506101308686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855185516060810151608090910151919350915060016105c2565b815160a001525f6101418383610737565b905080610161576040516313f8744360e31b815260040160405180910390fd5b5f61016d848685610838565b90508061018d576040516352ec174560e11b815260040160405180910390fd5b8180156101975750805b9a9950505050505050505050565b6101ad614956565b6101b56110b5565b905090565b6101c2614ad3565b5f805b6010811015610224576101f18583866101df826020614f80565b926101ec93929190614f93565b61199c565b8351826010811061020457610204614fba565b60200201818152505060208261021a9190614f80565b91506001016101c5565b50610248848285610236826080614f80565b9261024393929190614f93565b6119fd565b6020830152610258608082614f80565b905061026b848285610236826080614f80565b604083015261027b608082614f80565b905061028e848285610236826080614f80565b606083015261029e608082614f80565b90506102b1848285610236826080614f80565b60c08301526102c1608082614f80565b90506102d4848285610236826080614f80565b60e08301526102e4608082614f80565b90506102f7848285610236826080614f80565b60808084019190915261030a9082614f80565b905061031d848285610236826080614f80565b61010083015261032e608082614f80565b9050610341848285610236826080614f80565b60a0830152610351608082614f80565b90505f5b601c8110156103d0575f5b60088110156103c75761037a8684876101df826020614f80565b84610120015183601c811061039157610391614fba565b602002015182600881106103a7576103a7614fba565b6020020181815250506020836103bd9190614f80565b9250600101610360565b50600101610355565b505f5b6028811015610424576103ed8583866101df826020614f80565b836101400151826028811061040457610404614fba565b60200201818152505060208261041a9190614f80565b91506001016103d3565b505f5b6104336001601c614f6d565b81101561047c5761044b858386610236826080614f80565b83610160015182601b811061046257610462614fba565b6020020152610472608083614f80565b9150600101610427565b505f5b601c8110156104d0576104998583866101df826020614f80565b83610180015182601c81106104b0576104b0614fba565b6020020181815250506020826104c69190614f80565b915060010161047f565b506104e2848285610236826080614f80565b6101a08301526104f3608082614f80565b9050610506848285610236826080614f80565b6101c08301525092915050565b61051b614b9d565b5f61052b88888888888887611acd565b908352905061053a8189611b23565b6020840191909152905061054d81611cbd565b604084019190915290506105618882611d1e565b606084019190915290506105758882611df2565b608084019190915290506105898882611e7d565b60a0840191909152905061059d8882611feb565b60c084019190915290506105b1888261205d565b5060e0830152509695505050505050565b5f6001808261060b86610606896106016105fc8a7f0000000000000000000000000000000000000000000000000000000000000000614f80565b6120b4565b6120d2565b6120eb565b90505f610629876106248a6106016105fc8b6001614f80565b612104565b90505f5b61065860107f0000000000000000000000000000000000000000000000000000000000000000614f6d565b8110156106c5575f6106828c838151811061067557610675614fba565b60200260200101516120b4565b90506106928661060186846120eb565b95506106a28561060185846120eb565b94506106ae848b6120eb565b93506106ba838b612104565b92505060010161062d565b505f5b601081101561072c575f8a82601081106106e4576106e4614fba565b602002015190506106f98661060186846120eb565b95506107098561060185846120eb565b9450610715848b6120eb565b9350610721838b612104565b9250506001016106c8565b506101978484612133565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561080e575f86610120015182601c811061077d5761077d614fba565b602002015190505f61078f8286612141565b9050806107af576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106107c6576107c6614fba565b602002015190506107d7838261215e565b95506107fe886040015185601c81106107f2576107f2614fba565b6020020151868361230d565b945050505080600101905061073d565b505f610828866101400151865f0151876020015185612338565b90508281145b9695505050505050565b5f61087f6040518061012001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61088d8460a001516123a6565b9050610897614bf6565b61089f614c15565b60e08601516108be906108b990855f5b6020020151612104565b61240b565b60a085015260e08601516108dd906108b990855f5b60200201516120eb565b60c080860182905260a0860151908801516108fc9261060691906120d2565b845260a086015161092a906109109061240b565b6106018660a001516106248a60c001518960c001516120d2565b6020850152600182526101a088015161094290612474565b81526001606085018190525f60808601525b602381116109fa5761097561096b865f01516124b3565b86606001516120d2565b83826046811061098757610987614fba565b602002015260808501516101408a01516109ca9190610606906109ab600186614f6d565b602881106109bb576109bb614fba565b602002015188606001516120d2565b8560800181815250506109e5856060015188608001516120d2565b60608601526109f381614fce565b9050610954565b505f610a0860236001614f80565b90505b60288111610a8957610a2361096b86602001516124b3565b838260468110610a3557610a35614fba565b602002015260808501516101408a0151610a599190610606906109ab600186614f6d565b856080018181525050610a74856060015188608001516120d2565b6060860152610a8281614fce565b9050610a0b565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b6020020181905250610c0f8860200151612474565b6103808201526040880151610c2390612474565b6103a08201526060880151610c3790612474565b6103c08201526080880151610c4b90612474565b6103e082015260a0880151610c5f90612474565b610400820152610100880151610c7490612474565b61042082015260c0880151610c8890612474565b61044082015260e0880151610c9c90612474565b6104608201526020880151610cb090612474565b6104808201526040880151610cc490612474565b6104a08201526060880151610cd890612474565b6104c08201526080880151610cec90612474565b6104e082015260a0880151610d0090612474565b610500820152606086015160808501516101808a01515f92610d45929091877f00000000000000000000000000000000000000000000000000000000000000006124cb565b805160a0870151919250610d58916120d2565b604086018190526101808a01515160c0890151610d88929161060691610d7e91906120d2565b8860c001516120d2565b604086015260c0870151610d9b906125e6565b60608601525f5b610dae6001601c614f6d565b811015610fb0575f610de160017f0000000000000000000000000000000000000000000000000000000000000000614f6d565b821015905080610f5657610e146108b98a60e0015188856001610e049190614f80565b601c81106108af576108af614fba565b60a088015260e0890151610e42906108b99088610e32866001614f80565b601c81106108d3576108d3614fba565b60c0880152606087015160a0880151610e5b91906120d2565b60e0880152606087015160c08a0151610e7791610d7e916120d2565b6101008801819052610e9990610e8c906124b3565b6106068960e001516124b3565b8583610ea760286001614f80565b610eb19190614f80565b60468110610ec157610ec1614fba565b60200201526101008701516101808c01515f91610efd91610ee3866001614f80565b601c8110610ef357610ef3614fba565b60200201516120d2565b9050610f19816106068a60e0015187876001610ee39190614f80565b9050610f298860400151826120eb565b6040890152606088015160c08b0151610f4f91610f45916120d2565b8b60c001516120d2565b6060890152505b610f7a8b610160015183601b8110610f7057610f70614fba565b6020020151612474565b8483610f8860286001614f80565b610f929190614f80565b60468110610fa257610fa2614fba565b602002015250600101610da2565b5060408051808201909152600181526002602082015282610fd3601c6028614f80565b60468110610fe357610fe3614fba565b6020020152604085015183610ffa601c6028614f80565b6046811061100a5761100a614fba565b60200201526101c08901515f9061102090612474565b90508083611030601c6028614f80565b61103b906001614f80565b6046811061104b5761104b614fba565b602002015260e088015184611062601c6028614f80565b61106d906001614f80565b6046811061107d5761107d614fba565b60200201525f61108d84866125f1565b90505f611099836126b7565b90506110a582826126fd565b9c9b505050505050505050505050565b6110bd614956565b50604080516103c08101825263020000008152601960208083019190915260ae82840152825180840184527f1f3f3167e9f171033dc87c71577567f49d6810ef8545e640cd222bd04210a09b81527f15bc01132771896cd2604b735e4eb941e459350f14d20c6a01e69b67d710e05b818301526060830152825180840184527f1b11f81dd0290d636006a0df95f9647276fbc495a0808b84a1dfd1954d5b796281527f1e7dcdd05ba7456fd76c8f3cd7f15b8311875e34fe31422b598d57de74293ea4818301526080830152825180840184527f114d62328f1a64fde3cb4e9bfbf2a244ee29664fa64c4c2495bbb8c41bd4fdb381527f0a0ebcae0d854bc7056dbe90f269a77a9c19d06011ea80224daa1260c23855fc8183015260a0830152825180840184527f2755c0b29c781dae07294b48a3e1121f83c6b92a0f4cfed491b527773c521e4281527f1b442c425156a8b25625bde5fd6c8d6730913415cb436311d6140396da1d59058183015260c0830152825180840184527f18ddfdf791ed840070147976eec7bd59c4a15ba6549fd91862140ddc4077cdfb81527f2712f90ed4c5387aaca9be3f256281cdb9cf9175551dbcd876991dde0c44a9f68183015260e0830152825180840184527f285dd0b4457d06eb2dd81208ecb0cef9737e0a87af5254aa852d3f6ec4b5f4e781527f03f47a4f3c474cf6c2675a7d4834bbbe5fb922e3f0716d28a992dab9a7663dcd81830152610100830152825180840184527f01a8abe0d74344165494348196db5fa7da3a745f398fd1374cc2cb15bcc58ff481527f0f62b9babe865f3d0c422867d8b7f7fa5c13d85721a659f3b9ff8fc8cc6fc99281830152610120830152825180840184527f2b984d5a6f80d48f784134f7f864db2d60e27af9ab7b53c4943a15424d60a29881527f20ad0fb4f37f96080d8b906f1b128e75404f71e17c73ca3cec1c4b50871256cb81830152610140830152825180840184527f18873bff31132617133462506ae7a56a6ee3660ac9404c46cdd1a55066594d6181527f0664c1e11ba9147f46c466b1b4b11cdd16828eab9e99e6618b7332bc81b1e28981830152610160830152825180840184527f176c806c0b21b8905129b130b058fd575299152283f8c356c6e31f2b271be16681527f06e37492c0f0d33f8906dd3ea2670d862361968ca758cb4ee8fbefc0639134dd81830152610180830152825180840184527f0d0ece310e7db0cd0685012c1e8dfd37fb0d0fd4053c1595e106ec6ceb0b653081527f2cf9369f1107842ab3526ea26b75fa482d35dc9f9886ba440a386ccecaaada36818301526101a0830152825180840184527f1b519908e15b754d126a69bde4c6ad15ae3a1cd77cdd93d1f4d487ed5537793681527f06551beeaadccfa10215f0828f4d7748cace0c7f725a992cc6d87ec92e6bdfed818301526101c0830152825180840184527f294987d08ba1e695f11476bd83d6a41ce8e66edead4abd8e4c1d0de404d3086d81527f06f6a0d1447cd63407f8b90ababbd06d2e00a2be6aefa224852a162756ec1fe7818301526101e0830152825180840184527f11476bf6d3f8e69c71a6ce5722b640ab766cb2404ddbd516e6e2b161e614b8f481527f0a3d39a223b41b4bceaedbd47b91d2c0e1cedc4975c0126c81524696eaf8449a81830152610200830152825180840184527f278ad399f43a25f08a96800ad882438a8743db7ca4be0731b109f4aef9c62d3f81527f0ec43adffdcfd3aa936f3a21676537327c2e817ccd47b3d77e15a1a9302dda5981830152610220830152825180840184527f15916391e5c4b5897a2c8994f63cd58122fc4dd3bb5c2d4cfad412dad7018cce81527f2e19a62c4ec3caa43408ee051da133299010a24f8f6b0a75386960eb3055231581830152610240830152825180840184527f0758aed2719718f743de7bf20b9f8e01cd0105003cb55d815de30b2e1929016681527f297b885450a230b705c380fd6f49d7a04ad91681fd95e5d20cfd167c45c2cd5e81830152610260830152825180840184527f211828d7e82c360804cc3eeb3001e568889f1ae299de48cc687a5d87620a490981527f20bfbcf72e089d1c2923bc503a8748f30bf088a3a2eddd543825f18228c8c35d81830152610280830152825180840184527f19bb8f771423b115bf936a2f94ef93b36e61fbdafb9156314168e146912ccbb881527f1a4fb82564d610b8ca301c6723dda399e9b95732dae8b07d6b41c088dd3ab31a818301526102a0830152825180840184527f2244d0e4de09d1853e5255933cc3f308808865deb4ec5e42f8f7488185cd821f81527f2fedc198ff4abf4085af3aa7dd9ce5b171826597560550cb15ae20cf1a20af08818301526102c0830152825180840184527f17f955f705dc9dcd934fd1387211d5d220afa45e4f604fc1b6c7c583cc179d4c81527f071a8059ea3d12a4ac6d76a8769e97c178230ed6b9711b47a19c4349a0a7f933818301526102e0830152825180840184527f275a0bb22f8c37a3476d71c556d266909fdde001df48d48a78940343ccb0b48a81527f2a4cc2119d1bd729845e8630c5b1aec652a2f2a7ae690c52238e3eafd44b385681830152610300830152825180840184527f1e1d6ac562a951aa01bc279a090d34488936a6404b3c75294fd260df0d36689381527f1643515b25c47e776b6d99eb3ce8b4613b209886681842e5c39ee92efe72c27281830152610320830152825180840184527f09d569252b4b229e483b00b1e67384ac4db29395d32e28c82f8b73983d30ac6b81527f2c47d5809e56ba32be655d4177db195bb450fd12587756c4b85b6506a7844ddb81830152610340830152825180840184527f1f59b85de9212665c6c3e59fb35ab6609d72f5ad8007449dc8019a5886fad88f81527f21c9b787b5e0109e8ab3c2293b8c67fa9ec871818722fb8bea77aa6477aaae4c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f0315d4c5146a605e545e1ece9e264fff2c850947e9d8006893b7ca032c62352d83527f1f1f5cd755755281b80b955c2d6f1dc62fc2b341bbbf724599151027db322d86908301526103a081019190915290565b5f602082146119e95760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b60448201526064015b60405180910390fd5b6119f66105fc8385614fe6565b9392505050565b611a05614c43565b60808214611a4b5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064016119e0565b604080516080810190915280611a6460205f8688614f93565b611a6d91614fe6565b8152602090810190611a83906040908688614f93565b611a8c91614fe6565b8152602001611a9f606060408688614f93565b611aa891614fe6565b8152602001611abb608060608688614f93565b611ac491614fe6565b90529392505050565b611ad5614c67565b5f611ae4898989898989612901565b604086019190915260208501919091529083529250611b03838a612da7565b608085019190915260608401919091529199919850909650505050505050565b611b2b614c97565b5f611b34614cb6565b848152610100848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260a080890180515191870191909152805183015160c0870152805182015160e087015251909201519284019290925251611bca91611baf91849101615003565b604051602081830303815290604052805190602001206120b4565b9150611bd582612e76565b6020850152835260015b611beb6002601961504b565b811015611c6b57611c0883604051602001611baf91815260200190565b9250611c1383612e76565b85611c1f846002614f56565b60198110611c2f57611c2f614fba565b6020020186611c3f856002614f56565b611c4a906001614f80565b60198110611c5a57611c5a614fba565b602002019190915252600101611bdf565b50611c8282604051602001611baf91815260200190565b91505f611c8e83612e76565b85611c9b60016019614f6d565b60198110611cab57611cab614fba565b60200201919091525050509250929050565b611cc5614cd5565b5f805b601c811015611d1757611ce784604051602001611baf91815260200190565b93505f611cf385612e76565b8584601c8110611d0557611d05614fba565b60200201919091525050600101611cc8565b5090929050565b611d26614cd5565b5f805b601c811015611de957611d3a614cb6565b8481525f5b6008811015611da35786610120015183601c8110611d5f57611d5f614fba565b60200201518160088110611d7557611d75614fba565b602002015182611d86836001614f80565b60098110611d9657611d96614fba565b6020020152600101611d3f565b50611db881604051602001611baf9190615003565b94505f611dc486612e76565b8685601c8110611dd657611dd6614fba565b6020020191909152505050600101611d29565b50909391925050565b5f5f611dfc614cf4565b8381525f5b6028811015611e4f578561014001518160288110611e2157611e21614fba565b602002015182611e32836001614f80565b60298110611e4257611e42614fba565b6020020152600101611e01565b50611e6481604051602001611baf919061505e565b91505f611e7083612e76565b5096929550919350505050565b5f5f611e87614d13565b8381525f5b611e986001601c614f6d565b811015611fd65785610160015181601b8110611eb657611eb6614fba565b60200201515182611ec8836004614f56565b611ed3906001614f80565b606d8110611ee357611ee3614fba565b602002015261016086015181601b8110611eff57611eff614fba565b60200201516020015182826004611f169190614f56565b611f21906002614f80565b606d8110611f3157611f31614fba565b602002015261016086015181601b8110611f4d57611f4d614fba565b60200201516040015182611f62836004614f56565b611f6d906003614f80565b606d8110611f7d57611f7d614fba565b602002015261016086015181601b8110611f9957611f99614fba565b60200201516060015182611fae836004614f56565b611fb9906004614f80565b606d8110611fc957611fc9614fba565b6020020152600101611e8c565b50611e6481604051602001611baf9190615092565b5f5f611ff5614d32565b8381525f5b601c8110156120485785610180015181601c811061201a5761201a614fba565b60200201518261202b836001614f80565b601d811061203b5761203b614fba565b6020020152600101611ffa565b50611e6481604051602001611baf91906150c6565b5f5f612067614d51565b8381526101a085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611e6491611baf918491016150fa565b5f6120cc5f51602061523c5f395f51905f528361512d565b92915050565b5f5f51602061523c5f395f51905f528284099392505050565b5f5f51602061523c5f395f51905f528284089392505050565b5f5f51602061523c5f395f51905f5261212a835f51602061523c5f395f51905f52614f6d565b84089392505050565b5f6119f6836106018461240b565b81515f908190612153908560016108d3565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156122455761223b826106018784612104565b9150600101612224565b5061224e614d6f565b5f5b60088110156122af575f84826008811061226c5761226c614fba565b60200201519050612281816106018985612104565b905061228c8161240b565b9050808383600881106122a1576122a1614fba565b602002015250600101612250565b505f5b6008811015612302575f8782600881106122ce576122ce614fba565b602002015190506122eb81848460088110610ef357610ef3614fba565b90506122f786826120eb565b9550506001016122b2565b5061082e84836120d2565b5f5f612323600161060685610601896001612104565b905061232f84826120d2565b95945050505050565b5f612341614d8e565b61234c868285612ea6565b61235886868386613052565b6123648686838661323a565b61236f868285613436565b61237a86828561361e565b61238686868386613967565b612391868285614201565b61239c8682856145cc565b61082e81856148c1565b6123ae614cd5565b81815260015b601c811015612405576123e6826123cc600184614f6d565b601c81106123dc576123dc614fba565b60200201516125e6565b8282601c81106123f8576123f8614fba565b60200201526001016123b4565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061523c5f395f51905f520360808201525f51602061523c5f395f51905f5260a082015260205f60c08360055afa905080612469575f5ffd5b50505f519392505050565b61247c614dad565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f6120cc825f51602061523c5f395f51905f52614f6d565b6124d3614cd5565b601c5b80156125dc575f846124e9600184614f6d565b601c81106124f9576124f9614fba565b602002015190505f8861250d600185614f6d565b601c811061251d5761251d614fba565b602002015190505f61257861253c612535858c6120d2565b60026120d2565b6106248a61254b600189614f6d565b601c811061255b5761255b614fba565b60200201516106016125728861060160018a612104565b87612104565b9050612599816106016108b961259387610601600189612104565b866120eb565b90508584116125c85797508780856125b2600187614f6d565b601c81106125c2576125c2614fba565b60200201525b505050806125d590615140565b90506124d6565b5095945050505050565b5f6120cc82836120d2565b6125f9614dad565b5f612606601c6028614f80565b612611906002614f80565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b8381101561269f5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612646565b50805184526020810151602085015250505092915050565b6126bf614dad565b5f51602061521c5f395f51905f5282602001515f51602061521c5f395f51905f526126ea9190614f6d565b6126f4919061512d565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516128939190615155565b5f60405180830381855afa9150503d805f81146128cb576040519150601f19603f3d011682016040523d82523d5f602084013e6128d0565b606091505b50915091505f818060200190518101906128ea919061516b565b90508280156128f65750805b979650505050505050565b5f80808080612911876003614f80565b61291c90600c614f80565b6001600160401b038111156129335761293361518a565b60405190808252806020026020018201604052801561295c578160200160208202803683370190505b509050875f1b815f8151811061297457612974614fba565b602002602001018181525050865f1b8160018151811061299657612996614fba565b602002602001018181525050855f1b816002815181106129b8576129b8614fba565b60209081029190910101525f5b6129d0601089614f6d565b811015612a21578a8a828181106129e9576129e9614fba565b90506020020135828260036129fe9190614f80565b81518110612a0e57612a0e614fba565b60209081029190910101526001016129c5565b505f5b6010811015612a92578b51612a4c908260108110612a4457612a44614fba565b602002015190565b82826010612a5b8c6003614f80565b612a659190614f6d565b612a6f9190614f80565b81518110612a7f57612a7f614fba565b6020908102919091010152600101612a24565b5060208b01515181612aa5896003614f80565b81518110612ab557612ab5614fba565b6020908102919091018101919091528b810151015181612ad6896003614f80565b612ae1906001614f80565b81518110612af157612af1614fba565b6020908102919091018101919091528b01516040015181612b13896003614f80565b612b1e906002614f80565b81518110612b2e57612b2e614fba565b6020908102919091018101919091528b01516060015181612b50896003614f80565b612b5b906003614f80565b81518110612b6b57612b6b614fba565b602090810291909101015260408b01515181612b88896003614f80565b612b93906004614f80565b81518110612ba357612ba3614fba565b60209081029190910181019190915260408c0151015181612bc5896003614f80565b612bd0906005614f80565b81518110612be057612be0614fba565b60209081029190910101526040808c0151015181612bff896003614f80565b612c0a906006614f80565b81518110612c1a57612c1a614fba565b602090810291909101015260408b01516060015181612c3a896003614f80565b612c45906007614f80565b81518110612c5557612c55614fba565b602090810291909101015260608b01515181612c72896003614f80565b612c7d906008614f80565b81518110612c8d57612c8d614fba565b60209081029190910181019190915260608c0151015181612caf896003614f80565b612cba906009614f80565b81518110612cca57612cca614fba565b602090810291909101015260608b01516040015181612cea896003614f80565b612cf590600a614f80565b81518110612d0557612d05614fba565b60209081029190910101526060808c0151015181612d24896003614f80565b612d2f90600b614f80565b81518110612d3f57612d3f614fba565b602002602001018181525050612d5f81604051602001611baf919061519e565b9150612d6a82612e76565b6040805160208101869052929750909550612d859101611baf565b91505f612d9183612e76565b50959c949b509499509097509195505050505050565b5f5f5f612db2614dc5565b85815260c085810180515160208085019190915281518101516040808601919091528251810151606080870191909152925183015160808087019190915260e0808b0180515160a089015280518501519688019690965285518301519087015293518301516101008601529288018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612e5c91611baf918491016151d3565b9150612e6782612e76565b90979096509194509092505050565b5f80826001600160801b038116608082901c612e91826120b4565b9450612e9c816120b4565b9350505050915091565b5f612eb2846007614926565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612f13612f0d612ee7856003612104565b610601612f02612ef78b5f614926565b6106018c601c614926565b6106018b601b614926565b836120d2565b9050612f94612f89612f70612f57612f3e85610606612f338d6002614926565b6106018e601b614926565b610606612f4c8c6003614926565b6106018d601c614926565b610606612f658b6004614926565b6106018c601d614926565b610606612f7e8a6005614926565b6106018b601e614926565b610606886001614926565b9050612fb381610606612fa8866001612104565b6106018a6026614926565b9050612fbf81846120d2565b9050612fcb81856120d2565b8552505f9050613005612ffb612ff0612fe588601b614926565b61060689601e614926565b610624886023614926565b610606875f614926565b905061301681610601846002612104565b905061302781610601846001612104565b905061303381836120d2565b905061303f81846120d2565b9050808460015b60200201525050505050565b5f5f5f61308861307e61306689601b614926565b6106066130748b6011614926565b8a606001516120d2565b87608001516120eb565b90506130c1816106016130b761309f8b601c614926565b6106066130ad8d6012614926565b8c606001516120d2565b89608001516120eb565b90506130e6816106016130b76130d88b601d614926565b6106066130ad8d6013614926565b905061310b816106016130b76130fd8b601e614926565b6106066130ad8d6014614926565b92505f905061312f61307e61312189601b614926565b6106066130748b600d614926565b9050613154816106016130b76131468b601c614926565b6106066130ad8d600e614926565b9050613179816106016130b761316b8b601d614926565b6106066130ad8d600f614926565b905061319e816106016130b76131908b601e614926565b6106066130ad8d6010614926565b91505f90506131c56131bf6131b489601f614926565b6106068a6019614926565b846120d2565b90506131fa816106246131f46131dc8b6027614926565b6106066131ea8d601a614926565b8c60a001516120d2565b856120d2565b905061320681856120d2565b6040860152505f6132296131f461321e89601a614926565b6106018a6027614926565b606090950194909452505050505050565b5f5f6132986132806132686132536130b78a6015614926565b6106066132618b6016614926565b8a516120d2565b6106066132768a6017614926565b89602001516120d2565b61060661328e896018614926565b88604001516120d2565b91505f6132cf6132b66132ac89601b614926565b88608001516120eb565b6106066132c48a6003614926565b6106018b6023614926565b90505f6132f86132e089601c614926565b6106066132ed8b5f614926565b6106018c6024614926565b90505f6133226133098a601d614926565b6106066133178c6001614926565b6106018d6025614926565b905061336161334961333b85610606868d5f01516120d2565b610606848c602001516120d2565b6106066133578c6004614926565b8b604001516120d2565b93505050505f6133756131bf886020614926565b90505f6133866131bf896020614926565b90505f6133be6133a561339a8b6022614926565b6106068c6006614926565b6106246133b38c6022614926565b6106018d6006614926565b90505f6133e26133dc6133d187896120d2565b6106018d6020614926565b83612104565b90506133ee81886120d2565b90505f6134166134086134028d6006614926565b876120d2565b6106246134028e6021614926565b60808a018390529050808960055b60200201525050505050505050505050565b5f6134425f6001612104565b90505f6134505f6002612104565b90505f61345e5f6003612104565b90505f61347a61346f88601c614926565b61062489601b614926565b90505f61349661348b89601d614926565b6106248a601c614926565b90505f6134b26134a78a601e614926565b6106248b601d614926565b90505f6134ce6134c38b6023614926565b6106248c601e614926565b9050836134df81610601818b6120eb565b90506134ef81610601878a6120eb565b90506134ff8161060187896120eb565b9050613510816106018d6008614926565b905061351c818a6120d2565b60c08b0152508261353181610601818b6120eb565b905061354181610601868a6120eb565b90506135518161060186896120eb565b9050613562816106018d6008614926565b905061356e818a6120d2565b60e08b0152508161358381610601818b6120eb565b905061359381610601858a6120eb565b90506135a38161060185896120eb565b90506135b4816106018d6008614926565b90506135c0818a6120d2565b6101008b015250806135d681610601818b6120eb565b90506135e681610601848a6120eb565b90506135f68161060184896120eb565b9050613607816106018d6008614926565b9050613613818a6120d2565b9050808a6009613424565b6136576040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61366284601c614926565b815261366f84601d614926565b602082015261367f846023614926565b604082015261368f846026614926565b606082015261369f846025614926565b60808201526136af846024614926565b60a08201525f6136c0856002614926565b90505f6136cd865f614926565b90505f6136e18460400151855f0151612104565b90505f6136f6856020015186602001516120d2565b606086015190915086905f9061370c90806120d2565b90505f61372a61372489602001518a606001516120d2565b886120d2565b90505f6137496137428a60a001518b604001516120eb565b8a516120eb565b905061375861340282886120d2565b905061377f61377961377361376d8487612104565b88612104565b846120eb565b836120eb565b90506137a761379c61379183876120d2565b6106018f6009614926565b61060160018a612104565b6101408c015250505050602085015160808601515f916137c6916120eb565b90505f6137e46137da8860600151886120d2565b8860200151612104565b90505f6138086137f484876120d2565b6106066131f48b60a001518c5f0151612104565b905061383061382561381a838c6120d2565b6106018e6009614926565b610601600189612104565b6101608b0152505f9150613851905061384a8360116120eb565b87516120d2565b90505f61385e83846120eb565b905061386a81826120eb565b90505f6138788360096120d2565b90506138a161389b6131bf6138948b60a001518c5f01516120eb565b8b516120eb565b82612104565b60c089018190525f906138bc9061372490613791908d6120d2565b90506138cf8b600a6020020151826120eb565b6101408c0152505086515f92506138f6915061384a906138ef90806120eb565b88516120eb565b90505f613936613911836106018a5f01518b60a00151612104565b60208901516106249061392490806120eb565b6106018b602001518c608001516120eb565b905061395389600b6020020151610606613724613791858d6120d2565b89600b602002015250505050505050505050565b6139fb604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b613a30613a17613a0c87601b614926565b610601886024614926565b610606613a25886023614926565b61060189601c614926565b8152613a75613a6a613a51613a4688601b614926565b61060189601e614926565b610606613a5f89601c614926565b6106018a601d614926565b610624876025614926565b60408201819052613a8a90600160441b6120d2565b60408201819052613aa090610624876026614926565b604082018190528151613ab391906120eb565b60408201819052613ac990610601876005614926565b60408201528051613ade90600160441b6120d2565b808252613afe90610606613af3886023614926565b610601896024614926565b80825260208201819052613b1a90610624612fe588601d614926565b60208201819052613b3090610601876004614926565b6020820152805160608201819052613b4d9061060687601e614926565b60608201819052613b7190610624613b66886025614926565b610606896026614926565b60608201819052613b8690610601875f614926565b8160600181815250505f613baf613ba5836020015184604001516120eb565b83606001516120eb565b9050613bc081610601886003614926565b9050613bd8613bd0876024614926565b6140006120d2565b60808301819052613bee90610606886023614926565b60808301819052613c01906140006120d2565b60808301819052613c179061060688601d614926565b60808301819052613c2a906140006120d2565b60808301819052613c409061060688601c614926565b60808301819052613c53906140006120d2565b60808301819052613c699061060688601b614926565b60808301819052613c7f9061062488601e614926565b60808301819052613c9590610601886005614926565b6080830152613ca8613bd0876025614926565b60a08301819052613cbe90610606886024614926565b60a08301819052613cd1906140006120d2565b60a08301819052613ce790610606886023614926565b60a08301819052613cfa906140006120d2565b60a08301819052613d109061060688601e614926565b60a08301819052613d23906140006120d2565b60a08301819052613d399061060688601d614926565b60a08301819052613d4f90610624886026614926565b60a08301819052613d6490610601885f614926565b60a0830181905260808301515f91613d7c91906120eb565b9050613d8d81610601896004614926565b9050613da7613d9d88601d614926565b87604001516120d2565b60c08401819052613dc0906106066132768a601c614926565b60c08401819052613de090610606613dd98a601b614926565b89516120d2565b60c08401819052613df690610606896001614926565b60c0840181905260e08401819052613e139061062489601e614926565b60c0840152613e2661346f886023614926565b610140840152613e45613e3a886026614926565b61062489601e614926565b610120840152610140830151613e6a90613e5f90806120d2565b846101400151612104565b610280840152610140830151613eac90613ea190613e9a9061060160015f51602061523c5f395f51905f52614f6d565b60016120eb565b8461012001516120d2565b6101608401819052613ee390613ed590610601613eca8b6002614926565b6106018c6003614926565b6106016134028a600a614926565b6101a0860152610280830151613f0590613ed590610601613eca8b6002614926565b6101c086015260c0830151613f2d90610601613f228a6002614926565b6106018b6003614926565b6101e08401525f613f4c613f4289601e614926565b8560e00151612104565b9050613f5b61389b82836120d2565b6101a0850152613f6f61328e896025614926565b6101008501819052613f9390610606613f898b6024614926565b8a602001516120d2565b6101008501819052613fad906106066132618b6023614926565b610100850152613fcc613fc1896026614926565b856101000151612104565b6101008501525f613fe16134a78a6025614926565b905061403561400f612f0d613e9a88610140015160015f51602061523c5f395f51905f526106019190614f6d565b610601613e9a88610100015160015f51602061523c5f395f51905f526106019190614f6d565b61018086015261010085015161405a9061404f90806120d2565b866101000151612104565b6101c086015261018085015161408d90614079906106018c6007614926565b6106016140878c600a614926565b896120d2565b6101e08801526102808501516140ac90614079906106018c6007614926565b6102008801526101c08501516140cb90614079906106018c6007614926565b6102208801526101a08501516140e6906106018b6007614926565b6102008601526141056140fa8a6024614926565b6106248b601c614926565b610220860152610140850151614144906134a79061413990613e9a9061060160015f51602061523c5f395f51905f52614f6d565b8761022001516120d2565b61024086018190526101e0860151610260870181905261417b91610606906106016141708e6005614926565b6106018f6002614926565b610260860181905260c086015161419e9190610606906106016141708e5f614926565b61026086018190526102008601516141b691906120eb565b61026086018190526141cc9061377390866120eb565b6102a086018190526141e6906106016140878c600a614926565b6102a0860181905287600c6020020152505050505050505050565b6142776040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61429061428585601b614926565b610606866002614926565b81526142ab6142a085601c614926565b610606866003614926565b60208201526142c96142be85601d614926565b610606866004614926565b60408201526142e76142dc85601e614926565b610606866005614926565b60608201528051614319906143129061430b9061430490806120d2565b84516120d2565b83516120d2565b82516120d2565b608082015260208101516143579061434d906143439061433990806120d2565b84602001516120d2565b83602001516120d2565b82602001516120d2565b60a082015260408101516143959061438b906143819061437790806120d2565b84604001516120d2565b83604001516120d2565b82604001516120d2565b60c082015260608101516143d3906143c9906143bf906143b590806120d2565b84606001516120d2565b83606001516120d2565b82606001516120d2565b60e0820152608081015160a08201516143ec91906120eb565b61010082015260c081015160e082015161440691906120eb565b61012082015260a081015161442a9061441f90806120eb565b8261012001516120eb565b61014082015260e081015161444e9061444390806120eb565b8261010001516120eb565b61016082015261012081015161446490806120eb565b6101e082018190526144859061447a90806120eb565b8261016001516120eb565b6101e082015261010081015161449b90806120eb565b6101a082018190526144bc906144b190806120eb565b8261014001516120eb565b6101a082018190526101608201516144d3916120eb565b6101808201526101408101516101e08201516144ef91906120eb565b6101c0820152614503612f0d85600b614926565b610200820181905261024084015161018083015161452e9261060691610601906106248a6023614926565b836012602002015261455e8360136020020151610606836102000151610601856101a001516106248a6024614926565b836013602002015261458e8360146020020151610606836102000151610601856101c001516106248a6025614926565b83601460200201526145be8360156020020151610606836102000151610601856101e001516106248a6026614926565b836015602002015250505050565b61461e6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806146537f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e76120b4565b81526020016146817f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b6120b4565b81526020016146ae7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac156120b4565b81526020016146dc7f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b6120b4565b905290506146f96146ee86601b614926565b610606876002614926565b610120830181905261472d9061472290613ea19061471790806120d2565b8561012001516120d2565b8361012001516120d2565b825261473a85601c614926565b602083015261474a85601d614926565b604083015261475a85601e614926565b60608301528151602083015161478291613ba59161477891906120eb565b84604001516120eb565b60808301526147956131bf86600c614926565b61014083015281516147b6906147ac90835f610ef3565b83608001516120eb565b60a08301526147e284601660200201516106068461014001516106018660a001516106248b6023614926565b6102c085015260208201516147fd906147ac90836001610ef3565b60c083015261482984601760200201516106068461014001516106018660c001516106248b6024614926565b6102e08501526040820151614844906147ac90836002610ef3565b60e083015261487084601860200201516106068461014001516106018660e001516106248b6025614926565b610300850152606082015161488b906147ac90836003610ef3565b6101008301526148b984601960200201516106068461014001516106018661010001516106248b6026614926565b846019613046565b5f6148cd8184816108d3565b905060015b601a81101561491f57614915826106068684601a81106148f4576148f4614fba565b602002015186614905600187614f6d565b60198110610ef357610ef3614fba565b91506001016148d2565b5092915050565b5f8282602781111561493a5761493a615207565b6028811061494a5761494a614fba565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161497c614dad565b8152602001614989614dad565b8152602001614996614dad565b81526020016149a3614dad565b81526020016149b0614dad565b81526020016149bd614dad565b81526020016149ca614dad565b81526020016149d7614dad565b81526020016149e4614dad565b81526020016149f1614dad565b81526020016149fe614dad565b8152602001614a0b614dad565b8152602001614a18614dad565b8152602001614a25614dad565b8152602001614a32614dad565b8152602001614a3f614dad565b8152602001614a4c614dad565b8152602001614a59614dad565b8152602001614a66614dad565b8152602001614a73614dad565b8152602001614a80614dad565b8152602001614a8d614dad565b8152602001614a9a614dad565b8152602001614aa7614dad565b8152602001614ab4614dad565b8152602001614ac1614dad565b8152602001614ace614dad565b905290565b604051806101e00160405280614ae7614de4565b8152602001614af4614c43565b8152602001614b01614c43565b8152602001614b0e614c43565b8152602001614b1b614c43565b8152602001614b28614c43565b8152602001614b35614c43565b8152602001614b42614c43565b8152602001614b4f614c43565b8152602001614b5c614e03565b8152602001614b69614e31565b8152602001614b76614e50565b8152602001614b83614cd5565b8152602001614b90614c43565b8152602001614ace614c43565b604051806101000160405280614bb1614c67565b8152602001614bbe614c97565b8152602001614bcb614cd5565b8152602001614bd8614cd5565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614c2d614dad565b815260200190600190039081614c255790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b6040518061020001604052806010906020820280368337509192915050565b604051806103800160405280601c905b614e1b614d6f565b815260200190600190039081614e135790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614e68614c43565b815260200190600190039081614e605790505090565b5f5f5f5f60408587031215614e91575f5ffd5b84356001600160401b03811115614ea6575f5ffd5b8501601f81018713614eb6575f5ffd5b80356001600160401b03811115614ecb575f5ffd5b876020828401011115614edc575f5ffd5b6020918201955093508501356001600160401b03811115614efb575f5ffd5b8501601f81018713614f0b575f5ffd5b80356001600160401b03811115614f20575f5ffd5b8760208260051b8401011115614f34575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176120cc576120cc614f42565b818103818111156120cc576120cc614f42565b808201808211156120cc576120cc614f42565b5f5f85851115614fa1575f5ffd5b83861115614fad575f5ffd5b5050820193919092039150565b634e487b7160e01b5f52603260045260245ffd5b5f60018201614fdf57614fdf614f42565b5060010190565b803560208310156120cc575f19602084900360031b1b1692915050565b5f8183825b6009811015615027578151835260209283019290910190600101615008565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261505957615059615037565b500490565b5f8183825b6029811015615082578151835260209283019290910190600101615063565b5050506105208201905092915050565b5f8183825b606d8110156150b6578151835260209283019290910190600101615097565b505050610da08201905092915050565b5f8183825b601d8110156150ea5781518352602092830192909101906001016150cb565b5050506103a08201905092915050565b5f8183825b600581101561511e5781518352602092830192909101906001016150ff565b50505060a08201905092915050565b5f8261513b5761513b615037565b500690565b5f8161514e5761514e614f42565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561517b575f5ffd5b815180151581146119f6575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156151c85781518452602093840193909101906001016151aa565b509195945050505050565b5f8183825b600d8110156151f75781518352602092830192909101906001016151d8565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
4
4
  /**
5
5
  * HonkVerifier link references.
6
6
  */ export const HonkVerifierLinkReferences = {};
@@ -693,27 +693,19 @@ export declare const IERC20Abi: readonly [{
693
693
  readonly type: "error";
694
694
  readonly name: "Rollup__InvalidBlobHash";
695
695
  readonly inputs: readonly [{
696
- readonly name: "blobHash";
696
+ readonly name: "expected";
697
697
  readonly type: "bytes32";
698
698
  readonly internalType: "bytes32";
699
- }];
700
- }, {
701
- readonly type: "error";
702
- readonly name: "Rollup__InvalidBlobProof";
703
- readonly inputs: readonly [{
704
- readonly name: "blobHash";
699
+ }, {
700
+ readonly name: "actual";
705
701
  readonly type: "bytes32";
706
702
  readonly internalType: "bytes32";
707
703
  }];
708
704
  }, {
709
705
  readonly type: "error";
710
- readonly name: "Rollup__InvalidBlobPublicInputsHash";
706
+ readonly name: "Rollup__InvalidBlobProof";
711
707
  readonly inputs: readonly [{
712
- readonly name: "expected";
713
- readonly type: "bytes32";
714
- readonly internalType: "bytes32";
715
- }, {
716
- readonly name: "actual";
708
+ readonly name: "blobHash";
717
709
  readonly type: "bytes32";
718
710
  readonly internalType: "bytes32";
719
711
  }];
@@ -729,6 +721,10 @@ export declare const IERC20Abi: readonly [{
729
721
  readonly type: "uint256";
730
722
  readonly internalType: "uint256";
731
723
  }];
724
+ }, {
725
+ readonly type: "error";
726
+ readonly name: "Rollup__InvalidFirstEpochProof";
727
+ readonly inputs: readonly [];
732
728
  }, {
733
729
  readonly type: "error";
734
730
  readonly name: "Rollup__InvalidInHash";
@@ -913,6 +909,18 @@ export declare const IERC20Abi: readonly [{
913
909
  readonly type: "error";
914
910
  readonly name: "Rollup__TimestampTooOld";
915
911
  readonly inputs: readonly [];
912
+ }, {
913
+ readonly type: "error";
914
+ readonly name: "Rollup__TooManyBlocksInEpoch";
915
+ readonly inputs: readonly [{
916
+ readonly name: "expected";
917
+ readonly type: "uint256";
918
+ readonly internalType: "uint256";
919
+ }, {
920
+ readonly name: "actual";
921
+ readonly type: "uint256";
922
+ readonly internalType: "uint256";
923
+ }];
916
924
  }, {
917
925
  readonly type: "error";
918
926
  readonly name: "Rollup__TryingToProveNonExistingBlock";
@@ -1 +1 @@
1
- {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../src/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuzDZ,CAAC"}
1
+ {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../src/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAi0DZ,CAAC"}
package/dest/IERC20Abi.js CHANGED
@@ -914,18 +914,12 @@
914
914
  "name": "Rollup__InvalidBlobHash",
915
915
  "inputs": [
916
916
  {
917
- "name": "blobHash",
917
+ "name": "expected",
918
918
  "type": "bytes32",
919
919
  "internalType": "bytes32"
920
- }
921
- ]
922
- },
923
- {
924
- "type": "error",
925
- "name": "Rollup__InvalidBlobProof",
926
- "inputs": [
920
+ },
927
921
  {
928
- "name": "blobHash",
922
+ "name": "actual",
929
923
  "type": "bytes32",
930
924
  "internalType": "bytes32"
931
925
  }
@@ -933,15 +927,10 @@
933
927
  },
934
928
  {
935
929
  "type": "error",
936
- "name": "Rollup__InvalidBlobPublicInputsHash",
930
+ "name": "Rollup__InvalidBlobProof",
937
931
  "inputs": [
938
932
  {
939
- "name": "expected",
940
- "type": "bytes32",
941
- "internalType": "bytes32"
942
- },
943
- {
944
- "name": "actual",
933
+ "name": "blobHash",
945
934
  "type": "bytes32",
946
935
  "internalType": "bytes32"
947
936
  }
@@ -963,6 +952,11 @@
963
952
  }
964
953
  ]
965
954
  },
955
+ {
956
+ "type": "error",
957
+ "name": "Rollup__InvalidFirstEpochProof",
958
+ "inputs": []
959
+ },
966
960
  {
967
961
  "type": "error",
968
962
  "name": "Rollup__InvalidInHash",
@@ -1205,6 +1199,22 @@
1205
1199
  "name": "Rollup__TimestampTooOld",
1206
1200
  "inputs": []
1207
1201
  },
1202
+ {
1203
+ "type": "error",
1204
+ "name": "Rollup__TooManyBlocksInEpoch",
1205
+ "inputs": [
1206
+ {
1207
+ "name": "expected",
1208
+ "type": "uint256",
1209
+ "internalType": "uint256"
1210
+ },
1211
+ {
1212
+ "name": "actual",
1213
+ "type": "uint256",
1214
+ "internalType": "uint256"
1215
+ }
1216
+ ]
1217
+ },
1208
1218
  {
1209
1219
  "type": "error",
1210
1220
  "name": "Rollup__TryingToProveNonExistingBlock",
@@ -673,27 +673,19 @@ export declare const IVerifierAbi: readonly [{
673
673
  readonly type: "error";
674
674
  readonly name: "Rollup__InvalidBlobHash";
675
675
  readonly inputs: readonly [{
676
- readonly name: "blobHash";
676
+ readonly name: "expected";
677
677
  readonly type: "bytes32";
678
678
  readonly internalType: "bytes32";
679
- }];
680
- }, {
681
- readonly type: "error";
682
- readonly name: "Rollup__InvalidBlobProof";
683
- readonly inputs: readonly [{
684
- readonly name: "blobHash";
679
+ }, {
680
+ readonly name: "actual";
685
681
  readonly type: "bytes32";
686
682
  readonly internalType: "bytes32";
687
683
  }];
688
684
  }, {
689
685
  readonly type: "error";
690
- readonly name: "Rollup__InvalidBlobPublicInputsHash";
686
+ readonly name: "Rollup__InvalidBlobProof";
691
687
  readonly inputs: readonly [{
692
- readonly name: "expected";
693
- readonly type: "bytes32";
694
- readonly internalType: "bytes32";
695
- }, {
696
- readonly name: "actual";
688
+ readonly name: "blobHash";
697
689
  readonly type: "bytes32";
698
690
  readonly internalType: "bytes32";
699
691
  }];
@@ -709,6 +701,10 @@ export declare const IVerifierAbi: readonly [{
709
701
  readonly type: "uint256";
710
702
  readonly internalType: "uint256";
711
703
  }];
704
+ }, {
705
+ readonly type: "error";
706
+ readonly name: "Rollup__InvalidFirstEpochProof";
707
+ readonly inputs: readonly [];
712
708
  }, {
713
709
  readonly type: "error";
714
710
  readonly name: "Rollup__InvalidInHash";
@@ -893,6 +889,18 @@ export declare const IVerifierAbi: readonly [{
893
889
  readonly type: "error";
894
890
  readonly name: "Rollup__TimestampTooOld";
895
891
  readonly inputs: readonly [];
892
+ }, {
893
+ readonly type: "error";
894
+ readonly name: "Rollup__TooManyBlocksInEpoch";
895
+ readonly inputs: readonly [{
896
+ readonly name: "expected";
897
+ readonly type: "uint256";
898
+ readonly internalType: "uint256";
899
+ }, {
900
+ readonly name: "actual";
901
+ readonly type: "uint256";
902
+ readonly internalType: "uint256";
903
+ }];
896
904
  }, {
897
905
  readonly type: "error";
898
906
  readonly name: "Rollup__TryingToProveNonExistingBlock";