0x608060405234801561000f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350613d8d8061005d5f395ff3fe608060405234801562000010575f80fd5b50600436106200005c575f3560e01c80633f77298d1462000060578063715018a614620000935780638da5cb5b146200009f578063b2bdfa7b14620000b0578063f2fde38b14620000c3575b5f80fd5b6200007762000071366004620004e8565b620000da565b6040516001600160a01b03909116815260200160405180910390f35b6200009d62000125565b005b5f546001600160a01b031662000077565b5f5462000077906001600160a01b031681565b6200009d620000d4366004620005e8565b620001cc565b5f808686868686604051620000ef90620002e7565b620000ff95949392919062000692565b604051809103905ff08015801562000119573d5f803e3d5ffd5b50979650505050505050565b5f546001600160a01b03163314620001845760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314620002275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200017b565b6001600160a01b0381166200028e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200017b565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b613612806200074683390190565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715620003355762000335620002f5565b604052919050565b5f67ffffffffffffffff821115620003595762000359620002f5565b5060051b60200190565b80356001600160a01b03811681146200037a575f80fd5b919050565b5f82601f8301126200038f575f80fd5b81356020620003a8620003a2836200033d565b62000309565b82815260059290921b84018101918181019086841115620003c7575f80fd5b8286015b84811015620003ed57620003df8162000363565b8352918301918301620003cb565b509695505050505050565b5f601f838184011262000409575f80fd5b823560206200041c620003a2836200033d565b82815260059290921b850181019181810190878411156200043b575f80fd5b8287015b848110156200011957803567ffffffffffffffff8082111562000461575f8081fd5b818a0191508a603f83011262000476575f8081fd5b858201356040828211156200048f576200048f620002f5565b620004a2828b01601f1916890162000309565b92508183528c81838601011115620004b9575f8081fd5b8181850189850137505f9082018701528452509183019183016200043f565b803580151581146200037a575f80fd5b5f805f805f60a08688031215620004fd575f80fd5b853567ffffffffffffffff8082111562000515575f80fd5b818801915088601f83011262000529575f80fd5b813560206200053c620003a2836200033d565b82815260059290921b8401810191818101908c8411156200055b575f80fd5b948201945b838610156200057b5785358252948201949082019062000560565b9950508901359250508082111562000591575f80fd5b6200059f89838a016200037f565b95506040880135915080821115620005b5575f80fd5b50620005c488828901620003f8565b93505060608601359150620005dc60808701620004d8565b90509295509295909350565b5f60208284031215620005f9575f80fd5b620006048262000363565b9392505050565b5f81518084526020808501808196508360051b810191508286015f805b8681101562000684578385038a5282518051808752835b818110156200065c578281018901518882018a015288016200063f565b5086810188018490529a87019a601f01601f1916909501860194509185019160010162000628565b509298975050505050505050565b60a080825286519082018190525f9060209060c0840190828a01845b82811015620006cc57815184529284019290840190600101620006ae565b505050838103828501528751808252888301918301905f5b818110156200070b5783516001600160a01b031683529284019291840191600101620006e4565b505084810360408601526200072181896200060b565b93505050508360608301526200073b608083018415159052565b969550505050505056fe6080604052600180546001600160a01b031990811661dead1790915560028054821690556004805490911673769bff707502941c5540ced416dc884d0383f2c31790556021805461ffff60a01b1916600160a81b1790556023805460ff60a01b1916600160a01b17905534801562000075575f80fd5b506040516200361238038062003612833981016040819052620000989162000fba565b5f80546001600160a01b031916339081178255604051909182915f80516020620035d2833981519152908290a350602280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000129573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200014f9190620010bc565b600380546001600160a01b0319166001600160a01b039283161790556022546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001ac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d29190620010bc565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af115801562000221573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002479190620010bc565b60235f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555062000299845f81518110620002855762000285620010d8565b602002602001015162000a9d60201b60201c565b81601381905550825f81518110620002b557620002b5620010d8565b602002602001015160059081620002cd919062001178565b5082600181518110620002e457620002e4620010d8565b602002602001015160069081620002fc919062001178565b506200030b6009600a6200134d565b855f81518110620003205762000320620010d8565b60200260200101516200033491906200135d565b6007819055305f908152600b602090815260408083206022546001600160a01b031684529091528120919091558451600191600c91879060059081106200037f576200037f620010d8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f86600581518110620003d757620003d7620010d8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f865f815181106200042e576200042e620010d8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f865f81518110620004855762000485620010d8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600754620004d69061271090620004cf90600a62000ba6565b9062000c35565b602455835184906001908110620004f157620004f1620010d8565b6020026020010151601f5f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555083600281518110620005345762000534620010d8565b602002602001015160205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555083600381518110620005775762000577620010d8565b6020026020010151601e5f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555083600481518110620005ba57620005ba620010d8565b602002602001015160215f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555084600181518110620005fd57620005fd620010d8565b6020026020010151600f8190555084600381518110620006215762000621620010d8565b602002602001015160108190555084600581518110620006455762000645620010d8565b6020908102919091010151601181905560196018819055601054600f546200067d9362000676929091839162000c7e565b9062000c7e565b601255845185906002908110620006985762000698620010d8565b602002602001015160148190555084600481518110620006bc57620006bc620010d8565b602002602001015160158190555084600681518110620006e057620006e0620010d8565b602002602001015160168190555062000715601854620006766016546200067660155460145462000c7e60201b90919060201c565b601755601454600f54620007299162000c7e565b601a556015546010546200073d9162000c7e565b601b55601654601154620007519162000c7e565b601c55601854620007649060026200135d565b6019819055601c54601a54601b5462000787939262000676929091839162000c7e565b601d819055506103e885600781518110620007a657620007a6620010d8565b6020026020010151600754620007bd91906200135d565b620007c9919062001377565b600881905550600585600781518110620007e757620007e7620010d8565b60200260200101511015620008365760405162461bcd60e51b815260206004820152601060248201526f4d61782074786e20746f6f206c6f772160801b60448201526064015b60405180910390fd5b6103e8856008815181106200084f576200084f620010d8565b60200260200101516007546200086691906200135d565b62000872919062001377565b600981905550600585600881518110620008905762000890620010d8565b60200260200101511015620008e85760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c657420746f6f206c6f77210000000000000000000000000060448201526064016200082d565b6021805460ff60a01b1916600160a01b8315150217905584515f906103e890879060099081106200091d576200091d620010d8565b60200260200101516007546200093491906200135d565b62000940919062001377565b905080600a5f875f815181106200095b576200095b620010d8565b6020908102919091018101516001600160a01b031682528101919091526040015f20556007546200098d908262000ce0565b600a5f87600581518110620009a657620009a6620010d8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550845f81518110620009e657620009e6620010d8565b60200260200101516001600160a01b03165f6001600160a01b03165f80516020620035f28339815191528360405162000a2191815260200190565b60405180910390a38460058151811062000a3f5762000a3f620010d8565b60200260200101516001600160a01b03165f6001600160a01b03165f80516020620035f283398151915262000a808460075462000ce060201b90919060201c565b60405190815260200160405180910390a3505050505050620013f7565b5f546001600160a01b0316331462000af85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200082d565b6001600160a01b03811662000b5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200082d565b5f80546040516001600160a01b03808516939216915f80516020620035d283398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f825f0362000bb757505f62000c2f565b5f62000bc483856200135d565b90508262000bd3858362001377565b1462000c2c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016200082d565b90505b92915050565b5f62000c2c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000d2960201b60201c565b5f8062000c8c838562001397565b90508381101562000c2c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200082d565b5f62000c2c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000d6360201b60201c565b5f818362000d4c5760405162461bcd60e51b81526004016200082d9190620013ad565b505f62000d5a848662001377565b95945050505050565b5f818484111562000d895760405162461bcd60e51b81526004016200082d9190620013ad565b505f62000d5a8486620013e1565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171562000dd65762000dd662000d97565b604052919050565b5f6001600160401b0382111562000df95762000df962000d97565b5060051b60200190565b80516001600160a01b038116811462000e1a575f80fd5b919050565b5f82601f83011262000e2f575f80fd5b8151602062000e4862000e428362000dde565b62000dab565b82815260059290921b8401810191818101908684111562000e67575f80fd5b8286015b8481101562000e8d5762000e7f8162000e03565b835291830191830162000e6b565b509695505050505050565b5f5b8381101562000eb457818101518382015260200162000e9a565b50505f910152565b5f601f838184011262000ecd575f80fd5b8251602062000ee062000e428362000dde565b82815260059290921b8501810191818101908784111562000eff575f80fd5b8287015b8481101562000f9e5780516001600160401b038082111562000f24575f8081fd5b818a0191508a603f83011262000f39575f8081fd5b8582015160408282111562000f525762000f5262000d97565b62000f65828b01601f1916890162000dab565b92508183528c8183860101111562000f7c575f8081fd5b62000f8d8289850183870162000e98565b505084525091830191830162000f03565b50979650505050505050565b8051801515811462000e1a575f80fd5b5f805f805f60a0868803121562000fcf575f80fd5b85516001600160401b038082111562000fe6575f80fd5b818801915088601f83011262000ffa575f80fd5b815160206200100d62000e428362000dde565b82815260059290921b8401810191818101908c8411156200102c575f80fd5b948201945b838610156200104c5785518252948201949082019062001031565b918b015191995090935050508082111562001065575f80fd5b6200107389838a0162000e1f565b9550604088015191508082111562001089575f80fd5b50620010988882890162000ebc565b93505060608601519150620010b06080870162000faa565b90509295509295909350565b5f60208284031215620010cd575f80fd5b62000c2c8262000e03565b634e487b7160e01b5f52603260045260245ffd5b600181811c908216806200110157607f821691505b6020821081036200112057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562001173575f81815260208120601f850160051c810160208610156200114e5750805b601f850160051c820191505b818110156200116f578281556001016200115a565b5050505b505050565b81516001600160401b0381111562001194576200119462000d97565b620011ac81620011a58454620010ec565b8462001126565b602080601f831160018114620011e2575f8415620011ca5750858301515b5f19600386901b1c1916600185901b1785556200116f565b5f85815260208120601f198616915b828110156200121257888601518255948401946001909101908401620011f1565b50858210156200123057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200129457815f190482111562001278576200127862001240565b808516156200128657918102915b93841c939080029062001259565b509250929050565b5f82620012ac5750600162000c2f565b81620012ba57505f62000c2f565b8160018114620012d35760028114620012de57620012fe565b600191505062000c2f565b60ff841115620012f257620012f262001240565b50506001821b62000c2f565b5060208310610133831016604e8410600b841016171562001323575081810a62000c2f565b6200132f838362001254565b805f190482111562001345576200134562001240565b029392505050565b5f62000c2c60ff8416836200129c565b808202811582820484141762000c2f5762000c2f62001240565b5f826200139257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111562000c2f5762000c2f62001240565b602081525f8251806020840152620013cd81604085016020870162000e98565b601f01601f19169190910160400192915050565b8181038181111562000c2f5762000c2f62001240565b6121cd80620014055f395ff3fe608060405260043610610220575f3560e01c806375cb1bd11161011e578063a8aa1b31116100a8578063dd62ed3e1161006d578063dd62ed3e146105f8578063ea3105d91461063c578063eb34104014610650578063f2fde38b1461066f578063f887ea401461068e575f80fd5b8063a8aa1b3114610560578063a9059cbb1461057f578063b2bdfa7b1461059e578063c1f1b1b5146105bc578063d4698016146105d9575f80fd5b8063893d20e8116100ee578063893d20e8146104fc5780638da5cb5b146104fc5780638ea5220f1461051857806395d89b41146105375780639d9241ec1461054b575f80fd5b806375cb1bd11461047c57806375f0a8741461049b57806378109e54146104d25780637d1db4a5146104e7575f80fd5b8063293230b8116101aa5780635c85974f1161016f5780635c85974f146103d65780635d0044ca146103f55780636ddd17131461041457806370a0823114610434578063715018a614610468575f80fd5b8063293230b814610354578063313ce56714610368578063571ac8b01461038357806359b107b9146103a25780635b24ea5e146103b7575f80fd5b80630f683e90116101f05780630f683e90146102c457806313f97a8e146102e357806318160ddd146103025780631da1db5e1461031657806323b872dd14610335575f80fd5b80630445b6671461022b57806306fdde0314610253578063095ea7b3146102745780630d075d9c146102a3575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061024060245481565b6040519081526020015b60405180910390f35b34801561025e575f80fd5b506102676106ad565b60405161024a9190611bb6565b34801561027f575f80fd5b5061029361028e366004611c1c565b61073d565b604051901515815260200161024a565b3480156102ae575f80fd5b506102c26102bd366004611c44565b6107a9565b005b3480156102cf575f80fd5b506102c26102de366004611c44565b610864565b3480156102ee575f80fd5b506102c26102fd366004611c90565b610908565b34801561030d575f80fd5b50600754610240565b348015610321575f80fd5b506102c2610330366004611d62565b61099a565b348015610340575f80fd5b5061029361034f366004611d79565b6109e6565b34801561035f575f80fd5b506102c2610af2565b348015610373575f80fd5b506040516009815260200161024a565b34801561038e575f80fd5b5061029361039d366004611db2565b610b30565b3480156103ad575f80fd5b5061024060125481565b3480156103c2575f80fd5b506102c26103d1366004611dcb565b610b3d565b3480156103e1575f80fd5b506102c26103f0366004611d62565b610b90565b348015610400575f80fd5b506102c261040f366004611d62565b610be7565b34801561041f575f80fd5b5060235461029390600160a01b900460ff1681565b34801561043f575f80fd5b5061024061044e366004611db2565b6001600160a01b03165f908152600a602052604090205490565b348015610473575f80fd5b506102c2610c3e565b348015610487575f80fd5b506102c2610496366004611dfc565b610caf565b3480156104a6575f80fd5b50601f546104ba906001600160a01b031681565b6040516001600160a01b03909116815260200161024a565b3480156104dd575f80fd5b5061024060095481565b3480156104f2575f80fd5b5061024060085481565b348015610507575f80fd5b505f546001600160a01b03166104ba565b348015610523575f80fd5b506020546104ba906001600160a01b031681565b348015610542575f80fd5b50610267610d17565b348015610556575f80fd5b5061024060175481565b34801561056b575f80fd5b506023546104ba906001600160a01b031681565b34801561058a575f80fd5b50610293610599366004611c1c565b610d26565b3480156105a9575f80fd5b505f546104ba906001600160a01b031681565b3480156105c7575f80fd5b506023546001600160a01b03166104ba565b3480156105e4575f80fd5b50601e546104ba906001600160a01b031681565b348015610603575f80fd5b50610240610612366004611e3c565b6001600160a01b039182165f908152600b6020908152604080832093909416825291909152205490565b348015610647575f80fd5b506102c2610d57565b34801561065b575f80fd5b506102c261066a366004611e64565b610d8f565b34801561067a575f80fd5b506102c2610689366004611db2565b610dec565b348015610699575f80fd5b506022546104ba906001600160a01b031681565b6060600580546106bc90611e7e565b80601f01602080910402602001604051908101604052809291908181526020018280546106e890611e7e565b80156107335780601f1061070a57610100808354040283529160200191610733565b820191905f5260205f20905b81548152906001019060200180831161071657829003601f168201915b5050505050905090565b335f818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107979086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107db5760405162461bcd60e51b81526004016107d290611eb6565b60405180910390fd5b600f839055601082905560118190556014546107f79084610ed3565b601a556015546108079083610ed3565b601b556016546108179082610ed3565b601c556018546108339061082d83818787610ed3565b90610ed3565b60128190555061085c60195461082d601c5461082d601a54601b54610ed390919063ffffffff16565b601d55505050565b5f546001600160a01b0316331461088d5760405162461bcd60e51b81526004016107d290611eb6565b601483905560158290556016819055600f546108a99084610ed3565b601a556010546108b99083610ed3565b601b556011546108c99082610ed3565b601c556018546108df9061082d83818787610ed3565b60178190555061085c60195461082d601c5461082d601a54601b54610ed390919063ffffffff16565b5f546001600160a01b031633146109315760405162461bcd60e51b81526004016107d290611eb6565b5f5b82518110156109955781600e5f85848151811061095257610952611eeb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061098d81611f13565b915050610933565b505050565b601f5447906001600160a01b03166108fc60646109b78585611f2b565b6109c19190611f42565b6040518115909202915f818181858888f19350505050158015610995573d5f803e3d5ffd5b5f6001600160a01b038416610a0d5760405162461bcd60e51b81526004016107d290611f61565b6001600160a01b038316610a335760405162461bcd60e51b81526004016107d290611fa6565b6007546001600160a01b0385165f908152600b6020908152604080832033845290915290205414610add576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600b82528381203382529091529190912054610ab9918490610f31565b6001600160a01b0385165f908152600b602090815260408083203384529091529020555b610ae8848484610f69565b90505b9392505050565b5f546001600160a01b03163314610b1b5760405162461bcd60e51b81526004016107d290611eb6565b6021805460ff60a01b1916600160a01b179055565b5f6107a38260075461073d565b5f546001600160a01b03163314610b665760405162461bcd60e51b81526004016107d290611eb6565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610bb95760405162461bcd60e51b81526004016107d290611eb6565b6005811015610bc6575f80fd5b6103e881600754610bd79190611f2b565b610be19190611f42565b60085550565b5f546001600160a01b03163314610c105760405162461bcd60e51b81526004016107d290611eb6565b6005811015610c1d575f80fd5b6103e881600754610c2e9190611f2b565b610c389190611f42565b60095550565b5f546001600160a01b03163314610c675760405162461bcd60e51b81526004016107d290611eb6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610cd85760405162461bcd60e51b81526004016107d290611eb6565b601f80546001600160a01b039485166001600160a01b031991821617909155601e80549385169382169390931790925560208054919093169116179055565b6060600680546106bc90611e7e565b5f8054336001600160a01b0390911603610d4c57610d4533848461126c565b90506107a3565b610d45338484610f69565b5f546001600160a01b03163314610d805760405162461bcd60e51b81526004016107d290611eb6565b6021805460ff60a81b19169055565b5f546001600160a01b03163314610db85760405162461bcd60e51b81526004016107d290611eb6565b6023805460ff60a01b1916600160a01b84151502179055610ddb6009600a6120c9565b610de59082611f2b565b6024555050565b5f546001600160a01b03163314610e155760405162461bcd60e51b81526004016107d290611eb6565b6001600160a01b038116610e7a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d2565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80610edf83856120d7565b905083811015610aeb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107d2565b5f8184841115610f545760405162461bcd60e51b81526004016107d29190611bb6565b505f610f6084866120ea565b95945050505050565b5f6001600160a01b038416610f905760405162461bcd60e51b81526004016107d290611f61565b6001600160a01b038316610fb65760405162461bcd60e51b81526004016107d290611fa6565b6001600160a01b0384165f908152600e602052604090205460ff16158015610ff657506001600160a01b0383165f908152600e602052604090205460ff16155b6110325760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016107d2565b6001600160a01b0384165f908152600c602052604090205460ff168061106f57506001600160a01b0383165f908152600c602052604090205460ff165b156110865761107f84848461126c565b9050610aeb565b60255460ff161561109c5761107f84848461126c565b6001600160a01b0384165f908152600c602052604090205460ff1661110b57602154600160a01b900460ff1661110b5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d2565b602154600160a81b900460ff16156111285761112884848461134f565b61113183611527565b1561113e5761113e61157f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600a909152919091205461118f918490610f31565b6001600160a01b038086165f908152600a6020526040812092909255602354858216911614806111cc57506023546001600160a01b038681169116145b6111d657826111e1565b6111e18585856119ca565b6001600160a01b0385165f908152600a60205260409020549091506112069082610ed3565b6001600160a01b038086165f818152600a602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112599085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600a909152918220546112bc918490610f31565b6001600160a01b038086165f908152600a602052604080822093909355908516815220546112ea9083610ed3565b6001600160a01b038085165f818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061133d9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383165f908152600c602052604090205460ff1615801561138057506001600160a01b0382163014155b801561139557506001600160a01b0383163014155b80156113af57506001546001600160a01b03838116911614155b80156113c957506023546001600160a01b03838116911614155b80156113e35750601f546001600160a01b03838116911614155b80156113fd5750601e546001600160a01b03838116911614155b1561149d576001600160a01b0382165f908152600a602052604090205460095461142783836120d7565b111561149b5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d2565b505b600854811115806114c557506001600160a01b0383165f908152600d602052604090205460ff165b806114e757506001600160a01b0382165f908152600d602052604090205460ff165b6109955760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d2565b6023545f906001600160a01b038381169116148015611549575060255460ff16155b801561155e5750602354600160a01b900460ff165b80156107a35750602454305f908152600a6020526040902054101592915050565b6025805460ff19166001179055602454601b545f9061159e575f6115c4565b6115c460026115be601d546115be601b5487611a8a90919063ffffffff16565b90611b08565b90505f6115d18383611b49565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061160957611609611eeb565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061163a5761163a611eeb565b6001600160a01b03928316602091820292909201015260225460405163791ac94760e01b81524792919091169063791ac947906116839086905f908790309042906004016120fd565b5f604051808303815f87803b15801561169a575f80fd5b505af11580156116ac573d5f803e3d5ffd5b505050505f805f6116c68447611b4990919063ffffffff16565b90505f80601b54116116da57601d546116f5565b601b546116f5906116ec906002611b08565b601d5490611b49565b601954909150156117e4575f61171a826115be60195486611a8a90919063ffffffff16565b90505f611728826005611b08565b90505f6117358383611b49565b6021546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611780576040519150601f19603f3d011682016040523d82523d5f602084013e611785565b606091505b50506004546040519198506001600160a01b03169082905f81818185875af1925050503d805f81146117d2576040519150601f19603f3d011682016040523d82523d5f602084013e6117d7565b606091505b505f985088975050505050505b5f61180360026115be846115be601b5488611a8a90919063ffffffff16565b601c5490915015611880575f611828836115be601c5487611a8a90919063ffffffff16565b6020546040519192506001600160a01b03169082905f81818185875af1925050503d805f8114611873576040519150601f19603f3d011682016040523d82523d5f602084013e611878565b606091505b505f97505050505b881561195557602254601e5460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118f3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611918919061216c565b505060408051838152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b601a54156119b457601f5460405147916001600160a01b03169082905f81818185875af1925050503d805f81146119a7576040519150601f19603f3d011682016040523d82523d5f602084013e6119ac565b606091505b505f97505050505b50506025805460ff191690555050505050505050565b6023545f9081906001600160a01b038581169116146119eb576012546119ef565b6017545b90505f611a026127106115be8685611a8a565b305f908152600a6020526040902054909150611a1e9082610ed3565b305f818152600a6020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a6e9085815260200190565b60405180910390a3611a808482611b49565b9695505050505050565b5f825f03611a9957505f6107a3565b5f611aa48385611f2b565b905082611ab18583611f42565b14610aeb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d2565b5f610aeb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b8a565b5f610aeb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f31565b5f8183611baa5760405162461bcd60e51b81526004016107d29190611bb6565b505f610f608486611f42565b5f6020808352835180828501525f5b81811015611be157858101830151858201604001528201611bc5565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611c17575f80fd5b919050565b5f8060408385031215611c2d575f80fd5b611c3683611c01565b946020939093013593505050565b5f805f60608486031215611c56575f80fd5b505081359360208301359350604090920135919050565b634e487b7160e01b5f52604160045260245ffd5b80358015158114611c17575f80fd5b5f8060408385031215611ca1575f80fd5b823567ffffffffffffffff80821115611cb8575f80fd5b818501915085601f830112611ccb575f80fd5b8135602082821115611cdf57611cdf611c6d565b8160051b604051601f19603f83011681018181108682111715611d0457611d04611c6d565b604052928352818301935084810182019289841115611d21575f80fd5b948201945b83861015611d4657611d3786611c01565b85529482019493820193611d26565b9650611d559050878201611c81565b9450505050509250929050565b5f60208284031215611d72575f80fd5b5035919050565b5f805f60608486031215611d8b575f80fd5b611d9484611c01565b9250611da260208501611c01565b9150604084013590509250925092565b5f60208284031215611dc2575f80fd5b610aeb82611c01565b5f8060408385031215611ddc575f80fd5b611de583611c01565b9150611df360208401611c81565b90509250929050565b5f805f60608486031215611e0e575f80fd5b611e1784611c01565b9250611e2560208501611c01565b9150611e3360408501611c01565b90509250925092565b5f8060408385031215611e4d575f80fd5b611e5683611c01565b9150611df360208401611c01565b5f8060408385031215611e75575f80fd5b611c3683611c81565b600181811c90821680611e9257607f821691505b602082108103611eb057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611f2457611f24611eff565b5060010190565b80820281158282048414176107a3576107a3611eff565b5f82611f5c57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600181815b8085111561202357815f190482111561200957612009611eff565b8085161561201657918102915b93841c9390800290611fee565b509250929050565b5f82612039575060016107a3565b8161204557505f6107a3565b816001811461205b576002811461206557612081565b60019150506107a3565b60ff84111561207657612076611eff565b50506001821b6107a3565b5060208310610133831016604e8410600b84101617156120a4575081810a6107a3565b6120ae8383611fe9565b805f19048211156120c1576120c1611eff565b029392505050565b5f610aeb60ff84168361202b565b808201808211156107a3576107a3611eff565b818103818111156107a3576107a3611eff565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561214b5784516001600160a01b031683529383019391830191600101612126565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561217e575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220acc7ef98feeb8a85316937553e2c11a37962e0d87f0164a06981ada65de4bd3564736f6c634300081400338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209a0d4ed3a1e084850533b88e9313b649943951197bf738afb1d10a2cc7221ea564736f6c63430008140033