交易詳情
交易哈希
:0x35f19a71520e28f583bd747555e34579d25dd397ef7cc7c5ac0f8284b1fac9b5
交易數量:
0ETH
($0)
交易手續費:
0.000136446521113869
$0.35
L2 Gas 價格:
0.000000000004167429 ETH(0.004167429 Gwei)
L2 Gas 上限 & 消耗:
9,249,093|
7,118,297(76.96%)
L2 Gas 費用:
0.000029664997348413 ETH
L2 Gas 費:
基礎費用: 0.003169194 Gwei
L1 Gas 價格:
0.000000012682603793 ETH(12.682603793 Gwei)
L1 Gas 消耗:
295,827
L1 費用係數:
0
L1 Gas 費用:
0.000106781523765456 ETH
其他信息:
交易類型:0(原始交易類型)
Nonce:19
區塊內交易編號:118
輸入數據:
0x60e060405234801561001057600080fd5b5060405161828b38038061828b83398101604081905261002f91610116565b8060405161003c906100e0565b6001600160a01b039091168152602001604051809103906000f080158015610068573d6000803e3d6000fd5b506001600160a01b03166080526040518190610083906100ed565b6001600160a01b039091168152602001604051809103906000f0801580156100af573d6000803e3d6000fd5b506001600160a01b0390811660a052600080546001600160a01b03191694821694909417909355501660c052610159565b61360f8061245883390190565b61282480615a6783390190565b80516001600160a01b038116811461011157600080fd5b919050565b60008060006060848603121561012b57600080fd5b610134846100fa565b9250610142602085016100fa565b9150610150604085016100fa565b90509250925092565b60805160a05160c0516122bc61019c6000396000818160f8015261106f015260008181610234015261039c0152600081816101b401526104ee01526122bc6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80637d112a951161008c578063cf06c7b711610066578063cf06c7b7146101f6578063dd1d259914610209578063e27d51531461021c578063ef5c28681461022f57600080fd5b80637d112a951461019c578063a971ebb6146101af578063b8616195146101d657600080fd5b806307c3d4af146100d45780632a9d5335146100f35780632e08d60214610132578063443423c114610153578063469048401461016657806358161a4214610179575b600080fd5b6100dc605081565b60405160ff90911681526020015b60405180910390f35b61011a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ea565b610145610140366004611bbc565b610256565b6040519081526020016100ea565b61011a610161366004611d71565b6102f6565b60005461011a906001600160a01b031681565b61018c610187366004611d9e565b6103ce565b60405190151581526020016100ea565b61011a6101aa366004611ded565b610418565b61011a7f000000000000000000000000000000000000000000000000000000000000000081565b6101e96101e4366004611ed7565b610522565b6040516100ea9190611f1b565b610145610204366004611f5f565b6106a8565b610145610217366004611f78565b6107e5565b61014561022a366004611f5f565b610813565b61011a7f000000000000000000000000000000000000000000000000000000000000000081565b600060018251116102ba5760405162461bcd60e51b815260206004820152602360248201527f776f6e27742067656e657261746520726f6f7420666f722073696e676c65206c60448201526232b0b360e91b60648201526084015b60405180910390fd5b6001825111156102d4576102cd8261083e565b91506102ba565b816000815181106102e7576102e7611f9a565b60200260200101519050919050565b6000806000610304856109aa565b9150915061031185610b28565b61031b8585610df7565b606085015161032d8684846001610e9e565b9550600061033b8685610f9c565b9050610348878285610fdb565b6000610355888587611021565b60408051602081018590520160408051601f198184030181529082905261037f9291602001611fe0565b60405160208183030381529060405290506103c2838960200151837f00000000000000000000000000000000000000000000000000000000000000006001611221565b98975050505050505050565b81516000908290825b8181101561040c57610402838783815181106103f5576103f5611f9a565b60200260200101516107e5565b92506001016103d7565b50509093149392505050565b6000806000610426866109aa565b9150915061043386610b28565b61044086868484886112a6565b60608601516104528784846000610e9e565b9650600061046186848661170c565b6040516020016104719190611ff5565b60408051601f19818403018152919052805190915060006104938a8688611021565b61049d8a88610f9c565b604080516020810192909252810184905260600160408051601f19818403018152908290526104d192918690602001612059565b6040516020818303038152906040529050610514848b60200151837f00000000000000000000000000000000000000000000000000000000000000006000611221565b9a9950505050505050505050565b606060018351116105815760405162461bcd60e51b8152602060048201526024808201527f776f6e27742067656e65726174652070726f6f6620666f722073696e676c65206044820152633632b0b360e11b60648201526084016102b1565b600061058d84516106a8565b6001600160401b038111156105a4576105a4611a99565b6040519080825280602002602001820160405280156105cd578160200160208202803683370190505b50905060005b60018551111561069e5783600116600103610628578460018503815181106105fd576105fd611f9a565b602002602001015182828151811061061757610617611f9a565b602002602001018181525050610685565b84518460010103610649576000801b82828151811061061757610617611f9a565b84846001018151811061065e5761065e611f9a565b602002602001015182828151811061067857610678611f9a565b6020026020010181815250505b6001016002840493506106978561083e565b94506105d3565b5090505b92915050565b6000600182116106ba57506000919050565b600082600160801b81106106db57608093841c936106d89083612087565b91505b6801000000000000000084106106fe57604093841c936106fb9083612087565b91505b640100000000841061071d57602093841c9361071a9083612087565b91505b62010000841061073a57601093841c936107379083612087565b91505b610100841061075657600893841c936107539083612087565b91505b6010841061077157600493841c9361076e9083612087565b91505b6004841061078c57600293841c936107899083612087565b91505b600284106107a25761079f600183612087565b91505b6000816107b181196001612087565b16905081811480156107c35750600083115b156107d15750909392505050565b6107dc836001612087565b95945050505050565b600081831080156107fd578360005282602052610806565b82600052836020525b5050604060002092915050565b6000808219600101831683145b831561083657600193841c939190910190610820565b900392915050565b606080600083519050806001166001036108ec57600281046001016001600160401b0381111561087057610870611a99565b604051908082528060200260200182016040528015610899578160200160208202803683370190505b5091506108c58460018303815181106108b4576108b4611f9a565b60200260200101516000801b6107e5565b826001845103815181106108db576108db611f9a565b602002602001018181525050610934565b600281046001600160401b0381111561090757610907611a99565b604051908082528060200260200182016040528015610930578160200160208202803683370190505b5091505b6000805b600183038110156109a05761097586828151811061095857610958611f9a565b60200260200101518783600101815181106103f5576103f5611f9a565b84838151811061098757610987611f9a565b6020908102919091010152600190910190600201610938565b5091949350505050565b604081015160009081906001600160a01b031615610a645782604001516001600160a01b031663313ce5676040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a919061209a565b915060028260ff161080610a41575060128260ff16115b15610a5f57604051630692acc560e51b815260040160405180910390fd5b610a7d565b60405163d92e233d60e01b815260040160405180910390fd5b5060208201516012906001600160a01b031615610b235782602001516001600160a01b031663313ce5676040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afc919061209a565b905060128160ff161115610b2357604051630692acc560e51b815260040160405180910390fd5b915091565b80516001600160a01b0316610b505760405163d92e233d60e01b815260040160405180910390fd5b670de0b6b3a76400008161010001516001600160401b03161180610b885750670de0b6b3a76400008160e001516001600160401b0316115b15610ba65760405163cd4e616760e01b815260040160405180910390fd5b80610120015164ffffffffff1681610140015164ffffffffff1611610bde5760405163dd076d7560e01b815260040160405180910390fd5b610258816101200151826101400151610bf791906120b7565b64ffffffffff161015610c1d5760405163dd076d7560e01b815260040160405180910390fd5b600081610160015164ffffffffff16118015610c47575062278d0081610160015164ffffffffff16115b15610c65576040516347e94c9b60e11b815260040160405180910390fd5b600081610180015164ffffffffff16600014158015610c8f57506101a082015164ffffffffff1615155b90508015610d375760208201516001600160a01b0316610cc257604051632e4a826160e11b815260040160405180910390fd5b81610180015164ffffffffff16826101a0015164ffffffffff1610610cfa57604051632e4a826160e11b815260040160405180910390fd5b816101a0015164ffffffffff1682610140015164ffffffffff1610610d3257604051632e4a826160e11b815260040160405180910390fd5b610dbd565b6101a082015164ffffffffff16158015610d5c575061018082015164ffffffffff1615155b15610d7a57604051632e4a826160e11b815260040160405180910390fd5b6101a082015164ffffffffff1615801590610d9f575061018082015164ffffffffff16155b15610dbd57604051632e4a826160e11b815260040160405180910390fd5b60a082015115610df3578160a001518260c001511115610df3576040516001621a19e960e11b0319815260040160405180910390fd5b5050565b60c082015115610e2657808260c001511115610e265760405163d468ecf760e01b815260040160405180910390fd5b60008260800151118015610e3e575060008260c00151115b15610e6f578160c0015182608001511015610e6f576040516001621a19e960e11b0319815260040160405180910390fd5b60a082015115610df357808260a001511115610df35760405163d468ecf760e01b815260040160405180910390fd5b6040805161020081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290529082610f2a5783610f2c565b845b6060870151909150610f3e9085610f9c565b60608701526080860151610f529082610f9c565b608087015260a086015115610f755760a0860151610f709082610f9c565b610f79565b6000195b60a087015260c0860151610f8d9082610f9c565b60c08701525093949350505050565b600060128260ff161015610fd457610fb860ff831660126120dc565b610fc390600a6121d3565b610fcd90846121df565b90506106a2565b5090919050565b610ffc81610ff68486606001516118c490919063ffffffff16565b90611913565b60000361101c57604051636b3289ab60e11b815260040160405180910390fd5b505050565b825160208085015160408087015160005482516bffffffffffffffffffffffff19606097881b81169682019690965293861b8516603485015290851b84166048840152841b8316605c8301527f0000000000000000000000000000000000000000000000000000000000000000841b9092166070820152815180820360640181526084820190925282860151608087015160a088015160c089015160a485019390935260c484019190915260e48301526101048201526101240160408051601f198184030181529082905260e08701516101008801516001600160c01b031960c092831b81166020860152911b1660288301529060300160408051808303601f19018152908290526101208801516101408901516101608a01516101808b01516101a08c01516001600160d81b031960d895861b8116602089015293851b8416602588015291841b8316602a870152831b8216602f86015290911b1660348301529060390160408051601f19818403018152908290526101c08901516001600160f81b031960f88a811b8216602086015289811b821660218601529190911b1660228301529060230160408051601f198184030181528282526101e08b01516020840152910160408051601f19818403018152908290526112099695949392916020016121f6565b60405160208183030381529060405290509392505050565b60006112366001600160a01b03841685611944565b90506001600160a01b0385161561125c5761125c6001600160a01b038616338389611959565b806001600160a01b03167f7c3072652d5407e4dcbe90ac1760509311e2511e531f5caf91859f3bc7416708836040516112959190612223565b60405180910390a295945050505050565b805160ff81161580156112b7575084155b156112d557604051631d59567b60e11b815260040160405180910390fd5b60008660c001511180156112f057508560c001518660600151105b1561130e576040516354a2563b60e11b815260040160405180910390fd5b60008660800151118015611329575085606001518660800151115b15611347576040516354a2563b60e11b815260040160405180910390fd5b60008660a001511180156113db575060405163512742d960e01b815260ff84811660048301528516602482015273b5d72ed6a5a87e76bfa4aa54fdd24cc684596cdf9063512742d990604401602060405180830381865af41580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d4919061224b565b8660a00151105b156113f957604051630d7ba23560e11b815260040160405180910390fd5b605060ff8216111561141e5760405163c2f5693560e01b815260040160405180910390fd5b60ff8116156117045760c08601511561144a5760405163f6f364e560e01b815260040160405180910390fd5b6000805b8260ff168160ff1610156116dd5760a0880151158015906114925750838160ff168151811061147f5761147f611f9a565b6020026020010151606001518860a00151105b156114b0576040516366ce805960e01b815260040160405180910390fd5b838160ff16815181106114c5576114c5611f9a565b6020026020010151600001516000036114f15760405163b42710b760e01b815260040160405180910390fd5b838160ff168151811061150657611506611f9a565b60200260200101516020015160000361153257604051631d59567b60e11b815260040160405180910390fd5b6000848260ff168151811061154957611549611f9a565b60200260200101516060015111156115bc57838160ff168151811061157057611570611f9a565b602002602001015160000151848260ff168151811061159157611591611f9a565b60200260200101516060015111156115bc5760405163f6f364e560e01b815260040160405180910390fd5b6000848260ff16815181106115d3576115d3611f9a565b60200260200101516040015111156116a757838160ff16815181106115fa576115fa611f9a565b602002602001015160400151848260ff168151811061161b5761161b611f9a565b6020026020010151606001511115611646576040516366ce805960e01b815260040160405180910390fd5b838160ff168151811061165b5761165b611f9a565b602002602001015160400151848260ff168151811061167c5761167c611f9a565b60200260200101516000015110156116a7576040516366ce805960e01b815260040160405180910390fd5b838160ff16815181106116bc576116bc611f9a565b602002602001015160000151826116d39190612087565b915060010161144e565b50808760600151146117025760405163b42710b760e01b815260040160405180910390fd5b505b505050505050565b825160609060005b8160ff168160ff1610156118ba5761175585878360ff168151811061173b5761173b611f9a565b602002602001015160000151610f9c90919063ffffffff16565b868260ff168151811061176a5761176a611f9a565b602002602001015160000181815250506117ad84878360ff168151811061179357611793611f9a565b602002602001015160200151610f9c90919063ffffffff16565b868260ff16815181106117c2576117c2611f9a565b60200260200101516020018181525050858160ff16815181106117e7576117e7611f9a565b6020026020010151604001516000146118325761182d85878360ff168151811061181357611813611f9a565b602002602001015160400151610f9c90919063ffffffff16565b611836565b6000195b868260ff168151811061184b5761184b611f9a565b6020026020010151604001818152505061188e85878360ff168151811061187457611874611f9a565b602002602001015160600151610f9c90919063ffffffff16565b868260ff16815181106118a3576118a3611f9a565b602090810291909101015160600152600101611714565b5093949350505050565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261190157637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600060128260ff161015610fd45761192f60ff831660126120dc565b61193a90600a6121d3565b610fcd9084612264565b6000611952600084846119ad565b9392505050565b60405181606052826040528360601b602c526323b872dd60601b600c52602060006064601c6000895af13d15600160005114171661199f57637939f4246000526004601cfd5b600060605260405250505050565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a038cf097505086611a795763301164256000526004601cfd5b90528552601f19850152603f19840152605f199092019190915292915050565b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715611ad257611ad2611a99565b60405290565b604051608081016001600160401b0381118282101715611ad257611ad2611a99565b604051601f8201601f191681016001600160401b0381118282101715611b2257611b22611a99565b604052919050565b60006001600160401b03821115611b4357611b43611a99565b5060051b60200190565b600082601f830112611b5e57600080fd5b81356020611b73611b6e83611b2a565b611afa565b8083825260208201915060208460051b870101935086841115611b9557600080fd5b602086015b84811015611bb15780358352918301918301611b9a565b509695505050505050565b600060208284031215611bce57600080fd5b81356001600160401b03811115611be457600080fd5b611bf084828501611b4d565b949350505050565b80356001600160a01b0381168114611c0f57600080fd5b919050565b80356001600160401b0381168114611c0f57600080fd5b803564ffffffffff81168114611c0f57600080fd5b60ff81168114611c4f57600080fd5b50565b8035611c0f81611c40565b60006102008284031215611c7057600080fd5b611c78611aaf565b9050611c8382611bf8565b8152611c9160208301611bf8565b6020820152611ca260408301611bf8565b6040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152611cdb60e08301611c14565b60e0820152610100611cee818401611c14565b90820152610120611d00838201611c2b565b90820152610140611d12838201611c2b565b90820152610160611d24838201611c2b565b90820152610180611d36838201611c2b565b908201526101a0611d48838201611c2b565b908201526101c0611d5a838201611c52565b81830152506101e080830135818301525092915050565b6000806102208385031215611d8557600080fd5b611d8f8484611c5d565b94610200939093013593505050565b600080600060608486031215611db357600080fd5b8335925060208401356001600160401b03811115611dd057600080fd5b611ddc86828701611b4d565b925050604084013590509250925092565b60008060006102408486031215611e0357600080fd5b611e0d8585611c5d565b925061020084013591506102208401356001600160401b03811115611e3157600080fd5b8401601f81018613611e4257600080fd5b80356020611e52611b6e83611b2a565b82815260079290921b83018101918181019089841115611e7157600080fd5b938201935b83851015611ec8576080858b031215611e8f5760008081fd5b611e97611ad8565b8535815283860135848201526040808701359082015260608087013590820152825260809094019390820190611e76565b80955050505050509250925092565b60008060408385031215611eea57600080fd5b82356001600160401b03811115611f0057600080fd5b611f0c85828601611b4d565b95602094909401359450505050565b6020808252825182820181905260009190848201906040850190845b81811015611f5357835183529284019291840191600101611f37565b50909695505050505050565b600060208284031215611f7157600080fd5b5035919050565b60008060408385031215611f8b57600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b6000815160005b81811015611fd15760208185018101518683015201611fb7565b50600093019283525090919050565b6000611bf0611fef8386611fb0565b84611fb0565b602080825282518282018190526000919060409081850190868401855b8281101561204c57815180518552868101518786015285810151868601526060908101519085015260809093019290850190600101612012565b5091979650505050505050565b60006107dc611fef61206b8488611fb0565b86611fb0565b634e487b7160e01b600052601160045260246000fd5b808201808211156106a2576106a2612071565b6000602082840312156120ac57600080fd5b815161195281611c40565b64ffffffffff8281168282160390808211156120d5576120d5612071565b5092915050565b818103818111156106a2576106a2612071565b600181815b8085111561212a57816000190482111561211057612110612071565b8085161561211d57918102915b93841c93908002906120f4565b509250929050565b600082612141575060016106a2565b8161214e575060006106a2565b8160018114612164576002811461216e5761218a565b60019150506106a2565b60ff84111561217f5761217f612071565b50506001821b6106a2565b5060208310610133831016604e8410600b84101617156121ad575081810a6106a2565b6121b783836120ef565b80600019048211156121cb576121cb612071565b029392505050565b60006119528383612132565b80820281158282048414176106a2576106a2612071565b60006103c2611fef61206b61221d612217612211878e611fb0565b8c611fb0565b8a611fb0565b88611fb0565b602081016002831061224557634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561225d57600080fd5b5051919050565b60008261228157634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e08e62c9d7f1ec1e35ed6a1428061a8467e15c20a5efdc8fdf7a636501579f2864736f6c6343000819003361014060405234801561001157600080fd5b5060405161360f38038061360f833981016040819052610030916100f9565b306080524660a05280606080610083604080518082018252600e81526d119a5e1959141c9a58d9541bdbdb60921b602080830191909152825180840190935260058352640312e302e360dc1b9083015291565b815160209283012081519183019190912060c082905260e0819052604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8152938401929092529082015246606082015230608082015260a090206101005250506001600160a01b03166101205250610129565b60006020828403121561010b57600080fd5b81516001600160a01b038116811461012257600080fd5b9392505050565b60805160a05160c05160e0516101005161012051613489610186600039600081816106be01528181610a9c0152611f5401526000611c5501526000611d0f01526000611ce901526000611c9901526000611c7601526134896000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c806380a9d89b116101d3578063bf26909c11610104578063d97d482c116100a2578063f12723e61161007c578063f12723e6146106f0578063f7049d7814610710578063f89fc84214610718578063ffae66c01461072057600080fd5b8063d97d482c146106b9578063e4903353146106e0578063e7e10490146106e857600080fd5b8063c4ae3168116100de578063c4ae316814610693578063c68deb7e1461069b578063d0578529146106a4578063d679677a146106ac57600080fd5b8063bf26909c14610670578063c10b935814610683578063c2d416011461068b57600080fd5b8063a22db1ed11610171578063ab0bcc411161014b578063ab0bcc4114610649578063b1dd61b614610651578063bd10bc5f14610660578063be040fb01461066857600080fd5b8063a22db1ed14610631578063aa98e0c614610639578063aaa30c971461064157600080fd5b8063898672b8116101ad578063898672b8146106105780638da5cb5b146106195780639a6117ee146106215780639b31c3a81461062957600080fd5b806380a9d89b146105e5578063824bd1f3146105ed57806384b0196e146105f557600080fd5b806343d726d6116102ad5780636a7b3d671161024b57806373aff5af1161022557806373aff5af146105765780637b7a5f631461057f5780637ecebe00146105925780637f87bbd6146105cd57600080fd5b80636a7b3d671461053b5780636b71809a146105665780636c9fa59e1461056e57600080fd5b80634a95d9d5116102875780634a95d9d5146104ed5780635272cc8a1461050257806356f619b81461051557806360100d241461052857600080fd5b806343d726d6146104b557806346904840146104bf57806349926028146104c757600080fd5b80631f7d8c4a1161031a5780632ce20404116102f45780632ce204041461047b5780633af8e5eb1461049d5780633e83607a146104a557806342c22ff1146104ad57600080fd5b80631f7d8c4a14610450578063200d2ed2146104585780632b77e5241461047257600080fd5b80631083f761116103565780631083f761146103d85780631c7d46a0146103f85780631cc52d78146104165780631f2f2e1b1461043057600080fd5b80630b8de51d1461037d5780630c9138e6146103b05780630f4f6dae146103d0575b600080fd5b61039d61038b366004612a97565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b6103c36103be366004612ab9565b610740565b6040516103a79190612ad2565b61039d610793565b6103e06107a4565b6040516001600160a01b0390911681526020016103a7565b6104006107b0565b60405164ffffffffff90911681526020016103a7565b61041e6107bd565b60405160ff90911681526020016103a7565b6104386107f7565b6040516001600160401b0390911681526020016103a7565b610438610803565b6001546104659060ff1681565b6040516103a79190612b13565b61039d60025481565b61048e610489366004612b2d565b61080f565b6040516103a793929190612b59565b61041e61082d565b61040061083a565b61039d610847565b6104bd610853565b005b6103e0610ade565b7f5ef80c945ef09ae8a576fcb5d1aecf111d7f4212eb2fc068ceac7faceb76085961039d565b6104f5610aea565b6040516103a79190612bc9565b6104bd610510366004612dbe565b610b12565b61048e610523366004612e4c565b610b97565b61039d610536366004612e81565b610be8565b61039d610549366004612ece565b600860209081526000928352604080842090915290825290205481565b61039d610c9c565b6103e0610ca9565b61039d600a5481565b6104bd61058d366004612ef8565b610cb5565b6105b86105a0366004612a97565b60006020819052908152604090205463ffffffff1681565b60405163ffffffff90911681526020016103a7565b6105d5610d41565b60405190151581526020016103a7565b6103e0610d67565b6105d5610d73565b6105fd610d84565b6040516103a79796959493929190612fd4565b61039d60035481565b6103e0610dea565b61039d610df6565b610400610e02565b6103c3610e0e565b61039d610e67565b61039d610e74565b610400610e84565b60006040516103a7919061306d565b6105d5610e90565b61039d610ea7565b61039d61067e366004612a97565b6110bf565b610400611103565b61041e61110f565b6104bd61111c565b61039d60055481565b6105d5611268565b60065461041e9060ff1681565b6103e07f000000000000000000000000000000000000000000000000000000000000000081565b61039d61127a565b6104bd611286565b61039d6106fe366004612a97565b60096020526000908152604090205481565b6105d56113f4565b61039d61147a565b61039d61072e366004613081565b60076020526000908152604090205481565b61076b6040518060800160405280600081526020016000815260200160008152602001600081525090565b610773610aea565b82815181106107845761078461309c565b60200260200101519050919050565b600061079f60a4611514565b905090565b600061079f602861152a565b600061079f610103611543565b6000806107d160406107cd61155c565b0390565b9050806000036107eb576107e56000611569565b91505090565b6107e560808204611569565b600061079f60e4611580565b600061079f60ec611580565b600080606061082085856000610b97565b9250925092509250925092565b600061079f61010d611599565b600061079f610108611543565b600061079f6064611514565b61085b6113f4565b61087857604051633528728d60e11b815260040160405180910390fd5b6001805460ff191660021790554261088e611103565b64ffffffffff16106108a057426108b0565b6108a8611103565b64ffffffffff165b6005556108bb6115b2565b61091a5760008060006108cc6115e3565b604080518481526020810184905290810182905292955090935091507f7bd78c3f4b274f09988d0b0eb6893a90fe6d629ebcbe8fea8e380c6d6c0492229060600160405180910390a1505050565b60008060006109276116bb565b9194509250905080156109585761095861093f610ade565b826109486107a4565b6001600160a01b0316919061171a565b60006109626107a4565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc91906130b2565b905080156109df576109df61093f610dea565b60006109e9611760565b9050600081118015610a0c57506000610a00610ca9565b6001600160a01b031614155b15610a2557610a25610a1c610dea565b82610948610ca9565b7ff24c64885f2398a320c41d4eb1531c9b2440ba4e78edfc733536609a4a2a1b1b82610a64836107cd610a5661082d565b610a5e610847565b9061177b565b60408051928352602083019190915281018790526060810186905260800160405180910390a1610a92610d41565b15610ad657610ad67f0000000000000000000000000000000000000000000000000000000000000000600019610ac6610ca9565b6001600160a01b031691906117ba565b50505050505b565b600061079f603c61152a565b6060610aff610170610afa61155c565b6117f6565b80602001905181019061079f91906130cb565b610b1a610e84565b64ffffffffff164264ffffffffff161080610b4a5750610b38611103565b64ffffffffff164264ffffffffff1610155b80610b6a575060015460ff166003811115610b6757610b67612afd565b15155b15610b8857604051630fe219dd60e21b815260040160405180910390fd5b610ad68585858585600061182e565b6000806060610ba5866119f7565b9550610bb18686611a0b565b610bba86611a7e565b610bc48587611b32565b610bcf858786611ba2565b9093509050610bdd83611c36565b915093509350939050565b6000610c947f5ef80c945ef09ae8a576fcb5d1aecf111d7f4212eb2fc068ceac7faceb7608596001600160a01b03851660009081526020819052604090205486908690610c3c9063ffffffff1660016131aa565b6040805160208101959095528401929092526001600160a01b0316606083015263ffffffff1660808201526001600160401b03841660a082015260c00160405160208183030381529060405280519060200120611c53565b949350505050565b600061079f610130611514565b600061079f601461152a565b610cbd610e84565b64ffffffffff164264ffffffffff161080610ced5750610cdb611103565b64ffffffffff164264ffffffffff1610155b80610d0d575060015460ff166003811115610d0a57610d0a612afd565b15155b15610d2b57604051630fe219dd60e21b815260040160405180910390fd5b610d3986868686868661182e565b505050505050565b6000610d4b611103565b64ffffffffff16610d5a6107b0565b64ffffffffff1611905090565b600061079f605061152a565b6000610d7d610e67565b1515919050565b600f60f81b6060806000808083610dd8604080518082018252600e81526d119a5e1959141c9a58d9541bdbdb60921b602080830191909152825180840190935260058352640312e302e360dc1b9083015291565b97989097965046955030945091925090565b600061079f600061152a565b600061079f60c4611514565b600061079f60fe611543565b610e396040518060800160405280600081526020016000815260200160008152602001600081525090565b610e41610aea565b600654815160ff909116908110610e5a57610e5a61309c565b6020026020010151905090565b600061079f610110611514565b600061079f600a546107cd610847565b600061079f60f4611543565b6000610e9d61010f611599565b60ff161515919050565b60003068929eee149b4bd212685403610ec85763ab143c066000526004601cfd5b3068929eee149b4bd2126855600360015460ff166003811115610eed57610eed612afd565b03610f0b576040516338384cc160e21b815260040160405180910390fd5b600260015460ff166003811115610f2457610f24612afd565b14610f425760405163f1d2165f60e01b815260040160405180910390fd5b610f4a610e02565b64ffffffffff16600554610f5e91906131ce565b421015610f7e576040516312dbbce560e01b815260040160405180910390fd5b600033610f896115b2565b610fd857806001600160a01b03167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651610fc183611d6b565b6040519081526020015b60405180910390a26110ae565b6000610fe2610ca9565b6001600160a01b03161461109557610ff981611dd7565b91508160000361101c576040516321a2f0cf60e11b815260040160405180910390fd5b611047816001600160a01b031660009081526009602090815260408083208390556004909152812055565b6110518183611e03565b60408051848152602081018390529194506001600160a01b038316917ff3a670cd3af7d64b488926880889d08a8585a138ff455227af6737339a1ec2629101610fcb565b60405163773cfce360e11b815260040160405180910390fd5b50503868929eee149b4bd212685590565b60006110fd6110cc610e74565b6001600160a01b0384166000908152600960205260409020546110f1906107cd610793565b90808218908211021890565b92915050565b600061079f60f9611543565b600061079f61010e611599565b3068929eee149b4bd21268540361113b5763ab143c066000526004601cfd5b3068929eee149b4bd212685561114f610dea565b6001600160a01b0316336001600160a01b031614611180576040516330cd747160e01b815260040160405180910390fd5b600360015460ff16600381111561119957611199612afd565b14806111bb5750600260015460ff1660038111156111b9576111b9612afd565b145b156111d95760405163677c06f560e01b815260040160405180910390fd5b60006001805460ff1660038111156111f3576111f3612afd565b14905080611202576001611205565b60005b6001805460ff19168183600381111561122057611220612afd565b0217905550604051811581527f9077d36bc00859b5c3f320310707208543dd35092cb0a0fe117d0c6a558b148b9060200160405180910390a1503868929eee149b4bd2126855565b6000604061127461155c565b11905090565b600061079f6084611514565b3068929eee149b4bd2126854036112a55763ab143c066000526004601cfd5b3068929eee149b4bd21268556112b9610dea565b6001600160a01b0316336001600160a01b0316146112ea576040516330cd747160e01b815260040160405180910390fd5b600060015460ff16600381111561130357611303612afd565b1415801561132757506001805460ff16600381111561132457611324612afd565b14155b1561134557604051631eb3012d60e31b815260040160405180910390fd5b61134d610e84565b64ffffffffff164264ffffffffff161061137a5760405163f1d2165f60e01b815260040160405180910390fd5b6001805460ff191660031790556000611391610ca9565b6001600160a01b0316146113bd576113bd6113aa610dea565b6113b5610a5661082d565b610948610ca9565b6040517f4717c1fcb8954ad4f0da8b5d368d4064a1c750f8639c89dc534ad6070697078290600090a13868929eee149b4bd2126855565b6000600260015460ff16600381111561140f5761140f612afd565b14806114315750600360015460ff16600381111561142f5761142f612afd565b145b1561143c5750600090565b611444610847565b600a541015806114695750611457611103565b64ffffffffff164264ffffffffff1610155b156114745750600190565b50600090565b600061148461082d565b60ff1673b5d72ed6a5a87e76bfa4aa54fdd24cc684596cdf63512742d990916114ab61110f565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af41580156114f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079f91906130b2565b60008061151f611fe9565b929092013592915050565b600080611535611fe9565b929092013560601c92915050565b60008061154e611fe9565b929092013560d81c92915050565b600061079f610150611514565b6000610100821061157c5761157c611ff8565b5090565b60008061158b611fe9565b929092013560c01c92915050565b6000806115a4611fe9565b929092013560f81c92915050565b6000806115bd61127a565b1180156115d257506115cd61127a565b600a54105b156115dd5750600090565b50600190565b60008060006115f0612006565b9194509250905061161361160e61160561082d565b600a549061177b565b840390565b9250600061161f610ca9565b6001600160a01b0316146116b6576000611637610ca9565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561167d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a191906130b2565b905080156116b4576116b4610a1c610dea565b505b909192565b60008060006116dd6116cb610803565b600254906001600160401b03166120a0565b92506116f36116ea61110f565b6003549061177b565b915061170761170061110f565b849061177b565b925061171382846131ce565b9050909192565b816014528060345263a9059cbb60601b60005260206000604460106000875af13d156001600051141716611756576390b8ec186000526004601cfd5b6000603452505050565b600061079f61176d61082d565b610a5e600a546107cd610847565b600060128260ff1610156117b35761179760ff831660126131e1565b6117a290600a6132d8565b6117ac90846132e4565b90506110fd565b5090919050565b816014528060345263095ea7b360601b60005260206000604460106000875af13d15600160005114171661175657633e3f8f736000526004601cfd5b60606000611802611fe9565b905060405191508282528284820160208401378260208301016000815260208101604052505092915050565b3068929eee149b4bd21268540361184d5763ab143c066000526004601cfd5b3068929eee149b4bd2126855611861610e84565b64ffffffffff164264ffffffffff161080611891575061187f611103565b64ffffffffff164264ffffffffff1610155b806118b1575060015460ff1660038111156118ae576118ae612afd565b15155b156118cf57604051630fe219dd60e21b815260040160405180910390fd5b6118d7610d73565b156118e6576118e685836120ce565b6118ee610e90565b156118ff576118ff8587868661213b565b600080600061190f898986610b97565b91945092509050600061192a61192361082d565b8b906121c4565b9050600061193b8a868487876121f5565b9050801561197357611973333061195a61195361110f565b859061225e565b6119626107a4565b6001600160a01b031692919061228f565b61197b610e90565b156119ca576001600160a01b038a166000908152602081905260408120805463ffffffff16916119aa83613306565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b6119d68a8686856122e3565b6119de61235a565b50505050503868929eee149b4bd2126855505050505050565b60006110fd611a0461082d565b83906121c4565b81600003611a2c57604051635b0b4c9160e01b815260040160405180910390fd5b6001600160a01b038116611a535760405163d92e233d60e01b815260040160405180910390fd5b611a5b61147a565b821015611a7a5760405162b875e560e21b815260040160405180910390fd5b5050565b611a86610847565b811115611aa65760405163223e540160e11b815260040160405180910390fd5b611aae610847565b600a5482011115611ad25760405163223e540160e11b815260040160405180910390fd5b6000611adc61147a565b118015611af457506000611af2826107cd610e74565b115b8015611b115750611b0361147a565b611b0f826107cd610e74565b105b15611b2f576040516317ac940d60e11b815260040160405180910390fd5b50565b6001600160a01b0382166000908152600960205260409020548101611b55610793565b811115611b7557604051632903124f60e11b815260040160405180910390fd5b611b7d610df6565b811015611b9d57604051630abbde8160e01b815260040160405180910390fd5b505050565b60006060611bae611268565b611c1e57611bc4611bbd610c9c565b8590612398565b6040805160008082526020820190925290611c14565b611c016040518060600160405280600060ff16815260200160008152602001600081525090565b815260200190600190039081611bda5790505b5091509150611c2e565b611c298585856123ce565b915091505b935093915050565b60006110fd611c436107f7565b83906001600160401b0316612398565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f0000000000000000000000000000000000000000000000000000000000000000461416611d465750604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000009181019190915246606082015230608082015260a090205b67190100000000000060005280601a5281603a52604260182090506000603a52919050565b6000611d97611d7861110f565b6001600160a01b0384166000908152600460205260409020549061177b565b6001600160a01b0383166000908152600960209081526040808320839055600490915281205590508015611dd257611dd282826109486107a4565b919050565b60006110fd611de461082d565b6001600160a01b0384166000908152600960205260409020549061177b565b6000611e0d610d41565b8015611e2d57504264ffffffffff16611e246107b0565b64ffffffffff16115b15611fdc57611e9b60408051610100810182526000808252602080830182905282840182905260608084018390526080840183905260a084018390528451908101855282815280820183905280850183905260c084015283518085019094528184528301529060e082015290565b611ea3610dea565b6001600160a01b039081168252841660208201526001600160801b0383166040820152611ece610ca9565b6001600160a01b03166060808301919091526000608083015260408051918201905280611ef9611103565b64ffffffffff168152602001611f0d61083a565b64ffffffffff168152602001611f216107b0565b64ffffffffff16905260c08201526040805180820182526000808252602082015260e0830152516396ce143160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906396ce143190611f91908490600401613329565b6020604051808303816000875af1158015611fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd491906130b2565b9150506110fd565b6110fd8383610948610ca9565b3660011981013560f01c900390565b6335278d126000526004601cfd5b6000806000612016610a5661082d565b92506120236116ea61110f565b905080156120365761203661093f610ade565b61204a61204161110f565b6002549061225e565b915060006120693061205a6107a4565b6001600160a01b03169061256b565b90508083111561207b578092506116b4565b808310156116b4576116b461208e610dea565b61209885846131e1565b6109486107a4565b6000816000190483118202156120be5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b61211e6120d9610e67565b6040516bffffffffffffffffffffffff19606086901b16602082015260340160405160208183030381529060405280519060200120836125979092919063ffffffff16565b611a7a576040516309bde33960e01b815260040160405180910390fd5b816001600160401b0316426001600160401b0316111561216e5760405163480cfdff60e01b815260040160405180910390fd5b600061217b848685610be8565b9050600061218982846125d9565b9050612193610d67565b6001600160a01b0316816001600160a01b031614610d3957604051638baa579f60e01b815260040160405180910390fd5b600060128260ff1610156117b3576121e060ff831660126131e1565b6121eb90600a6132d8565b6117ac90846133eb565b600a8054840190556001600160a01b03851660009081526009602090815260408083208054870190556004909152812080548601905560028054860190556003805484019055612243611268565b1561225257612252868361266a565b50509190910192915050565b600060128260ff1610156117b3576117ac61227d60ff841660126131e1565b61228890600a6132d8565b8490612799565b60405181606052826040528360601b602c526323b872dd60601b600c52602060006064601c6000895af13d1560016000511417166122d557637939f4246000526004601cfd5b600060605260405250505050565b836001600160a01b03167f3732c5433fa83c3f5a165e9a5630431c84c003b28d66d26ad0d43a0f09d4ea7161231961170061082d565b61232b61232461110f565b879061225e565b61233661232461110f565b6040805193845260208401929092529082015260600160405180910390a250505050565b6123626127ba565b15610adc576040517fcd69fa9896c4546b6ceac642f9fc45bf9603651c212d512911d735dc97f99f7290600090a1610adc610853565b6000816000190483118202156123b65763bac65e5b6000526004601cfd5b50670de0b6b3a7640000910281810615159190040190565b600060606000806123dd6107bd565b905060008160ff166001600160401b038111156123fc576123fc612c4f565b60405190808252806020026020018201604052801561245457816020015b6124416040518060600160405280600060ff16815260200160008152602001600081525090565b81526020019060019003908161241a5790505b5060065490945060ff165b8260ff168160ff16101561253f57861580159061248a5750866124848260ff16610740565b60200151115b156124a857604051638199f5f360e01b815260040160405180910390fd5b6000806124b8838c888d036127ce565b9150915060405180606001604052808460ff16815260200183815260200182815250878560ff16815181106124ef576124ef61309c565b602090810291909101015296810196948501948986111561252357604051631f2e9d0b60e21b815260040160405180910390fd5b89860361253157505061253f565b50506001918201910161245f565b5086831461256057604051633b1cef7760e21b815260040160405180910390fd5b505050935093915050565b6000816014526370a0823160601b60005260208060246010865afa601f3d111660205102905092915050565b60008351156125d25760208401845160051b81015b8151841160051b9384528151602094851852604060002093909101908082106125ac5750505b5014919050565b604051600190836000526020830151604052604083510361261557604083015160ff81901c601b016020526001600160ff1b031660605261263b565b604183510361263657606083015160001a602052604083015160605261263b565b600091505b6020600160806000855afa5191503d61265c57638baa579f6000526004601cfd5b600060605260405292915050565b60006126768251611569565b905060005b8160ff168160ff16101561279357828160ff168151811061269e5761269e61309c565b6020026020010151602001516000031561278b576000838260ff16815181106126c9576126c961309c565b60200260200101516000015190506000848360ff16815181106126ee576126ee61309c565b60209081029190910181015160409081015160ff85166000908152600884528281206001600160a01b038b1682529093529082208054919350839290916127369084906131ce565b909155505060ff82166000908152600760205260408120805483929061275d9084906131ce565b909155505060ff82166000818152600760205260409020546127889161278290610740565b51612864565b50505b60010161267b565b50505050565b6000816127ae576365244e4e6000526004601cfd5b50808206151591040190565b60006127c4610847565b600a541015905090565b60008060006127df8660ff16610740565b9050806060015184101561280f57604051637a32eae560e11b815260ff8716600482015260240160405180910390fd5b60ff861660008181526008602090815260408083206001600160a01b038a168452825280832054938352600790915290205461285791839188918a91908901908901896128d4565b9097909650945050505050565b808210611a7a576006805460ff1690600061287e83613402565b82546101009290920a60ff818102199093169183160217909155600654604051911681527f5076c6d4559ede1276c659eb7b992e6f28bf87bcb351ac810085882c08e95fca915060200160405180910390a15050565b6040860151600090819081908190819081908911156128fe576128f88c8c8c61299b565b90945092505b8b51881115612917576129118c8b6129f8565b90925090505b83158015612923575081155b156129425760208c0151612938908890612398565b955086945061298c565b83600003612956579094509250838361298c565b8160000361296d578383809650819750505061298c565b83821015612981579094509250838361298c565b838380965081975050505b50505050965096945050505050565b6000806129a783612a3c565b60ff831660009081526008602090815260408083206001600160a01b03881684529091529081902054908601510390506129ee85602001518261239890919063ffffffff16565b9150935093915050565b600080612a0483612a3c565b60ff83166000908152600760205260409020548451039050612a3384602001518261239890919063ffffffff16565b91509250929050565b6001612a466107bd565b612a509190613421565b60ff16612a5e82600161343a565b60ff161115611b2f57604051631f2e9d0b60e21b815260040160405180910390fd5b80356001600160a01b0381168114611dd257600080fd5b600060208284031215612aa957600080fd5b612ab282612a80565b9392505050565b600060208284031215612acb57600080fd5b5035919050565b81518152602080830151908201526040808301519082015260608083015190820152608081016110fd565b634e487b7160e01b600052602160045260246000fd5b6020810160048310612b2757612b27612afd565b91905290565b60008060408385031215612b4057600080fd5b82359150612b5060208401612a80565b90509250929050565b60006060808301868452602086602086015260406060604087015282875180855260808801915060208901945060005b81811015612bb9578551805160ff1684528581015186850152840151848401529484019491860191600101612b89565b50909a9950505050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015612c2c57612c19838551805182526020810151602083015260408101516040830152606081015160608301525050565b9284019260809290920191600101612be5565b50909695505050505050565b80356001600160401b0381168114611dd257600080fd5b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715612c8757612c87612c4f565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612cb557612cb5612c4f565b604052919050565b600082601f830112612cce57600080fd5b81356001600160401b03811115612ce757612ce7612c4f565b612cfa601f8201601f1916602001612c8d565b818152846020838601011115612d0f57600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b03821115612d4557612d45612c4f565b5060051b60200190565b600082601f830112612d6057600080fd5b81356020612d75612d7083612d2c565b612c8d565b8083825260208201915060208460051b870101935086841115612d9757600080fd5b602086015b84811015612db35780358352918301918301612d9c565b509695505050505050565b600080600080600060a08688031215612dd657600080fd5b85359450612de660208701612a80565b9350612df460408701612c38565b925060608601356001600160401b0380821115612e1057600080fd5b612e1c89838a01612cbd565b93506080880135915080821115612e3257600080fd5b50612e3f88828901612d4f565b9150509295509295909350565b600080600060608486031215612e6157600080fd5b83359250612e7160208501612a80565b9150604084013590509250925092565b600080600060608486031215612e9657600080fd5b83359250612ea660208501612a80565b9150612eb460408501612c38565b90509250925092565b803560ff81168114611dd257600080fd5b60008060408385031215612ee157600080fd5b612eea83612ebd565b9150612b5060208401612a80565b60008060008060008060c08789031215612f1157600080fd5b86359550612f2160208801612a80565b9450612f2f60408801612c38565b935060608701356001600160401b0380821115612f4b57600080fd5b612f578a838b01612cbd565b94506080890135915080821115612f6d57600080fd5b50612f7a89828a01612d4f565b92505060a087013590509295509295509295565b6000815180845260005b81811015612fb457602081850181015186830182015201612f98565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b881681526000602060e06020840152612ff560e084018a612f8e565b8381036040850152613007818a612f8e565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b8181101561305b5783518352928401929184019160010161303f565b50909c9b505050505050505050505050565b6020810160028310612b2757612b27612afd565b60006020828403121561309357600080fd5b612ab282612ebd565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156130c457600080fd5b5051919050565b600060208083850312156130de57600080fd5b82516001600160401b038111156130f457600080fd5b8301601f8101851361310557600080fd5b8051613113612d7082612d2c565b81815260079190911b8201830190838101908783111561313257600080fd5b928401925b8284101561318957608084890312156131505760008081fd5b613158612c65565b8451815285850151868201526040808601519082015260608086015190820152825260809093019290840190613137565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8181168382160190808211156131c7576131c7613194565b5092915050565b808201808211156110fd576110fd613194565b818103818111156110fd576110fd613194565b600181815b8085111561322f57816000190482111561321557613215613194565b8085161561322257918102915b93841c93908002906131f9565b509250929050565b600082613246575060016110fd565b81613253575060006110fd565b816001811461326957600281146132735761328f565b60019150506110fd565b60ff84111561328457613284613194565b50506001821b6110fd565b5060208310610133831016604e8410600b84101617156132b2575081810a6110fd565b6132bc83836131f4565b80600019048211156132d0576132d0613194565b029392505050565b6000612ab28383613237565b60008261330157634e487b7160e01b600052601260045260246000fd5b500490565b600063ffffffff80831681810361331f5761331f613194565b6001019392505050565b81516001600160a01b0390811682526020808401518216908301526040808401516001600160801b0316908301526060808401519091169082015260808083015161016083019161337d9084018215159052565b5060a083015161339160a084018215159052565b5060c08301516133c460c0840182805164ffffffffff908116835260208083015182169084015260409182015116910152565b5060e083015180516001600160a01b031661012084015260208101516101408401526131c7565b80820281158282048414176110fd576110fd613194565b600060ff821660ff810361341857613418613194565b60010192915050565b60ff82811682821603908111156110fd576110fd613194565b60ff81811683821601908111156110fd576110fd61319456fea2646970667358221220e8821a2f37d7750c9f07b2e1830f50373cf76136d17cdc7c47ad3d4e642f11f964736f6c6343000819003361014060405234801561001157600080fd5b50604051612824380380612824833981016040819052610030916100f7565b306080524660a05280606080610081604080518082018252600c81526b13dd995c999b1bddd41bdbdb60a21b602080830191909152825180840190935260058352640312e302e360dc1b9083015291565b815160209283012081519183019190912060c082905260e0819052604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8152938401929092529082015246606082015230608082015260a090206101005250506001600160a01b03166101205250610127565b60006020828403121561010957600080fd5b81516001600160a01b038116811461012057600080fd5b9392505050565b60805160a05160c05160e05161010051610120516126a061018460003960008181610525015281816108100152611a00015260006114e7015260006115a10152600061157b0152600061152b0152600061150801526126a06000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c806380a9d89b1161015c578063bd10bc5f116100ce578063c68deb7e11610087578063c68deb7e14610517578063d97d482c14610520578063e490335314610547578063e7e104901461054f578063f7049d7814610557578063f89fc8421461055f57600080fd5b8063bd10bc5f146104dc578063be040fb0146104e4578063bf26909c146104ec578063c10b9358146104ff578063c2d4160114610507578063c4ae31681461050f57600080fd5b80639a6117ee116101205780639a6117ee1461049a5780639b31c3a8146104a2578063aa98e0c6146104aa578063ab0bcc41146104b2578063b08b2d97146104ba578063b1dd61b6146104cd57600080fd5b806380a9d89b1461045e578063824bd1f31461046657806384b0196e1461046e578063898672b8146104895780638da5cb5b1461049257600080fd5b80633e83607a116101f557806356f619b8116101b957806356f619b8146103d557806360100d24146103e85780636c9fa59e146103fb5780637c427be6146104035780637ecebe001461040b5780637f87bbd61461044657600080fd5b80633e83607a1461038d57806342c22ff11461039557806343d726d61461039d57806346904840146103a757806349926028146103af57600080fd5b80631f7d8c4a116102475780631f7d8c4a1461031e578063200d2ed2146103265780632b77e524146103405780632ce20404146103495780632f90a4231461036b5780633af8e5eb1461037357600080fd5b80630b8de51d146102845780630f4f6dae146102b75780631083f761146102bf5780631c7d46a0146102df5780631f2f2e1b146102fd575b600080fd5b6102a4610292366004611fd7565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b6102a4610566565b6102c7610577565b6040516001600160a01b0390911681526020016102ae565b6102e7610583565b60405164ffffffffff90911681526020016102ae565b610305610590565b60405167ffffffffffffffff90911681526020016102ae565b61030561059c565b6001546103339060ff1681565b6040516102ae919061200f565b6102a460025481565b61035c610357366004612029565b6105a8565b6040516102ae93929190612055565b6102a46105c6565b61037b6105d3565b60405160ff90911681526020016102ae565b6102e76105e0565b6102a46105ed565b6103a56105f9565b005b6102c7610852565b7f3b525efa345931de2072fb1a4370fb99a2120520e4471e8ad7ca9a54db8a4d416102a4565b61035c6103e33660046120c5565b61085e565b6102a46103f6366004612112565b6108af565b6102c7610964565b6102a4610970565b610431610419366004611fd7565b60006020819052908152604090205463ffffffff1681565b60405163ffffffff90911681526020016102ae565b61044e610985565b60405190151581526020016102ae565b6102c76109ab565b61044e6109b7565b6104766109c8565b6040516102ae9796959493929190612194565b6102a460035481565b6102c7610a2c565b6102a4610a38565b6102e7610a44565b6102a4610a50565b6102e7610a5d565b6103a56104c83660046122f4565b610a69565b60016040516102ae91906123d6565b61044e610a78565b6102a4610a8f565b6102a46104fa366004611fd7565b610c9a565b6102e7610d18565b61037b610d24565b6103a5610d31565b6102a460055481565b6102c77f000000000000000000000000000000000000000000000000000000000000000081565b6102a4610e7d565b6103a5610e89565b61044e610ff7565b60006102a4565b600061057260a461107d565b905090565b60006105726028611093565b60006105726101036110ac565b600061057260e46110c5565b600061057260ec6110c5565b60008060606105b98585600061085e565b9250925092509250925092565b600061057261013061107d565b600061057261010d6110de565b60006105726101086110ac565b6000610572606461107d565b610601610ff7565b61061e57604051633528728d60e11b815260040160405180910390fd5b6001805460ff1916600217905542610634610d18565b64ffffffffff16106106465742610656565b61064e610d18565b64ffffffffff165b6005556106616110f7565b6106c0576000806000610672611128565b604080518481526020810184905290810182905292955090935091507f7bd78c3f4b274f09988d0b0eb6893a90fe6d629ebcbe8fea8e380c6d6c0492229060600160405180910390a1505050565b60008060006106cd6111e2565b9194509250905080156106fe576106fe6106e5610852565b826106ee610577565b6001600160a01b03169190611242565b6000610708610577565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561074e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077291906123ea565b90508015610785576107856106e5610a2c565b6000610795565b826106ee610964565b7ff24c64885f2398a320c41d4eb1531c9b2440ba4e78edfc733536609a4a2a1b1b826107d8836107d46107c66105d3565b6107ce6105ed565b90611288565b0390565b60408051928352602083019190915281018790526060810186905260800160405180910390a1610806610985565b1561084a5761084a7f000000000000000000000000000000000000000000000000000000000000000060001961083a610964565b6001600160a01b031691906112c7565b50505050505b565b6000610572603c611093565b600080606061086c86611303565b95506108788686611317565b61088186611363565b61088b85876113f5565b610896858786611465565b90935090506108a4836114c7565b915093509350939050565b600061095c7f3b525efa345931de2072fb1a4370fb99a2120520e4471e8ad7ca9a54db8a4d416001600160a01b038516600090815260208190526040902054869086906109039063ffffffff166001612419565b6040805160208101959095528401929092526001600160a01b0316606083015263ffffffff16608082015267ffffffffffffffff841660a082015260c001604051602081830303815290604052805190602001206114e5565b949350505050565b60006105726014611093565b600061057261097d6105d3565b6107ce6115fd565b600061098f610d18565b64ffffffffff1661099e610583565b64ffffffffff1611905090565b60006105726050611093565b60006109c1610a50565b1515919050565b600f60f81b6060806000808083610a1a604080518082018252600c81526b13dd995c999b1bddd41bdbdb60a21b602080830191909152825180840190935260058352640312e302e360dc1b9083015291565b97989097965046955030945091925090565b60006105726000611093565b600061057260c461107d565b600061057260fe6110ac565b600061057261011061107d565b600061057260f46110ac565b61084a8585858585600061160d565b6000610a8561010f6110de565b60ff161515919050565b60003068929eee149b4bd212685403610ab05763ab143c066000526004601cfd5b3068929eee149b4bd2126855600360015460ff166003811115610ad557610ad5611ff9565b03610af3576040516338384cc160e21b815260040160405180910390fd5b600260015460ff166003811115610b0c57610b0c611ff9565b14610b2a5760405163f1d2165f60e01b815260040160405180910390fd5b610b32610a44565b64ffffffffff16600554610b469190612436565b421015610b66576040516312dbbce560e01b815260040160405180910390fd5b600033610b716110f7565b610bc057806001600160a01b03167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651610ba9836117e1565b6040519081526020015b60405180910390a2610c89565b6000610bca610964565b6001600160a01b031614610c7057610be18161183b565b915081600003610c04576040516321a2f0cf60e11b815260040160405180910390fd5b610c22816001600160a01b0316600090815260046020526040812055565b610c2c81836118af565b60408051848152602081018390529194506001600160a01b038316917ff3a670cd3af7d64b488926880889d08a8585a138ff455227af6737339a1ec2629101610bb3565b60405163773cfce360e11b815260040160405180910390fd5b50503868929eee149b4bd212685590565b6000610ca46105c6565b610cac610566565b1015610cff576001600160a01b038216600090815260046020526040812054610cd7906107d4610566565b90506000610ce96002546107d46105c6565b9050808210610cf8578061095c565b5092915050565b610d0d6002546107d46105c6565b92915050565b919050565b600061057260f96110ac565b600061057261010e6110de565b3068929eee149b4bd212685403610d505763ab143c066000526004601cfd5b3068929eee149b4bd2126855610d64610a2c565b6001600160a01b0316336001600160a01b031614610d95576040516330cd747160e01b815260040160405180910390fd5b600360015460ff166003811115610dae57610dae611ff9565b1480610dd05750600260015460ff166003811115610dce57610dce611ff9565b145b15610dee5760405163677c06f560e01b815260040160405180910390fd5b60006001805460ff166003811115610e0857610e08611ff9565b14905080610e17576001610e1a565b60005b6001805460ff191681836003811115610e3557610e35611ff9565b0217905550604051811581527f9077d36bc00859b5c3f320310707208543dd35092cb0a0fe117d0c6a558b148b9060200160405180910390a1503868929eee149b4bd2126855565b6000610572608461107d565b3068929eee149b4bd212685403610ea85763ab143c066000526004601cfd5b3068929eee149b4bd2126855610ebc610a2c565b6001600160a01b0316336001600160a01b031614610eed576040516330cd747160e01b815260040160405180910390fd5b600060015460ff166003811115610f0657610f06611ff9565b14158015610f2a57506001805460ff166003811115610f2757610f27611ff9565b14155b15610f4857604051631eb3012d60e31b815260040160405180910390fd5b610f50610a5d565b64ffffffffff164264ffffffffff1610610f7d5760405163f1d2165f60e01b815260040160405180910390fd5b6001805460ff191660031790556000610f94610964565b6001600160a01b031614610fc057610fc0610fad610a2c565b610fb86107c66105d3565b6106ee610964565b6040517f4717c1fcb8954ad4f0da8b5d368d4064a1c750f8639c89dc534ad6070697078290600090a13868929eee149b4bd2126855565b6000600260015460ff16600381111561101257611012611ff9565b14806110345750600360015460ff16600381111561103257611032611ff9565b145b1561103f5750600090565b6110476105c6565b60025410158061106c575061105a610d18565b64ffffffffff164264ffffffffff1610155b156110775750600190565b50600090565b600080611088611a95565b929092013592915050565b60008061109e611a95565b929092013560601c92915050565b6000806110b7611a95565b929092013560d81c92915050565b6000806110d0611a95565b929092013560c01c92915050565b6000806110e9611a95565b929092013560f81c92915050565b600080611102610e7d565b1180156111175750611112610e7d565b600254105b156111225750600090565b50600190565b6000806000611135611aa4565b919450925090506000611146610964565b6001600160a01b0316146111dd57600061115e610964565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156111a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c891906123ea565b905080156111db576111db61078c610a2c565b505b909192565b60008060006112056111f261059c565b6002549067ffffffffffffffff16611b3e565b925061121b611212610d24565b60035490611288565b915061122f611228610d24565b8490611288565b925061123b8284612436565b9050909192565b816014528060345263a9059cbb60601b60005260206000604460106000875af13d15600160005114171661127e576390b8ec186000526004601cfd5b6000603452505050565b600060128260ff1610156112c0576112a460ff83166012612449565b6112af90600a612540565b6112b9908461254c565b9050610d0d565b5090919050565b816014528060345263095ea7b360601b60005260206000604460106000875af13d15600160005114171661127e57633e3f8f736000526004601cfd5b6000610d0d611310610d24565b8390611b6c565b8160000361133857604051635b0b4c9160e01b815260040160405180910390fd5b6001600160a01b03811661135f5760405163d92e233d60e01b815260040160405180910390fd5b5050565b61136b6105c6565b81111561138b5760405163223e540160e11b815260040160405180910390fd5b60025481016113986105c6565b8111156113b85760405163223e540160e11b815260040160405180910390fd5b6113d56113c36105d3565b6107ce836113cf6105ed565b90611b9d565b60000361135f576040516317ac940d60e11b815260040160405180910390fd5b6001600160a01b0382166000908152600460205260409020548101611418610566565b81111561143857604051632903124f60e11b815260040160405180910390fd5b611440610a38565b81101561146057604051630abbde8160e01b815260040160405180910390fd5b505050565b604080516000808252602082019092526060908490836114ba565b6114a76040518060600160405280600060ff16815260200160008152602001600081525090565b8152602001906001900390816114805790505b5091509150935093915050565b6000610d0d6114d4610590565b839067ffffffffffffffff16611bec565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f00000000000000000000000000000000000000000000000000000000000000004614166115d85750604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000009181019190915246606082015230608082015260a090205b67190100000000000060005280601a5281603a52604260182090506000603a52919050565b60006105726002546113cf6105ed565b3068929eee149b4bd21268540361162c5763ab143c066000526004601cfd5b3068929eee149b4bd2126855611640610a5d565b64ffffffffff164264ffffffffff161080611670575061165e610d18565b64ffffffffff164264ffffffffff1610155b80611690575060015460ff16600381111561168d5761168d611ff9565b15155b156116ae57604051630fe219dd60e21b815260040160405180910390fd5b6116b66109b7565b156116c5576116c58583611c22565b6116cd610a78565b156116de576116de85878686611c8f565b60008060006116ee89898661085e565b60028054840190556001600160a01b038b16600090815260046020526040812080548501905560038054840190559295509093509150828401801561175d5761175d333061174461173d610d24565b8590611d22565b61174c610577565b6001600160a01b0316929190611d53565b611765610a78565b156117b4576001600160a01b038a166000908152602081905260408120805463ffffffff16916117948361256e565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b6117c08a868685611da7565b6117c8611e4e565b50505050503868929eee149b4bd2126855505050505050565b600061180d6117ee610d24565b6001600160a01b03841660009081526004602052604090205490611288565b6001600160a01b03831660009081526004602052604081205590508015610d1357610d1382826106ee610577565b60006002546000148061186457506001600160a01b038216600090815260046020526040902054155b1561187157506000919050565b610d0d61187c6105d3565b6002546001600160a01b0385166000908152600460205260409020546107ce91906113cf906118a96105ed565b90611b3e565b60006118b9610985565b80156118d957504264ffffffffff166118d0610583565b64ffffffffff16115b15611a885761194760408051610100810182526000808252602080830182905282840182905260608084018390526080840183905260a084018390528451908101855282815280820183905280850183905260c084015283518085019094528184528301529060e082015290565b61194f610a2c565b6001600160a01b039081168252841660208201526001600160801b038316604082015261197a610964565b6001600160a01b031660608083019190915260006080830152604080519182019052806119a5610d18565b64ffffffffff1681526020016119b96105e0565b64ffffffffff1681526020016119cd610583565b64ffffffffff16905260c08201526040805180820182526000808252602082015260e0830152516396ce143160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906396ce143190611a3d908490600401612591565b6020604051808303816000875af1158015611a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8091906123ea565b915050610d0d565b610d0d83836106ee610964565b3660011981013560f01c900390565b6000806000611ab46107c66105d3565b9250611ac1611212610d24565b90508015611ad457611ad46106e5610852565b611ae8611adf610d24565b60025490611d22565b91506000611b0730611af8610577565b6001600160a01b031690611e8c565b905080831115611b19578092506111db565b808310156111db576111db611b2c610a2c565b611b368584612449565b6106ee610577565b600081600019048311820215611b5c5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b600060128260ff1610156112c057611b8860ff83166012612449565b611b9390600a612540565b6112b99084612653565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a764000002158202611bda57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600081600019048311820215611c0a5763bac65e5b6000526004601cfd5b50670de0b6b3a7640000910281810615159190040190565b611c72611c2d610a50565b6040516bffffffffffffffffffffffff19606086901b1660208201526034016040516020818303038152906040528051906020012083611eb89092919063ffffffff16565b61135f576040516309bde33960e01b815260040160405180910390fd5b8167ffffffffffffffff164267ffffffffffffffff161115611cc45760405163480cfdff60e01b815260040160405180910390fd5b6000611cd18486856108af565b90506000611cdf8284611efa565b9050611ce96109ab565b6001600160a01b0316816001600160a01b031614611d1a57604051638baa579f60e01b815260040160405180910390fd5b505050505050565b600060128260ff1610156112c0576112b9611d4160ff84166012612449565b611d4c90600a612540565b8490611f8b565b60405181606052826040528360601b602c526323b872dd60601b600c52602060006064601c6000895af13d156001600051141716611d9957637939f4246000526004601cfd5b600060605260405250505050565b6000611dde611db46105d3565b6107ce611dbf6115fd565b6001600160a01b03891660009081526004602052604090205490611b3e565b9050846001600160a01b03167f9096dad00c8c3c05cd643aeadfa86f4eff5a3b1af7e530007174ecc3035fec83611e1d611e16610d24565b8790611d22565b611e28611e16610d24565b604080519283526020830191909152810184905260600160405180910390a25050505050565b611e56611fac565b15610850576040517fcd69fa9896c4546b6ceac642f9fc45bf9603651c212d512911d735dc97f99f7290600090a16108506105f9565b6000816014526370a0823160601b60005260208060246010865afa601f3d111660205102905092915050565b6000835115611ef35760208401845160051b81015b8151841160051b938452815160209485185260406000209390910190808210611ecd5750505b5014919050565b6040516001908360005260208301516040526040835103611f3657604083015160ff81901c601b016020526001600160ff1b0316606052611f5c565b6041835103611f5757606083015160001a6020526040830151606052611f5c565b600091505b6020600160806000855afa5191503d611f7d57638baa579f6000526004601cfd5b600060605260405292915050565b600081611fa0576365244e4e6000526004601cfd5b50808206151591040190565b6000611fb66105c6565b6002541015905090565b80356001600160a01b0381168114610d1357600080fd5b600060208284031215611fe957600080fd5b611ff282611fc0565b9392505050565b634e487b7160e01b600052602160045260246000fd5b602081016004831061202357612023611ff9565b91905290565b6000806040838503121561203c57600080fd5b8235915061204c60208401611fc0565b90509250929050565b60006060808301868452602086602086015260406060604087015282875180855260808801915060208901945060005b818110156120b5578551805160ff1684528581015186850152840151848401529484019491860191600101612085565b50909a9950505050505050505050565b6000806000606084860312156120da57600080fd5b833592506120ea60208501611fc0565b9150604084013590509250925092565b803567ffffffffffffffff81168114610d1357600080fd5b60008060006060848603121561212757600080fd5b8335925061213760208501611fc0565b9150612145604085016120fa565b90509250925092565b6000815180845260005b8181101561217457602081850181015186830182015201612158565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b881681526000602060e060208401526121b560e084018a61214e565b83810360408501526121c7818a61214e565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b8181101561221b578351835292840192918401916001016121ff565b50909c9b505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561226c5761226c61222d565b604052919050565b600082601f83011261228557600080fd5b8135602067ffffffffffffffff8211156122a1576122a161222d565b8160051b6122b0828201612243565b92835284810182019282810190878511156122ca57600080fd5b83870192505b848310156122e9578235825291830191908301906122d0565b979650505050505050565b600080600080600060a0868803121561230c57600080fd5b85359450602061231d818801611fc0565b945061232b604088016120fa565b9350606087013567ffffffffffffffff8082111561234857600080fd5b818901915089601f83011261235c57600080fd5b81358181111561236e5761236e61222d565b612380601f8201601f19168501612243565b8181528b8583860101111561239457600080fd5b8185850186830137600091810190940152919350608088013591808311156123bb57600080fd5b50506123c988828901612274565b9150509295509295909350565b602081016002831061202357612023611ff9565b6000602082840312156123fc57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b63ffffffff818116838216019080821115610cf857610cf8612403565b80820180821115610d0d57610d0d612403565b81810381811115610d0d57610d0d612403565b600181815b8085111561249757816000190482111561247d5761247d612403565b8085161561248a57918102915b93841c9390800290612461565b509250929050565b6000826124ae57506001610d0d565b816124bb57506000610d0d565b81600181146124d157600281146124db576124f7565b6001915050610d0d565b60ff8411156124ec576124ec612403565b50506001821b610d0d565b5060208310610133831016604e8410600b841016171561251a575081810a610d0d565b612524838361245c565b806000190482111561253857612538612403565b029392505050565b6000611ff2838361249f565b60008261256957634e487b7160e01b600052601260045260246000fd5b500490565b600063ffffffff80831681810361258757612587612403565b6001019392505050565b81516001600160a01b0390811682526020808401518216908301526040808401516001600160801b031690830152606080840151909116908201526080808301516101608301916125e59084018215159052565b5060a08301516125f960a084018215159052565b5060c083015161262c60c0840182805164ffffffffff908116835260208083015182169084015260409182015116910152565b5060e083015180516001600160a01b03166101208401526020810151610140840152610cf8565b8082028115828204841417610d0d57610d0d61240356fea2646970667358221220669b76dc47de10ad1e31226d73d7b994d1918fe7d1a62dd9c73cd848a7809faa64736f6c634300081900330000000000000000000000007e21988aca03574179a0cad3270b48f2bcdfad80000000000000000000000000c3f54007eedb508131313a8d42375a37b94de513000000000000000000000000fcf737582d167c7d20a336532eb8bcca8cf8e350