//
0x60806040526224ea006013553480156200001857600080fd5b5060405162003b5838038062003b588339810160408190526200003b9162000173565b818160026200004b83826200026c565b5060036200005a82826200026c565b505060008080556001600855600980546001600160a01b031916339081179091556040519092507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505062000338565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d657600080fd5b81516001600160401b0380821115620000f357620000f3620000ae565b604051601f8301601f19908116603f011681019082821181831017156200011e576200011e620000ae565b816040528381526020925086838588010111156200013b57600080fd5b600091505b838210156200015f578582018301518183018401529082019062000140565b600093810190920192909252949350505050565b600080604083850312156200018757600080fd5b82516001600160401b03808211156200019f57600080fd5b620001ad86838701620000c4565b93506020850151915080821115620001c457600080fd5b50620001d385828601620000c4565b9150509250929050565b600181811c90821680620001f257607f821691505b6020821081036200021357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026757600081815260208120601f850160051c81016020861015620002425750805b601f850160051c820191505b8181101562000263578281556001016200024e565b5050505b505050565b81516001600160401b03811115620002885762000288620000ae565b620002a081620002998454620001dd565b8462000219565b602080601f831160018114620002d85760008415620002bf5750858301515b600019600386901b1c1916600185901b17855562000263565b600085815260208120601f198616915b828110156200030957888601518255948401946001909101908401620002e8565b5085821015620003285787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61381080620003486000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80636386c1c711610125578063af1fdb0d116100ad578063e2842d791161007c578063e2842d79146104b6578063e75ec57d146104cb578063e985e9c5146104de578063f2fde38b146104f1578063fda7aff01461050457600080fd5b8063af1fdb0d14610474578063b343a0df14610487578063b88d4fde14610490578063c87b56dd146104a357600080fd5b80638da5cb5b116100f45780638da5cb5b1461042057806395d89b4114610431578063a22cb46514610439578063a2bdedf41461044c578063adad43b01461045f57600080fd5b80636386c1c7146103da5780636b3d969b146103ed57806370a08231146103fa5780637897f76a1461040d57600080fd5b80631b4e7bd2116101a85780633c0befc8116101775780633c0befc81461038657806342842e0e1461038e578063431f63c9146103a1578063630caeaa146103b45780636352211e146103c757600080fd5b80631b4e7bd214610329578063204120bc1461034b57806323b872dd1461036b57806336bb7f341461037e57600080fd5b806310fe472b116101ef57806310fe472b1461029e578063133f50f5146102b1578063162094c4146102dd57806318160ddd146102f05780631a6c26bc1461030657600080fd5b806301ffc9a71461022157806306fdde0314610249578063081812fc1461025e578063095ea7b314610289575b600080fd5b61023461022f366004612e33565b61050d565b60405190151581526020015b60405180910390f35b61025161051e565b6040516102409190612ea7565b61027161026c366004612eba565b6105b0565b6040516001600160a01b039091168152602001610240565b61029c610297366004612eef565b6105f4565b005b6102516102ac366004612f19565b61067a565b6102346102bf366004612f19565b6001600160a01b031660009081526010602052604090205460ff1690565b61029c6102eb366004612fbf565b61081a565b600154600054035b604051908152602001610240565b610319610314366004612eba565b610898565b6040516102409493929190613019565b61033c610337366004612f19565b610970565b6040516102409392919061305d565b6102f8610359366004612f19565b60146020526000908152604090205481565b61029c61037936600461308f565b610a24565b61029c610a2f565b61029c610aee565b61029c61039c36600461308f565b610b3a565b61029c6103af366004612eef565b610b55565b61029c6103c2366004613113565b610baa565b6102716103d5366004612eba565b6112f8565b61033c6103e8366004612f19565b61130a565b6011546102349060ff1681565b6102f8610408366004612f19565b6114c8565b6102f861041b36600461318c565b611516565b6009546001600160a01b0316610271565b61025161170f565b61029c6104473660046131d7565b61171e565b61033c61045a366004612eba565b6117b3565b6104676117e8565b604051610240919061320e565b610251610482366004612f19565b61190f565b6102f860125481565b61029c61049e3660046132ae565b6119bd565b6102516104b1366004612eba565b611a07565b6104be611b14565b6040516102409190613329565b61029c6104d93660046133a5565b611c1c565b6102346104ec3660046133f8565b61207c565b61029c6104ff366004612f19565b6120aa565b6102f860135481565b600061051882612195565b92915050565b60606002805461052d9061342b565b80601f01602080910402602001604051908101604052809291908181526020018280546105599061342b565b80156105a65780601f1061057b576101008083540402835291602001916105a6565b820191906000526020600020905b81548152906001019060200180831161058957829003601f168201915b5050505050905090565b60006105bb826121e5565b6105d8576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006105ff826112f8565b9050806001600160a01b0316836001600160a01b0316036106335760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b0382161461066a5761064d813361207c565b61066a576040516367d9dca160e11b815260040160405180910390fd5b610675838383612210565b505050565b6001600160a01b038116600090815260106020526040902054606090829060ff166106c05760405162461bcd60e51b81526004016106b79061345f565b60405180910390fd5b60005b600b548110156107d357836001600160a01b0316600b82815481106106ea576106ea61348b565b60009182526020909120600160049092020101546001600160a01b0316036107c157600b818154811061071f5761071f61348b565b9060005260206000209060040201600201805461073b9061342b565b80601f01602080910402602001604051908101604052809291908181526020018280546107679061342b565b80156107b45780601f10610789576101008083540402835291602001916107b4565b820191906000526020600020905b81548152906001019060200180831161079757829003601f168201915b5050505050925050610814565b806107cb816134b7565b9150506106c3565b5060405162461bcd60e51b81526020600482015260156024820152741058dd1a5d99481d5cd95c881b9bdd08199bdd5b99605a1b60448201526064016106b7565b50919050565b33610824836112f8565b6001600160a01b03161461088a5760405162461bcd60e51b815260206004820152602760248201527f4f6e6c7920746865206f776e65722063616e206368616e67652074686520746f6044820152666b656e2055524960c81b60648201526084016106b7565b610894828261226c565b5050565b600b81815481106108a857600080fd5b60009182526020909120600490910201805460018201546002830180549294506001600160a01b0390911692916108de9061342b565b80601f016020809104026020016040519081016040528092919081815260200182805461090a9061342b565b80156109575780601f1061092c57610100808354040283529160200191610957565b820191906000526020600020905b81548152906001019060200180831161093a57829003601f168201915b505050600390930154919250506001600160401b031684565b600d60205260009081526040902080546001820180549192916109929061342b565b80601f01602080910402602001604051908101604052809291908181526020018280546109be9061342b565b8015610a0b5780601f106109e057610100808354040283529160200191610a0b565b820191906000526020600020905b8154815290600101906020018083116109ee57829003601f168201915b505050600290930154919250506001600160401b031683565b6106758383836122ee565b33610a426009546001600160a01b031690565b6001600160a01b031614610a685760405162461bcd60e51b81526004016106b7906134d0565b601354601254610a789190613507565b421015610adc5760405162461bcd60e51b815260206004820152602c60248201527f323820646179732068617665206e6f74207061737365642073696e636520746860448201526b19481b185cdd081c995cd95d60a21b60648201526084016106b7565b610ae8600b6000612d63565b42601255565b33610b016009546001600160a01b031690565b6001600160a01b031614610b275760405162461bcd60e51b81526004016106b7906134d0565b6011805460ff1916600117905542601255565b610675838383604051806020016040528060008152506119bd565b33610b686009546001600160a01b031690565b6001600160a01b031614610b8e5760405162461bcd60e51b81526004016106b7906134d0565b6001600160a01b03909116600090815260146020526040902055565b33610bb4866112f8565b6001600160a01b031614610c155760405162461bcd60e51b815260206004820152602260248201527f43616c6c6572206973206e6f7420746865206f776e6572206f6620746865204e604482015261119560f21b60648201526084016106b7565b336000908152600d602052604081206001018054610cba9190610c379061342b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c639061342b565b8015610cb05780601f10610c8557610100808354040283529160200191610cb0565b820191906000526020600020905b815481529060010190602001808311610c9357829003601f168201915b50505050506124dc565b90506000610cfd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124dc92505050565b90506000600e83604051610d11919061351a565b908152604051908190036020019020546001600160a01b0316905080610d795760405162461bcd60e51b815260206004820152601b60248201527f4f6c6420757365726e616d6520646f6573206e6f74206578697374000000000060448201526064016106b7565b6000825111610dca5760405162461bcd60e51b815260206004820152601c60248201527f4e657720757365726e616d652063616e6e6f7420626520656d7074790000000060448201526064016106b7565b60006001600160a01b0316600e83604051610de5919061351a565b908152604051908190036020019020546001600160a01b031614610e4b5760405162461bcd60e51b815260206004820152601d60248201527f4e657720757365726e616d6520697320616c72656164792074616b656e00000060448201526064016106b7565b6001600160a01b0381166000908152600d60205260409020548814610ebe5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e20494420646f6573206e6f74206d617463682074686520757365726044820152636e616d6560e01b60648201526084016106b7565b6001600160a01b0381166000908152600d602090815260408083206002015460109092529091205433916001600160401b03169060ff16156110925760005b600b5481101561108c57836001600160a01b0316600b8281548110610f2457610f2461348b565b60009182526020909120600160049092020101546001600160a01b03160361107a5782600b8281548110610f5a57610f5a61348b565b906000526020600020906004020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600b8281548110610fa357610fa361348b565b9060005260206000209060040201600001819055508989600b8381548110610fcd57610fcd61348b565b90600052602060002090600402016002019182610feb929190613584565b5081600b82815481106110005761100061348b565b906000526020600020906004020160030160006101000a8154816001600160401b0302191690836001600160401b031602179055506110758b89898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061226c92505050565b61108c565b80611084816134b7565b915050610efd565b5061117f565b600b60405180608001604052808c8152602001846001600160a01b031681526020018b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506001600160401b0385166020928301528354600180820186559482529082902083516004909202019081559082015192810180546001600160a01b0319166001600160a01b0390941693909317909255604081015190919060028201906111539082613643565b50606091909101516003909101805467ffffffffffffffff19166001600160401b039092169190911790555b6001600160a01b03808416600090815260106020526040808220805460ff19908116909155928516825280822080549093166001179092559051600e906111c790889061351a565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600e8560405161120a919061351a565b908152604080516020928190038301902080546001600160a01b0319166001600160a01b039485161790559184166000908152600d90915220600101611251898b83613584565b506001600160a01b0382166000908152600d60205260408082208c8155600201805467ffffffffffffffff19166001600160401b03851617905551600f9061129a90889061351a565b908152604051908190036020018120805492151560ff1990931692909217909155600190600f906112cc90879061351a565b908152604051908190036020019020805491151560ff1990921691909117905550505050505050505050565b600061130382612652565b5192915050565b6001600160a01b0381166000908152601060205260408120546060908290849060ff166113495760405162461bcd60e51b81526004016106b79061345f565b60005b600b548110156107d357856001600160a01b0316600b82815481106113735761137361348b565b60009182526020909120600160049092020101546001600160a01b0316036114ae57600b81815481106113a8576113a861348b565b906000526020600020906004020160000154600b82815481106113cd576113cd61348b565b9060005260206000209060040201600201600b83815481106113f1576113f161348b565b906000526020600020906004020160030160009054906101000a90046001600160401b03168180546114229061342b565b80601f016020809104026020016040519081016040528092919081815260200182805461144e9061342b565b801561149b5780601f106114705761010080835404028352916020019161149b565b820191906000526020600020905b81548152906001019060200180831161147e57829003601f168201915b50505050509150945094509450506114c0565b806114b8816134b7565b91505061134c565b509193909250565b60006001600160a01b0382166114f1576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b600061152061276c565b600061156184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124dc92505050565b905060008151116115af5760405162461bcd60e51b8152602060048201526018602482015277557365726e616d652063616e6e6f7420626520656d70747960401b60448201526064016106b7565b60006001600160a01b0316600e826040516115ca919061351a565b908152604051908190036020019020546001600160a01b03161461162c5760405162461bcd60e51b81526020600482015260196024820152782ab9b2b93730b6b29034b99030b63932b0b23c903a30b5b2b760391b60448201526064016106b7565b60005461163a8860016127c5565b61167c88828488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127df92505050565b6116bc8188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061226c92505050565b7fd35bb95e09c04b219e35047ce7b7b300e3384264ef84a40456943dbc0fc17c14888289896040516116f19493929190613702565b60405180910390a19150506117066001600855565b95945050505050565b60606003805461052d9061342b565b336001600160a01b038316036117475760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600a81815481106117c357600080fd5b600091825260209091206003909102018054600182018054919350906109929061342b565b6060600b805480602002602001604051908101604052809291908181526020016000905b8282101561190657600084815260209081902060408051608081018252600486029092018054835260018101546001600160a01b0316938301939093526002830180549293929184019161185f9061342b565b80601f016020809104026020016040519081016040528092919081815260200182805461188b9061342b565b80156118d85780601f106118ad576101008083540402835291602001916118d8565b820191906000526020600020905b8154815290600101906020018083116118bb57829003601f168201915b5050509183525050600391909101546001600160401b0316602091820152908252600192909201910161180c565b50505050905090565b6001600160a01b038116600090815260106020526040902054606090829060ff1661194c5760405162461bcd60e51b81526004016106b79061345f565b60005b600b548110156107d357836001600160a01b0316600b82815481106119765761197661348b565b60009182526020909120600160049092020101546001600160a01b0316036119ab57600b818154811061071f5761071f61348b565b806119b5816134b7565b91505061194f565b6119c88484846122ee565b6001600160a01b0383163b15611a01576119e484848484612ab1565b611a01576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611a12826121e5565b611a765760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016106b7565b6000828152600c602052604090208054611a8f9061342b565b80601f0160208091040260200160405190810160405280929190818152602001828054611abb9061342b565b8015611b085780601f10611add57610100808354040283529160200191611b08565b820191906000526020600020905b815481529060010190602001808311611aeb57829003601f168201915b50505050509050919050565b6060600a805480602002602001604051908101604052809291908181526020016000905b82821015611906578382906000526020600020906003020160405180606001604052908160008201548152602001600182018054611b759061342b565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba19061342b565b8015611bee5780601f10611bc357610100808354040283529160200191611bee565b820191906000526020600020905b815481529060010190602001808311611bd157829003601f168201915b5050509183525050600291909101546001600160401b03166020918201529082526001929092019101611b38565b60115460ff16611c665760405162461bcd60e51b815260206004820152601560248201527414995cd95d081a5cc81b9bdd081c995c5d5a5c9959605a1b60448201526064016106b7565b611c6e61276c565b6001600160a01b03811660009081526014602052604090205480611cd45760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7420746f6b656e206e6f7420616363657074656400000000000060448201526064016106b7565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af1158015611d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4b919061374a565b611d8d5760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b60448201526064016106b7565b6000611dce85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124dc92505050565b90506000815111611e1c5760405162461bcd60e51b8152602060048201526018602482015277557365726e616d652063616e6e6f7420626520656d70747960401b60448201526064016106b7565b60006001600160a01b0316600e82604051611e37919061351a565b908152604051908190036020019020546001600160a01b031614611e995760405162461bcd60e51b81526020600482015260196024820152782ab9b2b93730b6b29034b99030b63932b0b23c903a30b5b2b760391b60448201526064016106b7565b336000908152600d60205260409020805490600101611eb9868883613584565b50336000908152600d60205260408120600201805467ffffffffffffffff1916426001600160401b03161790555b600b54811015611fc457336001600160a01b0316600b8281548110611f0e57611f0e61348b565b60009182526020909120600160049092020101546001600160a01b031603611fb2578686600b8381548110611f4557611f4561348b565b90600052602060002090600402016002019182611f63929190613584565b5042600b8281548110611f7857611f7861348b565b906000526020600020906004020160030160006101000a8154816001600160401b0302191690836001600160401b03160217905550611fc4565b80611fbc816134b7565b915050611ee7565b5033600e83604051611fd6919061351a565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001600f8360405161201a919061351a565b9081526040805160209281900383018120805460ff1916941515949094179093553383529082018390527f0ffd89b9f1fcf243383686fddd9efc6e1ece9abe0b672b053c979da875231f77910160405180910390a15050506106756001600855565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b336120bd6009546001600160a01b031690565b6001600160a01b0316146120e35760405162461bcd60e51b81526004016106b7906134d0565b6001600160a01b0381166121395760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016106b7565b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160e01b031982166380ac58cd60e01b14806121c657506001600160e01b03198216635b5e139f60e01b145b8061051857506301ffc9a760e01b6001600160e01b0319831614610518565b6000805482108015610518575050600090815260046020526040902054600160e01b900460ff161590565b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b612275826121e5565b6122d65760405162461bcd60e51b815260206004820152602c60248201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016106b7565b6000828152600c602052604090206106758282613643565b60006122f982612652565b9050836001600160a01b031681600001516001600160a01b0316146123305760405162a1148160e81b815260040160405180910390fd5b6000336001600160a01b038616148061234e575061234e853361207c565b8061236957503361235e846105b0565b6001600160a01b0316145b90508061238957604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0384166123b057604051633a954ecd60e21b815260040160405180910390fd5b6123bc60008487612210565b6001600160a01b038581166000908152600560209081526040808320805467ffffffffffffffff198082166001600160401b0392831660001901831617909255898616808652838620805493841693831660019081018416949094179055898652600490945282852080546001600160e01b031916909417600160a01b4290921691909102178355870180845292208054919390911661249057600054821461249057805460208601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b038a16171781555b50505082846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b60606000829050600081516001600160401b038111156124fe576124fe612f34565b6040519080825280601f01601f191660200182016040528015612528576020820181803683370190505b50905060005b825181101561264a57604160f81b83828151811061254e5761254e61348b565b01602001516001600160f81b0319161080159061258f5750605a60f81b83828151811061257d5761257d61348b565b01602001516001600160f81b03191611155b156125f1578281815181106125a6576125a661348b565b602001015160f81c60f81b60f81c60206125c09190613767565b60f81b8282815181106125d5576125d561348b565b60200101906001600160f81b031916908160001a905350612638565b8281815181106126035761260361348b565b602001015160f81c60f81b8282815181106126205761262061348b565b60200101906001600160f81b031916908160001a9053505b80612642816134b7565b91505061252e565b509392505050565b60408051606081018252600080825260208201819052918101919091528160005481101561275357600081815260046020908152604091829020825160608101845290546001600160a01b0381168252600160a01b81046001600160401b031692820192909252600160e01b90910460ff161515918101829052906127515780516001600160a01b0316156126e8579392505050565b5060001901600081815260046020908152604091829020825160608101845290546001600160a01b038116808352600160a01b82046001600160401b031693830193909352600160e01b900460ff161515928101929092521561274c579392505050565b6126e8565b505b604051636f96cda160e11b815260040160405180910390fd5b6002600854036127be5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106b7565b6002600855565b610894828260405180602001604052806000815250612b9c565b60408051606081018252848152602081018381526001600160401b03421692820192909252600a8054600181018255600091909152815160039091027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a881019182559251919290917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a9909101906128769082613643565b50604091820151600291909101805467ffffffffffffffff19166001600160401b039092169190911790556001600160a01b03851660009081526010602052205460ff166129eb57604080516080810182528481526001600160a01b0386811660208301908152928201848152426001600160401b03166060840152600b805460018101825560009190915283517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9600490920291820190815594517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba820180546001600160a01b0319169190941617909255519192917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb9091019061299c9082613643565b50606091909101516003909101805467ffffffffffffffff19166001600160401b039092169190911790556001600160a01b0384166000908152601060205260409020805460ff191660011790555b6001600160a01b0384166000908152600d6020526040902083815560018101612a148382613643565b5060028101805467ffffffffffffffff1916426001600160401b03161790556040518590600e90612a4690869061351a565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001600f84604051612a8a919061351a565b908152604051908190036020019020805491151560ff199092169190911790555050505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290612ae6903390899088908890600401613780565b6020604051808303816000875af1925050508015612b21575060408051601f3d908101601f19168201909252612b1e918101906137bd565b60015b612b7f573d808015612b4f576040519150601f19603f3d011682016040523d82523d6000602084013e612b54565b606091505b508051600003612b77576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b6000546001600160a01b038416612bc557604051622e076360e81b815260040160405180910390fd5b82600003612be65760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b038416600081815260056020908152604080832080546fffffffffffffffffffffffffffffffff1981166001600160401b038083168b0181169182176801000000000000000067ffffffffffffffff1990941690921783900481168b01811690920217909155858452600490925290912080546001600160e01b0319168317600160a01b42909316929092029190911790558190818501903b15612d0e575b60405182906001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4612cd76000878480600101955087612ab1565b612cf4576040516368d2bf6b60e11b815260040160405180910390fd5b808210612c8c578260005414612d0957600080fd5b612d53565b5b6040516001830192906001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4808210612d0f575b506000908155611a019085838684565b5080546000825560040290600052602060002090810190612d849190612d87565b50565b80821115612dcf5760008082556001820180546001600160a01b0319169055612db36002830182612dd3565b5060038101805467ffffffffffffffff19169055600401612d87565b5090565b508054612ddf9061342b565b6000825580601f10612def575050565b601f016020900490600052602060002090810190612d8491905b80821115612dcf5760008155600101612e09565b6001600160e01b031981168114612d8457600080fd5b600060208284031215612e4557600080fd5b8135612e5081612e1d565b9392505050565b60005b83811015612e72578181015183820152602001612e5a565b50506000910152565b60008151808452612e93816020860160208601612e57565b601f01601f19169290920160200192915050565b602081526000612e506020830184612e7b565b600060208284031215612ecc57600080fd5b5035919050565b80356001600160a01b0381168114612eea57600080fd5b919050565b60008060408385031215612f0257600080fd5b612f0b83612ed3565b946020939093013593505050565b600060208284031215612f2b57600080fd5b612e5082612ed3565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115612f6457612f64612f34565b604051601f8501601f19908116603f01168101908282118183101715612f8c57612f8c612f34565b81604052809350858152868686011115612fa557600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215612fd257600080fd5b8235915060208301356001600160401b03811115612fef57600080fd5b8301601f8101851361300057600080fd5b61300f85823560208401612f4a565b9150509250929050565b8481526001600160a01b038416602082015260806040820181905260009061304390830185612e7b565b90506001600160401b038316606083015295945050505050565b8381526060602082015260006130766060830185612e7b565b90506001600160401b0383166040830152949350505050565b6000806000606084860312156130a457600080fd5b6130ad84612ed3565b92506130bb60208501612ed3565b9150604084013590509250925092565b60008083601f8401126130dd57600080fd5b5081356001600160401b038111156130f457600080fd5b60208301915083602082850101111561310c57600080fd5b9250929050565b60008060008060006060868803121561312b57600080fd5b8535945060208601356001600160401b038082111561314957600080fd5b61315589838a016130cb565b9096509450604088013591508082111561316e57600080fd5b5061317b888289016130cb565b969995985093965092949392505050565b6000806000806000606086880312156131a457600080fd5b6131ad86612ed3565b945060208601356001600160401b038082111561314957600080fd5b8015158114612d8457600080fd5b600080604083850312156131ea57600080fd5b6131f383612ed3565b91506020830135613203816131c9565b809150509250929050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156132a057888303603f19018552815180518452878101516001600160a01b0316888501528681015160808886018190529061327682870182612e7b565b6060938401516001600160401b031696909301959095525094870194925090860190600101613235565b509098975050505050505050565b600080600080608085870312156132c457600080fd5b6132cd85612ed3565b93506132db60208601612ed3565b92506040850135915060608501356001600160401b038111156132fd57600080fd5b8501601f8101871361330e57600080fd5b61331d87823560208401612f4a565b91505092959194509250565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156132a057603f19898403018552815160608151855288820151818a87015261337e82870182612e7b565b928901516001600160401b0316958901959095525094870194925090860190600101613350565b6000806000604084860312156133ba57600080fd5b83356001600160401b038111156133d057600080fd5b6133dc868287016130cb565b90945092506133ef905060208501612ed3565b90509250925092565b6000806040838503121561340b57600080fd5b61341483612ed3565b915061342260208401612ed3565b90509250929050565b600181811c9082168061343f57607f821691505b60208210810361081457634e487b7160e01b600052602260045260246000fd5b60208082526012908201527155736572206973206e6f742061637469766560701b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016134c9576134c96134a1565b5060010190565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b80820180821115610518576105186134a1565b6000825161352c818460208701612e57565b9190910192915050565b601f82111561067557600081815260208120601f850160051c8101602086101561355d5750805b601f850160051c820191505b8181101561357c57828155600101613569565b505050505050565b6001600160401b0383111561359b5761359b612f34565b6135af836135a9835461342b565b83613536565b6000601f8411600181146135e357600085156135cb5750838201355b600019600387901b1c1916600186901b1783556124d5565b600083815260209020601f19861690835b8281101561361457868501358255602094850194600190920191016135f4565b50868210156136315760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b0381111561365c5761365c612f34565b6136708161366a845461342b565b84613536565b602080601f8311600181146136a5576000841561368d5750858301515b600019600386901b1c1916600185901b17855561357c565b600085815260208120601f198616915b828110156136d4578886015182559484019460019091019084016136b5565b50858210156136f25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b60006020828403121561375c57600080fd5b8151612e50816131c9565b60ff8181168382160190811115610518576105186134a1565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906137b390830184612e7b565b9695505050505050565b6000602082840312156137cf57600080fd5b8151612e5081612e1d56fea264697066735822122029954f555794c1ea4fbd6f631d876b6bb691db3640257d6efd06126a7b2e988964736f6c63430008130033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000019696f506c61736d61576f726c6420557365724163636f756e74000000000000000000000000000000000000000000000000000000000000000000000000000006696f505755410000000000000000000000000000000000000000000000000000