1 tx
2 calls
constructor
constructor()
functions
ArbDbAddr
viewfunction ArbDbAddr() view returns (address)
BatchGetOrderArbSummary
viewfunction BatchGetOrderArbSummary(uint256[] _order_ids) view returns (tuple[])
CanInitiateArb
viewfunction CanInitiateArb(uint256 _order_id) view returns (bool can_initiate, uint256 error_code)
decodeArbData
purefunction decodeArbData(bytes data) pure returns (tuple)
decodeOrderArbStatus
purefunction decodeOrderArbStatus(bytes data) pure returns (tuple)
GetAllArbIdsForOrder
viewfunction GetAllArbIdsForOrder(uint256 _order_id) view returns (uint256[] arb_ids)
GetAllLogIdsForArb
viewfunction GetAllLogIdsForArb(uint256 _arb_id) view returns (uint256[] log_ids)
GetArbCompleteInfo
viewfunction GetArbCompleteInfo(uint256 _order_id, uint256 _arb_id, bool _include_all_data) view returns (tuple)
GetArbLogDataList
viewfunction GetArbLogDataList(uint256 _order_id, uint256 _arb_id, uint256 _page, uint256 _pageSize, bool _IsDesc) view returns (tuple)
GetOrderArbHistory
viewfunction GetOrderArbHistory(uint256 _order_id, uint256 _page, uint256 _pageSize, bool _IsDesc) view returns (tuple)
GetOrderArbSummary
viewfunction GetOrderArbSummary(uint256 _order_id) view returns (tuple)
GetOrderStatistics
viewfunction GetOrderStatistics(uint256 _order_id) view returns (uint256 total_arbs, uint256 completed_arbs, uint256 active_arbs, uint256 total_logs, uint256 total_fees_paid, address primary_fee_token)
GetSystemConfig
viewfunction GetSystemConfig() view returns (tuple)
GetUserArbtr
viewfunction GetUserArbtr(address _user, uint256 _page, uint256 _pageSize) view returns (uint256[] order_ids, tuple[] arb_infos)
OrderContractAddr
viewfunction OrderContractAddr() view returns (address)
owner
viewfunction owner() view returns (address)
parseArbData
purefunction parseArbData(bytes data) pure returns (tuple)
parseArbLogDataComplete
purefunction parseArbLogDataComplete(bytes data) pure returns (tuple)
SetAddr
nonpayablefunction SetAddr(address _ArbDbAddr, address _OrderContractAddr)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561000f575f80fd5b50600280546001600160a01b03191633179055615de180620000305f395ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c80635f992d57116100a9578063cae4f4d51161006e578063cae4f4d5146103eb578063d6d025cc1461040b578063e39b60ab1461041e578063e5b5bd5c14610431578063fd46b5a414610451575f80fd5b80635f992d57146103585780638bce8da3146103785780638da5cb5b1461039857806399f41dc0146103ab5780639d47e5e3146103cb575f80fd5b806346e1928d116100ef57806346e1928d1461029d57806348edd5c2146102af578063497ae253146102d057806349a491a3146103195780634c9083d614610343575f80fd5b806303e2c41e14610120578063108ed80a1461023257806316b062731461025d57806342ac4ca81461027d575b5f80fd5b610128610471565b6040516102299190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e08083015190820152610200808301519082015261022080830151908201526102408083015190820152610260808301519082015261028080830151908201526102a080830151908201526102c091820151918101919091526102e00190565b60405180910390f35b600154610245906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b61027061026b3660046149c5565b610e57565b6040516102299190614b4d565b61029061028b366004614c77565b6112b3565b6040516102299190614da6565b5f54610245906001600160a01b031681565b6102c26102bd366004614dcc565b61139f565b604051610229929190615273565b6102e36102de366004615297565b6119f9565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c001610229565b61032c610327366004615297565b611c6a565b604080519215158352602083019190915201610229565b6103566103513660046152ae565b611ee3565b005b61036b610366366004614c77565b611f57565b60405161022991906152e5565b61038b610386366004615297565b611f79565b604051610229919061531e565b600254610245906001600160a01b031681565b6103be6103b9366004615330565b6120d3565b604051610229919061536e565b6103de6103d9366004614c77565b61244c565b6040516102299190615389565b6103fe6103f936600461539b565b612577565b60405161022991906153d1565b610290610419366004614c77565b6126c7565b61038b61042c366004615297565b612808565b61044461043f366004615297565b612959565b60405161022991906154ac565b61046461045f3660046154be565b612e13565b604051610229919061552c565b61047961455e565b61048161455e565b5f8054906101000a90046001600160a01b03166001600160a01b031663b79dca066040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f3919061558e565b81525f546040805163431271eb60e01b815290516001600160a01b039092169163431271eb916004808201926020929091908290030181865afa15801561053c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610560919061558e565b6020808301919091525f54604080516305d23aab60e31b815290516001600160a01b0390921692632e91d558926004808401938290030181865afa1580156105aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ce919061558e565b6040808301919091525f5481516355badf8760e11b815291516001600160a01b039091169163ab75bf0e9160048083019260209291908290030181865afa15801561061b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063f919061558e565b60608201525f5460408051633467687760e11b815290516001600160a01b03909216916368ced0ee916004808201926020929091908290030181865afa15801561068b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af919061558e565b60808201525f546040805163ef02b7e560e01b815290516001600160a01b039092169163ef02b7e5916004808201926020929091908290030181865afa1580156106fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071f919061558e565b60a08201525f5460408051636d02af8560e01b815290516001600160a01b0390921691636d02af85916004808201926020929091908290030181865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f919061558e565b60c08201525f54604080516309f04dff60e01b815290516001600160a01b03909216916309f04dff916004808201926020929091908290030181865afa1580156107db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ff919061558e565b60e08201525f546040805163efd4620760e01b815290516001600160a01b039092169163efd46207916004808201926020929091908290030181865afa15801561084b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086f919061558e565b6101008201525f546040805163169fa0df60e11b815290516001600160a01b0390921691632d3f41be916004808201926020929091908290030181865afa1580156108bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e0919061558e565b6101208201525f54604080516303c7fc4760e11b815290516001600160a01b039092169163078ff88e916004808201926020929091908290030181865afa15801561092d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610951919061558e565b6101408201525f5460408051630156a1f560e71b815290516001600160a01b039092169163ab50fa80916004808201926020929091908290030181865afa15801561099e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c2919061558e565b6101608201525f546040805163d048940f60e01b815290516001600160a01b039092169163d048940f916004808201926020929091908290030181865afa158015610a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a33919061558e565b6101808201525f5460408051633307efc960e11b815290516001600160a01b039092169163660fdf92916004808201926020929091908290030181865afa158015610a80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa4919061558e565b6101a08201525f54604080516330a84f5160e01b815290516001600160a01b03909216916330a84f51916004808201926020929091908290030181865afa158015610af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b15919061558e565b6101c08201525f546040805163cb9ea33760e01b815290516001600160a01b039092169163cb9ea337916004808201926020929091908290030181865afa158015610b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b86919061558e565b6101e08201525f5460408051625db74960e11b815290516001600160a01b039092169162bb6e92916004808201926020929091908290030181865afa158015610bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf5919061558e565b6102008201525f54604080516357eb05f360e01b815290516001600160a01b03909216916357eb05f3916004808201926020929091908290030181865afa158015610c42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c66919061558e565b6102208201525f546040805163f9eb2c7560e01b815290516001600160a01b039092169163f9eb2c75916004808201926020929091908290030181865afa158015610cb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd7919061558e565b6102408201525f546040805163130ae74560e31b815290516001600160a01b03909216916398573a28916004808201926020929091908290030181865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d48919061558e565b6102608201525f546040805163049ba6dd60e21b815290516001926001600160a01b03169163126e9b749160048083019260209291908290030181865afa158015610d95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db9919061558e565b610dc391906155b9565b6102808201525f54604080516307337c2b60e21b815290516001926001600160a01b031691631ccdf0ac9160048083019260209291908290030181865afa158015610e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e34919061558e565b610e3e91906155b9565b6102a0820152610e4c612f1f565b6102c0820152919050565b610e876040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b848615801590610e95575085155b15610f07575f546040516321f0edd560e01b8152600481018990526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015610ee0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f04919061558e565b90505b805f03610f6b57604080515f60a0820181815260c0830190935290918291610f45565b610f326145f5565b815260200190600190039081610f2a5790505b5081526020015f81526020018681526020018581526020015f15158152509150506112aa565b5f8054604051620155f160e71b8152600481018490526001600160a01b039091169062aaf88090602401602060405180830381865afa158015610fb0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd4919061558e565b9050805f0361103b57604080515f60a0820181815260c0830190935290918291611014565b6110016145f5565b815260200190600190039081610ff95790505b5081526020015f81526020018781526020018681526020015f1515815250925050506112aa565b5f61104686886155cc565b90505f80876001600160401b0381111561106257611062614b9e565b60405190808252806020026020018201604052801561109b57816020015b6110886145f5565b8152602001906001900390816110805790505b5090505f5b88811080156110ae57508883105b156111ce575f88156110f857856110c583876155e3565b106110d057506111ce565b81856110dd6001896155b9565b6110e791906155b9565b6110f191906155b9565b9050611111565b61110282866155e3565b905085811061111157506111ce565b5f805460405163a910c62360e01b8152600481018a9052602481018490526001600160a01b039091169063a910c62390604401602060405180830381865afa15801561115f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611183919061558e565b905061118e81612feb565b8486815181106111a0576111a06155f6565b602002602001018190525084806111b69061560a565b955050505080806111c69061560a565b9150506110a0565b505f826001600160401b038111156111e8576111e8614b9e565b60405190808252806020026020018201604052801561122157816020015b61120e6145f5565b8152602001906001900390816112065790505b5090505f5b8381101561126d57828181518110611240576112406155f6565b602002602001015182828151811061125a5761125a6155f6565b6020908102919091010152600101611226565b506040518060a001604052808281526020018681526020018b81526020018a815260200186858761129e91906155e3565b10905296505050505050505b95945050505050565b6112bb614646565b610100825110156113045760405162461bcd60e51b815260206004820152600e60248201526d11185d18481d1bdbc81cda1bdc9d60921b60448201526064015b60405180910390fd5b61130c614646565b60208301805191506020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261012081015161012083015261014081015161014083015250604051806040016040528060018152602001603160f81b81525081610100018190525080915050919050565b6060805f60015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611417919061558e565b90505f816001600160401b0381111561143257611432614b9e565b60405190808252806020026020018201604052801561145b578160200160208202803683370190505b5090505f60015b838110156116fa575f805460405163ee6eb83d60e01b8152600481018490526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa1580156114b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d5919061558e565b9050805f036114e457506116f2565b5f805b828110156116bc575f80546040516302cf91ab60e41b815260048101879052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa15801561153d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611561919061558e565b5f80546040516251971f60e01b81526004810184905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa1580156115aa573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115d19190810190615674565b6001546040516371dba4dd60e11b8152600481018990529192505f9182916001600160a01b03169063e3b749ba9060240160c060405180830381865afa15801561161d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116419190615761565b50509350935050508f6001600160a01b031683602001516001600160a01b0316148061167e57508f6001600160a01b0316826001600160a01b0316145b8061169a57508f6001600160a01b0316816001600160a01b0316145b156116ac5760019550505050506116bc565b5050600190920191506114e79050565b5080156116ef57828585815181106116d6576116d66155f6565b6020908102919091010152836116eb8161560a565b9450505b50505b600101611462565b505f61170687896155cc565b90505f876001600160401b0381111561172157611721614b9e565b60405190808252806020026020018201604052801561174a578160200160208202803683370190505b509650876001600160401b0381111561176557611765614b9e565b60405190808252806020026020018201604052801561179e57816020015b61178b6146ae565b8152602001906001900390816117835790505b5095505f5b88811080156117b157508882105b156118cb575f6117c182856155e3565b90508481106117d057506118cb565b5f8682815181106117e3576117e36155f6565b60209081029190910101515f80546040516321f0edd560e01b81526004810184905292935090916001600160a01b03909116906321f0edd590602401602060405180830381865afa15801561183a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061185e919061558e565b9050818b8681518110611873576118736155f6565b60200260200101818152505061188a82825f61313e565b8a868151811061189c5761189c6155f6565b602002602001018190525084806118b29061560a565b95505050505080806118c39061560a565b9150506117a3565b505f816001600160401b038111156118e5576118e5614b9e565b60405190808252806020026020018201604052801561190e578160200160208202803683370190505b5090505f826001600160401b0381111561192a5761192a614b9e565b60405190808252806020026020018201604052801561196357816020015b6119506146ae565b8152602001906001900390816119485790505b5090505f5b838110156119e757898181518110611982576119826155f6565b602002602001015183828151811061199c5761199c6155f6565b6020026020010181815250508881815181106119ba576119ba6155f6565b60200260200101518282815181106119d4576119d46155f6565b6020908102919091010152600101611968565b50909b909a5098505050505050505050565b5f805460405163ee6eb83d60e01b815260048101849052829182918291829182916001600160a01b03169063ee6eb83d90602401602060405180830381865afa158015611a48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6c919061558e565b9550855f03611a8b57505f945084935083925082915081905080611c61565b5f805f5b88811015611c5a575f80546040516302cf91ab60e41b8152600481018d9052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015611ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b09919061558e565b5f80546040516251971f60e01b81526004810184905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611b52573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b799190810190615674565b90508060a001518160800151611b8f91906155e3565b611b9990866155e3565b94506001600160a01b038416611bb1578060e0015193505b61012081015115611bce5789611bc68161560a565b9a5050611bdc565b88611bd88161560a565b9950505b5f54604051620155f160e71b8152600481018490526001600160a01b039091169062aaf88090602401602060405180830381865afa158015611c20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c44919061558e565b611c4e90896155e3565b97505050600101611a8f565b5090925090505b91939550919395565b5f805460405163ee6eb83d60e01b815260048101849052829182916001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015611cb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd9919061558e565b9050805f03611cee5750600193849350915050565b5f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015611d35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d59919061558e565b90505f611d65866137d2565b5f80546040516251971f60e01b81526004810186905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611dae573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611dd59190810190615674565b90508061012001515f14611df257505f9660029650945050505050565b81602001516001148015611e0b57508160400151600214155b15611e1f57505f9660039650945050505050565b8160400151600203611ed4575f8054604051637adc52f760e01b8152600481018a90526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015611e72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e9691906157c6565b905080602001518360800151611eac91906155e3565b421015611ec357505f976004975095505050505050565b506001976005975095505050505050565b506001965f9650945050505050565b6002546001600160a01b03163314611f2a5760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b60448201526064016112fb565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b611f5f61478e565b81806020019051810190611f739190615896565b92915050565b5f805460405163ee6eb83d60e01b815260048101849052606092916001600160a01b03169063ee6eb83d90602401602060405180830381865afa158015611fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fe6919061558e565b9050806001600160401b0381111561200057612000614b9e565b604051908082528060200260200182016040528015612029578160200160208202803683370190505b5091505f5b818110156120cc575f546040516302cf91ab60e41b815260048101869052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612083573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a7919061558e565b8382815181106120b9576120b96155f6565b602090810291909101015260010161202e565b5050919050565b6121036040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b5f805460405163ee6eb83d60e01b8152600481018890526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa15801561214a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061216e919061558e565b9050805f036121d457604080515f60a0820181815260c08301909352909182916121ae565b61219b6146ae565b8152602001906001900390816121935790505b5081526020015f81526020018681526020018581526020015f1515815250915050612444565b5f6121df85876155cc565b90505f80866001600160401b038111156121fb576121fb614b9e565b60405190808252806020026020018201604052801561223457816020015b6122216146ae565b8152602001906001900390816122195790505b5090505f5b878110801561224757508783105b15612369575f8715612291578561225e83876155e3565b106122695750612369565b81856122766001896155b9565b61228091906155b9565b61228a91906155b9565b90506122aa565b61229b82866155e3565b90508581106122aa5750612369565b5f80546040516302cf91ab60e41b8152600481018e9052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa1580156122f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061231c919061558e565b90506123298c825f61313e565b84868151811061233b5761233b6155f6565b602002602001018190525084806123519061560a565b955050505080806123619061560a565b915050612239565b505f826001600160401b0381111561238357612383614b9e565b6040519080825280602002602001820160405280156123bc57816020015b6123a96146ae565b8152602001906001900390816123a15790505b5090505f5b83811015612408578281815181106123db576123db6155f6565b60200260200101518282815181106123f5576123f56155f6565b60209081029190910101526001016123c1565b506040518060a001604052808281526020018681526020018a815260200189815260200186858761243991906155e3565b109052955050505050505b949350505050565b6124546145f5565b61245c6147b8565b602083015f5b600b81101561247f57602081028281015190840152600101612462565b505060408051602080820183525f8083528351918201909352828152909183600860200201511180156124b757508451610100840151105b156124d1576124ce858460085b602002015161391d565b91505b610120830151158015906124ea57508451610120840151105b156124fe576124fb858460096124c4565b90505b604080516101608101825284518152602080860151908201528482015191810191909152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e08085015190820152610100810192909252610120820152610140918201519181019190915292915050565b61257f6146ae565b83838115801561258e57505f85115b1561260b575f80546040516251971f60e01b8152600481018890526001600160a01b03909116906251971f906024015f60405180830381865afa1580156125d7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526125fe9190810190615674565b5192508591506126a19050565b851561269057845f03612689575f546040516321f0edd560e01b8152600481018890526001600160a01b03909116906321f0edd590602401602060405180830381865afa15801561265e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612682919061558e565b90506126a1565b50836126a1565b612698613a21565b925050506126c0565b805f036126b057612698613a21565b6126bb82828661313e565b925050505b9392505050565b6126cf614646565b6126d76147d7565b602083015f5b600c8110156126fa576020810282810151908401526001016126dd565b505060408051602081019091525f81526101008201511580159061272357508351610100830151105b1561273757612734848360086124c4565b90505b6040805161018081018252835181526020808501516001600160a01b0316908201528382015191810191909152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e0810183600760200201516001600160a01b03168152602001828152602001836009600c81106127bf576127bf6155f6565b6020020151815260200183600a600c81106127dc576127dc6155f6565b6020020151815260200183600b600c81106127f9576127f96155f6565b60200201519052949350505050565b5f8054604051620155f160e71b815260048101849052606092916001600160a01b03169062aaf88090602401602060405180830381865afa15801561284f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612873919061558e565b9050806001600160401b0381111561288d5761288d614b9e565b6040519080825280602002602001820160405280156128b6578160200160208202803683370190505b5091505f5b818110156120cc575f5460405163a910c62360e01b815260048101869052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa158015612910573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612934919061558e565b838281518110612946576129466155f6565b60209081029190910101526001016128bb565b6129616147f6565b6129696147f6565b8281525f805460405163ee6eb83d60e01b8152600481018690526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa1580156129b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129d7919061558e565b6040830181905280151560208401819052909150612a0a5750604080515f81526020810190915261014082015292915050565b806001600160401b03811115612a2257612a22614b9e565b604051908082528060200260200182016040528015612a4b578160200160208202803683370190505b506101408301525f5b81811015612af7575f546040516302cf91ab60e41b815260048101879052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612aa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612acd919061558e565b8361014001518281518110612ae457612ae46155f6565b6020908102919091010152600101612a54565b505f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015612b3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b63919061558e565b606084018190529050612b75856137d2565b60808401819052612b87908690613ac8565b60a08401525f80805b84811015612c6d575f805461014088015180516001600160a01b03909216916251971f919085908110612bc557612bc56155f6565b60200260200101516040518263ffffffff1660e01b8152600401612beb91815260200190565b5f60405180830381865afa158015612c05573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612c2c9190810190615674565b90508060a001518160800151612c4291906155e3565b612c4c90856155e3565b93506001600160a01b038316612c64578060e0015192505b50600101612b90565b5060c085018290526001600160a01b0381811660e08701525f80546040516251971f60e01b815260048101879052919216906251971f906024015f60405180830381865afa158015612cc1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612ce89190810190615674565b6001546040516371dba4dd60e11b8152600481018b90529192505f916001600160a01b039091169063e3b749ba9060240160c060405180830381865afa158015612d34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d589190615761565b50505060208501516001600160a01b03908116818316146101008c01525f805460405163d0c239b760e01b815293965090945016915063d0c239b790612da690899060040190815260200190565b602060405180830381865afa158015612dc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de5919061558e565b90508015612e05575f612df782612feb565b6060015115156101208a0152505b509598975050505050505050565b60605f826001600160401b03811115612e2e57612e2e614b9e565b604051908082528060200260200182016040528015612e6757816020015b612e546147f6565b815260200190600190039081612e4c5790505b5090505f5b83811015612f17573063e5b5bd5c868684818110612e8c57612e8c6155f6565b905060200201356040518263ffffffff1660e01b8152600401612eb191815260200190565b5f60405180830381865afa158015612ecb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612ef291908101906159f3565b828281518110612f0457612f046155f6565b6020908102919091010152600101612e6c565b509392505050565b5f8060015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f95919061558e565b90505f60015b82811015612fe4575f612fad826137d2565b905080602001516001148015612fc857508060400151600214155b15612fdb5782612fd78161560a565b9350505b50600101612f9b565b5092915050565b612ff36145f5565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b0316633cd45a6360e01b1790525f805492517f3cd45a63be193ec81bf5621674b01ee313894a608701dd3c70febe2540a485349382916001600160a01b039091169061306a908590615af3565b5f60405180830381855afa9150503d805f81146130a2576040519150601f19603f3d011682016040523d82523d5f602084013e6130a7565b606091505b50915091508180156130bc57506101e0815110155b1561313657604051639d47e5e360e01b81523090639d47e5e3906130e4908490600401615b0e565b5f60405180830381865afa92505050801561312057506040513d5f823e601f3d908101601f1916820160405261311d9190810190615b20565b60015b61312c5761312c613c0b565b9695505050505050565b61312c613c0b565b6131466146ae565b61314e6146ae565b83815261315a84613c80565b60208201525f5460405163ee6eb83d60e01b8152600481018790526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa1580156131a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131c9919061558e565b61010082018190526001600160401b038111156131e8576131e8614b9e565b604051908082528060200260200182016040528015613211578160200160208202803683370190505b506101808201525f5b8161010001518110156132d8575f80546040516302cf91ab60e41b815260048101899052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015613275573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613299919061558e565b90508083610180015183815181106132b3576132b36155f6565b6020026020010181815250508581036132cf5761012083018290525b5060010161321a565b5082156133a2578061010001516001600160401b038111156132fc576132fc614b9e565b60405190808252806020026020018201604052801561333557816020015b613322614646565b81526020019060019003908161331a5790505b506101c08201525f5b81610100015181101561339c576133728261018001518281518110613365576133656155f6565b6020026020010151613c80565b826101c001518281518110613389576133896155f6565b602090810291909101015260010161333e565b506133da565b604080515f80825260208201909252906133d2565b6133bf614646565b8152602001906001900390816133b75790505b506101c08201525b5f54604051620155f160e71b8152600481018690526001600160a01b039091169062aaf88090602401602060405180830381865afa15801561341e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613442919061558e565b61014082018190526001600160401b0381111561346157613461614b9e565b60405190808252806020026020018201604052801561348a578160200160208202803683370190505b506101a08201525f5b81610140015181101561353b575f5460405163a910c62360e01b815260048101879052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa1580156134ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613511919061558e565b826101a001518281518110613528576135286155f6565b6020908102919091010152600101613493565b508215613605578061014001516001600160401b0381111561355f5761355f614b9e565b60405190808252806020026020018201604052801561359857816020015b6135856145f5565b81526020019060019003908161357d5790505b506101e08201525f5b8161014001518110156135ff576135d5826101a0015182815181106135c8576135c86155f6565b6020026020010151612feb565b826101e0015182815181106135ec576135ec6155f6565b60209081029190910101526001016135a1565b5061363d565b604080515f8082526020820190925290613635565b6136226145f5565b81526020019060019003908161361a5790505b506101e08201525b610140810151156136d0575f5460405163d0c239b760e01b8152600481018690526001600160a01b039091169063d0c239b790602401602060405180830381865afa15801561368e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136b2919061558e565b60408201526101408101516136c9906001906155b9565b6101608201525b6040810151156136ed576136e78160400151612feb565b60608201525b6136f6856137d2565b60808201525f54604051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015613741573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061376591906157c6565b60a08201526137748582613dc7565b60c082015261378285613eaf565b610200820181905260c0015161379790613ff0565b610220820152602081015160e001516137af90613ff0565b61024082015260208101516137c5908690614148565b60e0820152949350505050565b6137da61478e565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b031663116961f360e11b1790525f805492517f22d2c3e6678ac1695368e47b8e866343cdc17198c09b50fcab9a23fc6d92a9869382916001600160a01b039091169062030d4090613856908690615af3565b5f604051808303818686fa925050503d805f811461388f576040519150601f19603f3d011682016040523d82523d5f602084013e613894565b606091505b50915091508180156138a657505f8151115b1561391457604051635f992d5760e01b81523090635f992d57906138ce908490600401615b0e565b60a060405180830381865afa925050508015613907575060408051601f3d908101601f1916820190925261390491810190615896565b60015b61312c5761312c8661436c565b61312c8661436c565b815160609061392d8360206155e3565b1115613947575060408051602081019091525f8152611f73565b8282016020015180158061395c57506103e881115b1561397657505060408051602081019091525f8152611f73565b8351816139848560206155e3565b61398e91906155e3565b11156139a957505060408051602081019091525f8152611f73565b5f816001600160401b038111156139c2576139c2614b9e565b6040519080825280601f01601f1916602001820160405280156139ec576020820181803683370190505b509050604085850101602082015f5b84811015613a1557808301515f1a818301536001016139fb565b50919695505050505050565b613a296146ae565b613a316146ae565b604080515f80825260208083018452610180850192909252825181815280830184526101a0850152825181815291820190925290613a85565b613a72614646565b815260200190600190039081613a6a5790505b506101c0820152604080515f8082526020820190925290613abc565b613aa96145f5565b815260200190600190039081613aa15790505b506101e0820152919050565b613ad0614863565b613ad8614863565b6020830151600114808252613aee579050611f73565b5f6020820181905260408481015181840152606080860151908401526080808601519084015281549051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015613b59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b7d91906157c6565b905083604001515f03613bc35780516080850151613b9b91906155e3565b60c083018190524210801560a0840152613bbe57613bb88561439f565b60e08301525b612f17565b8360400151600203612f1757600161010083015260208101516080850151613beb91906155e3565b610160830181905242118015610120840152610140830152509392505050565b613c136145f5565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160405180602001604052805f815250815260200160405180602001604052805f81525081526020015f815250905090565b613c88614646565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b03166251971f60e01b1790525f805492517e51971f7b085c3d81e77976dbd7473ca793801bc535c0b23201ad4b9e5dbed79382916001600160a01b0390911690613cfd908590615af3565b5f60405180830381855afa9150503d805f8114613d35576040519150601f19603f3d011682016040523d82523d5f602084013e613d3a565b606091505b5091509150818015613d4f5750610180815110155b15613dbf576040516335b4097360e21b8152309063d6d025cc90613d77908490600401615b0e565b5f60405180830381865afa925050508015613db357506040513d5f823e601f3d908101601f19168201604052613db09190810190615674565b60015b61312c5761312c6144df565b61312c6144df565b613dcf614863565b613dd7614863565b60808301516020810151600114808352613df357509050611f73565b5f602083018190526040808301805191850191909152606080840151908501526080808401519085015260a08601519051909103613e645780516080830151613e3c91906155e3565b60c084018190524210801560a0850152613e5f57613e598661439f565b60e08401525b613ea5565b8160400151600203613ea557600161010084015260208101516080830151613e8c91906155e3565b6101608401819052421180156101208501526101408401525b5090949350505050565b613eb76148c2565b613ebf6148c2565b8281526001546040516316c45f7360e31b8152600481018590526001600160a01b039091169063b622fb98906024015f60405180830381865afa925050508015613f2a57506040513d5f823e601f3d908101601f19168201604052613f279190810190615c0e565b60015b15611f7357805160208084019190915281015160408084019190915281015160608084019190915281015160808084019190915281015160a0808401919091528101516001600160a01b0390811660c080850191909152820151811660e080850191909152820151811661010080850191909152820151811661012080850191909152820151610140808501919091528201516101608085019190915282015116610180808401919091528101516101a08084019190915201516101c082015292915050565b613ff8614957565b614000614957565b6001600160a01b03831680825261403d57604080518082018252600381526221272160e91b60208083019190915283015260129082015292915050565b826001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa92505050801561409a57506040513d5f823e601f3d908101601f191682016040526140979190810190615d24565b60015b6140cb57604051806040016040528060078152602001662aa725a727aba760c91b81525081602001819052506140d1565b60208201525b826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561412b575060408051601f3d908101601f1916820190925261412891810190615d55565b60015b61413a575f6040820152611f73565b60ff16604082015292915050565b614150614982565b614158614982565b5f5460408481015160e0860151915163036bd55d60e31b81526004810188905260248101919091526001600160a01b039182166044820152911690631b5eaae890606401606060405180830381865afa1580156141b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141db9190615d75565b506001600160a01b0390811660208401529082525f54604085810151905163946c964560e01b815260048101889052602481019190915291169063946c964590604401602060405180830381865afa158015614239573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061425d919061558e565b6040828101919091525f5460e0850151858301519251635d6dbc8f60e01b81526001600160a01b03918216600482015260248101939093521690635d6dbc8f90604401602060405180830381865afa1580156142bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142df919061558e565b60608201525f5460e08401516040808601519051639be8eb3960e01b81526001600160a01b0392831660048201526024810191909152911690639be8eb3990604401602060405180830381865afa15801561433c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614360919061558e565b60808201529392505050565b61437461478e565b506040805160a0810182529182525f6020830181905290820181905260608201819052608082015290565b5f80546040516321f0edd560e01b81526004810184905282916001600160a01b0316906321f0edd590602401602060405180830381865afa1580156143e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061440a919061558e565b5f805460405163d0c239b760e01b81526004810184905292935090916001600160a01b039091169063d0c239b790602401602060405180830381865afa158015614456573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061447a919061558e565b90505f61448682612feb565b90508060400151600114801561449e57506060810151155b156144ae57506001949350505050565b60408101511580156144c4575080606001516001145b156144d457506002949350505050565b506001949350505050565b6144e7614646565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160405180602001604052805f81525081526020015f81526020015f81526020015f815250905090565b604051806102e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160608152602001606081526020015f81525090565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f81526020015f81526020015f81525090565b6040518061026001604052805f81526020016146c8614646565b81526020015f81526020016146db6145f5565b81526020016146e861478e565b815260200161471460405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614721614863565b815260200161472e614982565b81526020015f81526020015f81526020015f81526020015f81526020016060815260200160608152602001606081526020016060815260200161476f6148c2565b815260200161477c614957565b8152602001614789614957565b905290565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101600160405280600b906020820280368337509192915050565b604051806101800160405280600c906020820280368337509192915050565b6040518061016001604052805f81526020015f151581526020015f81526020015f815260200161482461478e565b8152602001614831614863565b81526020015f81526020015f6001600160a01b031681526020015f151581526020015f15158152602001606081525090565b6040518061018001604052805f151581526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f81526020015f81526020015f151581526020015f151581526020015f151581526020015f81525090565b604051806101e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f81526020015f6001600160a01b031681526020015f8152602001606081525090565b60405180606001604052805f6001600160a01b03168152602001606081526020015f60ff1681525090565b6040518060a001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b80151581146149c2575f80fd5b50565b5f805f805f60a086880312156149d9575f80fd5b853594506020860135935060408601359250606086013591506080860135614a00816149b5565b809150509295509295909350565b5f5b83811015614a28578181015183820152602001614a10565b50505f910152565b5f8151808452614a47816020860160208601614a0e565b601f01601f19169290920160200192915050565b5f610160825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e083015160e0850152610100808401518282870152614ac183870182614a30565b925050506101208084015185830382870152614add8382614a30565b61014095860151969095019590955250919392505050565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614b4057601f19868403018952614b2e838351614a5b565b98840198925090830190600101614b12565b5090979650505050505050565b602081525f825160a06020840152614b6860c0840182614af5565b90506020840151604084015260408401516060840152606084015160808401526080840151151560a08401528091505092915050565b634e487b7160e01b5f52604160045260245ffd5b60405161018081016001600160401b0381118282101715614bd557614bd5614b9e565b60405290565b60405161016081016001600160401b0381118282101715614bd557614bd5614b9e565b6040516101c081016001600160401b0381118282101715614bd557614bd5614b9e565b604051601f8201601f191681016001600160401b0381118282101715614c4957614c49614b9e565b604052919050565b5f6001600160401b03821115614c6957614c69614b9e565b50601f01601f191660200190565b5f60208284031215614c87575f80fd5b81356001600160401b03811115614c9c575f80fd5b8201601f81018413614cac575f80fd5b8035614cbf614cba82614c51565b614c21565b818152856020838501011115614cd3575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f610180825184526020830151614d1260208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e0830151614d5f60e08601826001600160a01b03169052565b50610100808401518282870152614d7883870182614a30565b6101208681015190880152610140808701519088015261016095860151959096019490945250929392505050565b602081525f6126c06020830184614cf0565b6001600160a01b03811681146149c2575f80fd5b5f805f60608486031215614dde575f80fd5b8335614de981614db8565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614e2d57815187529582019590820190600101614e11565b509495945050505050565b8051151582526020810151602083015260408101516040830152606081015160608301526080810151608083015260a0810151614e7960a084018215159052565b5060c081015160c083015260e081015160e083015261010080820151614ea28285018215159052565b5050610120818101511515908301526101408082015115159083015261016090810151910152565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614b4057601f19868403018952614f03838351614cf0565b98840198925090830190600101614ee7565b5f6101e0825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c0830151614f6960c08601826001600160a01b03169052565b5060e0830151614f8460e08601826001600160a01b03169052565b50610100838101516001600160a01b0390811691860191909152610120808501518216908601526101408085015190860152610160808501519086015261018080850151909116908501526101a080840151908501526101c08084015181860183905261312c83870182614a30565b60018060a01b0381511682525f6020820151606060208501526150196060850182614a30565b60409384015160ff16949093019390935250919050565b5f61052082518452602083015181602086015261504f82860182614cf0565b91505060408301516040850152606083015184820360608601526150738282614a5b565b608085810151805188830152602081015160a0890152604081015160c0890152606081015160e08901529081015161010088015290925090505060a083015180516101208681019190915260208201516101408701526040820151610160870152606082015161018087015260c085015191506101a06150f581880184614e38565b60e0860151805161032089015260208101516001600160a01b031661034089015260408101516103608901526060810151610380890152608001516103a08801526101008601516103c0880152818601516103e0880152610140860151610400880152610160860151610420880152610180860151878503610440890152925061517f8484614dfe565b9350808601519250505084820361046086015261519c8282614dfe565b9150506101c08301518482036104808601526151b88282614eca565b9150506101e08301518482036104a08601526151d48282614af5565b9150506102008301518482036104c08601526151f08282614f15565b9150506102208301518482036104e086015261520c8282614ff3565b9150506102408301518482036105008601526112aa8282614ff3565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614b4057601f19868403018952615261838351615030565b98840198925090830190600101615245565b604081525f6152856040830185614dfe565b82810360208401526112aa8185615228565b5f602082840312156152a7575f80fd5b5035919050565b5f80604083850312156152bf575f80fd5b82356152ca81614db8565b915060208301356152da81614db8565b809150509250929050565b60a08101611f73828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602081525f6126c06020830184614dfe565b5f805f8060808587031215615343575f80fd5b8435935060208501359250604085013591506060850135615363816149b5565b939692955090935050565b602081525f825160a06020840152614b6860c0840182615228565b602081525f6126c06020830184614a5b565b5f805f606084860312156153ad575f80fd5b833592506020840135915060408401356153c6816149b5565b809150509250925092565b602081525f6126c06020830184615030565b5f6103408251845260208301516153fe602086018215159052565b506040838101518582015260608085015181870152608080860151805182890152602081015160a08901529283015160c08801529082015160e08701528101516101008601525060a083015161012061545981870183614e38565b60c08501516102a087015260e08501516001600160a01b03166102c087015261010085015115156102e087015284015115156103008601525061014083015161032085018290526112aa82860182614dfe565b602081525f6126c060208301846153e3565b5f80602083850312156154cf575f80fd5b82356001600160401b03808211156154e5575f80fd5b818501915085601f8301126154f8575f80fd5b813581811115615506575f80fd5b8660208260051b850101111561551a575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561558157603f1988860301845261556f8583516153e3565b94509285019290850190600101615553565b5092979650505050505050565b5f6020828403121561559e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611f7357611f736155a5565b8082028115828204841417611f7357611f736155a5565b80820180821115611f7357611f736155a5565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161561b5761561b6155a5565b5060010190565b805161562d81614db8565b919050565b5f82601f830112615641575f80fd5b815161564f614cba82614c51565b818152846020838601011115615663575f80fd5b612444826020830160208701614a0e565b5f60208284031215615684575f80fd5b81516001600160401b038082111561569a575f80fd5b9083019061018082860312156156ae575f80fd5b6156b6614bb2565b825181526156c660208401615622565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015261570960e08401615622565b60e08201526101008084015183811115615721575f80fd5b61572d88828701615632565b9183019190915250610120838101519082015261014080840151908201526101609283015192810192909252509392505050565b5f805f805f8060c08789031215615776575f80fd5b86519550602087015161578881614db8565b604088015190955061579981614db8565b60608801519094506157aa81614db8565b809350506080870151915060a087015190509295509295509295565b5f608082840312156157d6575f80fd5b604051608081018181106001600160401b03821117156157f8576157f8614b9e565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b5f60a08284031215615839575f80fd5b60405160a081018181106001600160401b038211171561585b5761585b614b9e565b806040525080915082518152602083015160208201526040830151604082015260608301516060820152608083015160808201525092915050565b5f60a082840312156158a6575f80fd5b6126c08383615829565b805161562d816149b5565b5f61018082840312156158cc575f80fd5b6158d4614bb2565b90506158df826158b0565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015261591560a083016158b0565b60a082015260c082015160c082015260e082015160e082015261010061593c8184016158b0565b9082015261012061594e8382016158b0565b908201526101406159608382016158b0565b818301525061016080830151818301525092915050565b5f82601f830112615986575f80fd5b815160206001600160401b038211156159a1576159a1614b9e565b8160051b6159b0828201614c21565b92835284810182019282810190878511156159c9575f80fd5b83870192505b848310156159e8578251825291830191908301906159cf565b979650505050505050565b5f60208284031215615a03575f80fd5b81516001600160401b0380821115615a19575f80fd5b908301906103408286031215615a2d575f80fd5b615a35614bdb565b82518152615a45602084016158b0565b60208201526040830151604082015260608301516060820152615a6b8660808501615829565b6080820152610120615a7f878286016158bb565b60a08301526102a084015160c0830152615a9c6102c08501615622565b60e0830152615aae6102e085016158b0565b610100830152615ac161030085016158b0565b9082015261032083015182811115615ad7575f80fd5b615ae387828601615977565b6101408301525095945050505050565b5f8251615b04818460208701614a0e565b9190910192915050565b602081525f6126c06020830184614a30565b5f60208284031215615b30575f80fd5b81516001600160401b0380821115615b46575f80fd5b908301906101608286031215615b5a575f80fd5b615b62614bdb565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015183811115615bbf575f80fd5b615bcb88828701615632565b8284015250506101208084015183811115615be4575f80fd5b615bf088828701615632565b91830191909152506101409283015192810192909252509392505050565b5f60208284031215615c1e575f80fd5b81516001600160401b0380821115615c34575f80fd5b908301906101c08286031215615c48575f80fd5b615c50614bfe565b8251815260208301516020820152604083015160408201526060830151606082015260808301516080820152615c8860a08401615622565b60a0820152615c9960c08401615622565b60c0820152615caa60e08401615622565b60e0820152610100615cbd818501615622565b9082015261012083810151908201526101408084015190820152610160615ce5818501615622565b9082015261018083810151908201526101a08084015183811115615d07575f80fd5b615d1388828701615632565b918301919091525095945050505050565b5f60208284031215615d34575f80fd5b81516001600160401b03811115615d49575f80fd5b61244484828501615632565b5f60208284031215615d65575f80fd5b815160ff811681146126c0575f80fd5b5f805f60608486031215615d87575f80fd5b835192506020840151615d9981614db8565b8092505060408401519050925092509256fea26469706673582212208a2f6e40c72fca8dc4bb6139c00dfe9bf26f77f1946f18596d74f61849e7864464736f6c63430008180033