@aztec/l1-artifacts 0.80.0 → 0.82.0

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 (132) hide show
  1. package/dest/CoinIssuerAbi.d.ts +17 -1
  2. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  3. package/dest/CoinIssuerAbi.js +22 -1
  4. package/dest/CoinIssuerBytecode.d.ts +1 -1
  5. package/dest/CoinIssuerBytecode.js +1 -1
  6. package/dest/EmpireBaseAbi.d.ts +17 -1
  7. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  8. package/dest/EmpireBaseAbi.js +22 -1
  9. package/dest/ErrorsAbi.d.ts +17 -1
  10. package/dest/ErrorsAbi.d.ts.map +1 -1
  11. package/dest/ErrorsAbi.js +22 -1
  12. package/dest/ExtRollupLibAbi.d.ts +17 -1
  13. package/dest/ExtRollupLibAbi.d.ts.map +1 -1
  14. package/dest/ExtRollupLibAbi.js +22 -1
  15. package/dest/ExtRollupLibBytecode.d.ts +1 -1
  16. package/dest/ExtRollupLibBytecode.d.ts.map +1 -1
  17. package/dest/ExtRollupLibBytecode.js +1 -1
  18. package/dest/FeeAssetHandlerAbi.d.ts +1232 -0
  19. package/dest/FeeAssetHandlerAbi.d.ts.map +1 -0
  20. package/dest/FeeAssetHandlerAbi.js +1629 -0
  21. package/dest/FeeAssetHandlerBytecode.d.ts +9 -0
  22. package/dest/FeeAssetHandlerBytecode.d.ts.map +1 -0
  23. package/dest/FeeAssetHandlerBytecode.js +6 -0
  24. package/dest/FeeJuicePortalAbi.d.ts +17 -1
  25. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  26. package/dest/FeeJuicePortalAbi.js +22 -1
  27. package/dest/FeeJuicePortalBytecode.d.ts +1 -1
  28. package/dest/FeeJuicePortalBytecode.js +1 -1
  29. package/dest/ForwarderAbi.d.ts +17 -1
  30. package/dest/ForwarderAbi.d.ts.map +1 -1
  31. package/dest/ForwarderAbi.js +22 -1
  32. package/dest/GovernanceAbi.d.ts +17 -1
  33. package/dest/GovernanceAbi.d.ts.map +1 -1
  34. package/dest/GovernanceAbi.js +22 -1
  35. package/dest/GovernanceProposerAbi.d.ts +17 -1
  36. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  37. package/dest/GovernanceProposerAbi.js +22 -1
  38. package/dest/GovernanceProposerBytecode.d.ts +1 -1
  39. package/dest/GovernanceProposerBytecode.d.ts.map +1 -1
  40. package/dest/GovernanceProposerBytecode.js +1 -1
  41. package/dest/HonkVerifierAbi.d.ts +17 -1
  42. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  43. package/dest/HonkVerifierAbi.js +22 -1
  44. package/dest/HonkVerifierBytecode.d.ts +1 -1
  45. package/dest/HonkVerifierBytecode.d.ts.map +1 -1
  46. package/dest/HonkVerifierBytecode.js +1 -1
  47. package/dest/IERC20Abi.d.ts +17 -1
  48. package/dest/IERC20Abi.d.ts.map +1 -1
  49. package/dest/IERC20Abi.js +22 -1
  50. package/dest/IVerifierAbi.d.ts +17 -1
  51. package/dest/IVerifierAbi.d.ts.map +1 -1
  52. package/dest/IVerifierAbi.js +22 -1
  53. package/dest/InboxAbi.d.ts +17 -1
  54. package/dest/InboxAbi.d.ts.map +1 -1
  55. package/dest/InboxAbi.js +22 -1
  56. package/dest/InboxBytecode.d.ts +1 -1
  57. package/dest/InboxBytecode.js +1 -1
  58. package/dest/MockVerifierAbi.d.ts +17 -1
  59. package/dest/MockVerifierAbi.d.ts.map +1 -1
  60. package/dest/MockVerifierAbi.js +22 -1
  61. package/dest/NewGovernanceProposerPayloadAbi.d.ts +17 -1
  62. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  63. package/dest/NewGovernanceProposerPayloadAbi.js +22 -1
  64. package/dest/NewGovernanceProposerPayloadBytecode.d.ts +1 -1
  65. package/dest/NewGovernanceProposerPayloadBytecode.d.ts.map +1 -1
  66. package/dest/NewGovernanceProposerPayloadBytecode.js +1 -1
  67. package/dest/OutboxAbi.d.ts +17 -1
  68. package/dest/OutboxAbi.d.ts.map +1 -1
  69. package/dest/OutboxAbi.js +22 -1
  70. package/dest/OutboxBytecode.d.ts +1 -1
  71. package/dest/OutboxBytecode.js +1 -1
  72. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +17 -1
  73. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
  74. package/dest/RegisterNewRollupVersionPayloadAbi.js +22 -1
  75. package/dest/RegistryAbi.d.ts +17 -1
  76. package/dest/RegistryAbi.d.ts.map +1 -1
  77. package/dest/RegistryAbi.js +22 -1
  78. package/dest/RewardDistributorAbi.d.ts +17 -1
  79. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  80. package/dest/RewardDistributorAbi.js +22 -1
  81. package/dest/RollupAbi.d.ts +107 -33
  82. package/dest/RollupAbi.d.ts.map +1 -1
  83. package/dest/RollupAbi.js +137 -40
  84. package/dest/RollupBytecode.d.ts +6 -9
  85. package/dest/RollupBytecode.d.ts.map +1 -1
  86. package/dest/RollupBytecode.js +6 -10
  87. package/dest/RollupStorage.d.ts +4 -4
  88. package/dest/RollupStorage.js +4 -4
  89. package/dest/SlashFactoryAbi.d.ts +17 -1
  90. package/dest/SlashFactoryAbi.d.ts.map +1 -1
  91. package/dest/SlashFactoryAbi.js +22 -1
  92. package/dest/SlashFactoryBytecode.d.ts +1 -1
  93. package/dest/SlashFactoryBytecode.js +1 -1
  94. package/dest/SlasherAbi.d.ts +17 -1
  95. package/dest/SlasherAbi.d.ts.map +1 -1
  96. package/dest/SlasherAbi.js +22 -1
  97. package/dest/SlasherBytecode.d.ts +1 -1
  98. package/dest/SlasherBytecode.d.ts.map +1 -1
  99. package/dest/SlasherBytecode.js +1 -1
  100. package/dest/SlashingProposerAbi.d.ts +17 -1
  101. package/dest/SlashingProposerAbi.d.ts.map +1 -1
  102. package/dest/SlashingProposerAbi.js +22 -1
  103. package/dest/SlashingProposerBytecode.d.ts +1 -1
  104. package/dest/SlashingProposerBytecode.d.ts.map +1 -1
  105. package/dest/SlashingProposerBytecode.js +1 -1
  106. package/dest/TestERC20Abi.d.ts +77 -19
  107. package/dest/TestERC20Abi.d.ts.map +1 -1
  108. package/dest/TestERC20Abi.js +101 -24
  109. package/dest/TestERC20Bytecode.d.ts +1 -1
  110. package/dest/TestERC20Bytecode.d.ts.map +1 -1
  111. package/dest/TestERC20Bytecode.js +1 -1
  112. package/dest/TokenPortalAbi.d.ts +17 -1
  113. package/dest/TokenPortalAbi.d.ts.map +1 -1
  114. package/dest/TokenPortalAbi.js +22 -1
  115. package/dest/TokenPortalBytecode.d.ts +1 -1
  116. package/dest/TokenPortalBytecode.js +1 -1
  117. package/dest/UniswapPortalAbi.d.ts +17 -1
  118. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  119. package/dest/UniswapPortalAbi.js +22 -1
  120. package/dest/UniswapPortalBytecode.d.ts +1 -1
  121. package/dest/UniswapPortalBytecode.js +1 -1
  122. package/dest/ValidatorSelectionLibAbi.d.ts +17 -1
  123. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  124. package/dest/ValidatorSelectionLibAbi.js +22 -1
  125. package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
  126. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  127. package/dest/checksum.d.ts +1 -1
  128. package/dest/checksum.js +1 -1
  129. package/dest/index.d.ts +40 -38
  130. package/dest/index.d.ts.map +1 -1
  131. package/dest/index.js +40 -38
  132. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
3
  */
4
- export declare const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c0516154606100625f395f6105c101525f818161066d015281816107c001528181610c420152610d9001525f61056a01526154605ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004615069565b610054565b604051901515815260200160405180910390f35b5f6100626101bb6020615145565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610195565b90505f61009787876101aa565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100cf82878786604001516104a9565b90506101208686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015160408801519193509150610554565b815160a001525f6101318383610665565b905080610151576040516313f8744360e31b815260040160405180910390fd5b5f61015d848685610766565b90508061017d576040516352ec174560e11b815260040160405180910390fd5b8180156101875750805b9a9950505050505050505050565b61019d61483b565b6101a5610f05565b905090565b6101b2614bb9565b6101bf60205f848661515c565b6101c891615183565b81526101d860406020848661515c565b6101e191615183565b60208201526101f460606040848661515c565b6101fd91615183565b604082015261021861021360e06060858761515c565b6117ec565b606082015261022f61021361016060e0858761515c565b60808201526102476102136101e0610160858761515c565b60a082015261025f6102136102606101e0858761515c565b6101008201526102786102136102e0610260858761515c565b6101208201526102916102136103606102e0858761515c565b60c08201526102a96102136103e0610360858761515c565b6101408201526102c26102136104606103e0858761515c565b60e08201526104605f5b601c811015610359575f5b6008811015610350576103038684876102f18260206151a0565b926102fe9392919061515c565b6118e0565b84610160015183601c811061031a5761031a6151b3565b60200201518260088110610330576103306151b3565b60200201818152505060208361034691906151a0565b92506001016102d7565b506001016102cc565b505f5b60288110156103ad576103768583866102f18260206151a0565b836101800151826028811061038d5761038d6151b3565b6020020181815250506020826103a391906151a0565b915060010161035c565b505f5b6103bc6001601c6151c7565b811015610412576103e18583866103d48260806151a0565b926102139392919061515c565b836101a0015182601b81106103f8576103f86151b3565b60200201526104086080836151a0565b91506001016103b0565b505f5b601c8110156104665761042f8583866102f18260206151a0565b836101c0015182601c8110610446576104466151b3565b60200201818152505060208261045c91906151a0565b9150600101610415565b506104788482856103d48260806151a0565b6101e08301526104898160806151a0565b905061049c8482856103d48260806151a0565b6102008301525092915050565b6104b1614dbe565b5f6104bf868686868561193c565b90835290506104ce81876119b9565b602084019190915290506104e181611b52565b604084019190915290506104f58682611bb3565b606084019190915290506105098682611c87565b6080840191909152905061051d8682611d12565b60a084019190915290506105318682611e80565b60c084019190915290506105458682611ef2565b5060e083015250949350505050565b5f6001808261059d866105988961059361058e8a7f00000000000000000000000000000000000000000000000000000000000000006151a0565b611f49565b611f67565b611f80565b90505f6105bb876105b68a61059361058e8b60016151a0565b611f99565b90505f5b7f000000000000000000000000000000000000000000000000000000000000000081101561064d575f61060a8b83815181106105fd576105fd6151b3565b6020026020010151611f49565b905061061a866105938684611f80565b955061062a856105938584611f80565b9450610636848b611f80565b9350610642838b611f99565b9250506001016105bf565b506106588484611fc8565b9998505050505050505050565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561073c575f86610160015182601c81106106ab576106ab6151b3565b602002015190505f6106bd8286611fd6565b9050806106dd576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106f4576106f46151b3565b602002015190506107058382611ff9565b955061072c886040015185601c8110610720576107206151b3565b602002015186836121a8565b945050505080600101905061066b565b505f610756866101800151865f01518760200151856121d3565b90508281145b9695505050505050565b5f6107946040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f6107a28460a00151612241565b90506107ac614e42565b6107b4614e61565b5f6107e48760e00151857f00000000000000000000000000000000000000000000000000000000000000006122a6565b805160c089015191925061080491610598908460015b6020020151611f67565b855260a08701516108309061081890612336565b825160c08a015161059391906105b6908660016107fa565b6020860152600183526101e08901516108489061239f565b82526001606086018190525f60808701525b602381116109005761087b610871875f01516123e9565b8760600151611f67565b84826046811061088d5761088d6151b3565b602002015260808601516101808b01516108d09190610598906108b16001866151c7565b602881106108c1576108c16151b3565b60200201518960600151611f67565b8660800181815250506108eb86606001518960800151611f67565b60608701526108f9816151da565b905061085a565b505f61090e602360016151a0565b90505b6028811161098f5761092961087187602001516123e9565b84826046811061093b5761093b6151b3565b602002015260808601516101808b015161095f9190610598906108b16001866151c7565b86608001818152505061097a86606001518960800151611f67565b6060870152610988816151da565b9050610911565b50606088015182600160200201526080880151826002602002015260a0880151826003602002015260c0880151826004602002015260e0880151826005602002015261010088015182600660200201526101208801518260076020020152610140880151826008602002015261016088015182600960200201526101a088015182600a602002015261018088015182600b60200201526101c088015182600c60200201526101e088015182600d602002015261020088015182600e602002015261022088015182600f60200201526102408801518260106020020152610260880151826011602002015261028088015182601260200201526102a088015182601360200201526102c088015182601460200201526102e08801518260156020020152610300880151826016602002015261032088015182601760200201526103408801518260186020020152610360880151826019602002015261038088015182601a60200201526103a088015182601b60200201526060890151610b139061239f565b6103808301526080890151610b279061239f565b6103a083015260a0890151610b3b9061239f565b6103c083015260c0890151610b4f9061239f565b6103e083015260e0890151610b639061239f565b610400830152610140890151610b789061239f565b610420830152610100890151610b8d9061239f565b610440830152610120890151610ba29061239f565b6104608301526060890151610bb69061239f565b6104808301526080890151610bca9061239f565b6104a083015260a0890151610bde9061239f565b6104c083015260c0890151610bf29061239f565b6104e083015260e0890151610c069061239f565b6105008301525f604086015260c0870151610c2090612401565b60608601525f5b610c336001601c6151c7565b811015610d78575f610c6660017f00000000000000000000000000000000000000000000000000000000000000006151c7565b82101590505f81610ccf576060880151610c969085610c868660026151a0565b601d81106107fa576107fa6151b3565b9050610ca1816123e9565b8684610caf602860016151a0565b610cb991906151a0565b60468110610cc957610cc96151b3565b60200201525b610cfe8860400151610598838f6101c00151876001610cee91906151a0565b601c81106107fa576107fa6151b3565b6040890152606088015160c08b0151610d179190611f67565b60608901526101a08c0151610d419084601b8110610d3757610d376151b3565b602002015161239f565b8584610d4f602860016151a0565b610d5991906151a0565b60468110610d6957610d696151b3565b60200201525050600101610c27565b505f610db4886060015187608001518c6101c00151887f000000000000000000000000000000000000000000000000000000000000000061240c565b6040870151909150610dcb9061059883855f6107fa565b604087018190526101c08b01515160c08a0151610df9929161059891610df19190611f67565b8560016107fa565b6040808801919091528051808201909152600181526002602082015283610e22601c60286151a0565b60468110610e3257610e326151b3565b6020020152604086015184610e49601c60286151a0565b60468110610e5957610e596151b3565b60200201526102008a01515f90610e6f9061239f565b90508084610e7f601c60286151a0565b610e8a9060016151a0565b60468110610e9a57610e9a6151b3565b602002015260e089015185610eb1601c60286151a0565b610ebc9060016151a0565b60468110610ecc57610ecc6151b3565b60200201525f610edc8587612506565b90505f610ee8836125d7565b9050610ef4828261264e565b9d9c50505050505050505050505050565b610f0d61483b565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f17aa68503600064d6f5a552d68b646ae6caf4dccec8bb0bfa21175cb731ee93381527f04116ba2cc7e4130cbf0f86a4820b38cdbc6dec554d856a1124a0ab8c70d4525818301526060830152825180840184527f0974c6b5dab656955dc2807ec95cf982132bc196ec302ebc982130c84047a69381527f165074e0eef40ab5bdf0731a57caf161e17869f4d88f76b771d2dc1260fa7c9a818301526080830152825180840184527f2dee2a6a033243c404469487277ba245612af075d74f361ff4e927ba0cb356c381527f17ba35b3d820d5c486fff3dab3105bc53f33da47aa517c841c9e2aca05fab0de8183015260a0830152825180840184527f28803f6f4692401c5e1bd8179e31440f4dd12f4b712ed7f9d879e10970bac70c81527f18a29ad57bb508408cd5204e33388de0979fd76f723c5c2db8be25b0cefe94758183015260c0830152825180840184527f19cf35761d86294f9ca14161fadc9ad6b1a9341c3007788c42e6bbb9af4a9a2c81527f1cfdaf3ff42a0528b44016c4eadd4f3c38a4fd5ca4674d5d6fad8100c2dc88798183015260e0830152825180840184527f2126c63aba3ad1c94c56f7d9f6404fa98c014378739444288447561f9f03fd2981527f0fe37649cd7c9c4d5715f6a9a6b7b0d4efbad8e46e8b76028aff5a48158b7b8b81830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f045a8fdc71e93f7dd5a2a7eeb6f86faad3f503d5748edf25d214584867f914c681527f1cd83caa9e869b1fb69ade8f72cf46743e5dc7fded7fa3bf68d71f79a8fba19481830152610140830152825180840184527f09514ea68c99cae27293f94ff703236e543e944c667eda4135a061de561925ec81527f171d9a960db918e2d2c406a095641df56243a261a321ea5440bcbf4e22477ea081830152610160830152825180840184527f2315dc1d419740df54efc5632c59d38b2712f0acdb9128206f46b29a1f7d0a6581527f0f761a293333b52f7a014637ac871c3db8675be7d75e94667c74f36917ef800281830152610180830152825180840184527f12af281668d26f228dac0a13d5b9938241c4ff8a55f75390c1d0f6d5f17376ea81527f135de164c171990861a117adb87dee8310c8ab6dc0078d07ca333861b050a6db818301526101a0830152825180840184527f0f07515b3aa09d2f2e6736f536127b383a0f422e1c30e84e3e3002cb63d447f781527f2c5cc1bf4ff81ba88b4fbe985f32e9a31dcf445406dbbc691cde471d023a2648818301526101c0830152825180840184527f2f26b8fdfc37ac6437c51ca7f0374c9ed5d14e49b0c2afa406074cf05ab3277081527f1e74fc06825b4c5d225456e717720973c3fc86dd1e2a0b852d615161f66c59b2818301526101e0830152825180840184527f141f9d1bed9e1bbb167af980d2ab02fc751f5449e3e673ed63c3d09d945e748281527f10a263e04a788e333e428cb28bb56db79bab787b7fe3b2baf333bb97b6e94c3581830152610200830152825180840184527f24f1ce241aa5836b5af78d69695fb2ea126c87f6c3be8a3defcd75d32758805181527f2deacbd9dbce1edc4b205203eb1e328a3db9270586522ebd0d06283a9fbd38f081830152610220830152825180840184527f15bb1141ca0cc27e6c2d61c431f5a5a2f3761f1acd22939b4599c3f32a74091e81527f18cf0f32af1affb704ad78b28554dffcc9a16360dac89c04ad0c14cb7f3f651681830152610240830152825180840184527f1fbca143dded3a67a05f5242c2dbb33a08a09e1241a3dc0e0119dc3b87312d0681527f066d3a6ce84e3a52ee45dc671da652353b4da4cf3f751417e159887e51b1dc8a81830152610260830152825180840184527f088a13e43746a8ff6d5038126dcdfdba8fbaef6ed11313b00eaf459d32dc432c81527f122c89d7d6bec450e5150f212f9cb68b6c8434e5680240f22978c24f5f04ac3d81830152610280830152825180840184527f1753a3a1f05e209629bcca6a1aa93da2f7d44636b6e89abbf26f02b8bc58dd9a81527f1bb550b000992ed673a09a9228a28202657b36e14a765bae9f20b48221242682818301526102a0830152825180840184527f16b26f825662a71bff8bce8761d5ec00cd194ddf509e8ad55590f913591af8df81527eb0b679e9defc6c79076adad79975c32b930bb0d1f8f97b232aa94c2b0aa60b818301526102c0830152825180840184527f0785f14e096e063ef261b6222babc9d6dd38363d30fb4c76f51406c94aa2475f81527f06b670a2068958e45d8d393b227e3ea8cb8c9e6a4d7e147a6d829ce0ace2babd818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f01bbe34848ca7b50f4bbd6ab4d295c457612b005facae667648698439270811f83527f036aa18f3a0dca36b4778d5d9f2de52a074b61bc60a2d458243f56864f065b8b908301526103a081019190915290565b61181360405180608001604052805f81526020015f81526020015f81526020015f81525090565b6080821461185e5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b60408051608081019091528061187760205f868861515c565b61188091615183565b815260209081019061189690604090868861515c565b61189f91615183565b81526020016118b260606040868861515c565b6118bb91615183565b81526020016118ce60806060868861515c565b6118d791615183565b90529392505050565b5f602082146119285760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b6044820152606401611855565b61193561058e8385615183565b9392505050565b61196f6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61197c87878787612852565b60408601919091526020850191909152908352925061199b8388612c85565b60808501919091526060840191909152919791965090945050505050565b6119c1614e9a565b5f6119ca614eb9565b8481526101408401805151602080840191909152815181015160408085019190915282518101516060808601919091529251830151608085015260e080880180515160a0870152805184015160c087015280518301519186019190915251909201516101008401529051611a5f91611a44918491016151f2565b60405160208183030381529060405280519060200120611f49565b9150611a6a82612d58565b6020850152835260015b611a806002601961523a565b811015611b0057611a9d83604051602001611a4491815260200190565b9250611aa883612d58565b85611ab4846002615145565b60198110611ac457611ac46151b3565b6020020186611ad4856002615145565b611adf9060016151a0565b60198110611aef57611aef6151b3565b602002019190915252600101611a74565b50611b1782604051602001611a4491815260200190565b91505f611b2383612d58565b85611b30600160196151c7565b60198110611b4057611b406151b3565b60200201919091525050509250929050565b611b5a614ed8565b5f805b601c811015611bac57611b7c84604051602001611a4491815260200190565b93505f611b8885612d58565b8584601c8110611b9a57611b9a6151b3565b60200201919091525050600101611b5d565b5090929050565b611bbb614ed8565b5f805b601c811015611c7e57611bcf614eb9565b8481525f5b6008811015611c385786610160015183601c8110611bf457611bf46151b3565b60200201518160088110611c0a57611c0a6151b3565b602002015182611c1b8360016151a0565b60098110611c2b57611c2b6151b3565b6020020152600101611bd4565b50611c4d81604051602001611a4491906151f2565b94505f611c5986612d58565b8685601c8110611c6b57611c6b6151b3565b6020020191909152505050600101611bbe565b50909391925050565b5f5f611c91614ef7565b8381525f5b6028811015611ce4578561018001518160288110611cb657611cb66151b3565b602002015182611cc78360016151a0565b60298110611cd757611cd76151b3565b6020020152600101611c96565b50611cf981604051602001611a44919061524d565b91505f611d0583612d58565b5096929550919350505050565b5f5f611d1c614f16565b8381525f5b611d2d6001601c6151c7565b811015611e6b57856101a0015181601b8110611d4b57611d4b6151b3565b60200201515182611d5d836004615145565b611d689060016151a0565b606d8110611d7857611d786151b3565b60200201526101a086015181601b8110611d9457611d946151b3565b60200201516020015182826004611dab9190615145565b611db69060026151a0565b606d8110611dc657611dc66151b3565b60200201526101a086015181601b8110611de257611de26151b3565b60200201516040015182611df7836004615145565b611e029060036151a0565b606d8110611e1257611e126151b3565b60200201526101a086015181601b8110611e2e57611e2e6151b3565b60200201516060015182611e43836004615145565b611e4e9060046151a0565b606d8110611e5e57611e5e6151b3565b6020020152600101611d21565b50611cf981604051602001611a449190615281565b5f5f611e8a614f35565b8381525f5b601c811015611edd57856101c0015181601c8110611eaf57611eaf6151b3565b602002015182611ec08360016151a0565b601d8110611ed057611ed06151b3565b6020020152600101611e8f565b50611cf981604051602001611a4491906152b5565b5f5f611efc614f54565b8381526101e085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611cf991611a44918491016152e9565b5f611f615f51602061540b5f395f51905f528361531c565b92915050565b5f5f51602061540b5f395f51905f528284099392505050565b5f5f51602061540b5f395f51905f528284089392505050565b5f5f51602061540b5f395f51905f52611fbf835f51602061540b5f395f51905f526151c7565b84089392505050565b5f6119358361059384612336565b81515f908190611fee908560015b6020020151611f80565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156120e0576120d6826105938784611f99565b91506001016120bf565b506120e9614f72565b5f5b600881101561214a575f848260088110612107576121076151b3565b6020020151905061211c816105938985611f99565b905061212781612336565b90508083836008811061213c5761213c6151b3565b6020020152506001016120eb565b505f5b600881101561219d575f878260088110612169576121696151b3565b60200201519050612186818484600881106107fa576107fa6151b3565b90506121928682611f80565b95505060010161214d565b5061075c8483611f67565b5f5f6121be600161059885610593896001611f99565b90506121ca8482611f67565b95945050505050565b5f6121dc614f91565b6121e7868285612d91565b6121f386868386612f3d565b6121ff86868386613125565b61220a868285613321565b612215868285613509565b6122218686838661384c565b61222c8682856140e6565b6122378682856144b1565b61075c81856147a6565b612249614ed8565b81815260015b601c8110156122a057612281826122676001846151c7565b601c8110612277576122776151b3565b6020020151612401565b8282601c8110612293576122936151b3565b602002015260010161224f565b50919050565b6122ae614f35565b836122c76122c282865f6020020151611f99565b612336565b82525f5b601c81101561232d575f6122e08560016151a0565b8211612302576122ff6122c2848885601c8110611fe457611fe46151b3565b90505b808461230f8460016151a0565b601d811061231f5761231f6151b3565b6020020152506001016122cb565b50509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061540b5f395f51905f520360808201525f51602061540b5f395f51905f5260a082015260205f60c08360055afa905080612394575f5ffd5b50505f519392505050565b604080518082019091525f8082526020820152604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611f61825f51602061540b5f395f51905f526151c7565b5f611f618283611f67565b5f601c5b80156124fb575f846124236001846151c7565b601c8110612433576124336151b3565b602002015190505f886124476001856151c7565b601c8110612457576124576151b3565b602002015190505f8761246b6001866151c7565b601c811061247b5761247b6151b3565b602002015190505f6124b661249a612493868d611f67565b6002611f67565b6105b6846105936124b08961059360018b611f99565b88611f99565b90506124d7816105936122c26124d18861059360018a611f99565b87611f80565b9050868511806124e557819a505b5050505050806124f49061532f565b9050612410565b509395945050505050565b604080518082019091525f80825260208201525f612526601c60286151a0565b6125319060026151a0565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125bf5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612566565b50805184526020810151602085015250505092915050565b604080518082019091525f80825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4782602001517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761263b91906151c7565b612645919061531c565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516127e49190615344565b5f60405180830381855afa9150503d805f811461281c576040519150601f19603f3d011682016040523d82523d5f602084013e612821565b606091505b50915091505f8180602001905181019061283b919061535a565b90508280156128475750805b979650505050505050565b5f808080806128628660036151a0565b61286d90600c6151a0565b67ffffffffffffffff81111561288557612885615379565b6040519080825280602002602001820160405280156128ae578160200160208202803683370190505b509050885f01515f1b815f815181106128c9576128c96151b3565b60200260200101818152505088602001515f1b816001815181106128ef576128ef6151b3565b60200260200101818152505088604001515f1b81600281518110612915576129156151b3565b60209081029190910101525f5b868110156129745788888281811061293c5761293c6151b3565b905060200201358282600361295191906151a0565b81518110612961576129616151b3565b6020908102919091010152600101612922565b50606089015151816129878860036151a0565b81518110612997576129976151b3565b60209081029190910181019190915260608a01510151816129b98860036151a0565b6129c49060016151a0565b815181106129d4576129d46151b3565b6020908102919091010152606089015160400151816129f48860036151a0565b6129ff9060026151a0565b81518110612a0f57612a0f6151b3565b60209081029190910101526060808a0151015181612a2e8860036151a0565b612a399060036151a0565b81518110612a4957612a496151b3565b602090810291909101015260808901515181612a668860036151a0565b612a719060046151a0565b81518110612a8157612a816151b3565b60209081029190910181019190915260808a0151015181612aa38860036151a0565b612aae9060056151a0565b81518110612abe57612abe6151b3565b602090810291909101015260808901516040015181612ade8860036151a0565b612ae99060066151a0565b81518110612af957612af96151b3565b602090810291909101015260808901516060015181612b198860036151a0565b612b249060076151a0565b81518110612b3457612b346151b3565b602090810291909101015260a08901515181612b518860036151a0565b612b5c9060086151a0565b81518110612b6c57612b6c6151b3565b60209081029190910181019190915260a08a0151015181612b8e8860036151a0565b612b999060096151a0565b81518110612ba957612ba96151b3565b602090810291909101015260a08901516040015181612bc98860036151a0565b612bd490600a6151a0565b81518110612be457612be46151b3565b602090810291909101015260a08901516060015181612c048860036151a0565b612c0f90600b6151a0565b81518110612c1f57612c1f6151b3565b602002602001018181525050612c3f81604051602001611a44919061538d565b9150612c4a82612d58565b6040805160208101869052929750909550612c659101611a44565b91505f612c7183612d58565b50959a949950949750909550919350505050565b5f5f5f612c90614fb0565b8581526101008581018051516020808501919091528151810151604080860191909152825181015160608087019190915292518301516080860152610120808a0180515160a0880152805184015160c080890191909152815184015160e089015290518501519587019590955293890180515194860194909452835182015161014086015283518101516101608601529251909101516101808401529051612d3e91611a44918491016153c2565b9150612d4982612d58565b90979096509194509092505050565b5f80826fffffffffffffffffffffffffffffffff8116608082901c612d7c82611f49565b9450612d8781611f49565b9350505050915091565b5f612d9d84600761480b565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612dfe612df8612dd2856003611f99565b610593612ded612de28b5f61480b565b6105938c601c61480b565b6105938b601b61480b565b83611f67565b9050612e7f612e74612e5b612e42612e2985610598612e1e8d600261480b565b6105938e601b61480b565b610598612e378c600361480b565b6105938d601c61480b565b610598612e508b600461480b565b6105938c601d61480b565b610598612e698a600561480b565b6105938b601e61480b565b61059888600161480b565b9050612e9e81610598612e93866001611f99565b6105938a602661480b565b9050612eaa8184611f67565b9050612eb68185611f67565b8552505f9050612ef0612ee6612edb612ed088601b61480b565b61059889601e61480b565b6105b688602361480b565b610598875f61480b565b9050612f0181610593846002611f99565b9050612f1281610593846001611f99565b9050612f1e8183611f67565b9050612f2a8184611f67565b9050808460015b60200201525050505050565b5f5f5f612f73612f69612f5189601b61480b565b610598612f5f8b601161480b565b8a60600151611f67565b8760800151611f80565b9050612fac81610593612fa2612f8a8b601c61480b565b610598612f988d601261480b565b8c60600151611f67565b8960800151611f80565b9050612fd181610593612fa2612fc38b601d61480b565b610598612f988d601361480b565b9050612ff681610593612fa2612fe88b601e61480b565b610598612f988d601461480b565b92505f905061301a612f6961300c89601b61480b565b610598612f5f8b600d61480b565b905061303f81610593612fa26130318b601c61480b565b610598612f988d600e61480b565b905061306481610593612fa26130568b601d61480b565b610598612f988d600f61480b565b905061308981610593612fa261307b8b601e61480b565b610598612f988d601061480b565b91505f90506130b06130aa61309f89601f61480b565b6105988a601961480b565b84611f67565b90506130e5816105b66130df6130c78b602761480b565b6105986130d58d601a61480b565b8c60a00151611f67565b85611f67565b90506130f18185611f67565b6040860152505f6131146130df61310989601a61480b565b6105938a602761480b565b606090950194909452505050505050565b5f5f61318361316b61315361313e612fa28a601561480b565b61059861314c8b601661480b565b8a51611f67565b6105986131618a601761480b565b8960200151611f67565b61059861317989601861480b565b8860400151611f67565b91505f6131ba6131a161319789601b61480b565b8860800151611f80565b6105986131af8a600361480b565b6105938b602361480b565b90505f6131e36131cb89601c61480b565b6105986131d88b5f61480b565b6105938c602461480b565b90505f61320d6131f48a601d61480b565b6105986132028c600161480b565b6105938d602561480b565b905061324c61323461322685610598868d5f0151611f67565b610598848c60200151611f67565b6105986132428c600461480b565b8b60400151611f67565b93505050505f6132606130aa88602061480b565b90505f6132716130aa89602061480b565b90505f6132a96132906132858b602261480b565b6105988c600661480b565b6105b661329e8c602261480b565b6105938d600661480b565b90505f6132cd6132c76132bc8789611f67565b6105938d602061480b565b83611f99565b90506132d98188611f67565b90505f6133016132f36132ed8d600661480b565b87611f67565b6105b66132ed8e602161480b565b60808a018390529050808960055b60200201525050505050505050505050565b5f61332d5f6001611f99565b90505f61333b5f6002611f99565b90505f6133495f6003611f99565b90505f61336561335a88601c61480b565b6105b689601b61480b565b90505f61338161337689601d61480b565b6105b68a601c61480b565b90505f61339d6133928a601e61480b565b6105b68b601d61480b565b90505f6133b96133ae8b602361480b565b6105b68c601e61480b565b9050836133ca81610593818b611f80565b90506133da81610593878a611f80565b90506133ea816105938789611f80565b90506133fb816105938d600861480b565b9050613407818a611f67565b60c08b0152508261341c81610593818b611f80565b905061342c81610593868a611f80565b905061343c816105938689611f80565b905061344d816105938d600861480b565b9050613459818a611f67565b60e08b0152508161346e81610593818b611f80565b905061347e81610593858a611f80565b905061348e816105938589611f80565b905061349f816105938d600861480b565b90506134ab818a611f67565b6101008b015250806134c181610593818b611f80565b90506134d181610593848a611f80565b90506134e1816105938489611f80565b90506134f2816105938d600861480b565b90506134fe818a611f67565b9050808a600961330f565b6135426040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61354d84601c61480b565b815261355a84601d61480b565b602082015261356a84602361480b565b604082015261357a84602661480b565b606082015261358a84602561480b565b608082015261359a84602461480b565b60a08201525f6135ab85600261480b565b90505f6135b8865f61480b565b90505f6135cc8460400151855f0151611f99565b90505f6135e185602001518660200151611f67565b606086015190915086905f906135f79080611f67565b90505f61361561360f89602001518a60600151611f67565b88611f67565b90505f61363461362d8a60a001518b60400151611f80565b8a51611f80565b90506136436132ed8288611f67565b905061366461365e6136586124b08487611f99565b84611f80565b83611f80565b905061368c6136816136768387611f67565b6105938f600961480b565b61059360018a611f99565b6101408c015250505050602085015160808601515f916136ab91611f80565b90505f6136c96136bf886060015188611f67565b8860200151611f99565b90505f6136ed6136d98487611f67565b6105986130df8b60a001518c5f0151611f99565b905061371561370a6136ff838c611f67565b6105938e600961480b565b610593600189611f99565b6101608b0152505f9150613736905061372f836011611f80565b8751611f67565b90505f6137438384611f80565b905061374f8182611f80565b90505f61375d836009611f67565b90506137866137806130aa6137798b60a001518c5f0151611f80565b8b51611f80565b82611f99565b60c089018190525f906137a19061360f90613676908d611f67565b90506137b48b600a602002015182611f80565b6101408c0152505086515f92506137db915061372f906137d49080611f80565b8851611f80565b90505f61381b6137f6836105938a5f01518b60a00151611f99565b60208901516105b6906138099080611f80565b6105938b602001518c60800151611f80565b905061383889600b602002015161059861360f613676858d611f67565b89600b602002015250505050505050505050565b6138e0604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6139156138fc6138f187601b61480b565b61059388602461480b565b61059861390a88602361480b565b61059389601c61480b565b815261395a61394f61393661392b88601b61480b565b61059389601e61480b565b61059861394489601c61480b565b6105938a601d61480b565b6105b687602561480b565b6040820181905261396f90600160441b611f67565b60408201819052613985906105b687602661480b565b6040820181905281516139989190611f80565b604082018190526139ae9061059387600561480b565b604082015280516139c390600160441b611f67565b8082526139e3906105986139d888602361480b565b61059389602461480b565b808252602082018190526139ff906105b6612ed088601d61480b565b60208201819052613a159061059387600461480b565b6020820152805160608201819052613a329061059887601e61480b565b60608201819052613a56906105b6613a4b88602561480b565b61059889602661480b565b60608201819052613a6b90610593875f61480b565b8160600181815250505f613a94613a8a83602001518460400151611f80565b8360600151611f80565b9050613aa58161059388600361480b565b9050613abd613ab587602461480b565b614000611f67565b60808301819052613ad39061059888602361480b565b60808301819052613ae690614000611f67565b60808301819052613afc9061059888601d61480b565b60808301819052613b0f90614000611f67565b60808301819052613b259061059888601c61480b565b60808301819052613b3890614000611f67565b60808301819052613b4e9061059888601b61480b565b60808301819052613b64906105b688601e61480b565b60808301819052613b7a9061059388600561480b565b6080830152613b8d613ab587602561480b565b60a08301819052613ba39061059888602461480b565b60a08301819052613bb690614000611f67565b60a08301819052613bcc9061059888602361480b565b60a08301819052613bdf90614000611f67565b60a08301819052613bf59061059888601e61480b565b60a08301819052613c0890614000611f67565b60a08301819052613c1e9061059888601d61480b565b60a08301819052613c34906105b688602661480b565b60a08301819052613c4990610593885f61480b565b60a0830181905260808301515f91613c619190611f80565b9050613c728161059389600461480b565b9050613c8c613c8288601d61480b565b8760400151611f67565b60c08401819052613ca5906105986131618a601c61480b565b60c08401819052613cc590610598613cbe8a601b61480b565b8951611f67565b60c08401819052613cdb9061059889600161480b565b60c0840181905260e08401819052613cf8906105b689601e61480b565b60c0840152613d0b61335a88602361480b565b610140840152613d2a613d1f88602661480b565b6105b689601e61480b565b610120840152610140830151613d4f90613d449080611f67565b846101400151611f99565b610280840152610140830151613d9190613d8690613d7f9061059360015f51602061540b5f395f51905f526151c7565b6001611f80565b846101200151611f67565b6101608401819052613dc890613dba90610593613daf8b600261480b565b6105938c600361480b565b6105936132ed8a600a61480b565b6101a0860152610280830151613dea90613dba90610593613daf8b600261480b565b6101c086015260c0830151613e1290610593613e078a600261480b565b6105938b600361480b565b6101e08401525f613e31613e2789601e61480b565b8560e00151611f99565b9050613e406137808283611f67565b6101a0850152613e5461317989602561480b565b6101008501819052613e7890610598613e6e8b602461480b565b8a60200151611f67565b6101008501819052613e929061059861314c8b602361480b565b610100850152613eb1613ea689602661480b565b856101000151611f99565b6101008501525f613ec66133928a602561480b565b9050613f1a613ef4612df8613d7f88610140015160015f51602061540b5f395f51905f5261059391906151c7565b610593613d7f88610100015160015f51602061540b5f395f51905f5261059391906151c7565b610180860152610100850151613f3f90613f349080611f67565b866101000151611f99565b6101c0860152610180850151613f7290613f5e906105938c600761480b565b610593613f6c8c600a61480b565b89611f67565b6101e0880152610280850151613f9190613f5e906105938c600761480b565b6102008801526101c0850151613fb090613f5e906105938c600761480b565b6102208801526101a0850151613fcb906105938b600761480b565b610200860152613fea613fdf8a602461480b565b6105b68b601c61480b565b610220860152610140850151614029906133929061401e90613d7f9061059360015f51602061540b5f395f51905f526151c7565b876102200151611f67565b61024086018190526101e0860151610260870181905261406091610598906105936140558e600561480b565b6105938f600261480b565b610260860181905260c08601516140839190610598906105936140558e5f61480b565b610260860181905261020086015161409b9190611f80565b61026086018190526140b1906136589086611f80565b6102a086018190526140cb90610593613f6c8c600a61480b565b6102a0860181905287600c6020020152505050505050505050565b61415c6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61417561416a85601b61480b565b61059886600261480b565b815261419061418585601c61480b565b61059886600361480b565b60208201526141ae6141a385601d61480b565b61059886600461480b565b60408201526141cc6141c185601e61480b565b61059886600561480b565b606082015280516141fe906141f7906141f0906141e99080611f67565b8451611f67565b8351611f67565b8251611f67565b6080820152602081015161423c90614232906142289061421e9080611f67565b8460200151611f67565b8360200151611f67565b8260200151611f67565b60a0820152604081015161427a90614270906142669061425c9080611f67565b8460400151611f67565b8360400151611f67565b8260400151611f67565b60c082015260608101516142b8906142ae906142a49061429a9080611f67565b8460600151611f67565b8360600151611f67565b8260600151611f67565b60e0820152608081015160a08201516142d19190611f80565b61010082015260c081015160e08201516142eb9190611f80565b61012082015260a081015161430f906143049080611f80565b826101200151611f80565b61014082015260e0810151614333906143289080611f80565b826101000151611f80565b6101608201526101208101516143499080611f80565b6101e0820181905261436a9061435f9080611f80565b826101600151611f80565b6101e08201526101008101516143809080611f80565b6101a082018190526143a1906143969080611f80565b826101400151611f80565b6101a082018190526101608201516143b891611f80565b6101808201526101408101516101e08201516143d49190611f80565b6101c08201526143e8612df885600b61480b565b61020082018190526102408401516101808301516144139261059891610593906105b68a602361480b565b83601260200201526144438360136020020151610598836102000151610593856101a001516105b68a602461480b565b83601360200201526144738360146020020151610598836102000151610593856101c001516105b68a602561480b565b83601460200201526144a38360156020020151610598836102000151610593856101e001516105b68a602661480b565b836015602002015250505050565b6145036040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145387f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f49565b81526020016145667f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f49565b81526020016145937e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f49565b81526020016145c17f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f49565b905290506145de6145d386601b61480b565b61059887600261480b565b61012083018190526146129061460790613d86906145fc9080611f67565b856101200151611f67565b836101200151611f67565b825261461f85601c61480b565b602083015261462f85601d61480b565b604083015261463f85601e61480b565b60608301528151602083015161466791613a8a9161465d9190611f80565b8460400151611f80565b608083015261467a6130aa86600c61480b565b610140830152815161469b9061469190835f6107fa565b8360800151611f80565b60a08301526146c784601660200201516105988461014001516105938660a001516105b68b602361480b565b6102c085015260208201516146e290614691908360016107fa565b60c083015261470e84601760200201516105988461014001516105938660c001516105b68b602461480b565b6102e0850152604082015161472990614691908360026107fa565b60e083015261475584601860200201516105988461014001516105938660e001516105b68b602561480b565b610300850152606082015161477090614691908360036107fa565b61010083015261479e84601960200201516105988461014001516105938661010001516105b68b602661480b565b846019612f31565b5f6147b2818481611fe4565b905060015b601a811015614804576147fa826105988684601a81106147d9576147d96151b3565b6020020151866147ea6001876151c7565b601981106107fa576107fa6151b3565b91506001016147b7565b5092915050565b5f8282602781111561481f5761481f6153f6565b6028811061482f5761482f6151b3565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161487460405180604001604052805f81526020015f81525090565b815260200161489460405180604001604052805f81526020015f81525090565b81526020016148b460405180604001604052805f81526020015f81525090565b81526020016148d460405180604001604052805f81526020015f81525090565b81526020016148f460405180604001604052805f81526020015f81525090565b815260200161491460405180604001604052805f81526020015f81525090565b815260200161493460405180604001604052805f81526020015f81525090565b815260200161495460405180604001604052805f81526020015f81525090565b815260200161497460405180604001604052805f81526020015f81525090565b815260200161499460405180604001604052805f81526020015f81525090565b81526020016149b460405180604001604052805f81526020015f81525090565b81526020016149d460405180604001604052805f81526020015f81525090565b81526020016149f460405180604001604052805f81526020015f81525090565b8152602001614a1460405180604001604052805f81526020015f81525090565b8152602001614a3460405180604001604052805f81526020015f81525090565b8152602001614a5460405180604001604052805f81526020015f81525090565b8152602001614a7460405180604001604052805f81526020015f81525090565b8152602001614a9460405180604001604052805f81526020015f81525090565b8152602001614ab460405180604001604052805f81526020015f81525090565b8152602001614ad460405180604001604052805f81526020015f81525090565b8152602001614af460405180604001604052805f81526020015f81525090565b8152602001614b1460405180604001604052805f81526020015f81525090565b8152602001614b3460405180604001604052805f81526020015f81525090565b8152602001614b5460405180604001604052805f81526020015f81525090565b8152602001614b7460405180604001604052805f81526020015f81525090565b8152602001614b9460405180604001604052805f81526020015f81525090565b8152602001614bb460405180604001604052805f81526020015f81525090565b905290565b6040518061022001604052805f81526020015f81526020015f8152602001614bfe60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c2a60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c5660405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c8260405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cae60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cda60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d0660405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3260405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3f614fcf565b8152602001614d4c614ffd565b8152602001614d5961501c565b8152602001614d66614ed8565b8152602001614d9260405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614bb460405180608001604052805f81526020015f81526020015f81526020015f81525090565b604051806101000160405280614dfd6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001614e0a614e9a565b8152602001614e17614ed8565b8152602001614e24614ed8565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b604080518082019091525f8082526020820152815260200190600190039081614e715790505090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614fe7614f72565b815260200190600190039081614fdf5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b61505360405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020019060019003908161502c5790505090565b5f5f5f5f6040858703121561507c575f5ffd5b843567ffffffffffffffff811115615092575f5ffd5b8501601f810187136150a2575f5ffd5b803567ffffffffffffffff8111156150b8575f5ffd5b8760208284010111156150c9575f5ffd5b60209182019550935085013567ffffffffffffffff8111156150e9575f5ffd5b8501601f810187136150f9575f5ffd5b803567ffffffffffffffff81111561510f575f5ffd5b8760208260051b8401011115615123575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611f6157611f61615131565b5f5f8585111561516a575f5ffd5b83861115615176575f5ffd5b5050820193919092039150565b80356020831015611f61575f19602084900360031b1b1692915050565b80820180821115611f6157611f61615131565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611f6157611f61615131565b5f600182016151eb576151eb615131565b5060010190565b5f8183825b60098110156152165781518352602092830192909101906001016151f7565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261524857615248615226565b500490565b5f8183825b6029811015615271578151835260209283019290910190600101615252565b5050506105208201905092915050565b5f8183825b606d8110156152a5578151835260209283019290910190600101615286565b505050610da08201905092915050565b5f8183825b601d8110156152d95781518352602092830192909101906001016152ba565b5050506103a08201905092915050565b5f8183825b600581101561530d5781518352602092830192909101906001016152ee565b50505060a08201905092915050565b5f8261532a5761532a615226565b500690565b5f8161533d5761533d615131565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561536a575f5ffd5b81518015158114611935575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156153b7578151845260209384019390910190600101615399565b509195945050505050565b5f8183825b600d8110156153e65781518352602092830192909101906001016153c7565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a26469706673582212206057ab0dba40ab45b1ba74cacddc0bcc199ab1e122db26e0843b64b9a2cba9f064736f6c634300081b0033";
4
+ export declare const HonkVerifierBytecode = "0x60e0604052348015600e575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c05161507f61005a5f395f61057101525f818161061d01528181610bf60152610c9201525f61051a015261507f5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ca1565b610054565b604051901515815260200160405180910390f35b5f6100626101b86020614d79565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610198565b90505f61009787876101ad565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100d5828787865f015187604001516001610455565b90506101238686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015190925090506001610504565b815160a001525f6101348383610615565b905080610154576040516313f8744360e31b815260040160405180910390fd5b5f610160848685610716565b905080610180576040516352ec174560e11b815260040160405180910390fd5b81801561018a5750805b9a9950505050505050505050565b6101a06147a5565b6101a8610f8a565b905090565b6101b5614922565b6101ca6101c560805f8587614d90565b611872565b81526101de6101c561010060808587614d90565b60208201526101f66101c56101806101008587614d90565b604082015261020e6101c56102006101808587614d90565b60a08201526102266101c56102806102008587614d90565b60c082015261023e6101c56103006102808587614d90565b60608201526102566101c56103806103008587614d90565b60e082015261026e6101c56104006103808587614d90565b60808201526104005f5b601c811015610305575f5b60088110156102fc576102af86848761029d826020614db7565b926102aa93929190614d90565b611947565b84610100015183601c81106102c6576102c6614dca565b602002015182600881106102dc576102dc614dca565b6020020181815250506020836102f29190614db7565b9250600101610283565b50600101610278565b505f5b60288110156103595761032285838661029d826020614db7565b836101200151826028811061033957610339614dca565b60200201818152505060208261034f9190614db7565b9150600101610308565b505f5b6103686001601c614dde565b8110156103be5761038d858386610380826080614db7565b926101c593929190614d90565b83610140015182601b81106103a4576103a4614dca565b60200201526103b4608083614db7565b915060010161035c565b505f5b601c811015610412576103db85838661029d826020614db7565b83610160015182601c81106103f2576103f2614dca565b6020020181815250506020826104089190614db7565b91506001016103c1565b50610424848285610380826080614db7565b610180830152610435816080614db7565b9050610448848285610380826080614db7565b6101a08301525092915050565b61045d6149df565b5f61046d888888888888876119a3565b908352905061047c81896119f9565b6020840191909152905061048f81611b94565b604084019190915290506104a38882611bf5565b606084019190915290506104b78882611cc9565b608084019190915290506104cb8882611d54565b60a084019190915290506104df8882611ec2565b60c084019190915290506104f38882611f34565b5060e0830152509695505050505050565b5f6001808261054d866105488961054361053e8a7f0000000000000000000000000000000000000000000000000000000000000000614db7565b611f8b565b611fa9565b611fc2565b90505f61056b876105668a61054361053e8b6001614db7565b611fdb565b90505f5b7f00000000000000000000000000000000000000000000000000000000000000008110156105fd575f6105ba8b83815181106105ad576105ad614dca565b6020026020010151611f8b565b90506105ca866105438684611fc2565b95506105da856105438584611fc2565b94506105e6848b611fc2565b93506105f2838b611fdb565b92505060010161056f565b50610608848461200a565b9998505050505050505050565b5f806001815b7f00000000000000000000000000000000000000000000000000000000000000008110156106ec575f86610100015182601c811061065b5761065b614dca565b602002015190505f61066d8286612018565b90508061068d576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106a4576106a4614dca565b602002015190506106b58382612035565b95506106dc886040015185601c81106106d0576106d0614dca565b602002015186836121e4565b945050505080600101905061061b565b505f610706866101200151865f015187602001518561220f565b90508281145b9695505050505050565b5f61075d6040518061012001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61076b8460a0015161227d565b9050610775614a38565b61077d614a57565b60e086015161079c9061079790855f5b6020020151611fdb565b6122e2565b60a085015260e08601516107bb9061079790855f5b6020020151611fc2565b60c080860182905260a0860151908801516107da926105489190611fa9565b845260a0860151610808906107ee906122e2565b6105438660a001516105668a60c001518960c00151611fa9565b6020850152600182526101808801516108209061234b565b81526001606085018190525f60808601525b602381116108d857610853610849865f015161238a565b8660600151611fa9565b83826046811061086557610865614dca565b602002015260808501516101208a01516108a8919061054890610889600186614dde565b6028811061089957610899614dca565b60200201518860600151611fa9565b8560800181815250506108c385606001518860800151611fa9565b60608601526108d181614df1565b9050610832565b505f6108e660236001614db7565b90505b6028811161096757610901610849866020015161238a565b83826046811061091357610913614dca565b602002015260808501516101208a0151610937919061054890610889600186614dde565b85608001818152505061095285606001518860800151611fa9565b606086015261096081614df1565b90506108e9565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b60200201528751610ae89061234b565b6103808201526020880151610afc9061234b565b6103a08201526040880151610b109061234b565b6103c08201526060880151610b249061234b565b6103e08201526080880151610b389061234b565b61040082015260e0880151610b4c9061234b565b61042082015260a0880151610b609061234b565b61044082015260c0880151610b749061234b565b6104608201528751610b859061234b565b6104808201526020880151610b999061234b565b6104a08201526040880151610bad9061234b565b6104c08201526060880151610bc19061234b565b6104e08201526080880151610bd59061234b565b610500820152606086015160808501516101608a01515f92610c1a929091877f00000000000000000000000000000000000000000000000000000000000000006123a2565b805160a0870151919250610c2d91611fa9565b604086018190526101608a01515160c0890151610c5d929161054891610c539190611fa9565b8860c00151611fa9565b604086015260c0870151610c70906124bd565b60608601525f5b610c836001601c614dde565b811015610e85575f610cb660017f0000000000000000000000000000000000000000000000000000000000000000614dde565b821015905080610e2b57610ce96107978a60e0015188856001610cd99190614db7565b601c811061078d5761078d614dca565b60a088015260e0890151610d17906107979088610d07866001614db7565b601c81106107b1576107b1614dca565b60c0880152606087015160a0880151610d309190611fa9565b60e0880152606087015160c08a0151610d4c91610c5391611fa9565b6101008801819052610d6e90610d619061238a565b6105488960e0015161238a565b8583610d7c60286001614db7565b610d869190614db7565b60468110610d9657610d96614dca565b60200201526101008701516101608c01515f91610dd291610db8866001614db7565b601c8110610dc857610dc8614dca565b6020020151611fa9565b9050610dee816105488a60e0015187876001610db89190614db7565b9050610dfe886040015182611fc2565b6040890152606088015160c08b0151610e2491610e1a91611fa9565b8b60c00151611fa9565b6060890152505b610e4f8b610140015183601b8110610e4557610e45614dca565b602002015161234b565b8483610e5d60286001614db7565b610e679190614db7565b60468110610e7757610e77614dca565b602002015250600101610c77565b5060408051808201909152600181526002602082015282610ea8601c6028614db7565b60468110610eb857610eb8614dca565b6020020152604085015183610ecf601c6028614db7565b60468110610edf57610edf614dca565b60200201526101a08901515f90610ef59061234b565b90508083610f05601c6028614db7565b610f10906001614db7565b60468110610f2057610f20614dca565b602002015260e088015184610f37601c6028614db7565b610f42906001614db7565b60468110610f5257610f52614dca565b60200201525f610f6284866124c8565b90505f610f6e8361258e565b9050610f7a82826125d4565b9c9b505050505050505050505050565b610f926147a5565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f1f425781e8ef39130b9af37c4df3857dbb57f2c90d773a08dd7bb7223b9c769881527f0b56e6215d3442928b7fd2700b92c9e8f3db72528391ea9c3dc5b88100b958c8818301526060830152825180840184527f199782d5140a68faee5649fa0c0933ae33d898e4ef9d26c8b26bbae6e7544cc581527f0e9d20233f97e641a42027a82d82bfce00c1bac9b53bcf5abf8ec4ee8f57e61e818301526080830152825180840184527f22e9b5f48c858336b414888d3f8033059991647ecf9dd3b832ca9a6f233341db81527f116a43b4e5b709bea4a365956014caa84cf282dc638950aacbada1441d959b928183015260a0830152825180840184527f18ae7c4b61cab36b249cb55057e45bd5db24e439dcab7c418f3e7fa7afa7d7d181527f017d54b734ef59f5862640014bb25dd0ccea353a3f0162b894e88e1c76591daf8183015260c0830152825180840184527f057038a56e9cbebbbdee44328a472c92f427492675502989e327a0429ccf8ef681527f22e2ec127490ecdc92f161ce9450ea748c19e51c0db29111a2704e630f690fce8183015260e0830152825180840184527f2948f25ca9fdd65741a9721edb32a72c0ee12ff54a74a94714de246dd5b27fbb81527f1fafc1bb412198f7cf48b164a6621747f66f8d05891d421f6cb8a0abb48d05f381830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f267cfcb47328b7ae6ae044add074918836d0ee7bcd39ced6454cd7f5afecbd1481527f2cbf9b2a5c0fd7af4913b00bb7b922b2553530f7f96d3553f777d9a82603bf5581830152610140830152825180840184527f2b99286034390238d2f87e4a340ec8b43f63e68f4074539df890f4a7c99d842781527f21fcf1b038a7607d36b729d9bb8f7a2b1d9baf7a726a34ad30b3958b7704412081830152610160830152825180840184527f2b04321531676dac0c855123ea0834800a44730384b0f03c77a884e6b896ad5c81527f06f2a41ce4704c3c8f461b27c3d8b5647dd528aed884e5266da0e8a71e0cc73081830152610180830152825180840184527f04307c6f14c1ef3d0b77cb3ae4ca3f9d3499300f88550a76483ec705fb6339e481527f2e6a6c88b20eecd02c1ec2b0154d3bba59b0f429aac1956ee81cea28214b7196818301526101a0830152825180840184527f27188ec9792bf29d81ceec5c249bb2b736ae0844be6954e55b71e6d1cc83dbd581527f1f35519c1d02549cb1883916501985cee5acd60d65423098d7bfbedb060d5c15818301526101c0830152825180840184527f0d131d17a863d1b8c580de3daaa9b2db4bafec94bc8cf7f938b2862897ecfcb781527f239a4ed4df51b3e7b8d0ed6601d6b3ddd36f8cfe5a8dca6c0bf519fd053c8e52818301526101e0830152825180840184527f05a0d344dcbd02bea6acff5c011d642f7904a1869cae2f2058163f07305bc0ce81527f23ec1edcaa244a5e10bb67f327a64b7d763b6ebf703a9efab4b43f3d025b4b7581830152610200830152825180840184527f26a043c8feec2b650aca9a4d01c03695028f8141a8dbbb2f324a7d7992ded6b181527f1d2423009b702d2a7407db0f12f77b00472c0a6f67b585bc2293ff3e6c1cc9c181830152610220830152825180840184527f0fc5bf9cc0c2731f10fbcd23c51651d8ac79f4f2913ea450a9bc9650fb05cb3881527f1eb327112d3d4680915309eb953d82ac47921027dc89ba914f83d39663eb425b81830152610240830152825180840184527f14cc2150916f412892dcd75efcc5aa2da33214ed3452e23cf604588acddeea4481527f1134a39331aa8bb2cf2a27dd82668aa34aa6f84695df48fd252db9447e97390181830152610260830152825180840184527f193d9924725390a4f0f09086e3b578a35e8fc91be6a8dc43345058d5187b2d0b81527f023e6d2627aa62fb44d78e3637f34ab51f82ad5bf90f7d1706ff85e6588fa85e81830152610280830152825180840184527f0fe7cf270c80d8c953574b9cd045788a23620a606eca8616fd7b0817272974b981527f026512584f1ffd93699d7c3d10cc1033f5d22a485056525a06b04f699345838e818301526102a0830152825180840184527f0f17eebdd648a22a2534c6f62afaf6c7825fa2ae41f98d398eec5758e92b5fa281527f0645f63ec34efb355d9c56043a633de3f41fd9af61a7d3ecf46a87e203007cc6818301526102c0830152825180840184527f0525a86d809801993377e82c6810d7124bb2f1995759aba65bf60b0c4fda8f3181527f1b8f05120eb2c53b2cad8099860699db5fc9dce89d1de77360d25f3b83d83baa818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f10e0775469485c408ab9b0f95d6b3fd5dcaeced274c1a3ba0105915195dc046283527f21369c8875c1b7ede3133157e0412ce94cbf2ad6e7b5c3e666fb0b04fc5cf855908301526103a081019190915290565b61187a614a85565b608082146118c55760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b6040805160808101909152806118de60205f8688614d90565b6118e791614e09565b81526020908101906118fd906040908688614d90565b61190691614e09565b8152602001611919606060408688614d90565b61192291614e09565b8152602001611935608060608688614d90565b61193e91614e09565b90529392505050565b5f6020821461198f5760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b60448201526064016118bc565b61199c61053e8385614e09565b9392505050565b6119ab614aa9565b5f6119ba8989898989896127d8565b6040860191909152602085019190915290835292506119d9838a612bfa565b608085019190915260608401919091529199919850909650505050505050565b611a01614ad9565b5f611a0a614af8565b84815260e0848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608080870191909152880180515160a0870152805183015160c08701528051820151948601949094529251909101516101008401529051611aa191611a8691849101614e26565b60405160208183030381529060405280519060200120611f8b565b9150611aac82612cc5565b6020850152835260015b611ac260026019614e6e565b811015611b4257611adf83604051602001611a8691815260200190565b9250611aea83612cc5565b85611af6846002614d79565b60198110611b0657611b06614dca565b6020020186611b16856002614d79565b611b21906001614db7565b60198110611b3157611b31614dca565b602002019190915252600101611ab6565b50611b5982604051602001611a8691815260200190565b91505f611b6583612cc5565b85611b7260016019614dde565b60198110611b8257611b82614dca565b60200201919091525050509250929050565b611b9c614b17565b5f805b601c811015611bee57611bbe84604051602001611a8691815260200190565b93505f611bca85612cc5565b8584601c8110611bdc57611bdc614dca565b60200201919091525050600101611b9f565b5090929050565b611bfd614b17565b5f805b601c811015611cc057611c11614af8565b8481525f5b6008811015611c7a5786610100015183601c8110611c3657611c36614dca565b60200201518160088110611c4c57611c4c614dca565b602002015182611c5d836001614db7565b60098110611c6d57611c6d614dca565b6020020152600101611c16565b50611c8f81604051602001611a869190614e26565b94505f611c9b86612cc5565b8685601c8110611cad57611cad614dca565b6020020191909152505050600101611c00565b50909391925050565b5f5f611cd3614b36565b8381525f5b6028811015611d26578561012001518160288110611cf857611cf8614dca565b602002015182611d09836001614db7565b60298110611d1957611d19614dca565b6020020152600101611cd8565b50611d3b81604051602001611a869190614e81565b91505f611d4783612cc5565b5096929550919350505050565b5f5f611d5e614b55565b8381525f5b611d6f6001601c614dde565b811015611ead5785610140015181601b8110611d8d57611d8d614dca565b60200201515182611d9f836004614d79565b611daa906001614db7565b606d8110611dba57611dba614dca565b602002015261014086015181601b8110611dd657611dd6614dca565b60200201516020015182826004611ded9190614d79565b611df8906002614db7565b606d8110611e0857611e08614dca565b602002015261014086015181601b8110611e2457611e24614dca565b60200201516040015182611e39836004614d79565b611e44906003614db7565b606d8110611e5457611e54614dca565b602002015261014086015181601b8110611e7057611e70614dca565b60200201516060015182611e85836004614d79565b611e90906004614db7565b606d8110611ea057611ea0614dca565b6020020152600101611d63565b50611d3b81604051602001611a869190614eb5565b5f5f611ecc614b74565b8381525f5b601c811015611f1f5785610160015181601c8110611ef157611ef1614dca565b602002015182611f02836001614db7565b601d8110611f1257611f12614dca565b6020020152600101611ed1565b50611d3b81604051602001611a869190614ee9565b5f5f611f3e614b93565b83815261018085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611d3b91611a8691849101614f1d565b5f611fa35f51602061505f5f395f51905f5283614f50565b92915050565b5f5f51602061505f5f395f51905f528284099392505050565b5f5f51602061505f5f395f51905f528284089392505050565b5f5f51602061505f5f395f51905f52612001835f51602061505f5f395f51905f52614dde565b84089392505050565b5f61199c83610543846122e2565b81515f90819061202a908560016107b1565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561211c57612112826105438784611fdb565b91506001016120fb565b50612125614bb1565b5f5b6008811015612186575f84826008811061214357612143614dca565b60200201519050612158816105438985611fdb565b9050612163816122e2565b90508083836008811061217857612178614dca565b602002015250600101612127565b505f5b60088110156121d9575f8782600881106121a5576121a5614dca565b602002015190506121c281848460088110610dc857610dc8614dca565b90506121ce8682611fc2565b955050600101612189565b5061070c8483611fa9565b5f5f6121fa600161054885610543896001611fdb565b90506122068482611fa9565b95945050505050565b5f612218614bd0565b612223868285612cf5565b61222f86868386612ea1565b61223b86868386613089565b612246868285613285565b61225186828561346d565b61225d868683866137b6565b612268868285614050565b61227386828561441b565b61070c8185614710565b612285614b17565b81815260015b601c8110156122dc576122bd826122a3600184614dde565b601c81106122b3576122b3614dca565b60200201516124bd565b8282601c81106122cf576122cf614dca565b602002015260010161228b565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061505f5f395f51905f520360808201525f51602061505f5f395f51905f5260a082015260205f60c08360055afa905080612340575f5ffd5b50505f519392505050565b612353614bef565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611fa3825f51602061505f5f395f51905f52614dde565b6123aa614b17565b601c5b80156124b3575f846123c0600184614dde565b601c81106123d0576123d0614dca565b602002015190505f886123e4600185614dde565b601c81106123f4576123f4614dca565b602002015190505f61244f61241361240c858c611fa9565b6002611fa9565b6105668a612422600189614dde565b601c811061243257612432614dca565b60200201516105436124498861054360018a611fdb565b87611fdb565b90506124708161054361079761246a87610543600189611fdb565b86611fc2565b905085841161249f579750878085612489600187614dde565b601c811061249957612499614dca565b60200201525b505050806124ac90614f63565b90506123ad565b5095945050505050565b5f611fa38283611fa9565b6124d0614bef565b5f6124dd601c6028614db7565b6124e8906002614db7565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125765760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa9092169160010161251d565b50805184526020810151602085015250505092915050565b612596614bef565b5f51602061503f5f395f51905f5282602001515f51602061503f5f395f51905f526125c19190614dde565b6125cb9190614f50565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b03168360405161276a9190614f78565b5f60405180830381855afa9150503d805f81146127a2576040519150601f19603f3d011682016040523d82523d5f602084013e6127a7565b606091505b50915091505f818060200190518101906127c19190614f8e565b90508280156127cd5750805b979650505050505050565b5f808080806127e8876003614db7565b6127f390600c614db7565b6001600160401b0381111561280a5761280a614fad565b604051908082528060200260200182016040528015612833578160200160208202803683370190505b509050875f1b815f8151811061284b5761284b614dca565b602002602001018181525050865f1b8160018151811061286d5761286d614dca565b602002602001018181525050855f1b8160028151811061288f5761288f614dca565b60209081029190910101525f5b878110156128ee578a8a828181106128b6576128b6614dca565b90506020020135828260036128cb9190614db7565b815181106128db576128db614dca565b602090810291909101015260010161289c565b508a5151816128fe896003614db7565b8151811061290e5761290e614dca565b6020908102919091018101919091528b5101518161292d896003614db7565b612938906001614db7565b8151811061294857612948614dca565b60209081029190910101528a516040015181612965896003614db7565b612970906002614db7565b8151811061298057612980614dca565b60209081029190910101528a51606001518161299d896003614db7565b6129a8906003614db7565b815181106129b8576129b8614dca565b6020908102919091018101919091528b015151816129d7896003614db7565b6129e2906004614db7565b815181106129f2576129f2614dca565b6020908102919091018101919091528b810151015181612a13896003614db7565b612a1e906005614db7565b81518110612a2e57612a2e614dca565b6020908102919091018101919091528b01516040015181612a50896003614db7565b612a5b906006614db7565b81518110612a6b57612a6b614dca565b6020908102919091018101919091528b01516060015181612a8d896003614db7565b612a98906007614db7565b81518110612aa857612aa8614dca565b602090810291909101015260408b01515181612ac5896003614db7565b612ad0906008614db7565b81518110612ae057612ae0614dca565b60209081029190910181019190915260408c0151015181612b02896003614db7565b612b0d906009614db7565b81518110612b1d57612b1d614dca565b60209081029190910101526040808c0151015181612b3c896003614db7565b612b4790600a614db7565b81518110612b5757612b57614dca565b602090810291909101015260408b01516060015181612b77896003614db7565b612b8290600b614db7565b81518110612b9257612b92614dca565b602002602001018181525050612bb281604051602001611a869190614fc1565b9150612bbd82612cc5565b6040805160208101869052929750909550612bd89101611a86565b91505f612be483612cc5565b50959c949b509499509097509195505050505050565b5f5f5f612c05614c07565b85815260a0858101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260c0808a0180515195870195909552845183015190860152835181015160e086015292518201516101008501528188018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612cab91611a8691849101614ff6565b9150612cb682612cc5565b90979096509194509092505050565b5f80826001600160801b038116608082901c612ce082611f8b565b9450612ceb81611f8b565b9350505050915091565b5f612d01846007614775565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612d62612d5c612d36856003611fdb565b610543612d51612d468b5f614775565b6105438c601c614775565b6105438b601b614775565b83611fa9565b9050612de3612dd8612dbf612da6612d8d85610548612d828d6002614775565b6105438e601b614775565b610548612d9b8c6003614775565b6105438d601c614775565b610548612db48b6004614775565b6105438c601d614775565b610548612dcd8a6005614775565b6105438b601e614775565b610548886001614775565b9050612e0281610548612df7866001611fdb565b6105438a6026614775565b9050612e0e8184611fa9565b9050612e1a8185611fa9565b8552505f9050612e54612e4a612e3f612e3488601b614775565b61054889601e614775565b610566886023614775565b610548875f614775565b9050612e6581610543846002611fdb565b9050612e7681610543846001611fdb565b9050612e828183611fa9565b9050612e8e8184611fa9565b9050808460015b60200201525050505050565b5f5f5f612ed7612ecd612eb589601b614775565b610548612ec38b6011614775565b8a60600151611fa9565b8760800151611fc2565b9050612f1081610543612f06612eee8b601c614775565b610548612efc8d6012614775565b8c60600151611fa9565b8960800151611fc2565b9050612f3581610543612f06612f278b601d614775565b610548612efc8d6013614775565b9050612f5a81610543612f06612f4c8b601e614775565b610548612efc8d6014614775565b92505f9050612f7e612ecd612f7089601b614775565b610548612ec38b600d614775565b9050612fa381610543612f06612f958b601c614775565b610548612efc8d600e614775565b9050612fc881610543612f06612fba8b601d614775565b610548612efc8d600f614775565b9050612fed81610543612f06612fdf8b601e614775565b610548612efc8d6010614775565b91505f905061301461300e61300389601f614775565b6105488a6019614775565b84611fa9565b90506130498161056661304361302b8b6027614775565b6105486130398d601a614775565b8c60a00151611fa9565b85611fa9565b90506130558185611fa9565b6040860152505f61307861304361306d89601a614775565b6105438a6027614775565b606090950194909452505050505050565b5f5f6130e76130cf6130b76130a2612f068a6015614775565b6105486130b08b6016614775565b8a51611fa9565b6105486130c58a6017614775565b8960200151611fa9565b6105486130dd896018614775565b8860400151611fa9565b91505f61311e6131056130fb89601b614775565b8860800151611fc2565b6105486131138a6003614775565b6105438b6023614775565b90505f61314761312f89601c614775565b61054861313c8b5f614775565b6105438c6024614775565b90505f6131716131588a601d614775565b6105486131668c6001614775565b6105438d6025614775565b90506131b061319861318a85610548868d5f0151611fa9565b610548848c60200151611fa9565b6105486131a68c6004614775565b8b60400151611fa9565b93505050505f6131c461300e886020614775565b90505f6131d561300e896020614775565b90505f61320d6131f46131e98b6022614775565b6105488c6006614775565b6105666132028c6022614775565b6105438d6006614775565b90505f61323161322b6132208789611fa9565b6105438d6020614775565b83611fdb565b905061323d8188611fa9565b90505f6132656132576132518d6006614775565b87611fa9565b6105666132518e6021614775565b60808a018390529050808960055b60200201525050505050505050505050565b5f6132915f6001611fdb565b90505f61329f5f6002611fdb565b90505f6132ad5f6003611fdb565b90505f6132c96132be88601c614775565b61056689601b614775565b90505f6132e56132da89601d614775565b6105668a601c614775565b90505f6133016132f68a601e614775565b6105668b601d614775565b90505f61331d6133128b6023614775565b6105668c601e614775565b90508361332e81610543818b611fc2565b905061333e81610543878a611fc2565b905061334e816105438789611fc2565b905061335f816105438d6008614775565b905061336b818a611fa9565b60c08b0152508261338081610543818b611fc2565b905061339081610543868a611fc2565b90506133a0816105438689611fc2565b90506133b1816105438d6008614775565b90506133bd818a611fa9565b60e08b015250816133d281610543818b611fc2565b90506133e281610543858a611fc2565b90506133f2816105438589611fc2565b9050613403816105438d6008614775565b905061340f818a611fa9565b6101008b0152508061342581610543818b611fc2565b905061343581610543848a611fc2565b9050613445816105438489611fc2565b9050613456816105438d6008614775565b9050613462818a611fa9565b9050808a6009613273565b6134a66040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6134b184601c614775565b81526134be84601d614775565b60208201526134ce846023614775565b60408201526134de846026614775565b60608201526134ee846025614775565b60808201526134fe846024614775565b60a08201525f61350f856002614775565b90505f61351c865f614775565b90505f6135308460400151855f0151611fdb565b90505f61354585602001518660200151611fa9565b606086015190915086905f9061355b9080611fa9565b90505f61357961357389602001518a60600151611fa9565b88611fa9565b90505f6135986135918a60a001518b60400151611fc2565b8a51611fc2565b90506135a76132518288611fa9565b90506135ce6135c86135c26135bc8487611fdb565b88611fdb565b84611fc2565b83611fc2565b90506135f66135eb6135e08387611fa9565b6105438f6009614775565b61054360018a611fdb565b6101408c015250505050602085015160808601515f9161361591611fc2565b90505f613633613629886060015188611fa9565b8860200151611fdb565b90505f6136576136438487611fa9565b6105486130438b60a001518c5f0151611fdb565b905061367f613674613669838c611fa9565b6105438e6009614775565b610543600189611fdb565b6101608b0152505f91506136a09050613699836011611fc2565b8751611fa9565b90505f6136ad8384611fc2565b90506136b98182611fc2565b90505f6136c7836009611fa9565b90506136f06136ea61300e6136e38b60a001518c5f0151611fc2565b8b51611fc2565b82611fdb565b60c089018190525f9061370b90613573906135e0908d611fa9565b905061371e8b600a602002015182611fc2565b6101408c0152505086515f925061374591506136999061373e9080611fc2565b8851611fc2565b90505f613785613760836105438a5f01518b60a00151611fdb565b6020890151610566906137739080611fc2565b6105438b602001518c60800151611fc2565b90506137a289600b60200201516105486135736135e0858d611fa9565b89600b602002015250505050505050505050565b61384a604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61387f61386661385b87601b614775565b610543886024614775565b610548613874886023614775565b61054389601c614775565b81526138c46138b96138a061389588601b614775565b61054389601e614775565b6105486138ae89601c614775565b6105438a601d614775565b610566876025614775565b604082018190526138d990600160441b611fa9565b604082018190526138ef90610566876026614775565b6040820181905281516139029190611fc2565b6040820181905261391890610543876005614775565b6040820152805161392d90600160441b611fa9565b80825261394d90610548613942886023614775565b610543896024614775565b8082526020820181905261396990610566612e3488601d614775565b6020820181905261397f90610543876004614775565b602082015280516060820181905261399c9061054887601e614775565b606082018190526139c0906105666139b5886025614775565b610548896026614775565b606082018190526139d590610543875f614775565b8160600181815250505f6139fe6139f483602001518460400151611fc2565b8360600151611fc2565b9050613a0f81610543886003614775565b9050613a27613a1f876024614775565b614000611fa9565b60808301819052613a3d90610548886023614775565b60808301819052613a5090614000611fa9565b60808301819052613a669061054888601d614775565b60808301819052613a7990614000611fa9565b60808301819052613a8f9061054888601c614775565b60808301819052613aa290614000611fa9565b60808301819052613ab89061054888601b614775565b60808301819052613ace9061056688601e614775565b60808301819052613ae490610543886005614775565b6080830152613af7613a1f876025614775565b60a08301819052613b0d90610548886024614775565b60a08301819052613b2090614000611fa9565b60a08301819052613b3690610548886023614775565b60a08301819052613b4990614000611fa9565b60a08301819052613b5f9061054888601e614775565b60a08301819052613b7290614000611fa9565b60a08301819052613b889061054888601d614775565b60a08301819052613b9e90610566886026614775565b60a08301819052613bb390610543885f614775565b60a0830181905260808301515f91613bcb9190611fc2565b9050613bdc81610543896004614775565b9050613bf6613bec88601d614775565b8760400151611fa9565b60c08401819052613c0f906105486130c58a601c614775565b60c08401819052613c2f90610548613c288a601b614775565b8951611fa9565b60c08401819052613c4590610548896001614775565b60c0840181905260e08401819052613c629061056689601e614775565b60c0840152613c756132be886023614775565b610140840152613c94613c89886026614775565b61056689601e614775565b610120840152610140830151613cb990613cae9080611fa9565b846101400151611fdb565b610280840152610140830151613cfb90613cf090613ce99061054360015f51602061505f5f395f51905f52614dde565b6001611fc2565b846101200151611fa9565b6101608401819052613d3290613d2490610543613d198b6002614775565b6105438c6003614775565b6105436132518a600a614775565b6101a0860152610280830151613d5490613d2490610543613d198b6002614775565b6101c086015260c0830151613d7c90610543613d718a6002614775565b6105438b6003614775565b6101e08401525f613d9b613d9189601e614775565b8560e00151611fdb565b9050613daa6136ea8283611fa9565b6101a0850152613dbe6130dd896025614775565b6101008501819052613de290610548613dd88b6024614775565b8a60200151611fa9565b6101008501819052613dfc906105486130b08b6023614775565b610100850152613e1b613e10896026614775565b856101000151611fdb565b6101008501525f613e306132f68a6025614775565b9050613e84613e5e612d5c613ce988610140015160015f51602061505f5f395f51905f526105439190614dde565b610543613ce988610100015160015f51602061505f5f395f51905f526105439190614dde565b610180860152610100850151613ea990613e9e9080611fa9565b866101000151611fdb565b6101c0860152610180850151613edc90613ec8906105438c6007614775565b610543613ed68c600a614775565b89611fa9565b6101e0880152610280850151613efb90613ec8906105438c6007614775565b6102008801526101c0850151613f1a90613ec8906105438c6007614775565b6102208801526101a0850151613f35906105438b6007614775565b610200860152613f54613f498a6024614775565b6105668b601c614775565b610220860152610140850151613f93906132f690613f8890613ce99061054360015f51602061505f5f395f51905f52614dde565b876102200151611fa9565b61024086018190526101e08601516102608701819052613fca9161054890610543613fbf8e6005614775565b6105438f6002614775565b610260860181905260c0860151613fed919061054890610543613fbf8e5f614775565b61026086018190526102008601516140059190611fc2565b610260860181905261401b906135c29086611fc2565b6102a0860181905261403590610543613ed68c600a614775565b6102a0860181905287600c6020020152505050505050505050565b6140c66040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6140df6140d485601b614775565b610548866002614775565b81526140fa6140ef85601c614775565b610548866003614775565b602082015261411861410d85601d614775565b610548866004614775565b604082015261413661412b85601e614775565b610548866005614775565b60608201528051614168906141619061415a906141539080611fa9565b8451611fa9565b8351611fa9565b8251611fa9565b608082015260208101516141a69061419c90614192906141889080611fa9565b8460200151611fa9565b8360200151611fa9565b8260200151611fa9565b60a082015260408101516141e4906141da906141d0906141c69080611fa9565b8460400151611fa9565b8360400151611fa9565b8260400151611fa9565b60c08201526060810151614222906142189061420e906142049080611fa9565b8460600151611fa9565b8360600151611fa9565b8260600151611fa9565b60e0820152608081015160a082015161423b9190611fc2565b61010082015260c081015160e08201516142559190611fc2565b61012082015260a08101516142799061426e9080611fc2565b826101200151611fc2565b61014082015260e081015161429d906142929080611fc2565b826101000151611fc2565b6101608201526101208101516142b39080611fc2565b6101e082018190526142d4906142c99080611fc2565b826101600151611fc2565b6101e08201526101008101516142ea9080611fc2565b6101a0820181905261430b906143009080611fc2565b826101400151611fc2565b6101a0820181905261016082015161432291611fc2565b6101808201526101408101516101e082015161433e9190611fc2565b6101c0820152614352612d5c85600b614775565b610200820181905261024084015161018083015161437d9261054891610543906105668a6023614775565b83601260200201526143ad8360136020020151610548836102000151610543856101a001516105668a6024614775565b83601360200201526143dd8360146020020151610548836102000151610543856101c001516105668a6025614775565b836014602002015261440d8360156020020151610548836102000151610543856101e001516105668a6026614775565b836015602002015250505050565b61446d6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806144a27f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f8b565b81526020016144d07f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f8b565b81526020016144fd7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f8b565b815260200161452b7f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f8b565b9052905061454861453d86601b614775565b610548876002614775565b610120830181905261457c9061457190613cf0906145669080611fa9565b856101200151611fa9565b836101200151611fa9565b825261458985601c614775565b602083015261459985601d614775565b60408301526145a985601e614775565b6060830152815160208301516145d1916139f4916145c79190611fc2565b8460400151611fc2565b60808301526145e461300e86600c614775565b6101408301528151614605906145fb90835f610dc8565b8360800151611fc2565b60a083015261463184601660200201516105488461014001516105438660a001516105668b6023614775565b6102c0850152602082015161464c906145fb90836001610dc8565b60c083015261467884601760200201516105488461014001516105438660c001516105668b6024614775565b6102e08501526040820151614693906145fb90836002610dc8565b60e08301526146bf84601860200201516105488461014001516105438660e001516105668b6025614775565b61030085015260608201516146da906145fb90836003610dc8565b61010083015261470884601960200201516105488461014001516105438661010001516105668b6026614775565b846019612e95565b5f61471c8184816107b1565b905060015b601a81101561476e57614764826105488684601a811061474357614743614dca565b602002015186614754600187614dde565b60198110610dc857610dc8614dca565b9150600101614721565b5092915050565b5f828260278111156147895761478961502a565b6028811061479957614799614dca565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f81526020016147cb614bef565b81526020016147d8614bef565b81526020016147e5614bef565b81526020016147f2614bef565b81526020016147ff614bef565b815260200161480c614bef565b8152602001614819614bef565b8152602001614826614bef565b8152602001614833614bef565b8152602001614840614bef565b815260200161484d614bef565b815260200161485a614bef565b8152602001614867614bef565b8152602001614874614bef565b8152602001614881614bef565b815260200161488e614bef565b815260200161489b614bef565b81526020016148a8614bef565b81526020016148b5614bef565b81526020016148c2614bef565b81526020016148cf614bef565b81526020016148dc614bef565b81526020016148e9614bef565b81526020016148f6614bef565b8152602001614903614bef565b8152602001614910614bef565b815260200161491d614bef565b905290565b604051806101c00160405280614936614a85565b8152602001614943614a85565b8152602001614950614a85565b815260200161495d614a85565b815260200161496a614a85565b8152602001614977614a85565b8152602001614984614a85565b8152602001614991614a85565b815260200161499e614c26565b81526020016149ab614c54565b81526020016149b8614c73565b81526020016149c5614b17565b81526020016149d2614a85565b815260200161491d614a85565b6040518061010001604052806149f3614aa9565b8152602001614a00614ad9565b8152602001614a0d614b17565b8152602001614a1a614b17565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614a6f614bef565b815260200190600190039081614a675790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614c3e614bb1565b815260200190600190039081614c365790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614c8b614a85565b815260200190600190039081614c835790505090565b5f5f5f5f60408587031215614cb4575f5ffd5b84356001600160401b03811115614cc9575f5ffd5b8501601f81018713614cd9575f5ffd5b80356001600160401b03811115614cee575f5ffd5b876020828401011115614cff575f5ffd5b6020918201955093508501356001600160401b03811115614d1e575f5ffd5b8501601f81018713614d2e575f5ffd5b80356001600160401b03811115614d43575f5ffd5b8760208260051b8401011115614d57575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611fa357611fa3614d65565b5f5f85851115614d9e575f5ffd5b83861115614daa575f5ffd5b5050820193919092039150565b80820180821115611fa357611fa3614d65565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611fa357611fa3614d65565b5f60018201614e0257614e02614d65565b5060010190565b80356020831015611fa3575f19602084900360031b1b1692915050565b5f8183825b6009811015614e4a578151835260209283019290910190600101614e2b565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82614e7c57614e7c614e5a565b500490565b5f8183825b6029811015614ea5578151835260209283019290910190600101614e86565b5050506105208201905092915050565b5f8183825b606d811015614ed9578151835260209283019290910190600101614eba565b505050610da08201905092915050565b5f8183825b601d811015614f0d578151835260209283019290910190600101614eee565b5050506103a08201905092915050565b5f8183825b6005811015614f41578151835260209283019290910190600101614f22565b50505060a08201905092915050565b5f82614f5e57614f5e614e5a565b500690565b5f81614f7157614f71614d65565b505f190190565b5f82518060208501845e5f920191825250919050565b5f60208284031215614f9e575f5ffd5b8151801515811461199c575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b82811015614feb578151845260209384019390910190600101614fcd565b509195945050505050565b5f8183825b600d81101561501a578151835260209283019290910190600101614ffb565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
5
5
  /**
6
6
  * HonkVerifier link references.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,240CAA240C,CAAC;AAC760C;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
1
+ {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../src/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,y7wCAAy7wC,CAAC;AAC39wC;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
- */ export const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c0516154606100625f395f6105c101525f818161066d015281816107c001528181610c420152610d9001525f61056a01526154605ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004615069565b610054565b604051901515815260200160405180910390f35b5f6100626101bb6020615145565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610195565b90505f61009787876101aa565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100cf82878786604001516104a9565b90506101208686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015160408801519193509150610554565b815160a001525f6101318383610665565b905080610151576040516313f8744360e31b815260040160405180910390fd5b5f61015d848685610766565b90508061017d576040516352ec174560e11b815260040160405180910390fd5b8180156101875750805b9a9950505050505050505050565b61019d61483b565b6101a5610f05565b905090565b6101b2614bb9565b6101bf60205f848661515c565b6101c891615183565b81526101d860406020848661515c565b6101e191615183565b60208201526101f460606040848661515c565b6101fd91615183565b604082015261021861021360e06060858761515c565b6117ec565b606082015261022f61021361016060e0858761515c565b60808201526102476102136101e0610160858761515c565b60a082015261025f6102136102606101e0858761515c565b6101008201526102786102136102e0610260858761515c565b6101208201526102916102136103606102e0858761515c565b60c08201526102a96102136103e0610360858761515c565b6101408201526102c26102136104606103e0858761515c565b60e08201526104605f5b601c811015610359575f5b6008811015610350576103038684876102f18260206151a0565b926102fe9392919061515c565b6118e0565b84610160015183601c811061031a5761031a6151b3565b60200201518260088110610330576103306151b3565b60200201818152505060208361034691906151a0565b92506001016102d7565b506001016102cc565b505f5b60288110156103ad576103768583866102f18260206151a0565b836101800151826028811061038d5761038d6151b3565b6020020181815250506020826103a391906151a0565b915060010161035c565b505f5b6103bc6001601c6151c7565b811015610412576103e18583866103d48260806151a0565b926102139392919061515c565b836101a0015182601b81106103f8576103f86151b3565b60200201526104086080836151a0565b91506001016103b0565b505f5b601c8110156104665761042f8583866102f18260206151a0565b836101c0015182601c8110610446576104466151b3565b60200201818152505060208261045c91906151a0565b9150600101610415565b506104788482856103d48260806151a0565b6101e08301526104898160806151a0565b905061049c8482856103d48260806151a0565b6102008301525092915050565b6104b1614dbe565b5f6104bf868686868561193c565b90835290506104ce81876119b9565b602084019190915290506104e181611b52565b604084019190915290506104f58682611bb3565b606084019190915290506105098682611c87565b6080840191909152905061051d8682611d12565b60a084019190915290506105318682611e80565b60c084019190915290506105458682611ef2565b5060e083015250949350505050565b5f6001808261059d866105988961059361058e8a7f00000000000000000000000000000000000000000000000000000000000000006151a0565b611f49565b611f67565b611f80565b90505f6105bb876105b68a61059361058e8b60016151a0565b611f99565b90505f5b7f000000000000000000000000000000000000000000000000000000000000000081101561064d575f61060a8b83815181106105fd576105fd6151b3565b6020026020010151611f49565b905061061a866105938684611f80565b955061062a856105938584611f80565b9450610636848b611f80565b9350610642838b611f99565b9250506001016105bf565b506106588484611fc8565b9998505050505050505050565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561073c575f86610160015182601c81106106ab576106ab6151b3565b602002015190505f6106bd8286611fd6565b9050806106dd576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106f4576106f46151b3565b602002015190506107058382611ff9565b955061072c886040015185601c8110610720576107206151b3565b602002015186836121a8565b945050505080600101905061066b565b505f610756866101800151865f01518760200151856121d3565b90508281145b9695505050505050565b5f6107946040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f6107a28460a00151612241565b90506107ac614e42565b6107b4614e61565b5f6107e48760e00151857f00000000000000000000000000000000000000000000000000000000000000006122a6565b805160c089015191925061080491610598908460015b6020020151611f67565b855260a08701516108309061081890612336565b825160c08a015161059391906105b6908660016107fa565b6020860152600183526101e08901516108489061239f565b82526001606086018190525f60808701525b602381116109005761087b610871875f01516123e9565b8760600151611f67565b84826046811061088d5761088d6151b3565b602002015260808601516101808b01516108d09190610598906108b16001866151c7565b602881106108c1576108c16151b3565b60200201518960600151611f67565b8660800181815250506108eb86606001518960800151611f67565b60608701526108f9816151da565b905061085a565b505f61090e602360016151a0565b90505b6028811161098f5761092961087187602001516123e9565b84826046811061093b5761093b6151b3565b602002015260808601516101808b015161095f9190610598906108b16001866151c7565b86608001818152505061097a86606001518960800151611f67565b6060870152610988816151da565b9050610911565b50606088015182600160200201526080880151826002602002015260a0880151826003602002015260c0880151826004602002015260e0880151826005602002015261010088015182600660200201526101208801518260076020020152610140880151826008602002015261016088015182600960200201526101a088015182600a602002015261018088015182600b60200201526101c088015182600c60200201526101e088015182600d602002015261020088015182600e602002015261022088015182600f60200201526102408801518260106020020152610260880151826011602002015261028088015182601260200201526102a088015182601360200201526102c088015182601460200201526102e08801518260156020020152610300880151826016602002015261032088015182601760200201526103408801518260186020020152610360880151826019602002015261038088015182601a60200201526103a088015182601b60200201526060890151610b139061239f565b6103808301526080890151610b279061239f565b6103a083015260a0890151610b3b9061239f565b6103c083015260c0890151610b4f9061239f565b6103e083015260e0890151610b639061239f565b610400830152610140890151610b789061239f565b610420830152610100890151610b8d9061239f565b610440830152610120890151610ba29061239f565b6104608301526060890151610bb69061239f565b6104808301526080890151610bca9061239f565b6104a083015260a0890151610bde9061239f565b6104c083015260c0890151610bf29061239f565b6104e083015260e0890151610c069061239f565b6105008301525f604086015260c0870151610c2090612401565b60608601525f5b610c336001601c6151c7565b811015610d78575f610c6660017f00000000000000000000000000000000000000000000000000000000000000006151c7565b82101590505f81610ccf576060880151610c969085610c868660026151a0565b601d81106107fa576107fa6151b3565b9050610ca1816123e9565b8684610caf602860016151a0565b610cb991906151a0565b60468110610cc957610cc96151b3565b60200201525b610cfe8860400151610598838f6101c00151876001610cee91906151a0565b601c81106107fa576107fa6151b3565b6040890152606088015160c08b0151610d179190611f67565b60608901526101a08c0151610d419084601b8110610d3757610d376151b3565b602002015161239f565b8584610d4f602860016151a0565b610d5991906151a0565b60468110610d6957610d696151b3565b60200201525050600101610c27565b505f610db4886060015187608001518c6101c00151887f000000000000000000000000000000000000000000000000000000000000000061240c565b6040870151909150610dcb9061059883855f6107fa565b604087018190526101c08b01515160c08a0151610df9929161059891610df19190611f67565b8560016107fa565b6040808801919091528051808201909152600181526002602082015283610e22601c60286151a0565b60468110610e3257610e326151b3565b6020020152604086015184610e49601c60286151a0565b60468110610e5957610e596151b3565b60200201526102008a01515f90610e6f9061239f565b90508084610e7f601c60286151a0565b610e8a9060016151a0565b60468110610e9a57610e9a6151b3565b602002015260e089015185610eb1601c60286151a0565b610ebc9060016151a0565b60468110610ecc57610ecc6151b3565b60200201525f610edc8587612506565b90505f610ee8836125d7565b9050610ef4828261264e565b9d9c50505050505050505050505050565b610f0d61483b565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f17aa68503600064d6f5a552d68b646ae6caf4dccec8bb0bfa21175cb731ee93381527f04116ba2cc7e4130cbf0f86a4820b38cdbc6dec554d856a1124a0ab8c70d4525818301526060830152825180840184527f0974c6b5dab656955dc2807ec95cf982132bc196ec302ebc982130c84047a69381527f165074e0eef40ab5bdf0731a57caf161e17869f4d88f76b771d2dc1260fa7c9a818301526080830152825180840184527f2dee2a6a033243c404469487277ba245612af075d74f361ff4e927ba0cb356c381527f17ba35b3d820d5c486fff3dab3105bc53f33da47aa517c841c9e2aca05fab0de8183015260a0830152825180840184527f28803f6f4692401c5e1bd8179e31440f4dd12f4b712ed7f9d879e10970bac70c81527f18a29ad57bb508408cd5204e33388de0979fd76f723c5c2db8be25b0cefe94758183015260c0830152825180840184527f19cf35761d86294f9ca14161fadc9ad6b1a9341c3007788c42e6bbb9af4a9a2c81527f1cfdaf3ff42a0528b44016c4eadd4f3c38a4fd5ca4674d5d6fad8100c2dc88798183015260e0830152825180840184527f2126c63aba3ad1c94c56f7d9f6404fa98c014378739444288447561f9f03fd2981527f0fe37649cd7c9c4d5715f6a9a6b7b0d4efbad8e46e8b76028aff5a48158b7b8b81830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f045a8fdc71e93f7dd5a2a7eeb6f86faad3f503d5748edf25d214584867f914c681527f1cd83caa9e869b1fb69ade8f72cf46743e5dc7fded7fa3bf68d71f79a8fba19481830152610140830152825180840184527f09514ea68c99cae27293f94ff703236e543e944c667eda4135a061de561925ec81527f171d9a960db918e2d2c406a095641df56243a261a321ea5440bcbf4e22477ea081830152610160830152825180840184527f2315dc1d419740df54efc5632c59d38b2712f0acdb9128206f46b29a1f7d0a6581527f0f761a293333b52f7a014637ac871c3db8675be7d75e94667c74f36917ef800281830152610180830152825180840184527f12af281668d26f228dac0a13d5b9938241c4ff8a55f75390c1d0f6d5f17376ea81527f135de164c171990861a117adb87dee8310c8ab6dc0078d07ca333861b050a6db818301526101a0830152825180840184527f0f07515b3aa09d2f2e6736f536127b383a0f422e1c30e84e3e3002cb63d447f781527f2c5cc1bf4ff81ba88b4fbe985f32e9a31dcf445406dbbc691cde471d023a2648818301526101c0830152825180840184527f2f26b8fdfc37ac6437c51ca7f0374c9ed5d14e49b0c2afa406074cf05ab3277081527f1e74fc06825b4c5d225456e717720973c3fc86dd1e2a0b852d615161f66c59b2818301526101e0830152825180840184527f141f9d1bed9e1bbb167af980d2ab02fc751f5449e3e673ed63c3d09d945e748281527f10a263e04a788e333e428cb28bb56db79bab787b7fe3b2baf333bb97b6e94c3581830152610200830152825180840184527f24f1ce241aa5836b5af78d69695fb2ea126c87f6c3be8a3defcd75d32758805181527f2deacbd9dbce1edc4b205203eb1e328a3db9270586522ebd0d06283a9fbd38f081830152610220830152825180840184527f15bb1141ca0cc27e6c2d61c431f5a5a2f3761f1acd22939b4599c3f32a74091e81527f18cf0f32af1affb704ad78b28554dffcc9a16360dac89c04ad0c14cb7f3f651681830152610240830152825180840184527f1fbca143dded3a67a05f5242c2dbb33a08a09e1241a3dc0e0119dc3b87312d0681527f066d3a6ce84e3a52ee45dc671da652353b4da4cf3f751417e159887e51b1dc8a81830152610260830152825180840184527f088a13e43746a8ff6d5038126dcdfdba8fbaef6ed11313b00eaf459d32dc432c81527f122c89d7d6bec450e5150f212f9cb68b6c8434e5680240f22978c24f5f04ac3d81830152610280830152825180840184527f1753a3a1f05e209629bcca6a1aa93da2f7d44636b6e89abbf26f02b8bc58dd9a81527f1bb550b000992ed673a09a9228a28202657b36e14a765bae9f20b48221242682818301526102a0830152825180840184527f16b26f825662a71bff8bce8761d5ec00cd194ddf509e8ad55590f913591af8df81527eb0b679e9defc6c79076adad79975c32b930bb0d1f8f97b232aa94c2b0aa60b818301526102c0830152825180840184527f0785f14e096e063ef261b6222babc9d6dd38363d30fb4c76f51406c94aa2475f81527f06b670a2068958e45d8d393b227e3ea8cb8c9e6a4d7e147a6d829ce0ace2babd818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f01bbe34848ca7b50f4bbd6ab4d295c457612b005facae667648698439270811f83527f036aa18f3a0dca36b4778d5d9f2de52a074b61bc60a2d458243f56864f065b8b908301526103a081019190915290565b61181360405180608001604052805f81526020015f81526020015f81526020015f81525090565b6080821461185e5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b60408051608081019091528061187760205f868861515c565b61188091615183565b815260209081019061189690604090868861515c565b61189f91615183565b81526020016118b260606040868861515c565b6118bb91615183565b81526020016118ce60806060868861515c565b6118d791615183565b90529392505050565b5f602082146119285760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b6044820152606401611855565b61193561058e8385615183565b9392505050565b61196f6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61197c87878787612852565b60408601919091526020850191909152908352925061199b8388612c85565b60808501919091526060840191909152919791965090945050505050565b6119c1614e9a565b5f6119ca614eb9565b8481526101408401805151602080840191909152815181015160408085019190915282518101516060808601919091529251830151608085015260e080880180515160a0870152805184015160c087015280518301519186019190915251909201516101008401529051611a5f91611a44918491016151f2565b60405160208183030381529060405280519060200120611f49565b9150611a6a82612d58565b6020850152835260015b611a806002601961523a565b811015611b0057611a9d83604051602001611a4491815260200190565b9250611aa883612d58565b85611ab4846002615145565b60198110611ac457611ac46151b3565b6020020186611ad4856002615145565b611adf9060016151a0565b60198110611aef57611aef6151b3565b602002019190915252600101611a74565b50611b1782604051602001611a4491815260200190565b91505f611b2383612d58565b85611b30600160196151c7565b60198110611b4057611b406151b3565b60200201919091525050509250929050565b611b5a614ed8565b5f805b601c811015611bac57611b7c84604051602001611a4491815260200190565b93505f611b8885612d58565b8584601c8110611b9a57611b9a6151b3565b60200201919091525050600101611b5d565b5090929050565b611bbb614ed8565b5f805b601c811015611c7e57611bcf614eb9565b8481525f5b6008811015611c385786610160015183601c8110611bf457611bf46151b3565b60200201518160088110611c0a57611c0a6151b3565b602002015182611c1b8360016151a0565b60098110611c2b57611c2b6151b3565b6020020152600101611bd4565b50611c4d81604051602001611a4491906151f2565b94505f611c5986612d58565b8685601c8110611c6b57611c6b6151b3565b6020020191909152505050600101611bbe565b50909391925050565b5f5f611c91614ef7565b8381525f5b6028811015611ce4578561018001518160288110611cb657611cb66151b3565b602002015182611cc78360016151a0565b60298110611cd757611cd76151b3565b6020020152600101611c96565b50611cf981604051602001611a44919061524d565b91505f611d0583612d58565b5096929550919350505050565b5f5f611d1c614f16565b8381525f5b611d2d6001601c6151c7565b811015611e6b57856101a0015181601b8110611d4b57611d4b6151b3565b60200201515182611d5d836004615145565b611d689060016151a0565b606d8110611d7857611d786151b3565b60200201526101a086015181601b8110611d9457611d946151b3565b60200201516020015182826004611dab9190615145565b611db69060026151a0565b606d8110611dc657611dc66151b3565b60200201526101a086015181601b8110611de257611de26151b3565b60200201516040015182611df7836004615145565b611e029060036151a0565b606d8110611e1257611e126151b3565b60200201526101a086015181601b8110611e2e57611e2e6151b3565b60200201516060015182611e43836004615145565b611e4e9060046151a0565b606d8110611e5e57611e5e6151b3565b6020020152600101611d21565b50611cf981604051602001611a449190615281565b5f5f611e8a614f35565b8381525f5b601c811015611edd57856101c0015181601c8110611eaf57611eaf6151b3565b602002015182611ec08360016151a0565b601d8110611ed057611ed06151b3565b6020020152600101611e8f565b50611cf981604051602001611a4491906152b5565b5f5f611efc614f54565b8381526101e085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611cf991611a44918491016152e9565b5f611f615f51602061540b5f395f51905f528361531c565b92915050565b5f5f51602061540b5f395f51905f528284099392505050565b5f5f51602061540b5f395f51905f528284089392505050565b5f5f51602061540b5f395f51905f52611fbf835f51602061540b5f395f51905f526151c7565b84089392505050565b5f6119358361059384612336565b81515f908190611fee908560015b6020020151611f80565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156120e0576120d6826105938784611f99565b91506001016120bf565b506120e9614f72565b5f5b600881101561214a575f848260088110612107576121076151b3565b6020020151905061211c816105938985611f99565b905061212781612336565b90508083836008811061213c5761213c6151b3565b6020020152506001016120eb565b505f5b600881101561219d575f878260088110612169576121696151b3565b60200201519050612186818484600881106107fa576107fa6151b3565b90506121928682611f80565b95505060010161214d565b5061075c8483611f67565b5f5f6121be600161059885610593896001611f99565b90506121ca8482611f67565b95945050505050565b5f6121dc614f91565b6121e7868285612d91565b6121f386868386612f3d565b6121ff86868386613125565b61220a868285613321565b612215868285613509565b6122218686838661384c565b61222c8682856140e6565b6122378682856144b1565b61075c81856147a6565b612249614ed8565b81815260015b601c8110156122a057612281826122676001846151c7565b601c8110612277576122776151b3565b6020020151612401565b8282601c8110612293576122936151b3565b602002015260010161224f565b50919050565b6122ae614f35565b836122c76122c282865f6020020151611f99565b612336565b82525f5b601c81101561232d575f6122e08560016151a0565b8211612302576122ff6122c2848885601c8110611fe457611fe46151b3565b90505b808461230f8460016151a0565b601d811061231f5761231f6151b3565b6020020152506001016122cb565b50509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061540b5f395f51905f520360808201525f51602061540b5f395f51905f5260a082015260205f60c08360055afa905080612394575f5ffd5b50505f519392505050565b604080518082019091525f8082526020820152604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611f61825f51602061540b5f395f51905f526151c7565b5f611f618283611f67565b5f601c5b80156124fb575f846124236001846151c7565b601c8110612433576124336151b3565b602002015190505f886124476001856151c7565b601c8110612457576124576151b3565b602002015190505f8761246b6001866151c7565b601c811061247b5761247b6151b3565b602002015190505f6124b661249a612493868d611f67565b6002611f67565b6105b6846105936124b08961059360018b611f99565b88611f99565b90506124d7816105936122c26124d18861059360018a611f99565b87611f80565b9050868511806124e557819a505b5050505050806124f49061532f565b9050612410565b509395945050505050565b604080518082019091525f80825260208201525f612526601c60286151a0565b6125319060026151a0565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125bf5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612566565b50805184526020810151602085015250505092915050565b604080518082019091525f80825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4782602001517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761263b91906151c7565b612645919061531c565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516127e49190615344565b5f60405180830381855afa9150503d805f811461281c576040519150601f19603f3d011682016040523d82523d5f602084013e612821565b606091505b50915091505f8180602001905181019061283b919061535a565b90508280156128475750805b979650505050505050565b5f808080806128628660036151a0565b61286d90600c6151a0565b67ffffffffffffffff81111561288557612885615379565b6040519080825280602002602001820160405280156128ae578160200160208202803683370190505b509050885f01515f1b815f815181106128c9576128c96151b3565b60200260200101818152505088602001515f1b816001815181106128ef576128ef6151b3565b60200260200101818152505088604001515f1b81600281518110612915576129156151b3565b60209081029190910101525f5b868110156129745788888281811061293c5761293c6151b3565b905060200201358282600361295191906151a0565b81518110612961576129616151b3565b6020908102919091010152600101612922565b50606089015151816129878860036151a0565b81518110612997576129976151b3565b60209081029190910181019190915260608a01510151816129b98860036151a0565b6129c49060016151a0565b815181106129d4576129d46151b3565b6020908102919091010152606089015160400151816129f48860036151a0565b6129ff9060026151a0565b81518110612a0f57612a0f6151b3565b60209081029190910101526060808a0151015181612a2e8860036151a0565b612a399060036151a0565b81518110612a4957612a496151b3565b602090810291909101015260808901515181612a668860036151a0565b612a719060046151a0565b81518110612a8157612a816151b3565b60209081029190910181019190915260808a0151015181612aa38860036151a0565b612aae9060056151a0565b81518110612abe57612abe6151b3565b602090810291909101015260808901516040015181612ade8860036151a0565b612ae99060066151a0565b81518110612af957612af96151b3565b602090810291909101015260808901516060015181612b198860036151a0565b612b249060076151a0565b81518110612b3457612b346151b3565b602090810291909101015260a08901515181612b518860036151a0565b612b5c9060086151a0565b81518110612b6c57612b6c6151b3565b60209081029190910181019190915260a08a0151015181612b8e8860036151a0565b612b999060096151a0565b81518110612ba957612ba96151b3565b602090810291909101015260a08901516040015181612bc98860036151a0565b612bd490600a6151a0565b81518110612be457612be46151b3565b602090810291909101015260a08901516060015181612c048860036151a0565b612c0f90600b6151a0565b81518110612c1f57612c1f6151b3565b602002602001018181525050612c3f81604051602001611a44919061538d565b9150612c4a82612d58565b6040805160208101869052929750909550612c659101611a44565b91505f612c7183612d58565b50959a949950949750909550919350505050565b5f5f5f612c90614fb0565b8581526101008581018051516020808501919091528151810151604080860191909152825181015160608087019190915292518301516080860152610120808a0180515160a0880152805184015160c080890191909152815184015160e089015290518501519587019590955293890180515194860194909452835182015161014086015283518101516101608601529251909101516101808401529051612d3e91611a44918491016153c2565b9150612d4982612d58565b90979096509194509092505050565b5f80826fffffffffffffffffffffffffffffffff8116608082901c612d7c82611f49565b9450612d8781611f49565b9350505050915091565b5f612d9d84600761480b565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612dfe612df8612dd2856003611f99565b610593612ded612de28b5f61480b565b6105938c601c61480b565b6105938b601b61480b565b83611f67565b9050612e7f612e74612e5b612e42612e2985610598612e1e8d600261480b565b6105938e601b61480b565b610598612e378c600361480b565b6105938d601c61480b565b610598612e508b600461480b565b6105938c601d61480b565b610598612e698a600561480b565b6105938b601e61480b565b61059888600161480b565b9050612e9e81610598612e93866001611f99565b6105938a602661480b565b9050612eaa8184611f67565b9050612eb68185611f67565b8552505f9050612ef0612ee6612edb612ed088601b61480b565b61059889601e61480b565b6105b688602361480b565b610598875f61480b565b9050612f0181610593846002611f99565b9050612f1281610593846001611f99565b9050612f1e8183611f67565b9050612f2a8184611f67565b9050808460015b60200201525050505050565b5f5f5f612f73612f69612f5189601b61480b565b610598612f5f8b601161480b565b8a60600151611f67565b8760800151611f80565b9050612fac81610593612fa2612f8a8b601c61480b565b610598612f988d601261480b565b8c60600151611f67565b8960800151611f80565b9050612fd181610593612fa2612fc38b601d61480b565b610598612f988d601361480b565b9050612ff681610593612fa2612fe88b601e61480b565b610598612f988d601461480b565b92505f905061301a612f6961300c89601b61480b565b610598612f5f8b600d61480b565b905061303f81610593612fa26130318b601c61480b565b610598612f988d600e61480b565b905061306481610593612fa26130568b601d61480b565b610598612f988d600f61480b565b905061308981610593612fa261307b8b601e61480b565b610598612f988d601061480b565b91505f90506130b06130aa61309f89601f61480b565b6105988a601961480b565b84611f67565b90506130e5816105b66130df6130c78b602761480b565b6105986130d58d601a61480b565b8c60a00151611f67565b85611f67565b90506130f18185611f67565b6040860152505f6131146130df61310989601a61480b565b6105938a602761480b565b606090950194909452505050505050565b5f5f61318361316b61315361313e612fa28a601561480b565b61059861314c8b601661480b565b8a51611f67565b6105986131618a601761480b565b8960200151611f67565b61059861317989601861480b565b8860400151611f67565b91505f6131ba6131a161319789601b61480b565b8860800151611f80565b6105986131af8a600361480b565b6105938b602361480b565b90505f6131e36131cb89601c61480b565b6105986131d88b5f61480b565b6105938c602461480b565b90505f61320d6131f48a601d61480b565b6105986132028c600161480b565b6105938d602561480b565b905061324c61323461322685610598868d5f0151611f67565b610598848c60200151611f67565b6105986132428c600461480b565b8b60400151611f67565b93505050505f6132606130aa88602061480b565b90505f6132716130aa89602061480b565b90505f6132a96132906132858b602261480b565b6105988c600661480b565b6105b661329e8c602261480b565b6105938d600661480b565b90505f6132cd6132c76132bc8789611f67565b6105938d602061480b565b83611f99565b90506132d98188611f67565b90505f6133016132f36132ed8d600661480b565b87611f67565b6105b66132ed8e602161480b565b60808a018390529050808960055b60200201525050505050505050505050565b5f61332d5f6001611f99565b90505f61333b5f6002611f99565b90505f6133495f6003611f99565b90505f61336561335a88601c61480b565b6105b689601b61480b565b90505f61338161337689601d61480b565b6105b68a601c61480b565b90505f61339d6133928a601e61480b565b6105b68b601d61480b565b90505f6133b96133ae8b602361480b565b6105b68c601e61480b565b9050836133ca81610593818b611f80565b90506133da81610593878a611f80565b90506133ea816105938789611f80565b90506133fb816105938d600861480b565b9050613407818a611f67565b60c08b0152508261341c81610593818b611f80565b905061342c81610593868a611f80565b905061343c816105938689611f80565b905061344d816105938d600861480b565b9050613459818a611f67565b60e08b0152508161346e81610593818b611f80565b905061347e81610593858a611f80565b905061348e816105938589611f80565b905061349f816105938d600861480b565b90506134ab818a611f67565b6101008b015250806134c181610593818b611f80565b90506134d181610593848a611f80565b90506134e1816105938489611f80565b90506134f2816105938d600861480b565b90506134fe818a611f67565b9050808a600961330f565b6135426040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61354d84601c61480b565b815261355a84601d61480b565b602082015261356a84602361480b565b604082015261357a84602661480b565b606082015261358a84602561480b565b608082015261359a84602461480b565b60a08201525f6135ab85600261480b565b90505f6135b8865f61480b565b90505f6135cc8460400151855f0151611f99565b90505f6135e185602001518660200151611f67565b606086015190915086905f906135f79080611f67565b90505f61361561360f89602001518a60600151611f67565b88611f67565b90505f61363461362d8a60a001518b60400151611f80565b8a51611f80565b90506136436132ed8288611f67565b905061366461365e6136586124b08487611f99565b84611f80565b83611f80565b905061368c6136816136768387611f67565b6105938f600961480b565b61059360018a611f99565b6101408c015250505050602085015160808601515f916136ab91611f80565b90505f6136c96136bf886060015188611f67565b8860200151611f99565b90505f6136ed6136d98487611f67565b6105986130df8b60a001518c5f0151611f99565b905061371561370a6136ff838c611f67565b6105938e600961480b565b610593600189611f99565b6101608b0152505f9150613736905061372f836011611f80565b8751611f67565b90505f6137438384611f80565b905061374f8182611f80565b90505f61375d836009611f67565b90506137866137806130aa6137798b60a001518c5f0151611f80565b8b51611f80565b82611f99565b60c089018190525f906137a19061360f90613676908d611f67565b90506137b48b600a602002015182611f80565b6101408c0152505086515f92506137db915061372f906137d49080611f80565b8851611f80565b90505f61381b6137f6836105938a5f01518b60a00151611f99565b60208901516105b6906138099080611f80565b6105938b602001518c60800151611f80565b905061383889600b602002015161059861360f613676858d611f67565b89600b602002015250505050505050505050565b6138e0604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6139156138fc6138f187601b61480b565b61059388602461480b565b61059861390a88602361480b565b61059389601c61480b565b815261395a61394f61393661392b88601b61480b565b61059389601e61480b565b61059861394489601c61480b565b6105938a601d61480b565b6105b687602561480b565b6040820181905261396f90600160441b611f67565b60408201819052613985906105b687602661480b565b6040820181905281516139989190611f80565b604082018190526139ae9061059387600561480b565b604082015280516139c390600160441b611f67565b8082526139e3906105986139d888602361480b565b61059389602461480b565b808252602082018190526139ff906105b6612ed088601d61480b565b60208201819052613a159061059387600461480b565b6020820152805160608201819052613a329061059887601e61480b565b60608201819052613a56906105b6613a4b88602561480b565b61059889602661480b565b60608201819052613a6b90610593875f61480b565b8160600181815250505f613a94613a8a83602001518460400151611f80565b8360600151611f80565b9050613aa58161059388600361480b565b9050613abd613ab587602461480b565b614000611f67565b60808301819052613ad39061059888602361480b565b60808301819052613ae690614000611f67565b60808301819052613afc9061059888601d61480b565b60808301819052613b0f90614000611f67565b60808301819052613b259061059888601c61480b565b60808301819052613b3890614000611f67565b60808301819052613b4e9061059888601b61480b565b60808301819052613b64906105b688601e61480b565b60808301819052613b7a9061059388600561480b565b6080830152613b8d613ab587602561480b565b60a08301819052613ba39061059888602461480b565b60a08301819052613bb690614000611f67565b60a08301819052613bcc9061059888602361480b565b60a08301819052613bdf90614000611f67565b60a08301819052613bf59061059888601e61480b565b60a08301819052613c0890614000611f67565b60a08301819052613c1e9061059888601d61480b565b60a08301819052613c34906105b688602661480b565b60a08301819052613c4990610593885f61480b565b60a0830181905260808301515f91613c619190611f80565b9050613c728161059389600461480b565b9050613c8c613c8288601d61480b565b8760400151611f67565b60c08401819052613ca5906105986131618a601c61480b565b60c08401819052613cc590610598613cbe8a601b61480b565b8951611f67565b60c08401819052613cdb9061059889600161480b565b60c0840181905260e08401819052613cf8906105b689601e61480b565b60c0840152613d0b61335a88602361480b565b610140840152613d2a613d1f88602661480b565b6105b689601e61480b565b610120840152610140830151613d4f90613d449080611f67565b846101400151611f99565b610280840152610140830151613d9190613d8690613d7f9061059360015f51602061540b5f395f51905f526151c7565b6001611f80565b846101200151611f67565b6101608401819052613dc890613dba90610593613daf8b600261480b565b6105938c600361480b565b6105936132ed8a600a61480b565b6101a0860152610280830151613dea90613dba90610593613daf8b600261480b565b6101c086015260c0830151613e1290610593613e078a600261480b565b6105938b600361480b565b6101e08401525f613e31613e2789601e61480b565b8560e00151611f99565b9050613e406137808283611f67565b6101a0850152613e5461317989602561480b565b6101008501819052613e7890610598613e6e8b602461480b565b8a60200151611f67565b6101008501819052613e929061059861314c8b602361480b565b610100850152613eb1613ea689602661480b565b856101000151611f99565b6101008501525f613ec66133928a602561480b565b9050613f1a613ef4612df8613d7f88610140015160015f51602061540b5f395f51905f5261059391906151c7565b610593613d7f88610100015160015f51602061540b5f395f51905f5261059391906151c7565b610180860152610100850151613f3f90613f349080611f67565b866101000151611f99565b6101c0860152610180850151613f7290613f5e906105938c600761480b565b610593613f6c8c600a61480b565b89611f67565b6101e0880152610280850151613f9190613f5e906105938c600761480b565b6102008801526101c0850151613fb090613f5e906105938c600761480b565b6102208801526101a0850151613fcb906105938b600761480b565b610200860152613fea613fdf8a602461480b565b6105b68b601c61480b565b610220860152610140850151614029906133929061401e90613d7f9061059360015f51602061540b5f395f51905f526151c7565b876102200151611f67565b61024086018190526101e0860151610260870181905261406091610598906105936140558e600561480b565b6105938f600261480b565b610260860181905260c08601516140839190610598906105936140558e5f61480b565b610260860181905261020086015161409b9190611f80565b61026086018190526140b1906136589086611f80565b6102a086018190526140cb90610593613f6c8c600a61480b565b6102a0860181905287600c6020020152505050505050505050565b61415c6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61417561416a85601b61480b565b61059886600261480b565b815261419061418585601c61480b565b61059886600361480b565b60208201526141ae6141a385601d61480b565b61059886600461480b565b60408201526141cc6141c185601e61480b565b61059886600561480b565b606082015280516141fe906141f7906141f0906141e99080611f67565b8451611f67565b8351611f67565b8251611f67565b6080820152602081015161423c90614232906142289061421e9080611f67565b8460200151611f67565b8360200151611f67565b8260200151611f67565b60a0820152604081015161427a90614270906142669061425c9080611f67565b8460400151611f67565b8360400151611f67565b8260400151611f67565b60c082015260608101516142b8906142ae906142a49061429a9080611f67565b8460600151611f67565b8360600151611f67565b8260600151611f67565b60e0820152608081015160a08201516142d19190611f80565b61010082015260c081015160e08201516142eb9190611f80565b61012082015260a081015161430f906143049080611f80565b826101200151611f80565b61014082015260e0810151614333906143289080611f80565b826101000151611f80565b6101608201526101208101516143499080611f80565b6101e0820181905261436a9061435f9080611f80565b826101600151611f80565b6101e08201526101008101516143809080611f80565b6101a082018190526143a1906143969080611f80565b826101400151611f80565b6101a082018190526101608201516143b891611f80565b6101808201526101408101516101e08201516143d49190611f80565b6101c08201526143e8612df885600b61480b565b61020082018190526102408401516101808301516144139261059891610593906105b68a602361480b565b83601260200201526144438360136020020151610598836102000151610593856101a001516105b68a602461480b565b83601360200201526144738360146020020151610598836102000151610593856101c001516105b68a602561480b565b83601460200201526144a38360156020020151610598836102000151610593856101e001516105b68a602661480b565b836015602002015250505050565b6145036040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145387f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f49565b81526020016145667f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f49565b81526020016145937e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f49565b81526020016145c17f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f49565b905290506145de6145d386601b61480b565b61059887600261480b565b61012083018190526146129061460790613d86906145fc9080611f67565b856101200151611f67565b836101200151611f67565b825261461f85601c61480b565b602083015261462f85601d61480b565b604083015261463f85601e61480b565b60608301528151602083015161466791613a8a9161465d9190611f80565b8460400151611f80565b608083015261467a6130aa86600c61480b565b610140830152815161469b9061469190835f6107fa565b8360800151611f80565b60a08301526146c784601660200201516105988461014001516105938660a001516105b68b602361480b565b6102c085015260208201516146e290614691908360016107fa565b60c083015261470e84601760200201516105988461014001516105938660c001516105b68b602461480b565b6102e0850152604082015161472990614691908360026107fa565b60e083015261475584601860200201516105988461014001516105938660e001516105b68b602561480b565b610300850152606082015161477090614691908360036107fa565b61010083015261479e84601960200201516105988461014001516105938661010001516105b68b602661480b565b846019612f31565b5f6147b2818481611fe4565b905060015b601a811015614804576147fa826105988684601a81106147d9576147d96151b3565b6020020151866147ea6001876151c7565b601981106107fa576107fa6151b3565b91506001016147b7565b5092915050565b5f8282602781111561481f5761481f6153f6565b6028811061482f5761482f6151b3565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161487460405180604001604052805f81526020015f81525090565b815260200161489460405180604001604052805f81526020015f81525090565b81526020016148b460405180604001604052805f81526020015f81525090565b81526020016148d460405180604001604052805f81526020015f81525090565b81526020016148f460405180604001604052805f81526020015f81525090565b815260200161491460405180604001604052805f81526020015f81525090565b815260200161493460405180604001604052805f81526020015f81525090565b815260200161495460405180604001604052805f81526020015f81525090565b815260200161497460405180604001604052805f81526020015f81525090565b815260200161499460405180604001604052805f81526020015f81525090565b81526020016149b460405180604001604052805f81526020015f81525090565b81526020016149d460405180604001604052805f81526020015f81525090565b81526020016149f460405180604001604052805f81526020015f81525090565b8152602001614a1460405180604001604052805f81526020015f81525090565b8152602001614a3460405180604001604052805f81526020015f81525090565b8152602001614a5460405180604001604052805f81526020015f81525090565b8152602001614a7460405180604001604052805f81526020015f81525090565b8152602001614a9460405180604001604052805f81526020015f81525090565b8152602001614ab460405180604001604052805f81526020015f81525090565b8152602001614ad460405180604001604052805f81526020015f81525090565b8152602001614af460405180604001604052805f81526020015f81525090565b8152602001614b1460405180604001604052805f81526020015f81525090565b8152602001614b3460405180604001604052805f81526020015f81525090565b8152602001614b5460405180604001604052805f81526020015f81525090565b8152602001614b7460405180604001604052805f81526020015f81525090565b8152602001614b9460405180604001604052805f81526020015f81525090565b8152602001614bb460405180604001604052805f81526020015f81525090565b905290565b6040518061022001604052805f81526020015f81526020015f8152602001614bfe60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c2a60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c5660405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c8260405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cae60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cda60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d0660405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3260405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3f614fcf565b8152602001614d4c614ffd565b8152602001614d5961501c565b8152602001614d66614ed8565b8152602001614d9260405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614bb460405180608001604052805f81526020015f81526020015f81526020015f81525090565b604051806101000160405280614dfd6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001614e0a614e9a565b8152602001614e17614ed8565b8152602001614e24614ed8565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b604080518082019091525f8082526020820152815260200190600190039081614e715790505090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614fe7614f72565b815260200190600190039081614fdf5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b61505360405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020019060019003908161502c5790505090565b5f5f5f5f6040858703121561507c575f5ffd5b843567ffffffffffffffff811115615092575f5ffd5b8501601f810187136150a2575f5ffd5b803567ffffffffffffffff8111156150b8575f5ffd5b8760208284010111156150c9575f5ffd5b60209182019550935085013567ffffffffffffffff8111156150e9575f5ffd5b8501601f810187136150f9575f5ffd5b803567ffffffffffffffff81111561510f575f5ffd5b8760208260051b8401011115615123575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611f6157611f61615131565b5f5f8585111561516a575f5ffd5b83861115615176575f5ffd5b5050820193919092039150565b80356020831015611f61575f19602084900360031b1b1692915050565b80820180821115611f6157611f61615131565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611f6157611f61615131565b5f600182016151eb576151eb615131565b5060010190565b5f8183825b60098110156152165781518352602092830192909101906001016151f7565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261524857615248615226565b500490565b5f8183825b6029811015615271578151835260209283019290910190600101615252565b5050506105208201905092915050565b5f8183825b606d8110156152a5578151835260209283019290910190600101615286565b505050610da08201905092915050565b5f8183825b601d8110156152d95781518352602092830192909101906001016152ba565b5050506103a08201905092915050565b5f8183825b600581101561530d5781518352602092830192909101906001016152ee565b50505060a08201905092915050565b5f8261532a5761532a615226565b500690565b5f8161533d5761533d615131565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561536a575f5ffd5b81518015158114611935575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156153b7578151845260209384019390910190600101615399565b509195945050505050565b5f8183825b600d8110156153e65781518352602092830192909101906001016153c7565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a26469706673582212206057ab0dba40ab45b1ba74cacddc0bcc199ab1e122db26e0843b64b9a2cba9f064736f6c634300081b0033";
3
+ */ export const HonkVerifierBytecode = "0x60e0604052348015600e575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c05161507f61005a5f395f61057101525f818161061d01528181610bf60152610c9201525f61051a015261507f5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004614ca1565b610054565b604051901515815260200160405180910390f35b5f6100626101b86020614d79565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610198565b90505f61009787876101ad565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100d5828787865f015187604001516001610455565b90506101238686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015190925090506001610504565b815160a001525f6101348383610615565b905080610154576040516313f8744360e31b815260040160405180910390fd5b5f610160848685610716565b905080610180576040516352ec174560e11b815260040160405180910390fd5b81801561018a5750805b9a9950505050505050505050565b6101a06147a5565b6101a8610f8a565b905090565b6101b5614922565b6101ca6101c560805f8587614d90565b611872565b81526101de6101c561010060808587614d90565b60208201526101f66101c56101806101008587614d90565b604082015261020e6101c56102006101808587614d90565b60a08201526102266101c56102806102008587614d90565b60c082015261023e6101c56103006102808587614d90565b60608201526102566101c56103806103008587614d90565b60e082015261026e6101c56104006103808587614d90565b60808201526104005f5b601c811015610305575f5b60088110156102fc576102af86848761029d826020614db7565b926102aa93929190614d90565b611947565b84610100015183601c81106102c6576102c6614dca565b602002015182600881106102dc576102dc614dca565b6020020181815250506020836102f29190614db7565b9250600101610283565b50600101610278565b505f5b60288110156103595761032285838661029d826020614db7565b836101200151826028811061033957610339614dca565b60200201818152505060208261034f9190614db7565b9150600101610308565b505f5b6103686001601c614dde565b8110156103be5761038d858386610380826080614db7565b926101c593929190614d90565b83610140015182601b81106103a4576103a4614dca565b60200201526103b4608083614db7565b915060010161035c565b505f5b601c811015610412576103db85838661029d826020614db7565b83610160015182601c81106103f2576103f2614dca565b6020020181815250506020826104089190614db7565b91506001016103c1565b50610424848285610380826080614db7565b610180830152610435816080614db7565b9050610448848285610380826080614db7565b6101a08301525092915050565b61045d6149df565b5f61046d888888888888876119a3565b908352905061047c81896119f9565b6020840191909152905061048f81611b94565b604084019190915290506104a38882611bf5565b606084019190915290506104b78882611cc9565b608084019190915290506104cb8882611d54565b60a084019190915290506104df8882611ec2565b60c084019190915290506104f38882611f34565b5060e0830152509695505050505050565b5f6001808261054d866105488961054361053e8a7f0000000000000000000000000000000000000000000000000000000000000000614db7565b611f8b565b611fa9565b611fc2565b90505f61056b876105668a61054361053e8b6001614db7565b611fdb565b90505f5b7f00000000000000000000000000000000000000000000000000000000000000008110156105fd575f6105ba8b83815181106105ad576105ad614dca565b6020026020010151611f8b565b90506105ca866105438684611fc2565b95506105da856105438584611fc2565b94506105e6848b611fc2565b93506105f2838b611fdb565b92505060010161056f565b50610608848461200a565b9998505050505050505050565b5f806001815b7f00000000000000000000000000000000000000000000000000000000000000008110156106ec575f86610100015182601c811061065b5761065b614dca565b602002015190505f61066d8286612018565b90508061068d576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106a4576106a4614dca565b602002015190506106b58382612035565b95506106dc886040015185601c81106106d0576106d0614dca565b602002015186836121e4565b945050505080600101905061061b565b505f610706866101200151865f015187602001518561220f565b90508281145b9695505050505050565b5f61075d6040518061012001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61076b8460a0015161227d565b9050610775614a38565b61077d614a57565b60e086015161079c9061079790855f5b6020020151611fdb565b6122e2565b60a085015260e08601516107bb9061079790855f5b6020020151611fc2565b60c080860182905260a0860151908801516107da926105489190611fa9565b845260a0860151610808906107ee906122e2565b6105438660a001516105668a60c001518960c00151611fa9565b6020850152600182526101808801516108209061234b565b81526001606085018190525f60808601525b602381116108d857610853610849865f015161238a565b8660600151611fa9565b83826046811061086557610865614dca565b602002015260808501516101208a01516108a8919061054890610889600186614dde565b6028811061089957610899614dca565b60200201518860600151611fa9565b8560800181815250506108c385606001518860800151611fa9565b60608601526108d181614df1565b9050610832565b505f6108e660236001614db7565b90505b6028811161096757610901610849866020015161238a565b83826046811061091357610913614dca565b602002015260808501516101208a0151610937919061054890610889600186614dde565b85608001818152505061095285606001518860800151611fa9565b606086015261096081614df1565b90506108e9565b50606087015181600160200201526080870151816002602002015260a0870151816003602002015260c0870151816004602002015260e0870151816005602002015261010087015181600660200201526101208701518160076020020152610140870151816008602002015261016087015181600960200201526101a087015181600a602002015261018087015181600b60200201526101c087015181600c60200201526101e087015181600d602002015261020087015181600e602002015261022087015181600f60200201526102408701518160106020020152610260870151816011602002015261028087015181601260200201526102a087015181601360200201526102c087015181601460200201526102e08701518160156020020152610300870151816016602002015261032087015181601760200201526103408701518160186020020152610360870151816019602002015261038087015181601a60200201526103a087015181601b60200201528751610ae89061234b565b6103808201526020880151610afc9061234b565b6103a08201526040880151610b109061234b565b6103c08201526060880151610b249061234b565b6103e08201526080880151610b389061234b565b61040082015260e0880151610b4c9061234b565b61042082015260a0880151610b609061234b565b61044082015260c0880151610b749061234b565b6104608201528751610b859061234b565b6104808201526020880151610b999061234b565b6104a08201526040880151610bad9061234b565b6104c08201526060880151610bc19061234b565b6104e08201526080880151610bd59061234b565b610500820152606086015160808501516101608a01515f92610c1a929091877f00000000000000000000000000000000000000000000000000000000000000006123a2565b805160a0870151919250610c2d91611fa9565b604086018190526101608a01515160c0890151610c5d929161054891610c539190611fa9565b8860c00151611fa9565b604086015260c0870151610c70906124bd565b60608601525f5b610c836001601c614dde565b811015610e85575f610cb660017f0000000000000000000000000000000000000000000000000000000000000000614dde565b821015905080610e2b57610ce96107978a60e0015188856001610cd99190614db7565b601c811061078d5761078d614dca565b60a088015260e0890151610d17906107979088610d07866001614db7565b601c81106107b1576107b1614dca565b60c0880152606087015160a0880151610d309190611fa9565b60e0880152606087015160c08a0151610d4c91610c5391611fa9565b6101008801819052610d6e90610d619061238a565b6105488960e0015161238a565b8583610d7c60286001614db7565b610d869190614db7565b60468110610d9657610d96614dca565b60200201526101008701516101608c01515f91610dd291610db8866001614db7565b601c8110610dc857610dc8614dca565b6020020151611fa9565b9050610dee816105488a60e0015187876001610db89190614db7565b9050610dfe886040015182611fc2565b6040890152606088015160c08b0151610e2491610e1a91611fa9565b8b60c00151611fa9565b6060890152505b610e4f8b610140015183601b8110610e4557610e45614dca565b602002015161234b565b8483610e5d60286001614db7565b610e679190614db7565b60468110610e7757610e77614dca565b602002015250600101610c77565b5060408051808201909152600181526002602082015282610ea8601c6028614db7565b60468110610eb857610eb8614dca565b6020020152604085015183610ecf601c6028614db7565b60468110610edf57610edf614dca565b60200201526101a08901515f90610ef59061234b565b90508083610f05601c6028614db7565b610f10906001614db7565b60468110610f2057610f20614dca565b602002015260e088015184610f37601c6028614db7565b610f42906001614db7565b60468110610f5257610f52614dca565b60200201525f610f6284866124c8565b90505f610f6e8361258e565b9050610f7a82826125d4565b9c9b505050505050505050505050565b610f926147a5565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f1f425781e8ef39130b9af37c4df3857dbb57f2c90d773a08dd7bb7223b9c769881527f0b56e6215d3442928b7fd2700b92c9e8f3db72528391ea9c3dc5b88100b958c8818301526060830152825180840184527f199782d5140a68faee5649fa0c0933ae33d898e4ef9d26c8b26bbae6e7544cc581527f0e9d20233f97e641a42027a82d82bfce00c1bac9b53bcf5abf8ec4ee8f57e61e818301526080830152825180840184527f22e9b5f48c858336b414888d3f8033059991647ecf9dd3b832ca9a6f233341db81527f116a43b4e5b709bea4a365956014caa84cf282dc638950aacbada1441d959b928183015260a0830152825180840184527f18ae7c4b61cab36b249cb55057e45bd5db24e439dcab7c418f3e7fa7afa7d7d181527f017d54b734ef59f5862640014bb25dd0ccea353a3f0162b894e88e1c76591daf8183015260c0830152825180840184527f057038a56e9cbebbbdee44328a472c92f427492675502989e327a0429ccf8ef681527f22e2ec127490ecdc92f161ce9450ea748c19e51c0db29111a2704e630f690fce8183015260e0830152825180840184527f2948f25ca9fdd65741a9721edb32a72c0ee12ff54a74a94714de246dd5b27fbb81527f1fafc1bb412198f7cf48b164a6621747f66f8d05891d421f6cb8a0abb48d05f381830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f267cfcb47328b7ae6ae044add074918836d0ee7bcd39ced6454cd7f5afecbd1481527f2cbf9b2a5c0fd7af4913b00bb7b922b2553530f7f96d3553f777d9a82603bf5581830152610140830152825180840184527f2b99286034390238d2f87e4a340ec8b43f63e68f4074539df890f4a7c99d842781527f21fcf1b038a7607d36b729d9bb8f7a2b1d9baf7a726a34ad30b3958b7704412081830152610160830152825180840184527f2b04321531676dac0c855123ea0834800a44730384b0f03c77a884e6b896ad5c81527f06f2a41ce4704c3c8f461b27c3d8b5647dd528aed884e5266da0e8a71e0cc73081830152610180830152825180840184527f04307c6f14c1ef3d0b77cb3ae4ca3f9d3499300f88550a76483ec705fb6339e481527f2e6a6c88b20eecd02c1ec2b0154d3bba59b0f429aac1956ee81cea28214b7196818301526101a0830152825180840184527f27188ec9792bf29d81ceec5c249bb2b736ae0844be6954e55b71e6d1cc83dbd581527f1f35519c1d02549cb1883916501985cee5acd60d65423098d7bfbedb060d5c15818301526101c0830152825180840184527f0d131d17a863d1b8c580de3daaa9b2db4bafec94bc8cf7f938b2862897ecfcb781527f239a4ed4df51b3e7b8d0ed6601d6b3ddd36f8cfe5a8dca6c0bf519fd053c8e52818301526101e0830152825180840184527f05a0d344dcbd02bea6acff5c011d642f7904a1869cae2f2058163f07305bc0ce81527f23ec1edcaa244a5e10bb67f327a64b7d763b6ebf703a9efab4b43f3d025b4b7581830152610200830152825180840184527f26a043c8feec2b650aca9a4d01c03695028f8141a8dbbb2f324a7d7992ded6b181527f1d2423009b702d2a7407db0f12f77b00472c0a6f67b585bc2293ff3e6c1cc9c181830152610220830152825180840184527f0fc5bf9cc0c2731f10fbcd23c51651d8ac79f4f2913ea450a9bc9650fb05cb3881527f1eb327112d3d4680915309eb953d82ac47921027dc89ba914f83d39663eb425b81830152610240830152825180840184527f14cc2150916f412892dcd75efcc5aa2da33214ed3452e23cf604588acddeea4481527f1134a39331aa8bb2cf2a27dd82668aa34aa6f84695df48fd252db9447e97390181830152610260830152825180840184527f193d9924725390a4f0f09086e3b578a35e8fc91be6a8dc43345058d5187b2d0b81527f023e6d2627aa62fb44d78e3637f34ab51f82ad5bf90f7d1706ff85e6588fa85e81830152610280830152825180840184527f0fe7cf270c80d8c953574b9cd045788a23620a606eca8616fd7b0817272974b981527f026512584f1ffd93699d7c3d10cc1033f5d22a485056525a06b04f699345838e818301526102a0830152825180840184527f0f17eebdd648a22a2534c6f62afaf6c7825fa2ae41f98d398eec5758e92b5fa281527f0645f63ec34efb355d9c56043a633de3f41fd9af61a7d3ecf46a87e203007cc6818301526102c0830152825180840184527f0525a86d809801993377e82c6810d7124bb2f1995759aba65bf60b0c4fda8f3181527f1b8f05120eb2c53b2cad8099860699db5fc9dce89d1de77360d25f3b83d83baa818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f10e0775469485c408ab9b0f95d6b3fd5dcaeced274c1a3ba0105915195dc046283527f21369c8875c1b7ede3133157e0412ce94cbf2ad6e7b5c3e666fb0b04fc5cf855908301526103a081019190915290565b61187a614a85565b608082146118c55760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b6040805160808101909152806118de60205f8688614d90565b6118e791614e09565b81526020908101906118fd906040908688614d90565b61190691614e09565b8152602001611919606060408688614d90565b61192291614e09565b8152602001611935608060608688614d90565b61193e91614e09565b90529392505050565b5f6020821461198f5760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b60448201526064016118bc565b61199c61053e8385614e09565b9392505050565b6119ab614aa9565b5f6119ba8989898989896127d8565b6040860191909152602085019190915290835292506119d9838a612bfa565b608085019190915260608401919091529199919850909650505050505050565b611a01614ad9565b5f611a0a614af8565b84815260e0848101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608080870191909152880180515160a0870152805183015160c08701528051820151948601949094529251909101516101008401529051611aa191611a8691849101614e26565b60405160208183030381529060405280519060200120611f8b565b9150611aac82612cc5565b6020850152835260015b611ac260026019614e6e565b811015611b4257611adf83604051602001611a8691815260200190565b9250611aea83612cc5565b85611af6846002614d79565b60198110611b0657611b06614dca565b6020020186611b16856002614d79565b611b21906001614db7565b60198110611b3157611b31614dca565b602002019190915252600101611ab6565b50611b5982604051602001611a8691815260200190565b91505f611b6583612cc5565b85611b7260016019614dde565b60198110611b8257611b82614dca565b60200201919091525050509250929050565b611b9c614b17565b5f805b601c811015611bee57611bbe84604051602001611a8691815260200190565b93505f611bca85612cc5565b8584601c8110611bdc57611bdc614dca565b60200201919091525050600101611b9f565b5090929050565b611bfd614b17565b5f805b601c811015611cc057611c11614af8565b8481525f5b6008811015611c7a5786610100015183601c8110611c3657611c36614dca565b60200201518160088110611c4c57611c4c614dca565b602002015182611c5d836001614db7565b60098110611c6d57611c6d614dca565b6020020152600101611c16565b50611c8f81604051602001611a869190614e26565b94505f611c9b86612cc5565b8685601c8110611cad57611cad614dca565b6020020191909152505050600101611c00565b50909391925050565b5f5f611cd3614b36565b8381525f5b6028811015611d26578561012001518160288110611cf857611cf8614dca565b602002015182611d09836001614db7565b60298110611d1957611d19614dca565b6020020152600101611cd8565b50611d3b81604051602001611a869190614e81565b91505f611d4783612cc5565b5096929550919350505050565b5f5f611d5e614b55565b8381525f5b611d6f6001601c614dde565b811015611ead5785610140015181601b8110611d8d57611d8d614dca565b60200201515182611d9f836004614d79565b611daa906001614db7565b606d8110611dba57611dba614dca565b602002015261014086015181601b8110611dd657611dd6614dca565b60200201516020015182826004611ded9190614d79565b611df8906002614db7565b606d8110611e0857611e08614dca565b602002015261014086015181601b8110611e2457611e24614dca565b60200201516040015182611e39836004614d79565b611e44906003614db7565b606d8110611e5457611e54614dca565b602002015261014086015181601b8110611e7057611e70614dca565b60200201516060015182611e85836004614d79565b611e90906004614db7565b606d8110611ea057611ea0614dca565b6020020152600101611d63565b50611d3b81604051602001611a869190614eb5565b5f5f611ecc614b74565b8381525f5b601c811015611f1f5785610160015181601c8110611ef157611ef1614dca565b602002015182611f02836001614db7565b601d8110611f1257611f12614dca565b6020020152600101611ed1565b50611d3b81604051602001611a869190614ee9565b5f5f611f3e614b93565b83815261018085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611d3b91611a8691849101614f1d565b5f611fa35f51602061505f5f395f51905f5283614f50565b92915050565b5f5f51602061505f5f395f51905f528284099392505050565b5f5f51602061505f5f395f51905f528284089392505050565b5f5f51602061505f5f395f51905f52612001835f51602061505f5f395f51905f52614dde565b84089392505050565b5f61199c83610543846122e2565b81515f90819061202a908560016107b1565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b600881101561211c57612112826105438784611fdb565b91506001016120fb565b50612125614bb1565b5f5b6008811015612186575f84826008811061214357612143614dca565b60200201519050612158816105438985611fdb565b9050612163816122e2565b90508083836008811061217857612178614dca565b602002015250600101612127565b505f5b60088110156121d9575f8782600881106121a5576121a5614dca565b602002015190506121c281848460088110610dc857610dc8614dca565b90506121ce8682611fc2565b955050600101612189565b5061070c8483611fa9565b5f5f6121fa600161054885610543896001611fdb565b90506122068482611fa9565b95945050505050565b5f612218614bd0565b612223868285612cf5565b61222f86868386612ea1565b61223b86868386613089565b612246868285613285565b61225186828561346d565b61225d868683866137b6565b612268868285614050565b61227386828561441b565b61070c8185614710565b612285614b17565b81815260015b601c8110156122dc576122bd826122a3600184614dde565b601c81106122b3576122b3614dca565b60200201516124bd565b8282601c81106122cf576122cf614dca565b602002015260010161228b565b50919050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061505f5f395f51905f520360808201525f51602061505f5f395f51905f5260a082015260205f60c08360055afa905080612340575f5ffd5b50505f519392505050565b612353614bef565b604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611fa3825f51602061505f5f395f51905f52614dde565b6123aa614b17565b601c5b80156124b3575f846123c0600184614dde565b601c81106123d0576123d0614dca565b602002015190505f886123e4600185614dde565b601c81106123f4576123f4614dca565b602002015190505f61244f61241361240c858c611fa9565b6002611fa9565b6105668a612422600189614dde565b601c811061243257612432614dca565b60200201516105436124498861054360018a611fdb565b87611fdb565b90506124708161054361079761246a87610543600189611fdb565b86611fc2565b905085841161249f579750878085612489600187614dde565b601c811061249957612499614dca565b60200201525b505050806124ac90614f63565b90506123ad565b5095945050505050565b5f611fa38283611fa9565b6124d0614bef565b5f6124dd601c6028614db7565b6124e8906002614db7565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125765760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa9092169160010161251d565b50805184526020810151602085015250505092915050565b612596614bef565b5f51602061503f5f395f51905f5282602001515f51602061503f5f395f51905f526125c19190614dde565b6125cb9190614f50565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b03168360405161276a9190614f78565b5f60405180830381855afa9150503d805f81146127a2576040519150601f19603f3d011682016040523d82523d5f602084013e6127a7565b606091505b50915091505f818060200190518101906127c19190614f8e565b90508280156127cd5750805b979650505050505050565b5f808080806127e8876003614db7565b6127f390600c614db7565b6001600160401b0381111561280a5761280a614fad565b604051908082528060200260200182016040528015612833578160200160208202803683370190505b509050875f1b815f8151811061284b5761284b614dca565b602002602001018181525050865f1b8160018151811061286d5761286d614dca565b602002602001018181525050855f1b8160028151811061288f5761288f614dca565b60209081029190910101525f5b878110156128ee578a8a828181106128b6576128b6614dca565b90506020020135828260036128cb9190614db7565b815181106128db576128db614dca565b602090810291909101015260010161289c565b508a5151816128fe896003614db7565b8151811061290e5761290e614dca565b6020908102919091018101919091528b5101518161292d896003614db7565b612938906001614db7565b8151811061294857612948614dca565b60209081029190910101528a516040015181612965896003614db7565b612970906002614db7565b8151811061298057612980614dca565b60209081029190910101528a51606001518161299d896003614db7565b6129a8906003614db7565b815181106129b8576129b8614dca565b6020908102919091018101919091528b015151816129d7896003614db7565b6129e2906004614db7565b815181106129f2576129f2614dca565b6020908102919091018101919091528b810151015181612a13896003614db7565b612a1e906005614db7565b81518110612a2e57612a2e614dca565b6020908102919091018101919091528b01516040015181612a50896003614db7565b612a5b906006614db7565b81518110612a6b57612a6b614dca565b6020908102919091018101919091528b01516060015181612a8d896003614db7565b612a98906007614db7565b81518110612aa857612aa8614dca565b602090810291909101015260408b01515181612ac5896003614db7565b612ad0906008614db7565b81518110612ae057612ae0614dca565b60209081029190910181019190915260408c0151015181612b02896003614db7565b612b0d906009614db7565b81518110612b1d57612b1d614dca565b60209081029190910101526040808c0151015181612b3c896003614db7565b612b4790600a614db7565b81518110612b5757612b57614dca565b602090810291909101015260408b01516060015181612b77896003614db7565b612b8290600b614db7565b81518110612b9257612b92614dca565b602002602001018181525050612bb281604051602001611a869190614fc1565b9150612bbd82612cc5565b6040805160208101869052929750909550612bd89101611a86565b91505f612be483612cc5565b50959c949b509499509097509195505050505050565b5f5f5f612c05614c07565b85815260a0858101805151602080850191909152815181015160408086019190915282518101516060808701919091529251830151608086015260c0808a0180515195870195909552845183015190860152835181015160e086015292518201516101008501528188018051516101208601528051820151610140860152805184015161016086015251909101516101808401529051612cab91611a8691849101614ff6565b9150612cb682612cc5565b90979096509194509092505050565b5f80826001600160801b038116608082901c612ce082611f8b565b9450612ceb81611f8b565b9350505050915091565b5f612d01846007614775565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612d62612d5c612d36856003611fdb565b610543612d51612d468b5f614775565b6105438c601c614775565b6105438b601b614775565b83611fa9565b9050612de3612dd8612dbf612da6612d8d85610548612d828d6002614775565b6105438e601b614775565b610548612d9b8c6003614775565b6105438d601c614775565b610548612db48b6004614775565b6105438c601d614775565b610548612dcd8a6005614775565b6105438b601e614775565b610548886001614775565b9050612e0281610548612df7866001611fdb565b6105438a6026614775565b9050612e0e8184611fa9565b9050612e1a8185611fa9565b8552505f9050612e54612e4a612e3f612e3488601b614775565b61054889601e614775565b610566886023614775565b610548875f614775565b9050612e6581610543846002611fdb565b9050612e7681610543846001611fdb565b9050612e828183611fa9565b9050612e8e8184611fa9565b9050808460015b60200201525050505050565b5f5f5f612ed7612ecd612eb589601b614775565b610548612ec38b6011614775565b8a60600151611fa9565b8760800151611fc2565b9050612f1081610543612f06612eee8b601c614775565b610548612efc8d6012614775565b8c60600151611fa9565b8960800151611fc2565b9050612f3581610543612f06612f278b601d614775565b610548612efc8d6013614775565b9050612f5a81610543612f06612f4c8b601e614775565b610548612efc8d6014614775565b92505f9050612f7e612ecd612f7089601b614775565b610548612ec38b600d614775565b9050612fa381610543612f06612f958b601c614775565b610548612efc8d600e614775565b9050612fc881610543612f06612fba8b601d614775565b610548612efc8d600f614775565b9050612fed81610543612f06612fdf8b601e614775565b610548612efc8d6010614775565b91505f905061301461300e61300389601f614775565b6105488a6019614775565b84611fa9565b90506130498161056661304361302b8b6027614775565b6105486130398d601a614775565b8c60a00151611fa9565b85611fa9565b90506130558185611fa9565b6040860152505f61307861304361306d89601a614775565b6105438a6027614775565b606090950194909452505050505050565b5f5f6130e76130cf6130b76130a2612f068a6015614775565b6105486130b08b6016614775565b8a51611fa9565b6105486130c58a6017614775565b8960200151611fa9565b6105486130dd896018614775565b8860400151611fa9565b91505f61311e6131056130fb89601b614775565b8860800151611fc2565b6105486131138a6003614775565b6105438b6023614775565b90505f61314761312f89601c614775565b61054861313c8b5f614775565b6105438c6024614775565b90505f6131716131588a601d614775565b6105486131668c6001614775565b6105438d6025614775565b90506131b061319861318a85610548868d5f0151611fa9565b610548848c60200151611fa9565b6105486131a68c6004614775565b8b60400151611fa9565b93505050505f6131c461300e886020614775565b90505f6131d561300e896020614775565b90505f61320d6131f46131e98b6022614775565b6105488c6006614775565b6105666132028c6022614775565b6105438d6006614775565b90505f61323161322b6132208789611fa9565b6105438d6020614775565b83611fdb565b905061323d8188611fa9565b90505f6132656132576132518d6006614775565b87611fa9565b6105666132518e6021614775565b60808a018390529050808960055b60200201525050505050505050505050565b5f6132915f6001611fdb565b90505f61329f5f6002611fdb565b90505f6132ad5f6003611fdb565b90505f6132c96132be88601c614775565b61056689601b614775565b90505f6132e56132da89601d614775565b6105668a601c614775565b90505f6133016132f68a601e614775565b6105668b601d614775565b90505f61331d6133128b6023614775565b6105668c601e614775565b90508361332e81610543818b611fc2565b905061333e81610543878a611fc2565b905061334e816105438789611fc2565b905061335f816105438d6008614775565b905061336b818a611fa9565b60c08b0152508261338081610543818b611fc2565b905061339081610543868a611fc2565b90506133a0816105438689611fc2565b90506133b1816105438d6008614775565b90506133bd818a611fa9565b60e08b015250816133d281610543818b611fc2565b90506133e281610543858a611fc2565b90506133f2816105438589611fc2565b9050613403816105438d6008614775565b905061340f818a611fa9565b6101008b0152508061342581610543818b611fc2565b905061343581610543848a611fc2565b9050613445816105438489611fc2565b9050613456816105438d6008614775565b9050613462818a611fa9565b9050808a6009613273565b6134a66040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6134b184601c614775565b81526134be84601d614775565b60208201526134ce846023614775565b60408201526134de846026614775565b60608201526134ee846025614775565b60808201526134fe846024614775565b60a08201525f61350f856002614775565b90505f61351c865f614775565b90505f6135308460400151855f0151611fdb565b90505f61354585602001518660200151611fa9565b606086015190915086905f9061355b9080611fa9565b90505f61357961357389602001518a60600151611fa9565b88611fa9565b90505f6135986135918a60a001518b60400151611fc2565b8a51611fc2565b90506135a76132518288611fa9565b90506135ce6135c86135c26135bc8487611fdb565b88611fdb565b84611fc2565b83611fc2565b90506135f66135eb6135e08387611fa9565b6105438f6009614775565b61054360018a611fdb565b6101408c015250505050602085015160808601515f9161361591611fc2565b90505f613633613629886060015188611fa9565b8860200151611fdb565b90505f6136576136438487611fa9565b6105486130438b60a001518c5f0151611fdb565b905061367f613674613669838c611fa9565b6105438e6009614775565b610543600189611fdb565b6101608b0152505f91506136a09050613699836011611fc2565b8751611fa9565b90505f6136ad8384611fc2565b90506136b98182611fc2565b90505f6136c7836009611fa9565b90506136f06136ea61300e6136e38b60a001518c5f0151611fc2565b8b51611fc2565b82611fdb565b60c089018190525f9061370b90613573906135e0908d611fa9565b905061371e8b600a602002015182611fc2565b6101408c0152505086515f925061374591506136999061373e9080611fc2565b8851611fc2565b90505f613785613760836105438a5f01518b60a00151611fdb565b6020890151610566906137739080611fc2565b6105438b602001518c60800151611fc2565b90506137a289600b60200201516105486135736135e0858d611fa9565b89600b602002015250505050505050505050565b61384a604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61387f61386661385b87601b614775565b610543886024614775565b610548613874886023614775565b61054389601c614775565b81526138c46138b96138a061389588601b614775565b61054389601e614775565b6105486138ae89601c614775565b6105438a601d614775565b610566876025614775565b604082018190526138d990600160441b611fa9565b604082018190526138ef90610566876026614775565b6040820181905281516139029190611fc2565b6040820181905261391890610543876005614775565b6040820152805161392d90600160441b611fa9565b80825261394d90610548613942886023614775565b610543896024614775565b8082526020820181905261396990610566612e3488601d614775565b6020820181905261397f90610543876004614775565b602082015280516060820181905261399c9061054887601e614775565b606082018190526139c0906105666139b5886025614775565b610548896026614775565b606082018190526139d590610543875f614775565b8160600181815250505f6139fe6139f483602001518460400151611fc2565b8360600151611fc2565b9050613a0f81610543886003614775565b9050613a27613a1f876024614775565b614000611fa9565b60808301819052613a3d90610548886023614775565b60808301819052613a5090614000611fa9565b60808301819052613a669061054888601d614775565b60808301819052613a7990614000611fa9565b60808301819052613a8f9061054888601c614775565b60808301819052613aa290614000611fa9565b60808301819052613ab89061054888601b614775565b60808301819052613ace9061056688601e614775565b60808301819052613ae490610543886005614775565b6080830152613af7613a1f876025614775565b60a08301819052613b0d90610548886024614775565b60a08301819052613b2090614000611fa9565b60a08301819052613b3690610548886023614775565b60a08301819052613b4990614000611fa9565b60a08301819052613b5f9061054888601e614775565b60a08301819052613b7290614000611fa9565b60a08301819052613b889061054888601d614775565b60a08301819052613b9e90610566886026614775565b60a08301819052613bb390610543885f614775565b60a0830181905260808301515f91613bcb9190611fc2565b9050613bdc81610543896004614775565b9050613bf6613bec88601d614775565b8760400151611fa9565b60c08401819052613c0f906105486130c58a601c614775565b60c08401819052613c2f90610548613c288a601b614775565b8951611fa9565b60c08401819052613c4590610548896001614775565b60c0840181905260e08401819052613c629061056689601e614775565b60c0840152613c756132be886023614775565b610140840152613c94613c89886026614775565b61056689601e614775565b610120840152610140830151613cb990613cae9080611fa9565b846101400151611fdb565b610280840152610140830151613cfb90613cf090613ce99061054360015f51602061505f5f395f51905f52614dde565b6001611fc2565b846101200151611fa9565b6101608401819052613d3290613d2490610543613d198b6002614775565b6105438c6003614775565b6105436132518a600a614775565b6101a0860152610280830151613d5490613d2490610543613d198b6002614775565b6101c086015260c0830151613d7c90610543613d718a6002614775565b6105438b6003614775565b6101e08401525f613d9b613d9189601e614775565b8560e00151611fdb565b9050613daa6136ea8283611fa9565b6101a0850152613dbe6130dd896025614775565b6101008501819052613de290610548613dd88b6024614775565b8a60200151611fa9565b6101008501819052613dfc906105486130b08b6023614775565b610100850152613e1b613e10896026614775565b856101000151611fdb565b6101008501525f613e306132f68a6025614775565b9050613e84613e5e612d5c613ce988610140015160015f51602061505f5f395f51905f526105439190614dde565b610543613ce988610100015160015f51602061505f5f395f51905f526105439190614dde565b610180860152610100850151613ea990613e9e9080611fa9565b866101000151611fdb565b6101c0860152610180850151613edc90613ec8906105438c6007614775565b610543613ed68c600a614775565b89611fa9565b6101e0880152610280850151613efb90613ec8906105438c6007614775565b6102008801526101c0850151613f1a90613ec8906105438c6007614775565b6102208801526101a0850151613f35906105438b6007614775565b610200860152613f54613f498a6024614775565b6105668b601c614775565b610220860152610140850151613f93906132f690613f8890613ce99061054360015f51602061505f5f395f51905f52614dde565b876102200151611fa9565b61024086018190526101e08601516102608701819052613fca9161054890610543613fbf8e6005614775565b6105438f6002614775565b610260860181905260c0860151613fed919061054890610543613fbf8e5f614775565b61026086018190526102008601516140059190611fc2565b610260860181905261401b906135c29086611fc2565b6102a0860181905261403590610543613ed68c600a614775565b6102a0860181905287600c6020020152505050505050505050565b6140c66040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6140df6140d485601b614775565b610548866002614775565b81526140fa6140ef85601c614775565b610548866003614775565b602082015261411861410d85601d614775565b610548866004614775565b604082015261413661412b85601e614775565b610548866005614775565b60608201528051614168906141619061415a906141539080611fa9565b8451611fa9565b8351611fa9565b8251611fa9565b608082015260208101516141a69061419c90614192906141889080611fa9565b8460200151611fa9565b8360200151611fa9565b8260200151611fa9565b60a082015260408101516141e4906141da906141d0906141c69080611fa9565b8460400151611fa9565b8360400151611fa9565b8260400151611fa9565b60c08201526060810151614222906142189061420e906142049080611fa9565b8460600151611fa9565b8360600151611fa9565b8260600151611fa9565b60e0820152608081015160a082015161423b9190611fc2565b61010082015260c081015160e08201516142559190611fc2565b61012082015260a08101516142799061426e9080611fc2565b826101200151611fc2565b61014082015260e081015161429d906142929080611fc2565b826101000151611fc2565b6101608201526101208101516142b39080611fc2565b6101e082018190526142d4906142c99080611fc2565b826101600151611fc2565b6101e08201526101008101516142ea9080611fc2565b6101a0820181905261430b906143009080611fc2565b826101400151611fc2565b6101a0820181905261016082015161432291611fc2565b6101808201526101408101516101e082015161433e9190611fc2565b6101c0820152614352612d5c85600b614775565b610200820181905261024084015161018083015161437d9261054891610543906105668a6023614775565b83601260200201526143ad8360136020020151610548836102000151610543856101a001516105668a6024614775565b83601360200201526143dd8360146020020151610548836102000151610543856101c001516105668a6025614775565b836014602002015261440d8360156020020151610548836102000151610543856101e001516105668a6026614775565b836015602002015250505050565b61446d6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806144a27f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f8b565b81526020016144d07f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f8b565b81526020016144fd7e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f8b565b815260200161452b7f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f8b565b9052905061454861453d86601b614775565b610548876002614775565b610120830181905261457c9061457190613cf0906145669080611fa9565b856101200151611fa9565b836101200151611fa9565b825261458985601c614775565b602083015261459985601d614775565b60408301526145a985601e614775565b6060830152815160208301516145d1916139f4916145c79190611fc2565b8460400151611fc2565b60808301526145e461300e86600c614775565b6101408301528151614605906145fb90835f610dc8565b8360800151611fc2565b60a083015261463184601660200201516105488461014001516105438660a001516105668b6023614775565b6102c0850152602082015161464c906145fb90836001610dc8565b60c083015261467884601760200201516105488461014001516105438660c001516105668b6024614775565b6102e08501526040820151614693906145fb90836002610dc8565b60e08301526146bf84601860200201516105488461014001516105438660e001516105668b6025614775565b61030085015260608201516146da906145fb90836003610dc8565b61010083015261470884601960200201516105488461014001516105438661010001516105668b6026614775565b846019612e95565b5f61471c8184816107b1565b905060015b601a81101561476e57614764826105488684601a811061474357614743614dca565b602002015186614754600187614dde565b60198110610dc857610dc8614dca565b9150600101614721565b5092915050565b5f828260278111156147895761478961502a565b6028811061479957614799614dca565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f81526020016147cb614bef565b81526020016147d8614bef565b81526020016147e5614bef565b81526020016147f2614bef565b81526020016147ff614bef565b815260200161480c614bef565b8152602001614819614bef565b8152602001614826614bef565b8152602001614833614bef565b8152602001614840614bef565b815260200161484d614bef565b815260200161485a614bef565b8152602001614867614bef565b8152602001614874614bef565b8152602001614881614bef565b815260200161488e614bef565b815260200161489b614bef565b81526020016148a8614bef565b81526020016148b5614bef565b81526020016148c2614bef565b81526020016148cf614bef565b81526020016148dc614bef565b81526020016148e9614bef565b81526020016148f6614bef565b8152602001614903614bef565b8152602001614910614bef565b815260200161491d614bef565b905290565b604051806101c00160405280614936614a85565b8152602001614943614a85565b8152602001614950614a85565b815260200161495d614a85565b815260200161496a614a85565b8152602001614977614a85565b8152602001614984614a85565b8152602001614991614a85565b815260200161499e614c26565b81526020016149ab614c54565b81526020016149b8614c73565b81526020016149c5614b17565b81526020016149d2614a85565b815260200161491d614a85565b6040518061010001604052806149f3614aa9565b8152602001614a00614ad9565b8152602001614a0d614b17565b8152602001614a1a614b17565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b614a6f614bef565b815260200190600190039081614a675790505090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b60405180604001604052805f81526020015f81525090565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614c3e614bb1565b815260200190600190039081614c365790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b614c8b614a85565b815260200190600190039081614c835790505090565b5f5f5f5f60408587031215614cb4575f5ffd5b84356001600160401b03811115614cc9575f5ffd5b8501601f81018713614cd9575f5ffd5b80356001600160401b03811115614cee575f5ffd5b876020828401011115614cff575f5ffd5b6020918201955093508501356001600160401b03811115614d1e575f5ffd5b8501601f81018713614d2e575f5ffd5b80356001600160401b03811115614d43575f5ffd5b8760208260051b8401011115614d57575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611fa357611fa3614d65565b5f5f85851115614d9e575f5ffd5b83861115614daa575f5ffd5b5050820193919092039150565b80820180821115611fa357611fa3614d65565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611fa357611fa3614d65565b5f60018201614e0257614e02614d65565b5060010190565b80356020831015611fa3575f19602084900360031b1b1692915050565b5f8183825b6009811015614e4a578151835260209283019290910190600101614e2b565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82614e7c57614e7c614e5a565b500490565b5f8183825b6029811015614ea5578151835260209283019290910190600101614e86565b5050506105208201905092915050565b5f8183825b606d811015614ed9578151835260209283019290910190600101614eba565b505050610da08201905092915050565b5f8183825b601d811015614f0d578151835260209283019290910190600101614eee565b5050506103a08201905092915050565b5f8183825b6005811015614f41578151835260209283019290910190600101614f22565b50505060a08201905092915050565b5f82614f5e57614f5e614e5a565b500690565b5f81614f7157614f71614d65565b505f190190565b5f82518060208501845e5f920191825250919050565b5f60208284031215614f9e575f5ffd5b8151801515811461199c575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b82811015614feb578151845260209384019390910190600101614fcd565b509195945050505050565b5f8183825b600d81101561501a578151835260209283019290910190600101614ffb565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001";
4
4
  /**
5
5
  * HonkVerifier link references.
6
6
  */ export const HonkVerifierLinkReferences = {};
@@ -63,7 +63,7 @@ export declare const IERC20Abi: readonly [{
63
63
  readonly inputs: readonly [];
64
64
  }, {
65
65
  readonly type: "error";
66
- readonly name: "FeeMath__InvalidFeeAssetPriceModifier";
66
+ readonly name: "FeeLib__InvalidFeeAssetPriceModifier";
67
67
  readonly inputs: readonly [];
68
68
  }, {
69
69
  readonly type: "error";
@@ -801,6 +801,10 @@ export declare const IERC20Abi: readonly [{
801
801
  readonly type: "uint256";
802
802
  readonly internalType: "uint256";
803
803
  }];
804
+ }, {
805
+ readonly type: "error";
806
+ readonly name: "Rollup__ManaLimitExceeded";
807
+ readonly inputs: readonly [];
804
808
  }, {
805
809
  readonly type: "error";
806
810
  readonly name: "Rollup__NoEpochToProve";
@@ -925,6 +929,18 @@ export declare const IERC20Abi: readonly [{
925
929
  readonly type: "uint256";
926
930
  readonly internalType: "uint256";
927
931
  }];
932
+ }, {
933
+ readonly type: "error";
934
+ readonly name: "SampleLib__SampleLargerThanIndex";
935
+ readonly inputs: readonly [{
936
+ readonly name: "sample";
937
+ readonly type: "uint256";
938
+ readonly internalType: "uint256";
939
+ }, {
940
+ readonly name: "index";
941
+ readonly type: "uint256";
942
+ readonly internalType: "uint256";
943
+ }];
928
944
  }, {
929
945
  readonly type: "error";
930
946
  readonly name: "SignatureLib__CannotVerifyEmpty";
@@ -1 +1 @@
1
- {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../src/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4lDZ,CAAC"}
1
+ {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../src/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAinDZ,CAAC"}
package/dest/IERC20Abi.js CHANGED
@@ -80,7 +80,7 @@
80
80
  },
81
81
  {
82
82
  "type": "error",
83
- "name": "FeeMath__InvalidFeeAssetPriceModifier",
83
+ "name": "FeeLib__InvalidFeeAssetPriceModifier",
84
84
  "inputs": []
85
85
  },
86
86
  {
@@ -1060,6 +1060,11 @@
1060
1060
  }
1061
1061
  ]
1062
1062
  },
1063
+ {
1064
+ "type": "error",
1065
+ "name": "Rollup__ManaLimitExceeded",
1066
+ "inputs": []
1067
+ },
1063
1068
  {
1064
1069
  "type": "error",
1065
1070
  "name": "Rollup__NoEpochToProve",
@@ -1223,6 +1228,22 @@
1223
1228
  }
1224
1229
  ]
1225
1230
  },
1231
+ {
1232
+ "type": "error",
1233
+ "name": "SampleLib__SampleLargerThanIndex",
1234
+ "inputs": [
1235
+ {
1236
+ "name": "sample",
1237
+ "type": "uint256",
1238
+ "internalType": "uint256"
1239
+ },
1240
+ {
1241
+ "name": "index",
1242
+ "type": "uint256",
1243
+ "internalType": "uint256"
1244
+ }
1245
+ ]
1246
+ },
1226
1247
  {
1227
1248
  "type": "error",
1228
1249
  "name": "SignatureLib__CannotVerifyEmpty",
@@ -43,7 +43,7 @@ export declare const IVerifierAbi: readonly [{
43
43
  readonly inputs: readonly [];
44
44
  }, {
45
45
  readonly type: "error";
46
- readonly name: "FeeMath__InvalidFeeAssetPriceModifier";
46
+ readonly name: "FeeLib__InvalidFeeAssetPriceModifier";
47
47
  readonly inputs: readonly [];
48
48
  }, {
49
49
  readonly type: "error";
@@ -781,6 +781,10 @@ export declare const IVerifierAbi: readonly [{
781
781
  readonly type: "uint256";
782
782
  readonly internalType: "uint256";
783
783
  }];
784
+ }, {
785
+ readonly type: "error";
786
+ readonly name: "Rollup__ManaLimitExceeded";
787
+ readonly inputs: readonly [];
784
788
  }, {
785
789
  readonly type: "error";
786
790
  readonly name: "Rollup__NoEpochToProve";
@@ -905,6 +909,18 @@ export declare const IVerifierAbi: readonly [{
905
909
  readonly type: "uint256";
906
910
  readonly internalType: "uint256";
907
911
  }];
912
+ }, {
913
+ readonly type: "error";
914
+ readonly name: "SampleLib__SampleLargerThanIndex";
915
+ readonly inputs: readonly [{
916
+ readonly name: "sample";
917
+ readonly type: "uint256";
918
+ readonly internalType: "uint256";
919
+ }, {
920
+ readonly name: "index";
921
+ readonly type: "uint256";
922
+ readonly internalType: "uint256";
923
+ }];
908
924
  }, {
909
925
  readonly type: "error";
910
926
  readonly name: "SignatureLib__CannotVerifyEmpty";
@@ -1 +1 @@
1
- {"version":3,"file":"IVerifierAbi.d.ts","sourceRoot":"","sources":["../src/IVerifierAbi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA67Cf,CAAC"}
1
+ {"version":3,"file":"IVerifierAbi.d.ts","sourceRoot":"","sources":["../src/IVerifierAbi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAk9Cf,CAAC"}
@@ -55,7 +55,7 @@
55
55
  },
56
56
  {
57
57
  "type": "error",
58
- "name": "FeeMath__InvalidFeeAssetPriceModifier",
58
+ "name": "FeeLib__InvalidFeeAssetPriceModifier",
59
59
  "inputs": []
60
60
  },
61
61
  {
@@ -1035,6 +1035,11 @@
1035
1035
  }
1036
1036
  ]
1037
1037
  },
1038
+ {
1039
+ "type": "error",
1040
+ "name": "Rollup__ManaLimitExceeded",
1041
+ "inputs": []
1042
+ },
1038
1043
  {
1039
1044
  "type": "error",
1040
1045
  "name": "Rollup__NoEpochToProve",
@@ -1198,6 +1203,22 @@
1198
1203
  }
1199
1204
  ]
1200
1205
  },
1206
+ {
1207
+ "type": "error",
1208
+ "name": "SampleLib__SampleLargerThanIndex",
1209
+ "inputs": [
1210
+ {
1211
+ "name": "sample",
1212
+ "type": "uint256",
1213
+ "internalType": "uint256"
1214
+ },
1215
+ {
1216
+ "name": "index",
1217
+ "type": "uint256",
1218
+ "internalType": "uint256"
1219
+ }
1220
+ ]
1221
+ },
1201
1222
  {
1202
1223
  "type": "error",
1203
1224
  "name": "SignatureLib__CannotVerifyEmpty",