witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
13 lines (12 loc) • 55.2 kB
TypeScript
// This file was autogenerated by Hardhat, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable
// biome-ignore format: see above
export interface WitPriceFeedsDataLib$Type {
readonly _format: "hh3-artifact-1";
readonly contractName: "WitPriceFeedsDataLib";
readonly sourceName: "contracts/data/WitPriceFeedsDataLib.sol";
readonly abi: [{"inputs":[],"name":"PriceFeedNotFound","type":"error"},{"inputs":[],"name":"StalePrice","type":"error"},{"inputs":[{"internalType":"IWitPriceFeedsTypes.ID4","name":"id4","type":"bytes4"}],"name":"getPrice","outputs":[{"components":[{"internalType":"int8","name":"exponent","type":"int8"},{"internalType":"uint64","name":"price","type":"uint64"},{"internalType":"int56","name":"deltaPrice","type":"int56"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"trail","type":"bytes32"}],"internalType":"struct IWitPriceFeedsTypes.Price","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"IWitPriceFeedsTypes.ID4","name":"id4","type":"bytes4"},{"internalType":"uint24","name":"age","type":"uint24"}],"name":"getPriceNotOlderThan","outputs":[{"components":[{"internalType":"int8","name":"exponent","type":"int8"},{"internalType":"uint64","name":"price","type":"uint64"},{"internalType":"int56","name":"deltaPrice","type":"int56"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"trail","type":"bytes32"}],"internalType":"struct IWitPriceFeedsTypes.Price","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"IWitPriceFeedsTypes.ID4","name":"id4","type":"bytes4"}],"name":"getPriceUnsafe","outputs":[{"components":[{"internalType":"int8","name":"exponent","type":"int8"},{"internalType":"uint64","name":"price","type":"uint64"},{"internalType":"int56","name":"deltaPrice","type":"int56"},{"internalType":"Witnet.Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Witnet.TransactionHash","name":"trail","type":"bytes32"}],"internalType":"struct IWitPriceFeedsTypes.Price","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IWitPriceFeedsTypes.Oracles","name":"oracle","type":"IWitPriceFeedsTypes.Oracles"}],"name":"toERC165Id","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum IWitPriceFeedsTypes.Oracles","name":"oracle","type":"IWitPriceFeedsTypes.Oracles"}],"name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum IWitPriceFeedsTypes.Mappers","name":"mapper","type":"IWitPriceFeedsTypes.Mappers"}],"name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}];
readonly bytecode: "0x61325c610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100d6575f3560e01c80639744540911610093578063d9ea438f1161006e578063d9ea438f146102b9578063ef0bf0a0146102cc578063fce897db146102eb578063ff0e1724146102ff575f5ffd5b80639744540914610228578063c66f4c0a14610293578063cab8a78e146102a6575f5ffd5b806301d63b7f146100da5780630873d81d1461011757806310b999a3146101565780631752c19f146101765780635e34a7bb146101f45780637d18e02014610207575b5f5ffd5b8180156100e5575f5ffd5b506100f96100f436600461274e565b61031e565b6040516001600160e01b031990911681526020015b60405180910390f35b818015610122575f5ffd5b50610136610131366004612822565b610570565b604080516001600160e01b0319909316835260208301919091520161010e565b6101696101643660046128c2565b610668565b60405161010e9190612909565b610189610184366004612944565b6107a9565b60405161010e91905f60c0820190506001600160401b0383511682526001600160401b036020840151166020830152604083015160060b604083015260608301515f0b60608301526001600160401b03608084015116608083015260a083015160a083015292915050565b61016961020236600461297d565b610e2d565b818015610212575f5ffd5b506102266102213660046129a3565b610f1c565b005b61023b6102363660046129d8565b61128f565b60405161010e91905f60a08201905082515f0b82526001600160401b036020840151166020830152604083015160060b60408301526001600160401b0360608401511660608301526080830151608083015292915050565b61023b6102a13660046129d8565b611348565b6100f96102b43660046128c2565b611495565b61023b6102c73660046129f1565b61153c565b8180156102d7575f5ffd5b506100f96102e6366004612a22565b611661565b8180156102f6575f5ffd5b506100f961178e565b81801561030a575f5ffd5b506100f9610319366004612a90565b6117c3565b5f8084600481111561033257610332612b0d565b60ff1611801561035657506004848181111561035057610350612b0d565b60ff1611155b6103985760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21036b0b83832b960911b60448201526064015b60405180910390fd5b5f6103a388886118f1565b90505f6103af82611a98565b90506103ba81611ac2565b156103d75760405162461bcd60e51b815260040161038f90612b21565b5f5f5b85811015610543575f6104438888848181106103f8576103f8612b4a565b905060200281019061040a9190612b5e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1792505050565b90505f61044f82611a98565b905061045a81611ac2565b89898581811061046c5761046c612b4a565b905060200281019061047e9190612b5e565b60405160200161048f929190612ba0565b604051602081830303815290604052906104bc5760405162461bcd60e51b815260040161038f9190612909565b506104c8836020612bec565b826001600160e01b031916901c841793506104e1611b46565b6001600160e01b0319929092165f9081526002909201602090815260408320805460018082018355918552919093206008820401805463ffffffff60079093166004026101000a928302191660e089901c9290920291909117905550016103da565b5061055082898984611b6a565b6105598361128f565b5061056261178e565b9a9950505050505050505050565b5f5f5f61057d89896118f1565b90505f61058982611a98565b90506001600160a01b0385166105d55760405162461bcd60e51b81526020600482015260116024820152706e6f207261646f6e20726567697374727960781b604482015260640161038f565b604051630502487d60e51b81526001600160a01b0386169063a0490fa090610603908b908b90600401612c2b565b602060405180830381865afa15801561061e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106429190612c46565b925061065181875f3087611bf2565b61065961178e565b93505050965096945050505050565b60605f82600381111561067d5761067d612b0d565b036106a857505060408051808201909152600a8152695769742f4f7261636c6560b01b602082015290565b60018260038111156106bc576106bc612b0d565b036106e857505060408051808201909152600b81526a20a22797a2a92199199b1960a91b602082015290565b60028260038111156106fc576106fc612b0d565b03610732575050604080518082019091526015815274436861696e6c696e6b41676772656761746f72563360581b602082015290565b600382600381111561074657610746612b0d565b0361076c575050604080518082019091526005815264092a0f2e8d60db1b602082015290565b60405162461bcd60e51b8152602060048201526012602482015271756e737570706f72746564206f7261636c6560701b604482015260640161038f565b6107b161262d565b6001840154600160501b900460ff165f8160048111156107d3576107d3612b0d565b03610d11576001850154600160581b900460ff165f8160038111156107fa576107fa612b0d565b036109f3576001860154600160601b90046001600160a01b0316158061083357506001860154600160601b90046001600160a01b031630145b156108a85750506040805160c08101825260058601546001600160401b03808216835268010000000000000000820481166020840152600160801b8204600690810b94840194909452600160b81b82045f0b6060840152600160c01b9091041660808201529085015460a08201529050610e26565b60048601546301000000900460ff16610955576001860154600287015460405163d9ea438f60e01b81526001600160e01b0319909116600482015262ffffff8616602482015261095091600160601b90046001600160a01b03169063d9ea438f9060440160a060405180830381865afa158015610927573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b9190612c85565b611ca9565b6109ea565b6001860154600287015460405163d9ea438f60e01b81526001600160e01b0319909116600482015262ffffff861660248201526109ea91600160601b90046001600160a01b03169063d9ea438f9060440160a060405180830381865afa1580156109c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e59190612c85565b611d18565b92505050610e26565b6001816003811115610a0757610a07612b0d565b03610aba576001860154600287015460405163f78eea8360e01b815260048101919091525f918291600160601b9091046001600160a01b03169063f78eea8390602401606060405180830381865afa158015610a65573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a899190612d1b565b506001600160401b03918216602088015216608086015250506001860154600160201b90045f0b6060840152610d0b565b6002816003811115610ace57610ace612b0d565b03610b81575f5f87600101600c9054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610b28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4c9190612d5f565b506001600160401b0392831660208a01529091166080880152505050506001860154600160201b90045f0b6060840152610d0b565b6003816003811115610b9557610b95612b0d565b0361076c57604080516080810182525f80825260208201819052918101829052606081019190915260048701546301000000900460ff1615610c5e5760018701546002880154604051639474f45b60e01b81526004810191909152600160601b9091046001600160a01b031690639474f45b90602401608060405180830381865afa158015610c26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4a9190612dad565b80516001600160401b031685529050610cea565b600187015460028801546040516396834ad360e01b81526004810191909152600160601b9091046001600160a01b0316906396834ad390602401608060405180830381865afa158015610cb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd79190612dad565b80516001600160401b0316602086015290505b6060808201516001600160401b031660808601526040909101515f0b908401525b50610e24565b6003816004811115610d2557610d25612b0d565b1480610d4257506004816004811115610d4057610d40612b0d565b145b15610d7f576001850154610d779085908590600160201b90045f0b6004856004811115610d7157610d71612b0d565b14611d87565b915050610e26565b6002816004811115610d9357610d93612b0d565b03610db3576001850154610d779085908590600160201b90045f0b612073565b6001816004811115610dc757610dc7612b0d565b03610de7576001850154610d779085908590600160201b90045f0b6121ba565b60405162461bcd60e51b81526020600482015260126024820152713ab739bab83837b93a32b21036b0b83832b960711b604482015260640161038f565b505b9392505050565b60605f826004811115610e4257610e42612b0d565b03610e675750506040805180820190915260048152634e6f6e6560e01b602082015290565b6003826004811115610e7b57610e7b612b0d565b03610ea3575050604080518082019091526007815266141c9bd91d58dd60ca1b602082015290565b6001826004811115610eb757610eb7612b0d565b03610ee057505060408051808201909152600881526746616c6c6261636b60c01b602082015290565b6002826004811115610ef457610ef4612b0d565b03610de7575050604080518082019091526007815266121bdd1d195cdd60ca1b602082015290565b5f610f2683611a98565b9050610f3181611ac2565b1561128a575f610f3f611b46565b6001600160e01b031985165f908152600291909101602090815260409182902080548351818402810184019094528084529091830182828015610fcb57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610f8d5790505b505050505090508280610fdd57508051155b6110355760405162461bcd60e51b815260206004820152602360248201527f63616e6e6f742072656d6f7665206966206d61707065642066726f6d206f746860448201526265727360e81b606482015260840161038f565b5f5b815181101561106b5761106382828151811061105557611055612b4a565b602002602001015185610f1c565b600101611037565b50611074611b46565b6001600160e01b031985165f9081526002919091016020526040812061109991612661565b5f60016110a4611b46565b546110af9190612e36565b600184015490915063ffffffff1681111561114b575f6110cd611b46565b8054839081106110df576110df612b4a565b5f91825260208220015491506110f482611a98565b600180870154908201805463ffffffff191663ffffffff90921691909117905590508161111f611b46565b6001870154815463ffffffff90911690811061113d5761113d612b4a565b5f9182526020909120015550505b611153611b46565b80548061116257611162612e49565b5f8281526020812082015f1990810191909155019055600283015480156111eb576111b661118e611b46565b5f838152600391909101602052604090205460e01b6001600160e01b03199081169088161490565b156111eb575f6111c4611b46565b5f83815260039190910160205260409020805463ffffffff191660e09290921c9190911790555b6111f3611b46565b6001600160e01b031987165f908152600191909101602052604081206005810182905560060155611222611b46565b6001600160e01b031987165f90815260019190910160205260408120906112498282612686565b505f6001820181905560028201819055600382018190556004820180546dffffffffffffffffffffffffffff19169055600582018190556006909101555050505b505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101829052906112c283611a98565b90505f6112d082855f6107a9565b90506040518060a0016040528082606001515f0b81526020015f835f01516001600160401b031611611306578260200151611309565b82515b6001600160401b03168152602001826040015160060b815260200182608001516001600160401b031681526020018260a0015181525092505050919050565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081018290529061137b83611a98565b90505f61138a82600401612241565b90505f61139c838684606001516107a9565b60808101519091506001600160401b03166113ca57604051630295d7cd60e31b815260040160405180910390fd5b606082015162ffffff1615806114015750816060015162ffffff1681608001516113f49190612e5d565b6001600160401b03164211155b61141e57604051630cd5fa0760e11b815260040160405180910390fd5b6040518060a0016040528082606001515f0b81526020015f835f01516001600160401b031611611452578260200151611455565b82515b6001600160401b03168152602001826040015160060b815260200182608001516001600160401b031681526020018260a001518152509350505050919050565b5f808260038111156114a9576114a9612b0d565b036114bc5750636d11bc5160e11b919050565b60018260038111156114d0576114d0612b0d565b036114e3575063f78eea8360e01b919050565b60028260038111156114f7576114f7612b0d565b0361150a5750630e70a24b60e31b919050565b600382600381111561151e5761151e612b0d565b0361153057506242596b60e61b919050565b505f919050565b919050565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081018290529061156f84611a98565b90505f61157d8286866107a9565b60808101519091506001600160401b03166115ab57604051630295d7cd60e31b815260040160405180910390fd5b8362ffffff1681608001516115c09190612e5d565b6001600160401b03164211156115e957604051630cd5fa0760e11b815260040160405180910390fd5b6040518060a0016040528082606001515f0b81526020015f835f01516001600160401b03161161161d578260200151611620565b82515b6001600160401b03168152602001826040015160060b815260200182608001516001600160401b031681526020018260a00151815250925050505b92915050565b5f5f61166d87876118f1565b90505f61167982611a98565b90506001600160a01b0384166116c55760405162461bcd60e51b81526020600482015260116024820152706e6f207261646f6e20726567697374727960781b604482015260640161038f565b604051631a3b01e960e21b8152600481018790526001600160a01b038516906368ec07a490602401602060405180830381865afa158015611708573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172c9190612e7c565b61176d5760405162461bcd60e51b8152602060048201526012602482015271756e766572696669656420736f757263657360701b604482015260640161038f565b61177a81865f308a611bf2565b61178261178e565b98975050505050505050565b5f6117976123e4565b9050806117a2611b46565b60050160146101000a81548163ffffffff021916908360e01c021790555090565b5f808460038111156117d7576117d7612b0d565b60ff16101580156117fc5750600384818111156117f6576117f6612b0d565b60ff1611155b6118395760405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964206f7261636c6560901b604482015260640161038f565b5f61184488886118f1565b90505f61185082611a98565b905061185b81611ac2565b156118785760405162461bcd60e51b815260040161038f90612b21565b5f856001600160a01b03163b116118c55760405162461bcd60e51b8152602060048201526011602482015270696e6578697374656e74206f7261636c6560781b604482015260640161038f565b6118d28188888888611bf2565b6118db8261128f565b506118e461178e565b9998505050505050505050565b5f5f61193184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1792505050565b90508091505f61194083611a98565b604051909150611954908290602001612ec9565b60405160208183030381529060405280519060200120858560405160200161197d929190612c2b565b6040516020818303038152906040528051906020012014611a65576119a0611b46565b6001600160e01b031984165f908152600291909101602052604090205415611a265760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74207265666163746f72206578697369746e672073796d626f6c206044820152726966206d6170706564206279206f746865727360681b606482015260840161038f565b80611a32858783612f9b565b50611a3b611b46565b5460018201805463ffffffff191663ffffffff9092169190911790555f6005820181905560068201555b611a6e81611ac2565b611a9057611a7a611b46565b80546001810182555f9182526020909120018290555b505092915050565b5f611aa1611b46565b6001600160e01b03199092165f908152600192909201602052506040902090565b60028101545f90151580611af757506001820154600160501b900460ff166004811115611af157611af1612b0d565b60ff1615155b8061165b57505060010154600160601b90046001600160a01b0316151590565b5f81604051602001611b299190612909565b604051602081830303815290604052805190602001209050919050565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390090565b611b7384611ac2565b15611b905760405162461bcd60e51b815260040161038f90612b21565b60018401805464ff00000000198116600160201b60ff87160290811783558492916aff0000000000ff00000000191660ff60501b1990911617600160501b836004811115611be057611be0612b0d565b02179055506003909301929092555050565b611bfb85611ac2565b15611c185760405162461bcd60e51b815260040161038f90612b21565b60018501805464ff00000000198116600160201b60ff88160290811783558592916bff000000000000ff00000000191660ff60581b1990911617600160581b836003811115611c6957611c69612b0d565b02179055506001850180546001600160a01b03909316600160601b026bffffffffffffffffffffffff909316929092179091556002909301929092555050565b611cb161262d565b6040518060c001604052805f6001600160401b0316815260200183602001516001600160401b03168152602001836040015160060b8152602001835f01515f0b815260200183606001516001600160401b0316815260200183608001518152509050919050565b611d2061262d565b6040518060c0016040528083602001516001600160401b031681526020015f6001600160401b03168152602001836040015160060b8152602001835f01515f0b815260200183606001516001600160401b0316815260200183608001518152509050919050565b611d8f61262d565b5f611d9986612465565b9050611da36126bd565b5f5b8251811015611ef5575f611df4611dd4858481518110611dc757611dc7612b4a565b6020026020010151611a98565b858481518110611de657611de6612b4a565b60200260200101518a6107a9565b9050815f03611e495780516001600160401b031615611e1c57805160070b6020840152611e27565b602081015160070b83525b6080808201516001600160401b03169086015260a08082015190860152611ec5565b60208301515f1215611e6d57805160070b8360016020020180519091029052611e7e565b6020810151835160079190910b0283525b611ea2816080015186608001516001600160401b031661251b90919063ffffffff16565b15611ec5576080808201516001600160401b03169086015260a080820151908601525b85611ed65780606001515f03611edc565b80606001515b5f0b836002602002018051909101905250600101611da5565b505f85900b81600260200201818151611f0e9190613054565b90525060408101515f12611fff578315611fa25760408101515f90611f3290613073565b611f3d90600a613170565b90505f82600160200201511315611f6d576020820151611f5d908261318f565b6001600160401b03168452611f9c565b81515f1215611f95578151611f82908261318f565b6001600160401b03166020850152611f9c565b5f60208501525b50612060565b60408101515f90611fb290613073565b611fbd90600a613170565b90505f82600160200201511315611fde576020820151611f5d90829061318f565b8151611feb90829061318f565b6001600160401b0316602085015250612060565b60408101515f9061201190600a613170565b90505f82600160200201511315612042576020820151612032908290612bec565b6001600160401b0316845261205e565b815161204f908290612bec565b6001600160401b031660208501525b505b50505f9290920b60608301525092915050565b61207b61262d565b5f61208585612465565b90505f5b815181101561210b575f6120cb6120ab848481518110611dc757611dc7612b4a565b8484815181106120bd576120bd612b4a565b6020026020010151886107a9565b90508115806120f957506120f9846080015182608001516001600160401b031661251b90919063ffffffff16565b15612102578093505b50600101612089565b5081606001515f0b835f0b12156121625782826060015161212c91906131a2565b61213790600a6131c2565b8260200181815161214891906131d0565b6001600160401b03169052505f83900b6060830152610e24565b81606001515f0b835f0b1315610e2457606082015161218190846131a2565b61218c90600a6131c2565b8260200181815161219d91906131f9565b6001600160401b03169052505f83900b6060830152509392505050565b6121c261262d565b5f6121cc85612465565b90505f5b815181101561210b575f6121f26120ab848481518110611dc757611dc7612b4a565b905062ffffff86161580612229575061221062ffffff871642612e36565b6001600160401b031681608001516001600160401b0316115b15612238579250610e26915050565b506001016121d0565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081018290529061227a611b46565b6040805160c081019091528454600492909201925090819062ffffff16156122a857845462ffffff166122b0565b825462ffffff165b62ffffff16815284546020909101906301000000900460ff16806122dc575082546301000000900460ff165b151581528454602090910190600160201b900462ffffff161561230c578454600160201b900462ffffff1661231b565b8254600160201b900462ffffff165b62ffffff90811682528554602090920191600160381b9004161561234c578454600160381b900462ffffff1661235b565b8254600160381b900462ffffff165b62ffffff1681528454602090910190600160501b900461ffff161561238c578454600160501b900461ffff1661239a565b8254600160501b900461ffff165b61ffff90811682528554602090920191600160601b900416156123c9578454600160601b900461ffff166123d7565b8254600160601b900461ffff165b61ffff1690529392505050565b5f5f6123ee611b46565b549050801561246157612426612421612405611b46565b80545f9061241557612415612b4a565b905f5260205f20015490565b61252c565b915060015b8181101561245f57612453612421612441611b46565b80548490811061241557612415612b4a565b9092189160010161242b565b505b5090565b60605f612470611b46565b6001600160e01b031984165f90815260019190910160205260409081902060030154815160088082526101208201909352909250908160200160208202803683370190505091505f5b600881101561251357816001600160e01b031981165f036124da5750612513565b808483815181106124ed576124ed612b4a565b6001600160e01b03199092166020928302919091018201529290921b91506001016124b9565b825250919050565b6001600160401b0390811691161190565b5f5f61253783611a98565b60028101549091506125ff575f6001820154600160501b900460ff16600481111561256457612564612b0d565b036125be5760018101546040516001600160e01b031985166020820152600160601b90910460601b6bffffffffffffffffffffffff1916602482015260380160405160208183030381529060405280519060200120610e26565b60038101546040516001600160e01b03198516602082015260248101919091526044015b604051602081830303815290604052805190602001209392505050565b60028101546040516001600160e01b03198516602082015260248101919091526044016125e2565b50919050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915290565b5080545f825560070160089004905f5260205f209081019061268391906126db565b50565b50805461269290612e97565b5f825580601f106126a1575050565b601f0160209004905f5260205f209081019061268391906126db565b60405180606001604052806003906020820280368337509192915050565b5b80821115612461575f81556001016126dc565b5f5f83601f8401126126ff575f5ffd5b5081356001600160401b03811115612715575f5ffd5b60208301915083602082850101111561272c575f5ffd5b9250929050565b805f0b8114612683575f5ffd5b803560058110611537575f5ffd5b5f5f5f5f5f5f60808789031215612763575f5ffd5b86356001600160401b03811115612778575f5ffd5b61278489828a016126ef565b909750955050602087013561279881612733565b93506127a660408801612740565b925060608701356001600160401b038111156127c0575f5ffd5b8701601f810189136127d0575f5ffd5b80356001600160401b038111156127e5575f5ffd5b8960208260051b84010111156127f9575f5ffd5b60208201935080925050509295509295509295565b6001600160a01b0381168114612683575f5ffd5b5f5f5f5f5f5f60808789031215612837575f5ffd5b86356001600160401b0381111561284c575f5ffd5b61285889828a016126ef565b90975095505060208701356001600160401b03811115612876575f5ffd5b61288289828a016126ef565b909550935050604087013561289681612733565b915060608701356128a68161280e565b809150509295509295509295565b803560048110611537575f5ffd5b5f602082840312156128d2575f5ffd5b610e26826128b4565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e2660208301846128db565b80356001600160e01b031981168114611537575f5ffd5b803562ffffff81168114611537575f5ffd5b5f5f5f60608486031215612956575f5ffd5b833592506129666020850161291b565b915061297460408501612932565b90509250925092565b5f6020828403121561298d575f5ffd5b610e2682612740565b8015158114612683575f5ffd5b5f5f604083850312156129b4575f5ffd5b6129bd8361291b565b915060208301356129cd81612996565b809150509250929050565b5f602082840312156129e8575f5ffd5b610e268261291b565b5f5f60408385031215612a02575f5ffd5b612a0b8361291b565b9150612a1960208401612932565b90509250929050565b5f5f5f5f5f60808688031215612a36575f5ffd5b85356001600160401b03811115612a4b575f5ffd5b612a57888289016126ef565b909650945050602086013592506040860135612a7281612733565b91506060860135612a828161280e565b809150509295509295909350565b5f5f5f5f5f5f60a08789031215612aa5575f5ffd5b86356001600160401b03811115612aba575f5ffd5b612ac689828a016126ef565b9097509550506020870135612ada81612733565b9350612ae8604088016128b4565b92506060870135612af88161280e565b95989497509295919493608090920135925050565b634e487b7160e01b5f52602160045260245ffd5b6020808252600f908201526e185b1c9958591e481cd95d1d1b1959608a1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612b73575f5ffd5b8301803591506001600160401b03821115612b8c575f5ffd5b60200191503681900382131561272c575f5ffd5b7f756e737570706f7274656420646570656e64656e63793a2000000000000000008152818360188301375f9101601801908152919050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761165b5761165b612bd8565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f612c3e602083018486612c03565b949350505050565b5f60208284031215612c56575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381168114612683575f5ffd5b5f60a0828403128015612c96575f5ffd5b5060405160a081016001600160401b0381118282101715612cb957612cb9612c5d565b6040528251612cc781612733565b81526020830151612cd781612c71565b60208201526040830151600681900b8114612cf0575f5ffd5b60408201526060830151612d0381612c71565b60608201526080928301519281019290925250919050565b5f5f5f60608486031215612d2d575f5ffd5b5050815160208301516040909301519094929350919050565b805169ffffffffffffffffffff81168114611537575f5ffd5b5f5f5f5f5f60a08688031215612d73575f5ffd5b612d7c86612d46565b60208701516040880151606089015192975090955093509150612da160808701612d46565b90509295509295909350565b5f6080828403128015612dbe575f5ffd5b50604051608081016001600160401b0381118282101715612de157612de1612c5d565b6040528251600781900b8114612df5575f5ffd5b81526020830151612e0581612c71565b60208201526040830151600381900b8114612e1e575f5ffd5b60408201526060928301519281019290925250919050565b8181038181111561165b5761165b612bd8565b634e487b7160e01b5f52603160045260245ffd5b6001600160401b03818116838216019081111561165b5761165b612bd8565b5f60208284031215612e8c575f5ffd5b8151610e2681612996565b600181811c90821680612eab57607f821691505b60208210810361262757634e487b7160e01b5f52602260045260245ffd5b602081525f5f8354612eda81612e97565b806020860152600182165f8114612ef85760018114612f1457612f45565b60ff1983166040870152604082151560051b8701019350612f45565b865f5260205f205f5b83811015612f3c57815488820160400152600190910190602001612f1d565b87016040019450505b509195945050505050565b601f82111561128a57805f5260205f20601f840160051c81016020851015612f755750805b601f840160051c820191505b81811015612f94575f8155600101612f81565b5050505050565b6001600160401b03831115612fb257612fb2612c5d565b612fc683612fc08354612e97565b83612f50565b5f601f841160018114612ff7575f8515612fe05750838201355b5f19600387901b1c1916600186901b178355612f94565b5f83815260208120601f198716915b828110156130265786850135825560209485019460019092019101613006565b5086821015613042575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8082018281125f831280158216821582161715611a9057611a90612bd8565b5f600160ff1b820161308757613087612bd8565b505f0390565b6001815b60018411156130c8578085048111156130ac576130ac612bd8565b60018416156130ba57908102905b60019390931c928002613091565b935093915050565b5f826130de5750600161165b565b816130ea57505f61165b565b8160018114613100576002811461310a57613126565b600191505061165b565b60ff84111561311b5761311b612bd8565b50506001821b61165b565b5060208310610133831016604e8410600b8410161715613149575081810a61165b565b6131555f19848461308d565b805f190482111561316857613168612bd8565b029392505050565b5f610e2683836130d0565b634e487b7160e01b5f52601260045260245ffd5b5f8261319d5761319d61317b565b500490565b5f82810b9082900b03607f198112607f8213171561165b5761165b612bd8565b5f610e2660ff8416836130d0565b6001600160401b0381811683821602908116908181146131f2576131f2612bd8565b5092915050565b5f6001600160401b038316806132115761321161317b565b806001600160401b038416049150509291505056fea2646970667358221220ed601de86148ebdb41ebc3ecec62be84e539bdfc5dc0757c25b871e1895ccfa464736f6c634300081e0033";
readonly deployedBytecode: "0x73000000000000000000000000000000000000000030146080604052600436106100d6575f3560e01c80639744540911610093578063d9ea438f1161006e578063d9ea438f146102b9578063ef0bf0a0146102cc578063fce897db146102eb578063ff0e1724146102ff575f5ffd5b80639744540914610228578063c66f4c0a14610293578063cab8a78e146102a6575f5ffd5b806301d63b7f146100da5780630873d81d1461011757806310b999a3146101565780631752c19f146101765780635e34a7bb146101f45780637d18e02014610207575b5f5ffd5b8180156100e5575f5ffd5b506100f96100f436600461274e565b61031e565b6040516001600160e01b031990911681526020015b60405180910390f35b818015610122575f5ffd5b50610136610131366004612822565b610570565b604080516001600160e01b0319909316835260208301919091520161010e565b6101696101643660046128c2565b610668565b60405161010e9190612909565b610189610184366004612944565b6107a9565b60405161010e91905f60c0820190506001600160401b0383511682526001600160401b036020840151166020830152604083015160060b604083015260608301515f0b60608301526001600160401b03608084015116608083015260a083015160a083015292915050565b61016961020236600461297d565b610e2d565b818015610212575f5ffd5b506102266102213660046129a3565b610f1c565b005b61023b6102363660046129d8565b61128f565b60405161010e91905f60a08201905082515f0b82526001600160401b036020840151166020830152604083015160060b60408301526001600160401b0360608401511660608301526080830151608083015292915050565b61023b6102a13660046129d8565b611348565b6100f96102b43660046128c2565b611495565b61023b6102c73660046129f1565b61153c565b8180156102d7575f5ffd5b506100f96102e6366004612a22565b611661565b8180156102f6575f5ffd5b506100f961178e565b81801561030a575f5ffd5b506100f9610319366004612a90565b6117c3565b5f8084600481111561033257610332612b0d565b60ff1611801561035657506004848181111561035057610350612b0d565b60ff1611155b6103985760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21036b0b83832b960911b60448201526064015b60405180910390fd5b5f6103a388886118f1565b90505f6103af82611a98565b90506103ba81611ac2565b156103d75760405162461bcd60e51b815260040161038f90612b21565b5f5f5b85811015610543575f6104438888848181106103f8576103f8612b4a565b905060200281019061040a9190612b5e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1792505050565b90505f61044f82611a98565b905061045a81611ac2565b89898581811061046c5761046c612b4a565b905060200281019061047e9190612b5e565b60405160200161048f929190612ba0565b604051602081830303815290604052906104bc5760405162461bcd60e51b815260040161038f9190612909565b506104c8836020612bec565b826001600160e01b031916901c841793506104e1611b46565b6001600160e01b0319929092165f9081526002909201602090815260408320805460018082018355918552919093206008820401805463ffffffff60079093166004026101000a928302191660e089901c9290920291909117905550016103da565b5061055082898984611b6a565b6105598361128f565b5061056261178e565b9a9950505050505050505050565b5f5f5f61057d89896118f1565b90505f61058982611a98565b90506001600160a01b0385166105d55760405162461bcd60e51b81526020600482015260116024820152706e6f207261646f6e20726567697374727960781b604482015260640161038f565b604051630502487d60e51b81526001600160a01b0386169063a0490fa090610603908b908b90600401612c2b565b602060405180830381865afa15801561061e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106429190612c46565b925061065181875f3087611bf2565b61065961178e565b93505050965096945050505050565b60605f82600381111561067d5761067d612b0d565b036106a857505060408051808201909152600a8152695769742f4f7261636c6560b01b602082015290565b60018260038111156106bc576106bc612b0d565b036106e857505060408051808201909152600b81526a20a22797a2a92199199b1960a91b602082015290565b60028260038111156106fc576106fc612b0d565b03610732575050604080518082019091526015815274436861696e6c696e6b41676772656761746f72563360581b602082015290565b600382600381111561074657610746612b0d565b0361076c575050604080518082019091526005815264092a0f2e8d60db1b602082015290565b60405162461bcd60e51b8152602060048201526012602482015271756e737570706f72746564206f7261636c6560701b604482015260640161038f565b6107b161262d565b6001840154600160501b900460ff165f8160048111156107d3576107d3612b0d565b03610d11576001850154600160581b900460ff165f8160038111156107fa576107fa612b0d565b036109f3576001860154600160601b90046001600160a01b0316158061083357506001860154600160601b90046001600160a01b031630145b156108a85750506040805160c08101825260058601546001600160401b03808216835268010000000000000000820481166020840152600160801b8204600690810b94840194909452600160b81b82045f0b6060840152600160c01b9091041660808201529085015460a08201529050610e26565b60048601546301000000900460ff16610955576001860154600287015460405163d9ea438f60e01b81526001600160e01b0319909116600482015262ffffff8616602482015261095091600160601b90046001600160a01b03169063d9ea438f9060440160a060405180830381865afa158015610927573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b9190612c85565b611ca9565b6109ea565b6001860154600287015460405163d9ea438f60e01b81526001600160e01b0319909116600482015262ffffff861660248201526109ea91600160601b90046001600160a01b03169063d9ea438f9060440160a060405180830381865afa1580156109c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e59190612c85565b611d18565b92505050610e26565b6001816003811115610a0757610a07612b0d565b03610aba576001860154600287015460405163f78eea8360e01b815260048101919091525f918291600160601b9091046001600160a01b03169063f78eea8390602401606060405180830381865afa158015610a65573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a899190612d1b565b506001600160401b03918216602088015216608086015250506001860154600160201b90045f0b6060840152610d0b565b6002816003811115610ace57610ace612b0d565b03610b81575f5f87600101600c9054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610b28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4c9190612d5f565b506001600160401b0392831660208a01529091166080880152505050506001860154600160201b90045f0b6060840152610d0b565b6003816003811115610b9557610b95612b0d565b0361076c57604080516080810182525f80825260208201819052918101829052606081019190915260048701546301000000900460ff1615610c5e5760018701546002880154604051639474f45b60e01b81526004810191909152600160601b9091046001600160a01b031690639474f45b90602401608060405180830381865afa158015610c26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4a9190612dad565b80516001600160401b031685529050610cea565b600187015460028801546040516396834ad360e01b81526004810191909152600160601b9091046001600160a01b0316906396834ad390602401608060405180830381865afa158015610cb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd79190612dad565b80516001600160401b0316602086015290505b6060808201516001600160401b031660808601526040909101515f0b908401525b50610e24565b6003816004811115610d2557610d25612b0d565b1480610d4257506004816004811115610d4057610d40612b0d565b145b15610d7f576001850154610d779085908590600160201b90045f0b6004856004811115610d7157610d71612b0d565b14611d87565b915050610e26565b6002816004811115610d9357610d93612b0d565b03610db3576001850154610d779085908590600160201b90045f0b612073565b6001816004811115610dc757610dc7612b0d565b03610de7576001850154610d779085908590600160201b90045f0b6121ba565b60405162461bcd60e51b81526020600482015260126024820152713ab739bab83837b93a32b21036b0b83832b960711b604482015260640161038f565b505b9392505050565b60605f826004811115610e4257610e42612b0d565b03610e675750506040805180820190915260048152634e6f6e6560e01b602082015290565b6003826004811115610e7b57610e7b612b0d565b03610ea3575050604080518082019091526007815266141c9bd91d58dd60ca1b602082015290565b6001826004811115610eb757610eb7612b0d565b03610ee057505060408051808201909152600881526746616c6c6261636b60c01b602082015290565b6002826004811115610ef457610ef4612b0d565b03610de7575050604080518082019091526007815266121bdd1d195cdd60ca1b602082015290565b5f610f2683611a98565b9050610f3181611ac2565b1561128a575f610f3f611b46565b6001600160e01b031985165f908152600291909101602090815260409182902080548351818402810184019094528084529091830182828015610fcb57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610f8d5790505b505050505090508280610fdd57508051155b6110355760405162461bcd60e51b815260206004820152602360248201527f63616e6e6f742072656d6f7665206966206d61707065642066726f6d206f746860448201526265727360e81b606482015260840161038f565b5f5b815181101561106b5761106382828151811061105557611055612b4a565b602002602001015185610f1c565b600101611037565b50611074611b46565b6001600160e01b031985165f9081526002919091016020526040812061109991612661565b5f60016110a4611b46565b546110af9190612e36565b600184015490915063ffffffff1681111561114b575f6110cd611b46565b8054839081106110df576110df612b4a565b5f91825260208220015491506110f482611a98565b600180870154908201805463ffffffff191663ffffffff90921691909117905590508161111f611b46565b6001870154815463ffffffff90911690811061113d5761113d612b4a565b5f9182526020909120015550505b611153611b46565b80548061116257611162612e49565b5f8281526020812082015f1990810191909155019055600283015480156111eb576111b661118e611b46565b5f838152600391909101602052604090205460e01b6001600160e01b03199081169088161490565b156111eb575f6111c4611b46565b5f83815260039190910160205260409020805463ffffffff191660e09290921c9190911790555b6111f3611b46565b6001600160e01b031987165f908152600191909101602052604081206005810182905560060155611222611b46565b6001600160e01b031987165f90815260019190910160205260408120906112498282612686565b505f6001820181905560028201819055600382018190556004820180546dffffffffffffffffffffffffffff19169055600582018190556006909101555050505b505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101829052906112c283611a98565b90505f6112d082855f6107a9565b90506040518060a0016040528082606001515f0b81526020015f835f01516001600160401b031611611306578260200151611309565b82515b6001600160401b03168152602001826040015160060b815260200182608001516001600160401b031681526020018260a0015181525092505050919050565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081018290529061137b83611a98565b90505f61138a82600401612241565b90505f61139c838684606001516107a9565b60808101519091506001600160401b03166113ca57604051630295d7cd60e31b815260040160405180910390fd5b606082015162ffffff1615806114015750816060015162ffffff1681608001516113f49190612e5d565b6001600160401b03164211155b61141e57604051630cd5fa0760e11b815260040160405180910390fd5b6040518060a0016040528082606001515f0b81526020015f835f01516001600160401b031611611452578260200151611455565b82515b6001600160401b03168152602001826040015160060b815260200182608001516001600160401b031681526020018260a001518152509350505050919050565b5f808260038111156114a9576114a9612b0d565b036114bc5750636d11bc5160e11b919050565b60018260038111156114d0576114d0612b0d565b036114e3575063f78eea8360e01b919050565b60028260038111156114f7576114f7612b0d565b0361150a5750630e70a24b60e31b919050565b600382600381111561151e5761151e612b0d565b0361153057506242596b60e61b919050565b505f919050565b919050565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081018290529061156f84611a98565b90505f61157d8286866107a9565b60808101519091506001600160401b03166115ab57604051630295d7cd60e31b815260040160405180910390fd5b8362ffffff1681608001516115c09190612e5d565b6001600160401b03164211156115e957604051630cd5fa0760e11b815260040160405180910390fd5b6040518060a0016040528082606001515f0b81526020015f835f01516001600160401b03161161161d578260200151611620565b82515b6001600160401b03168152602001826040015160060b815260200182608001516001600160401b031681526020018260a00151815250925050505b92915050565b5f5f61166d87876118f1565b90505f61167982611a98565b90506001600160a01b0384166116c55760405162461bcd60e51b81526020600482015260116024820152706e6f207261646f6e20726567697374727960781b604482015260640161038f565b604051631a3b01e960e21b8152600481018790526001600160a01b038516906368ec07a490602401602060405180830381865afa158015611708573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172c9190612e7c565b61176d5760405162461bcd60e51b8152602060048201526012602482015271756e766572696669656420736f757263657360701b604482015260640161038f565b61177a81865f308a611bf2565b61178261178e565b98975050505050505050565b5f6117976123e4565b9050806117a2611b46565b60050160146101000a81548163ffffffff021916908360e01c021790555090565b5f808460038111156117d7576117d7612b0d565b60ff16101580156117fc5750600384818111156117f6576117f6612b0d565b60ff1611155b6118395760405162461bcd60e51b815260206004820152600e60248201526d696e76616c6964206f7261636c6560901b604482015260640161038f565b5f61184488886118f1565b90505f61185082611a98565b905061185b81611ac2565b156118785760405162461bcd60e51b815260040161038f90612b21565b5f856001600160a01b03163b116118c55760405162461bcd60e51b8152602060048201526011602482015270696e6578697374656e74206f7261636c6560781b604482015260640161038f565b6118d28188888888611bf2565b6118db8261128f565b506118e461178e565b9998505050505050505050565b5f5f61193184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1792505050565b90508091505f61194083611a98565b604051909150611954908290602001612ec9565b60405160208183030381529060405280519060200120858560405160200161197d929190612c2b565b6040516020818303038152906040528051906020012014611a65576119a0611b46565b6001600160e01b031984165f908152600291909101602052604090205415611a265760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f74207265666163746f72206578697369746e672073796d626f6c206044820152726966206d6170706564206279206f746865727360681b606482015260840161038f565b80611a32858783612f9b565b50611a3b611b46565b5460018201805463ffffffff191663ffffffff9092169190911790555f6005820181905560068201555b611a6e81611ac2565b611a9057611a7a611b46565b80546001810182555f9182526020909120018290555b505092915050565b5f611aa1611b46565b6001600160e01b03199092165f908152600192909201602052506040902090565b60028101545f90151580611af757506001820154600160501b900460ff166004811115611af157611af1612b0d565b60ff1615155b8061165b57505060010154600160601b90046001600160a01b0316151590565b5f81604051602001611b299190612909565b604051602081830303815290604052805190602001209050919050565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390090565b611b7384611ac2565b15611b905760405162461bcd60e51b815260040161038f90612b21565b60018401805464ff00000000198116600160201b60ff87160290811783558492916aff0000000000ff00000000191660ff60501b1990911617600160501b836004811115611be057611be0612b0d565b02179055506003909301929092555050565b611bfb85611ac2565b15611c185760405162461bcd60e51b815260040161038f90612b21565b60018501805464ff00000000198116600160201b60ff88160290811783558592916bff000000000000ff00000000191660ff60581b1990911617600160581b836003811115611c6957611c69612b0d565b02179055506001850180546001600160a01b03909316600160601b026bffffffffffffffffffffffff909316929092179091556002909301929092555050565b611cb161262d565b6040518060c001604052805f6001600160401b0316815260200183602001516001600160401b03168152602001836040015160060b8152602001835f01515f0b815260200183606001516001600160401b0316815260200183608001518152509050919050565b611d2061262d565b6040518060c0016040528083602001516001600160401b031681526020015f6001600160401b03168152602001836040015160060b8152602001835f01515f0b815260200183606001516001600160401b0316815260200183608001518152509050919050565b611d8f61262d565b5f611d9986612465565b9050611da36126bd565b5f5b8251811015611ef5575f611df4611dd4858481518110611dc757611dc7612b4a565b6020026020010151611a98565b858481518110611de657611de6612b4a565b60200260200101518a6107a9565b9050815f03611e495780516001600160401b031615611e1c57805160070b6020840152611e27565b602081015160070b83525b6080808201516001600160401b03169086015260a08082015190860152611ec5565b60208301515f1215611e6d57805160070b8360016020020180519091029052611e7e565b6020810151835160079190910b0283525b611ea2816080015186608001516001600160401b031661251b90919063ffffffff16565b15611ec5576080808201516001600160401b03169086015260a080820151908601525b85611ed65780606001515f03611edc565b80606001515b5f0b836002602002018051909101905250600101611da5565b505f85900b81600260200201818151611f0e9190613054565b90525060408101515f12611fff578315611fa25760408101515f90611f3290613073565b611f3d90600a613170565b90505f82600160200201511315611f6d576020820151611f5d908261318f565b6001600160401b03168452611f9c565b81515f1215611f95578151611f82908261318f565b6001600160401b03166020850152611f9c565b5f60208501525b50612060565b60408101515f90611fb290613073565b611fbd90600a613170565b90505f82600160200201511315611fde576020820151611f5d90829061318f565b8151611feb90829061318f565b6001600160401b0316602085015250612060565b60408101515f9061201190600a613170565b90505f82600160200201511315612042576020820151612032908290612bec565b6001600160401b0316845261205e565b815161204f908290612bec565b6001600160401b031660208501525b505b50505f9290920b60608301525092915050565b61207b61262d565b5f61208585612465565b90505f5b815181101561210b575f6120cb6120ab848481518110611dc757611dc7612b4a565b8484815181106120bd576120bd612b4a565b6020026020010151886107a9565b90508115806120f957506120f9846080015182608001516001600160401b031661251b90919063ffffffff16565b15612102578093505b50600101612089565b5081606001515f0b835f0b12156121625782826060015161212c91906131a2565b61213790600a6131c2565b8260200181815161214891906131d0565b6001600160401b03169052505f83900b6060830152610e24565b81606001515f0b835f0b1315610e2457606082015161218190846131a2565b61218c90600a6131c2565b8260200181815161219d91906131f9565b6001600160401b03169052505f83900b6060830152509392505050565b6121c261262d565b5f6121cc85612465565b90505f5b815181101561210b575f6121f26120ab848481518110611dc757611dc7612b4a565b905062ffffff86161580612229575061221062ffffff871642612e36565b6001600160401b031681608001516001600160401b0316115b15612238579250610e26915050565b506001016121d0565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081018290529061227a611b46565b6040805160c081019091528454600492909201925090819062ffffff16156122a857845462ffffff166122b0565b825462ffffff165b62ffffff16815284546020909101906301000000900460ff16806122dc575082546301000000900460ff165b151581528454602090910190600160201b900462ffffff161561230c578454600160201b900462ffffff1661231b565b8254600160201b900462ffffff165b62ffffff90811682528554602090920191600160381b9004161561234c578454600160381b900462ffffff1661235b565b8254600160381b900462ffffff165b62ffffff1681528454602090910190600160501b900461ffff161561238c578454600160501b900461ffff1661239a565b8254600160501b900461ffff165b61ffff90811682528554602090920191600160601b900416156123c9578454600160601b900461ffff166123d7565b8254600160601b900461ffff165b61ffff1690529392505050565b5f5f6123ee611b46565b549050801561246157612426612421612405611b46565b80545f9061241557612415612b4a565b905f5260205f20015490565b61252c565b915060015b8181101561245f57612453612421612441611b46565b80548490811061241557612415612b4a565b9092189160010161242b565b505b5090565b60605f612470611b46565b6001600160e01b031984165f90815260019190910160205260409081902060030154815160088082526101208201909352909250908160200160208202803683370190505091505f5b600881101561251357816001600160e01b031981165f036124da5750612513565b808483815181106124ed576124ed612b4a565b6001600160e01b03199092166020928302919091018201529290921b91506001016124b9565b825250919050565b6001600160401b0390811691161190565b5f5f61253783611a98565b60028101549091506125ff575f6001820154600160501b900460ff16600481111561256457612564612b0d565b036125be5760018101546040516001600160e01b031985166020820152600160601b90910460601b6bffffffffffffffffffffffff1916602482015260380160405160208183030381529060405280519060200120610e26565b60038101546040516001600160e01b03198516602082015260248101919091526044015b604051602081830303815290604052805190602001209392505050565b60028101546040516001600160e01b03198516602082015260248101919091526044016125e2565b50919050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915290565b5080545f825560070160089004905f5260205f209081019061268391906126db565b50565b50805461269290612e97565b5f825580601f106126a1575050565b601f0160209004905f5260205f209081019061268391906126db565b60405180606001604052806003906020820280368337509192915050565b5b80821115612461575f81556001016126dc565b5f5f83601f8401126126ff575f5ffd5b5081356001600160401b03811115612715575f5ffd5b60208301915083602082850101111561272c575f5ffd5b9250929050565b805f0b8114612683575f5ffd5b803560058110611537575f5ffd5b5f5f5f5f5f5f60808789031215612763575f5ffd5b86356001600160401b03811115612778575f5ffd5b61278489828a016126ef565b909750955050602087013561279881612733565b93506127a660408801612740565b925060608701356001600160401b038111156127c0575f5ffd5b8701601f810189136127d0575f5ffd5b80356001600160401b038111156127e5575f5ffd5b8960208260051b84010111156127f9575f5ffd5b60208201935080925050509295509295509295565b6001600160a01b0381168114612683575f5ffd5b5f5f5f5f5f5f60808789031215612837575f5ffd5b86356001600160401b0381111561284c575f5ffd5b61285889828a016126ef565b90975095505060208701356001600160401b03811115612876575f5ffd5b61288289828a016126ef565b909550935050604087013561289681612733565b915060608701356128a68161280e565b809150509295509295509295565b803560048110611537575f5ffd5b5f602082840312156128d2575f5ffd5b610e26826128b4565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e2660208301846128db565b80356001600160e01b03198116