0x6080604052600436106101fd5760003560e01c80637830b3091161010d5780639d8f7706116100a0578063cc1776d31161006f578063cc1776d3146105ee578063dd62ed3e14610604578063f2fde38b1461064a578063f6780a861461066a578063fa01fdd71461069e57600080fd5b80639d8f7706146105795780639e78fb4f14610599578063a9059cbb146105ae578063bb5db0e3146105ce57600080fd5b80638c0b5e22116100dc5780638c0b5e22146104f35780638da5cb5b146105095780639335dcb71461052757806395d89b411461054757600080fd5b80637830b309146104745780637906ee3f1461049457806385141a77146104a957806389e40cf9146104dd57600080fd5b80632d77a2bf116101905780634f7041a51161015f5780634f7041a5146103d357806369a4adc2146103e957806370a0823114610409578063715018a61461043f57806375f0a8741461045457600080fd5b80632d77a2bf14610345578063313ce5671461036557806347535d7b1461038157806349bd5a5e1461039b57600080fd5b80630a0bc661116101cc5780630a0bc661146102c85780630b6bb6f5146102e857806318160ddd1461030857806323b872dd1461032557600080fd5b806301a072fb1461020957806305d2743f1461023257806306fdde0314610254578063095ea7b31461029857600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f60025481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5061025261024d3660046119a4565b6106b3565b005b34801561026057600080fd5b506040805180820190915260128152711098589e48109bde4813d9881058da1b595960721b60208201525b60405161022991906119c1565b3480156102a457600080fd5b506102b86102b3366004611a0f565b610708565b6040519015158152602001610229565b3480156102d457600080fd5b506102526102e3366004611a3b565b61071f565b3480156102f457600080fd5b50610252610303366004611ac8565b61077b565b34801561031457600080fd5b5069018a3745df4af0a0000061021f565b34801561033157600080fd5b506102b8610340366004611b67565b610817565b34801561035157600080fd5b50610252610360366004611a3b565b610869565b34801561037157600080fd5b5060405160128152602001610229565b34801561038d57600080fd5b506014546102b89060ff1681565b3480156103a757600080fd5b506005546103bb906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b3480156103df57600080fd5b5061021f600c5481565b3480156103f557600080fd5b50610252610404366004611ba8565b6108c5565b34801561041557600080fd5b5061021f6104243660046119a4565b6001600160a01b031660009081526011602052604090205490565b34801561044b57600080fd5b506102526108f4565b34801561046057600080fd5b506006546103bb906001600160a01b031681565b34801561048057600080fd5b5061025261048f366004611ba8565b610968565b3480156104a057600080fd5b50610252610997565b3480156104b557600080fd5b506103bb7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156104e957600080fd5b5061021f60045481565b3480156104ff57600080fd5b5061021f60035481565b34801561051557600080fd5b506000546001600160a01b03166103bb565b34801561053357600080fd5b506007546103bb906001600160a01b031681565b34801561055357600080fd5b506040805180820190915260098152684143484d4544494e4f60b81b602082015261028b565b34801561058557600080fd5b50610252610594366004611bc1565b6109d1565b3480156105a557600080fd5b50610252610a26565b3480156105ba57600080fd5b506102b86105c9366004611a0f565b610b88565b3480156105da57600080fd5b506102526105e9366004611ba8565b610b95565b3480156105fa57600080fd5b5061021f600d5481565b34801561061057600080fd5b5061021f61061f366004611bff565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561065657600080fd5b506102526106653660046119a4565b610bc4565b34801561067657600080fd5b506103bb7f000000000000000000000000d7f721e05546a961386ee5c32192ea40b86c012081565b3480156106aa57600080fd5b50610252610bfa565b6000546001600160a01b031633146106e65760405162461bcd60e51b81526004016106dd90611c2d565b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610715338484610c33565b5060015b92915050565b6000546001600160a01b031633146107495760405162461bcd60e51b81526004016106dd90611c2d565b60196107558383610d57565b111561076057600080fd5b6009829055600b8190556107748282610d57565b600d555050565b6000546001600160a01b031633146107a55760405162461bcd60e51b81526004016106dd90611c2d565b60005b81518160ff16101561081357600160156000848460ff16815181106107cf576107cf611c62565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061080b81611c8e565b9150506107a8565b5050565b6000610824848484610dbd565b6001600160a01b03841660009081526012602090815260408083203380855292529091205461085f91869161085a908690611cad565b610c33565b5060019392505050565b6000546001600160a01b031633146108935760405162461bcd60e51b81526004016106dd90611c2d565b601961089f8383610d57565b11156108aa57600080fd5b6008829055600a8190556108be8282610d57565b600c555050565b6000546001600160a01b031633146108ef5760405162461bcd60e51b81526004016106dd90611c2d565b600355565b6000546001600160a01b0316331461091e5760405162461bcd60e51b81526004016106dd90611c2d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109925760405162461bcd60e51b81526004016106dd90611c2d565b600255565b6000546001600160a01b031633146109c15760405162461bcd60e51b81526004016106dd90611c2d565b69018a3745df4af0a00000600455565b6000546001600160a01b031633146109fb5760405162461bcd60e51b81526004016106dd90611c2d565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a505760405162461bcd60e51b81526004016106dd90611c2d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611cc0565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281166024830152919091169063c9c65396906044016020604051808303816000875af1158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190611cc0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610715338484610dbd565b6000546001600160a01b03163314610bbf5760405162461bcd60e51b81526004016106dd90611c2d565b600455565b6000546001600160a01b03163314610bee5760405162461bcd60e51b81526004016106dd90611c2d565b610bf7816113b7565b50565b6000546001600160a01b03163314610c245760405162461bcd60e51b81526004016106dd90611c2d565b6014805460ff19166001179055565b6001600160a01b038316610c955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106dd565b6001600160a01b038216610cf65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106dd565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080610d648385611cdd565b905083811015610db65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106dd565b9392505050565b6001600160a01b038316610e215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106dd565b60008111610e835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106dd565b60145460ff1680610eac57506001600160a01b03831660009081526015602052604090205460ff165b80610ecf57506001600160a01b03821660009081526015602052604090205460ff165b610f065760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b60448201526064016106dd565b6001600160a01b038316600090815260136020526040812054819060ff1680610f4757506001600160a01b03841660009081526013602052604090205460ff165b15610f555760009150611178565b600e5460ff16600103611012576001600160a01b03851660009081526011602052604081208054859290610f8a908490611cad565b90915550506001600160a01b03841660009081526011602052604081208054859290610fb7908490611cdd565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161100391815260200190565b60405180910390a35050505050565b6005546001600160a01b03908116908616036110d3575050600c5460035460019083111561103f57600080fd5b6001600160a01b0384166000908152601160205260409020546004546110658583611cdd565b11156110cd5760405162461bcd60e51b815260206004820152603160248201527f4143484d4544494e4f3a206d6178696d756d20746f6b656e207065722077616c6044820152701b195d08185b5bdd5b9d08195e18d95959607a1b60648201526084016106dd565b50611178565b6005546001600160a01b0390811690851603611173576001600160a01b038516301480159061110457506003548311155b61110d57600080fd5b30600090815260116020526040902054600254811180156111315750600e5460ff16155b1561116557600e805460ff1916600117905560105461114f90611477565b61115a600f546117ac565b600e805460ff191690555b5050600d5490506000611178565b600091505b81156113885780156111ea576064600854846111949190611cf0565b61119e9190611d07565b600f60008282546111af9190611cdd565b9091555050600a546064906111c49085611cf0565b6111ce9190611d07565b601060008282546111df9190611cdd565b9091555061124b9050565b6064600954846111fa9190611cf0565b6112049190611d07565b600f60008282546112159190611cdd565b9091555050600b5460649061122a9085611cf0565b6112349190611d07565b601060008282546112459190611cdd565b90915550505b600060646112598486611cf0565b6112639190611d07565b905060006112718286611cad565b6001600160a01b03881660009081526011602052604081208054929350879290919061129e908490611cad565b90915550506001600160a01b038616600090815260116020526040812080548392906112cb908490611cdd565b909155505030600090815260116020526040812080548492906112ef908490611cdd565b909155505060405182815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137991815260200190565b60405180910390a350506113b0565b6001600160a01b03851660009081526011602052604081208054859290610f8a908490611cad565b5050505050565b6001600160a01b03811661141c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dd565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014805461ff001916610100179055604080516003808252608082019092526000916020820160608036833701905050905030816000815181106114bd576114bd611c62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061151157611511611c62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000d7f721e05546a961386ee5c32192ea40b86c01208160028151811061156557611565611c62565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81526000917f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063d06ca61f906115c49086908690600401611d6d565b600060405180830381865afa1580156115e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116099190810190611d8e565b90506803cb71f51fc55800008160028151811061162857611628611c62565b6020026020010151111561164457611641600284611d07565b92505b3060009081526012602090815260408083207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03168452909152902054600019146116d9573060009081526012602090815260408083207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03168452909152902060001990555b604051635c11d79560e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1690635c11d7959061174e90869060009087907f000000000000000000000000000000000000000000000000000000000000dead904290600401611e14565b600060405180830381600087803b15801561176857600080fd5b505af1925050508015611779575060015b61178457505061179e565b82601060008282546117969190611cad565b909155505050505b506014805461ff0019169055565b6014805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117f0576117f0611c62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061184457611844611c62565b6001600160a01b039283166020918202929092018101919091523060009081526012825260408082207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9094168252929091522054600019146118ea573060009081526012602090815260408083207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03168452909152902060001990555b60065460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac94792611946928792600092889291909116904290600401611e14565b600060405180830381600087803b15801561196057600080fd5b505af1925050508015611971575060015b61197b575061179e565b506000600f55506014805461ff0019169055565b6001600160a01b0381168114610bf757600080fd5b6000602082840312156119b657600080fd5b8135610db68161198f565b600060208083528351808285015260005b818110156119ee578581018301518582016040015282016119d2565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611a2257600080fd5b8235611a2d8161198f565b946020939093013593505050565b60008060408385031215611a4e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a9c57611a9c611a5d565b604052919050565b600067ffffffffffffffff821115611abe57611abe611a5d565b5060051b60200190565b60006020808385031215611adb57600080fd5b823567ffffffffffffffff811115611af257600080fd5b8301601f81018513611b0357600080fd5b8035611b16611b1182611aa4565b611a73565b81815260059190911b82018301908381019087831115611b3557600080fd5b928401925b82841015611b5c578335611b4d8161198f565b82529284019290840190611b3a565b979650505050505050565b600080600060608486031215611b7c57600080fd5b8335611b878161198f565b92506020840135611b978161198f565b929592945050506040919091013590565b600060208284031215611bba57600080fd5b5035919050565b60008060408385031215611bd457600080fd5b8235611bdf8161198f565b915060208301358015158114611bf457600080fd5b809150509250929050565b60008060408385031215611c1257600080fd5b8235611c1d8161198f565b91506020830135611bf48161198f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103611ca457611ca4611c78565b60010192915050565b8181038181111561071957610719611c78565b600060208284031215611cd257600080fd5b8151610db68161198f565b8082018082111561071957610719611c78565b808202811582820484141761071957610719611c78565b600082611d2457634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b83811015611d625781516001600160a01b031687529582019590820190600101611d3d565b509495945050505050565b828152604060208201526000611d866040830184611d29565b949350505050565b60006020808385031215611da157600080fd5b825167ffffffffffffffff811115611db857600080fd5b8301601f81018513611dc957600080fd5b8051611dd7611b1182611aa4565b81815260059190911b82018301908381019087831115611df657600080fd5b928401925b82841015611b5c57835182529284019290840190611dfb565b85815284602082015260a060408201526000611e3360a0830186611d29565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220d2bf8420601e7cef41f3da59bf849d469cdc2ff963da46747800bef5b71e94ab64736f6c63430008130033
0x61010060405273d7f721e05546a961386ee5c32192ea40b86c012060805261dead60a0526764ebb06bb71e400060029081556803f134e435272e8000600381815560049190915560088190556009819055600a829055600b829055620000659162000319565b600c55600b54600954620000799162000319565b600d556014805460ff191690553480156200009357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60c0819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200012b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000151919062000388565b6001600160a01b0390811660e052600680546001600160a01b03199081167337dce6e73ef0bd098d93797faacee9ef3bb1132b17825560078054909116733f6f125665441b83c272599a5f0b1248deaa8bef17815569018a3745df4af0a000007f0542622a9b29c06647481aa30da21f62daddc2ecb18589e0225b3408428044c855336000818152601560209081526040808320805460ff19908116600190811790925530808652838620805483168417905587548a168652838620805483168417905588548a16865260138552838620805483168417905587548a16865283862080548316841790559585528285208054821683179055858552828520805482168317905560c0518916808652838620805490921690921790559383526012808352818420858552835281842060001990819055955488168452808352818420858552835281842086905595549096168252938452848120918152925291902055620002bb3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69018a3745df4af0a000006040516200030b91815260200190565b60405180910390a3620003d5565b600080620003288385620003b3565b9050838110156200037f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b6000602082840312156200039b57600080fd5b81516001600160a01b03811681146200037f57600080fd5b808201808211156200038257634e487b7160e01b600052601160045260246000fd5b60805160a05160c05160e051611e866200045c60003960008181610aef015281816114df0152611812015260008181610a520152818161158d01528181611658015281816116a4015281816116f00152818161186f015281816118b501526119040152600081816104bb015261172401526000818161067c01526115330152611e866000f3fe6080604052600436106101fd5760003560e01c80637830b3091161010d5780639d8f7706116100a0578063cc1776d31161006f578063cc1776d3146105ee578063dd62ed3e14610604578063f2fde38b1461064a578063f6780a861461066a578063fa01fdd71461069e57600080fd5b80639d8f7706146105795780639e78fb4f14610599578063a9059cbb146105ae578063bb5db0e3146105ce57600080fd5b80638c0b5e22116100dc5780638c0b5e22146104f35780638da5cb5b146105095780639335dcb71461052757806395d89b411461054757600080fd5b80637830b309146104745780637906ee3f1461049457806385141a77146104a957806389e40cf9146104dd57600080fd5b80632d77a2bf116101905780634f7041a51161015f5780634f7041a5146103d357806369a4adc2146103e957806370a0823114610409578063715018a61461043f57806375f0a8741461045457600080fd5b80632d77a2bf14610345578063313ce5671461036557806347535d7b1461038157806349bd5a5e1461039b57600080fd5b80630a0bc661116101cc5780630a0bc661146102c85780630b6bb6f5146102e857806318160ddd1461030857806323b872dd1461032557600080fd5b806301a072fb1461020957806305d2743f1461023257806306fdde0314610254578063095ea7b31461029857600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f60025481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5061025261024d3660046119a4565b6106b3565b005b34801561026057600080fd5b506040805180820190915260128152711098589e48109bde4813d9881058da1b595960721b60208201525b60405161022991906119c1565b3480156102a457600080fd5b506102b86102b3366004611a0f565b610708565b6040519015158152602001610229565b3480156102d457600080fd5b506102526102e3366004611a3b565b61071f565b3480156102f457600080fd5b50610252610303366004611ac8565b61077b565b34801561031457600080fd5b5069018a3745df4af0a0000061021f565b34801561033157600080fd5b506102b8610340366004611b67565b610817565b34801561035157600080fd5b50610252610360366004611a3b565b610869565b34801561037157600080fd5b5060405160128152602001610229565b34801561038d57600080fd5b506014546102b89060ff1681565b3480156103a757600080fd5b506005546103bb906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b3480156103df57600080fd5b5061021f600c5481565b3480156103f557600080fd5b50610252610404366004611ba8565b6108c5565b34801561041557600080fd5b5061021f6104243660046119a4565b6001600160a01b031660009081526011602052604090205490565b34801561044b57600080fd5b506102526108f4565b34801561046057600080fd5b506006546103bb906001600160a01b031681565b34801561048057600080fd5b5061025261048f366004611ba8565b610968565b3480156104a057600080fd5b50610252610997565b3480156104b557600080fd5b506103bb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e957600080fd5b5061021f60045481565b3480156104ff57600080fd5b5061021f60035481565b34801561051557600080fd5b506000546001600160a01b03166103bb565b34801561053357600080fd5b506007546103bb906001600160a01b031681565b34801561055357600080fd5b506040805180820190915260098152684143484d4544494e4f60b81b602082015261028b565b34801561058557600080fd5b50610252610594366004611bc1565b6109d1565b3480156105a557600080fd5b50610252610a26565b3480156105ba57600080fd5b506102b86105c9366004611a0f565b610b88565b3480156105da57600080fd5b506102526105e9366004611ba8565b610b95565b3480156105fa57600080fd5b5061021f600d5481565b34801561061057600080fd5b5061021f61061f366004611bff565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561065657600080fd5b506102526106653660046119a4565b610bc4565b34801561067657600080fd5b506103bb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106aa57600080fd5b50610252610bfa565b6000546001600160a01b031633146106e65760405162461bcd60e51b81526004016106dd90611c2d565b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610715338484610c33565b5060015b92915050565b6000546001600160a01b031633146107495760405162461bcd60e51b81526004016106dd90611c2d565b60196107558383610d57565b111561076057600080fd5b6009829055600b8190556107748282610d57565b600d555050565b6000546001600160a01b031633146107a55760405162461bcd60e51b81526004016106dd90611c2d565b60005b81518160ff16101561081357600160156000848460ff16815181106107cf576107cf611c62565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061080b81611c8e565b9150506107a8565b5050565b6000610824848484610dbd565b6001600160a01b03841660009081526012602090815260408083203380855292529091205461085f91869161085a908690611cad565b610c33565b5060019392505050565b6000546001600160a01b031633146108935760405162461bcd60e51b81526004016106dd90611c2d565b601961089f8383610d57565b11156108aa57600080fd5b6008829055600a8190556108be8282610d57565b600c555050565b6000546001600160a01b031633146108ef5760405162461bcd60e51b81526004016106dd90611c2d565b600355565b6000546001600160a01b0316331461091e5760405162461bcd60e51b81526004016106dd90611c2d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109925760405162461bcd60e51b81526004016106dd90611c2d565b600255565b6000546001600160a01b031633146109c15760405162461bcd60e51b81526004016106dd90611c2d565b69018a3745df4af0a00000600455565b6000546001600160a01b031633146109fb5760405162461bcd60e51b81526004016106dd90611c2d565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a505760405162461bcd60e51b81526004016106dd90611c2d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611cc0565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063c9c65396906044016020604051808303816000875af1158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190611cc0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610715338484610dbd565b6000546001600160a01b03163314610bbf5760405162461bcd60e51b81526004016106dd90611c2d565b600455565b6000546001600160a01b03163314610bee5760405162461bcd60e51b81526004016106dd90611c2d565b610bf7816113b7565b50565b6000546001600160a01b03163314610c245760405162461bcd60e51b81526004016106dd90611c2d565b6014805460ff19166001179055565b6001600160a01b038316610c955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106dd565b6001600160a01b038216610cf65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106dd565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080610d648385611cdd565b905083811015610db65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106dd565b9392505050565b6001600160a01b038316610e215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106dd565b60008111610e835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106dd565b60145460ff1680610eac57506001600160a01b03831660009081526015602052604090205460ff165b80610ecf57506001600160a01b03821660009081526015602052604090205460ff165b610f065760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b60448201526064016106dd565b6001600160a01b038316600090815260136020526040812054819060ff1680610f4757506001600160a01b03841660009081526013602052604090205460ff165b15610f555760009150611178565b600e5460ff16600103611012576001600160a01b03851660009081526011602052604081208054859290610f8a908490611cad565b90915550506001600160a01b03841660009081526011602052604081208054859290610fb7908490611cdd565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161100391815260200190565b60405180910390a35050505050565b6005546001600160a01b03908116908616036110d3575050600c5460035460019083111561103f57600080fd5b6001600160a01b0384166000908152601160205260409020546004546110658583611cdd565b11156110cd5760405162461bcd60e51b815260206004820152603160248201527f4143484d4544494e4f3a206d6178696d756d20746f6b656e207065722077616c6044820152701b195d08185b5bdd5b9d08195e18d95959607a1b60648201526084016106dd565b50611178565b6005546001600160a01b0390811690851603611173576001600160a01b038516301480159061110457506003548311155b61110d57600080fd5b30600090815260116020526040902054600254811180156111315750600e5460ff16155b1561116557600e805460ff1916600117905560105461114f90611477565b61115a600f546117ac565b600e805460ff191690555b5050600d5490506000611178565b600091505b81156113885780156111ea576064600854846111949190611cf0565b61119e9190611d07565b600f60008282546111af9190611cdd565b9091555050600a546064906111c49085611cf0565b6111ce9190611d07565b601060008282546111df9190611cdd565b9091555061124b9050565b6064600954846111fa9190611cf0565b6112049190611d07565b600f60008282546112159190611cdd565b9091555050600b5460649061122a9085611cf0565b6112349190611d07565b601060008282546112459190611cdd565b90915550505b600060646112598486611cf0565b6112639190611d07565b905060006112718286611cad565b6001600160a01b03881660009081526011602052604081208054929350879290919061129e908490611cad565b90915550506001600160a01b038616600090815260116020526040812080548392906112cb908490611cdd565b909155505030600090815260116020526040812080548492906112ef908490611cdd565b909155505060405182815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137991815260200190565b60405180910390a350506113b0565b6001600160a01b03851660009081526011602052604081208054859290610f8a908490611cad565b5050505050565b6001600160a01b03811661141c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dd565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014805461ff001916610100179055604080516003808252608082019092526000916020820160608036833701905050905030816000815181106114bd576114bd611c62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061151157611511611c62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061156557611565611c62565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81526000917f0000000000000000000000000000000000000000000000000000000000000000169063d06ca61f906115c49086908690600401611d6d565b600060405180830381865afa1580156115e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116099190810190611d8e565b90506803cb71f51fc55800008160028151811061162857611628611c62565b6020026020010151111561164457611641600284611d07565b92505b3060009081526012602090815260408083207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168452909152902054600019146116d9573060009081526012602090815260408083207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168452909152902060001990555b604051635c11d79560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635c11d7959061174e90869060009087907f0000000000000000000000000000000000000000000000000000000000000000904290600401611e14565b600060405180830381600087803b15801561176857600080fd5b505af1925050508015611779575060015b61178457505061179e565b82601060008282546117969190611cad565b909155505050505b506014805461ff0019169055565b6014805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117f0576117f0611c62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061184457611844611c62565b6001600160a01b039283166020918202929092018101919091523060009081526012825260408082207f00000000000000000000000000000000000000000000000000000000000000009094168252929091522054600019146118ea573060009081526012602090815260408083207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168452909152902060001990555b60065460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac94792611946928792600092889291909116904290600401611e14565b600060405180830381600087803b15801561196057600080fd5b505af1925050508015611971575060015b61197b575061179e565b506000600f55506014805461ff0019169055565b6001600160a01b0381168114610bf757600080fd5b6000602082840312156119b657600080fd5b8135610db68161198f565b600060208083528351808285015260005b818110156119ee578581018301518582016040015282016119d2565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611a2257600080fd5b8235611a2d8161198f565b946020939093013593505050565b60008060408385031215611a4e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a9c57611a9c611a5d565b604052919050565b600067ffffffffffffffff821115611abe57611abe611a5d565b5060051b60200190565b60006020808385031215611adb57600080fd5b823567ffffffffffffffff811115611af257600080fd5b8301601f81018513611b0357600080fd5b8035611b16611b1182611aa4565b611a73565b81815260059190911b82018301908381019087831115611b3557600080fd5b928401925b82841015611b5c578335611b4d8161198f565b82529284019290840190611b3a565b979650505050505050565b600080600060608486031215611b7c57600080fd5b8335611b878161198f565b92506020840135611b978161198f565b929592945050506040919091013590565b600060208284031215611bba57600080fd5b5035919050565b60008060408385031215611bd457600080fd5b8235611bdf8161198f565b915060208301358015158114611bf457600080fd5b809150509250929050565b60008060408385031215611c1257600080fd5b8235611c1d8161198f565b91506020830135611bf48161198f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103611ca457611ca4611c78565b60010192915050565b8181038181111561071957610719611c78565b600060208284031215611cd257600080fd5b8151610db68161198f565b8082018082111561071957610719611c78565b808202811582820484141761071957610719611c78565b600082611d2457634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b83811015611d625781516001600160a01b031687529582019590820190600101611d3d565b509495945050505050565b828152604060208201526000611d866040830184611d29565b949350505050565b60006020808385031215611da157600080fd5b825167ffffffffffffffff811115611db857600080fd5b8301601f81018513611dc957600080fd5b8051611dd7611b1182611aa4565b81815260059190911b82018301908381019087831115611df657600080fd5b928401925b82841015611b5c57835182529284019290840190611dfb565b85815284602082015260a060408201526000611e3360a0830186611d29565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220d2bf8420601e7cef41f3da59bf849d469cdc2ff963da46747800bef5b71e94ab64736f6c63430008130033