60c06040526019600b55600c805460ff19908116909155611c20600d556107086010556012805463ffffffff191663010000011790556016805490911660011790553480156200004d575f80fd5b5060405180604001604052806004815260200163536d756760e01b81525060405180604001604052806004815260200163534d554760e01b8152508160039081620000999190620007db565b506004620000a88282620007db565b5050505f620000bc6200047360201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6200012b81600162000477565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000174573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019a9190620008a3565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020c9190620008a3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000257573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027d9190620008a3565b6001600160a01b031660a08190526200029890600162000477565b60a051620002a8906001620004ef565b601e5f8082818080806b033b2e3c9fd0803ce80000006103e8620002ce82600a620008df565b620002da9190620008f9565b6008556103e8620002ed826014620008df565b620002f99190620008f9565b600a556127106200030c826005620008df565b620003189190620008f9565b60095560188990556019889055601a8790558662000337898b62000919565b62000343919062000919565b6017819055620003559060646200092f565b600f555f601b55601d869055601e859055601f8490558362000378868862000919565b62000384919062000919565b601c556005805460ff60a81b191690556012805460ff60201b19169055602083905560218290556006805473ae44c837db60c012bf27039d293f7d5dc691a7906001600160a01b0319918216811790925560078054909116909117905562000400620003f86005546001600160a01b031690565b600162000542565b6200040d30600162000542565b6200041c61dead600162000542565b6200043b620004336005546001600160a01b031690565b600162000477565b6200044830600162000477565b6200045761dead600162000477565b620004633382620005ea565b5050505050505050505062000945565b3390565b6005546001600160a01b03163314620004c55760405162461bcd60e51b815260206004820181905260248201525f805160206200429c83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152602760205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260286020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146200058c5760405162461bcd60e51b815260206004820181905260248201525f805160206200429c8339815191526044820152606401620004bc565b6001600160a01b0382165f81815260266020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006425760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004bc565b600254620006519082620006d1565b6002556001600160a01b0382165f90815260208190526040902054620006789082620006d1565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b5f80620006df838562000919565b905083811015620007335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004bc565b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200076557607f821691505b6020821081036200078457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620006cc575f81815260208120601f850160051c81016020861015620007b25750805b601f850160051c820191505b81811015620007d357828155600101620007be565b505050505050565b81516001600160401b03811115620007f757620007f76200073c565b6200080f8162000808845462000750565b846200078a565b602080601f83116001811462000845575f84156200082d5750858301515b5f19600386901b1c1916600185901b178555620007d3565b5f85815260208120601f198616915b82811015620008755788860151825594840194600190910190840162000854565b50858210156200089357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620008b4575f80fd5b81516001600160a01b038116811462000733575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620007365762000736620008cb565b5f826200091457634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620007365762000736620008cb565b81810381811115620007365762000736620008cb565b60805160a0516138cc620009d05f395f818161072c015281816114a401528181611d2b01528181611dc201528181611ded015281816122dd0152818161263601528181612f5d01528181612ffb015261302601525f81816105350152818161229f01528181613189015281816132400152818161327c015281816132f0015261334c01526138cc5ff3fe60806040526004361061045b575f3560e01c80638da5cb5b11610241578063c18bc19511610134578063e2f45605116100b3578063f637434211610078578063f637434214610cc0578063f6539f8614610cd5578063f8b45b0514610cf4578063fe72b27a14610d09578063ff935af614610d28575f80fd5b8063e2f4560514610c4f578063e884f26014610c64578063ee2bf81c14610c78578063f11a24d314610c8c578063f2fde38b14610ca1575f80fd5b8063d4fd5b15116100f9578063d4fd5b1514610ba3578063d85ba06314610bb7578063d89eadd014610bcc578063dd62ed3e14610beb578063e0c6190d14610c2f575f80fd5b8063c18bc19514610b23578063c876d0b914610b42578063c8c8ebe414610b5b578063ce57161814610b70578063d257b34f14610b84575f80fd5b8063a2657778116101c0578063a9059cbb11610185578063a9059cbb14610a7a578063aacebbe314610a99578063b62496f514610ab8578063bbc0c74214610ae6578063c024666814610b04575f80fd5b8063a2657778146109f3578063a2e508b814610a12578063a457c2d714610a26578063a4c82a0014610a45578063a4d15b6414610a5a575f80fd5b80639a7a23d6116102065780639a7a23d6146109805780639c3b4fdc1461099f5780639ec22c0e146109b45780639fccce32146109c9578063a0d82dc5146109de575f80fd5b80638da5cb5b146108fc5780638ea5220f146109195780639213691314610938578063924de9b71461094d57806395d89b411461096c575f80fd5b8063313ce5671161035957806370a08231116102d857806375f0a8741161029d57806375f0a8741461088157806379a77d7c146108a05780637bce5a04146108b45780638095d564146108c95780638a8c523c146108e8575f80fd5b806370a08231146107e7578063715018a61461081b578063730c18881461082f578063751039fc1461084e5780637571336a14610862575f80fd5b80634a62bb651161031e5780634a62bb651461074e5780634fbee19314610767578063541a43cf1461079e5780636a486a8e146107b35780636ddd1713146107c8575f80fd5b8063313ce567146106ad57806339509351146106c85780633d2ec9e2146106e7578063425561ac1461070657806349bd5a5e1461071b575f80fd5b8063199ffc72116103e557806327c8f835116103aa57806327c8f835146106365780632bf3d42d1461064b5780632c3e486c146106605780632d5a5d34146106755780632e82f1a014610694575f80fd5b8063199ffc72146105b95780631a8145bb146105ce5780631f3fed8f146105e3578063203e727e146105f857806323b872dd14610617575f80fd5b806315214f621161042b57806315214f62146105015780631694505e1461052457806318160ddd1461056f5780631816467f14610583578063184c16c5146105a4575f80fd5b806306fdde0314610466578063095ea7b31461049057806310d5de53146104bf578063147f72ce146104ed575f80fd5b3661046257005b5f80fd5b348015610471575f80fd5b5061047a610d47565b60405161048791906133c1565b60405180910390f35b34801561049b575f80fd5b506104af6104aa366004613420565b610dd7565b6040519015158152602001610487565b3480156104ca575f80fd5b506104af6104d936600461344a565b60276020525f908152604090205460ff1681565b3480156104f8575f80fd5b506104af610ded565b34801561050c575f80fd5b50610516601b5481565b604051908152602001610487565b34801561052f575f80fd5b506105577f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610487565b34801561057a575f80fd5b50600254610516565b34801561058e575f80fd5b506105a261059d36600461344a565b610e0d565b005b3480156105af575f80fd5b5061051660105481565b3480156105c4575f80fd5b50610516600b5481565b3480156105d9575f80fd5b5061051660235481565b3480156105ee575f80fd5b5061051660225481565b348015610603575f80fd5b506105a2610612366004613465565b610e9c565b348015610622575f80fd5b506104af61063136600461347c565b610f79565b348015610641575f80fd5b5061055761dead81565b348015610656575f80fd5b5061051660215481565b34801561066b575f80fd5b50610516600d5481565b348015610680575f80fd5b506105a261068f3660046134c9565b610fe0565b34801561069f575f80fd5b50600c546104af9060ff1681565b3480156106b8575f80fd5b5060405160128152602001610487565b3480156106d3575f80fd5b506104af6106e2366004613420565b611034565b3480156106f2575f80fd5b506105a26107013660046134fc565b611069565b348015610711575f80fd5b50610516600f5481565b348015610726575f80fd5b506105577f000000000000000000000000000000000000000000000000000000000000000081565b348015610759575f80fd5b506012546104af9060ff1681565b348015610772575f80fd5b506104af61078136600461344a565b6001600160a01b03165f9081526026602052604090205460ff1690565b3480156107a9575f80fd5b5061051660205481565b3480156107be575f80fd5b50610516601c5481565b3480156107d3575f80fd5b506012546104af9062010000900460ff1681565b3480156107f2575f80fd5b5061051661080136600461344a565b6001600160a01b03165f9081526020819052604090205490565b348015610826575f80fd5b506105a26110b1565b34801561083a575f80fd5b506105a2610849366004613515565b611124565b348015610859575f80fd5b506104af61124d565b34801561086d575f80fd5b506105a261087c3660046134c9565b611289565b34801561088c575f80fd5b50600654610557906001600160a01b031681565b3480156108ab575f80fd5b506105a26112dd565b3480156108bf575f80fd5b5061051660185481565b3480156108d4575f80fd5b506105a26108e3366004613547565b611336565b3480156108f3575f80fd5b506105a26113de565b348015610907575f80fd5b506005546001600160a01b0316610557565b348015610924575f80fd5b50600754610557906001600160a01b031681565b348015610943575f80fd5b50610516601d5481565b348015610958575f80fd5b506105a26109673660046134fc565b611423565b348015610977575f80fd5b5061047a611469565b34801561098b575f80fd5b506105a261099a3660046134c9565b611478565b3480156109aa575f80fd5b50610516601a5481565b3480156109bf575f80fd5b5061051660115481565b3480156109d4575f80fd5b5061051660245481565b3480156109e9575f80fd5b50610516601f5481565b3480156109fe575f80fd5b506105a2610a0d3660046134fc565b611557565b348015610a1d575f80fd5b506105a261159f565b348015610a31575f80fd5b506104af610a40366004613420565b6115f3565b348015610a50575f80fd5b50610516600e5481565b348015610a65575f80fd5b506012546104af906301000000900460ff1681565b348015610a85575f80fd5b506104af610a94366004613420565b611640565b348015610aa4575f80fd5b506105a2610ab336600461344a565b61164c565b348015610ac3575f80fd5b506104af610ad236600461344a565b60286020525f908152604090205460ff1681565b348015610af1575f80fd5b506012546104af90610100900460ff1681565b348015610b0f575f80fd5b506105a2610b1e3660046134c9565b6116d2565b348015610b2e575f80fd5b506105a2610b3d366004613465565b61175a565b348015610b4d575f80fd5b506016546104af9060ff1681565b348015610b66575f80fd5b5061051660085481565b348015610b7b575f80fd5b506105a261182b565b348015610b8f575f80fd5b506104af610b9e366004613465565b611876565b348015610bae575f80fd5b506105a26119cc565b348015610bc2575f80fd5b5061051660175481565b348015610bd7575f80fd5b506105a2610be6366004613465565b611a24565b348015610bf6575f80fd5b50610516610c05366004613570565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610c3a575f80fd5b506005546104af90600160a81b900460ff1681565b348015610c5a575f80fd5b5061051660095481565b348015610c6f575f80fd5b506104af611a53565b348015610c83575f80fd5b50610516611a8f565b348015610c97575f80fd5b5061051660195481565b348015610cac575f80fd5b506105a2610cbb36600461344a565b611aa6565b348015610ccb575f80fd5b50610516601e5481565b348015610ce0575f80fd5b506105a2610cef3660046134fc565b611b90565b348015610cff575f80fd5b50610516600a5481565b348015610d14575f80fd5b506104af610d23366004613465565b611c21565b348015610d33575f80fd5b506105a2610d423660046135a7565b611e8f565b606060038054610d56906135de565b80601f0160208091040260200160405190810160405280929190818152602001828054610d82906135de565b8015610dcd5780601f10610da457610100808354040283529160200191610dcd565b820191905f5260205f20905b815481529060010190602001808311610db057829003601f168201915b5050505050905090565b5f610de3338484611f43565b5060015b92915050565b6012545f90640100000000900460ff1615610e085750600190565b505f90565b6005546001600160a01b03163314610e405760405162461bcd60e51b8152600401610e3790613616565b60405180910390fd5b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ec65760405162461bcd60e51b8152600401610e3790613616565b670de0b6b3a76400006103e8610edb60025490565b610ee690600561365f565b610ef09190613676565b610efa9190613676565b811015610f615760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e352560881b6064820152608401610e37565b610f7381670de0b6b3a764000061365f565b60085550565b5f610f85848484612067565b610fd68433610fd18560405180606001604052806028815260200161384a602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190612a63565b611f43565b5060019392505050565b6005546001600160a01b0316331461100a5760405162461bcd60e51b8152600401610e3790613616565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610de3918590610fd19086612a9b565b6005546001600160a01b031633146110935760405162461bcd60e51b8152600401610e3790613616565b60058054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146110db5760405162461bcd60e51b8152600401610e3790613616565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461114e5760405162461bcd60e51b8152600401610e3790613616565b6102588310156111bc5760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610e37565b6103e882111580156111cc575060015b6112315760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610e37565b600d92909255600b55600c805460ff1916911515919091179055565b6005545f906001600160a01b031633146112795760405162461bcd60e51b8152600401610e3790613616565b506012805460ff19169055600190565b6005546001600160a01b031633146112b35760405162461bcd60e51b8152600401610e3790613616565b6001600160a01b03919091165f908152602760205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113075760405162461bcd60e51b8152600401610e3790613616565b6005805460ff60a81b1916600160a81b1790556012805464ff0000000019166401000000001790556001601b55565b6005546001600160a01b031633146113605760405162461bcd60e51b8152600401610e3790613616565b60188390556019829055601a8190558061137a8385613695565b6113849190613695565b6017819055603210156113d95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c6573730000006044820152606401610e37565b505050565b6005546001600160a01b031633146114085760405162461bcd60e51b8152600401610e3790613616565b6012805462ffff0019166201010017905542600e5543602555565b6005546001600160a01b0316331461144d5760405162461bcd60e51b8152600401610e3790613616565b60128054911515620100000262ff000019909216919091179055565b606060048054610d56906135de565b6005546001600160a01b031633146114a25760405162461bcd60e51b8152600401610e3790613616565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036115495760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610e37565b6115538282612b00565b5050565b6005546001600160a01b031633146115815760405162461bcd60e51b8152600401610e3790613616565b6012805491151563010000000263ff00000019909216919091179055565b6005546001600160a01b031633146115c95760405162461bcd60e51b8152600401610e3790613616565b600554600160a81b900460ff16156115f1576012805464ff0000000019166401000000001790555b565b5f610de33384610fd18560405180606001604052806025815260200161387260259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190612a63565b5f610de3338484612067565b6005546001600160a01b031633146116765760405162461bcd60e51b8152600401610e3790613616565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146116fc5760405162461bcd60e51b8152600401610e3790613616565b6001600160a01b0382165f81815260266020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146117845760405162461bcd60e51b8152600401610e3790613616565b670de0b6b3a76400006103e861179960025490565b6117a490600f61365f565b6117ae9190613676565b6117b89190613676565b8110156118135760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263312e352560e01b6064820152608401610e37565b61182581670de0b6b3a764000061365f565b600a5550565b6005546001600160a01b031633146118555760405162461bcd60e51b8152600401610e3790613616565b6005805460ff60a81b191690556012805464ff00000000191690555f601b55565b6005545f906001600160a01b031633146118a25760405162461bcd60e51b8152600401610e3790613616565b620186a06118af60025490565b6118ba90600161365f565b6118c49190613676565b8210156119315760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610e37565b6103e861193d60025490565b61194890600561365f565b6119529190613676565b8211156119be5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610e37565b50600981905560015b919050565b6005546001600160a01b031633146119f65760405162461bcd60e51b8152600401610e3790613616565b6005805460ff60a81b1916600160a81b1790556012805464ff0000000019166401000000001790555f601b55565b6005546001600160a01b03163314611a4e5760405162461bcd60e51b8152600401610e3790613616565b601b55565b6005545f906001600160a01b03163314611a7f5760405162461bcd60e51b8152600401610e3790613616565b506016805460ff19169055600190565b5f600f545f03611a9f5750600190565b50600f5490565b6005546001600160a01b03163314611ad05760405162461bcd60e51b8152600401610e3790613616565b6001600160a01b038116611b355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e37565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611bba5760405162461bcd60e51b8152600401610e3790613616565b600554600160a81b900460ff1615611c0057506005546012805464ff000000001916640100000000600160a81b90930460ff161515929092029190911790556001601b55565b6012805464ff000000001916640100000000831515021790555f601b555b50565b6005545f906001600160a01b03163314611c4d5760405162461bcd60e51b8152600401610e3790613616565b601054601154611c5d9190613695565b4211611cab5760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610e37565b6103e8821115611d105760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610e37565b426011556040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201525f9030906370a0823190602401602060405180830381865afa158015611d78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d9c91906136a8565b90505f611db5612710611daf8487612b53565b90612bd1565b90508015611dea57611dea7f000000000000000000000000000000000000000000000000000000000000000061dead83612c12565b5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611e46575f80fd5b505af1158015611e58573d5f803e3d5ffd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb92505f9150a1506001949350505050565b6005546001600160a01b03163314611eb95760405162461bcd60e51b8152600401610e3790613616565b601d859055601e849055601f8390556020829055602181905582611edd8587613695565b611ee79190613695565b601c81905560631015611f3c5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c6573730000006044820152606401610e37565b5050505050565b6001600160a01b038316611fa55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e37565b6001600160a01b0382166120065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e37565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661208d5760405162461bcd60e51b8152600401610e37906136bf565b6001600160a01b0382166120b35760405162461bcd60e51b8152600401610e3790613704565b6001600160a01b0382165f9081526015602052604090205460ff161580156120f357506001600160a01b0383165f9081526015602052604090205460ff16155b6121595760405162461bcd60e51b815260206004820152603160248201527f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460448201527072616e73666572696e6720746f6b656e7360781b6064820152608401610e37565b805f0361216b576113d983835f612c12565b60125460ff161561261d576005546001600160a01b038481169116148015906121a257506005546001600160a01b03838116911614155b80156121b657506001600160a01b03821615155b80156121cd57506001600160a01b03821661dead14155b80156121e35750600554600160a01b900460ff16155b1561261d57601254610100900460ff16612279576001600160a01b0383165f9081526026602052604090205460ff168061223457506001600160a01b0382165f9081526026602052604090205460ff165b6122795760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610e37565b60165460ff16156123be576005546001600160a01b038381169116148015906122d457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561231257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b156123be57325f9081526013602052604090205443116123ac5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610e37565b325f9081526013602052604090204390555b6001600160a01b0383165f9081526028602052604090205460ff1680156123fd57506001600160a01b0382165f9081526027602052604090205460ff16155b156124e0576008548111156124725760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610e37565b600a546001600160a01b0383165f908152602081905260409020546124979083613695565b11156124db5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610e37565b61261d565b6001600160a01b0382165f9081526028602052604090205460ff16801561251f57506001600160a01b0383165f9081526027602052604090205460ff16155b15612595576008548111156124db5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610e37565b6001600160a01b0382165f9081526027602052604090205460ff1661261d57600a546001600160a01b0383165f908152602081905260409020546125d99083613695565b111561261d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610e37565b60255461262a905f613695565b431115801561266b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561269457506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156126b9576001600160a01b0382165f908152601560205260409020805460ff191690555b305f90815260208190526040902054600954811080159081906126e4575060125462010000900460ff165b80156126fa5750600554600160a01b900460ff16155b801561271e57506001600160a01b0385165f9081526028602052604090205460ff16155b801561274257506001600160a01b0385165f9081526026602052604090205460ff16155b801561276657506001600160a01b0384165f9081526026602052604090205460ff16155b15612794576005805460ff60a01b1916600160a01b179055612786612d18565b6005805460ff60a01b191690555b600554600160a01b900460ff161580156127c557506001600160a01b0384165f9081526028602052604090205460ff165b80156127d35750600c5460ff165b80156127ee5750600d54600e546127ea9190613695565b4210155b801561281257506001600160a01b0385165f9081526026602052604090205460ff16155b156128215761281f612f42565b505b6005546001600160a01b0386165f9081526026602052604090205460ff600160a01b90920482161591168061286d57506001600160a01b0385165f9081526026602052604090205460ff165b1561287557505f5b5f8115612a4f576001600160a01b0386165f9081526028602052604090205460ff1680156128a457505f601c54115b15612959576128c36064611daf601c5488612b5390919063ffffffff16565b9050601c54601e54826128d6919061365f565b6128e09190613676565b60235f8282546128f09190613695565b9091555050601c54601f54612905908361365f565b61290f9190613676565b60245f82825461291f9190613695565b9091555050601c54601d54612934908361365f565b61293e9190613676565b60225f82825461294e9190613695565b90915550612a319050565b6001600160a01b0387165f9081526028602052604090205460ff16801561298157505f601754115b15612a31576129a06064611daf60175488612b5390919063ffffffff16565b9050601754601954826129b3919061365f565b6129bd9190613676565b60235f8282546129cd9190613695565b9091555050601754601a546129e2908361365f565b6129ec9190613676565b60245f8282546129fc9190613695565b9091555050601754601854612a11908361365f565b612a1b9190613676565b60225f828254612a2b9190613695565b90915550505b8015612a4257612a42873083612c12565b612a4c8186613747565b94505b612a5a878787612c12565b50505050505050565b5f8184841115612a865760405162461bcd60e51b8152600401610e3791906133c1565b505f612a928486613747565b95945050505050565b5f80612aa78385613695565b905083811015612af95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e37565b9392505050565b6001600160a01b0382165f81815260286020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f825f03612b6257505f610de7565b5f612b6d838561365f565b905082612b7a8583613676565b14612af95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e37565b5f612af983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130c7565b6001600160a01b038316612c385760405162461bcd60e51b8152600401610e37906136bf565b6001600160a01b038216612c5e5760405162461bcd60e51b8152600401610e3790613704565b612c9a81604051806060016040528060268152602001613824602691396001600160a01b0386165f908152602081905260409020549190612a63565b6001600160a01b038085165f908152602081905260408082209390935590841681522054612cc89082612a9b565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161205a565b305f9081526020819052604081205490505f602454602254602354612d3d9190613695565b612d479190613695565b90505f821580612d55575081155b15612d5f57505050565b600954612d6d90601461365f565b831115612d8557600954612d8290601461365f565b92505b5f60028360235486612d97919061365f565b612da19190613676565b612dab9190613676565b90505f612db885836130f3565b905047612dc482613134565b5f612dcf47836130f3565b90505f612deb87611daf60225485612b5390919063ffffffff16565b90505f612e0788611daf60245486612b5390919063ffffffff16565b90505f81612e158486613747565b612e1f9190613747565b5f6023819055602281905560248190556007546040519293506001600160a01b031691849181818185875af1925050503d805f8114612e79576040519150601f19603f3d011682016040523d82523d5f602084013e612e7e565b606091505b50909850508615801590612e9157505f81115b15612ee457612ea087826132ea565b602354604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b039091169047905f81818185875af1925050503d805f8114612f2e576040519150601f19603f3d011682016040523d82523d5f602084013e612f33565b606091505b50505050505050505050505050565b42600e556040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201525f90819030906370a0823190602401602060405180830381865afa158015612fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fd091906136a8565b90505f612fee612710611daf600b5485612b5390919063ffffffff16565b90508015613023576130237f000000000000000000000000000000000000000000000000000000000000000061dead83612c12565b5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561307f575f80fd5b505af1158015613091573d5f803e3d5ffd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d92505f9150a16001935050505090565b5f81836130e75760405162461bcd60e51b8152600401610e3791906133c1565b505f612a928486613676565b5f612af983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a63565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106131675761316761375a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131e3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613207919061376e565b8160018151811061321a5761321a61375a565b60200260200101906001600160a01b031690816001600160a01b031681525050613265307f000000000000000000000000000000000000000000000000000000000000000084611f43565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906132b99085905f90869030904290600401613789565b5f604051808303815f87803b1580156132d0575f80fd5b505af11580156132e2573d5f803e3d5ffd5b505050505050565b613315307f000000000000000000000000000000000000000000000000000000000000000084611f43565b60405163f305d71960e01b8152306004820152602481018390525f60448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af115801561339c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611f3c91906137f8565b5f6020808352835180828501525f5b818110156133ec578581018301518582016040015282016133d0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611c1e575f80fd5b5f8060408385031215613431575f80fd5b823561343c8161340c565b946020939093013593505050565b5f6020828403121561345a575f80fd5b8135612af98161340c565b5f60208284031215613475575f80fd5b5035919050565b5f805f6060848603121561348e575f80fd5b83356134998161340c565b925060208401356134a98161340c565b929592945050506040919091013590565b803580151581146119c7575f80fd5b5f80604083850312156134da575f80fd5b82356134e58161340c565b91506134f3602084016134ba565b90509250929050565b5f6020828403121561350c575f80fd5b612af9826134ba565b5f805f60608486031215613527575f80fd5b833592506020840135915061353e604085016134ba565b90509250925092565b5f805f60608486031215613559575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215613581575f80fd5b823561358c8161340c565b9150602083013561359c8161340c565b809150509250929050565b5f805f805f60a086880312156135bb575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b600181811c908216806135f257607f821691505b60208210810361361057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610de757610de761364b565b5f8261369057634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610de757610de761364b565b5f602082840312156136b8575f80fd5b5051919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610de757610de761364b565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561377e575f80fd5b8151612af98161340c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156137d75784516001600160a01b0316835293830193918301916001016137b2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561380a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204cc64afee6ff5a6ac2eed5d1ba5afa342592809e00e72c607b7040bd36486a1864736f6c634300081400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572