60e06040526007805464ffff00ff001916640101000100179055348015610024575f80fd5b506040518060400160405280600f81526020016e2932b0b6102a393ab6b81021b7b4b760891b8152506040518060400160405280600381526020016252544360e81b8152508160039081610078919061088c565b506004610085828261088c565b5050505f61009761054760201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091555f81815260066020526040808220805460ff191660011790555192935090917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35073b12f7564e47b9f3dbbc55bd50bfb81b24edcbf9b6a52b7d2dcc80cd2e40000005f606461012983605561095f565b610133919061097c565b90505f610140828461099b565b905061015d6101576005546001600160a01b031690565b8361054b565b610167848261054b565b6007805462ff0000191662010000179055737a250d5630b4cf539739df2c5dacb4c659f2488d60c081905261271061019e60025490565b6101a990606461095f565b6101b3919061097c565b601080546001600160801b0319166001600160801b03929092169190911790556127106101df60025490565b6101ea90606461095f565b6101f4919061097c565b601080546001600160801b03928316600160801b029216919091179055620186a061021e60025490565b61022990601961095f565b610233919061097c565b600e55600d80546001600160a01b038088166001600160a01b031990921691909117909155601280546001600160401b03199081169091556013805490911690556011805460ff60501b19166a010000000000000000000017905560c051604080516315ab88c960e31b81529051919092169163ad5c46489160048083019260209291908290030181865afa1580156102ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f291906109ae565b6001600160a01b03166080816001600160a01b03168152505060c0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610349573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d91906109ae565b6080516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af11580156103bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103df91906109ae565b6001600160a01b031660a08190525f908152600a602090815260408083208054600160ff19918216811790925560099384905291842080549092168117909155916104326005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055908916815260099092528082208054841660019081179091553083529082208054909316811790925560089061049d6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790558982168152600890935281832080548516600190811790915530808552838520805487168317905560c051928316855292909320805490941690921790925561051591905f1961060d565b61053561052a6005546001600160a01b031690565b60c05160025461060d565b61053d610730565b50505050506109ee565b3390565b6001600160a01b0382166105a65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f8282546105b791906109db565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03831661066f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059d565b6001600160a01b0382166106d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059d565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b0316331461078a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059d565b60075460ff16156107dd5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161059d565b6007805460ff1916600117905543600f55565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061081d57607f821691505b60208210810361083b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156107f057805f5260205f20601f840160051c810160208510156108665750805b601f840160051c820191505b81811015610885575f8155600101610872565b5050505050565b81516001600160401b038111156108a5576108a56107f5565b6108b9816108b38454610809565b84610841565b602080601f8311600181146108ec575f84156108d55750858301515b5f19600386901b1c1916600185901b178555610943565b5f85815260208120601f198616915b8281101561091a578886015182559484019460019091019084016108fb565b508582101561093757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109765761097661094b565b92915050565b5f8261099657634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156109765761097661094b565b5f602082840312156109be575f80fd5b81516001600160a01b03811681146109d4575f80fd5b9392505050565b808201808211156109765761097661094b565b60805160a05160c0516131d0610a425f395f81816107500152818161159c015281816123f8015261290c01525f818161088801528181610c7c015261243501525f81816105a801526128b501526131d05ff3fe6080604052600436106102dc575f3560e01c80637f51bb1f11610189578063b2bdfa7b116100d8578063e4d54e4111610092578063f2fde38b1161006d578063f2fde38b1461096f578063fbc414771461098e578063fc872e0e146109ad578063fd1bc2ca146109c1575f80fd5b8063e4d54e4114610927578063e884f26014610946578063eb0064be1461095a575f80fd5b8063b2bdfa7b14610858578063ce17f71b14610877578063d7f6a758146108aa578063dd62ed3e146108c9578063e03e7608146108e8578063e35706a714610908575f80fd5b806396abb9c711610143578063a62ccc2c1161011e578063a62ccc2c146107e3578063a9059cbb146107fc578063acdc51a11461081b578063ae865ede1461083a575f80fd5b806396abb9c7146107865780639c1196ae146107a5578063a457c2d7146107c4575f80fd5b80637f51bb1f146106b75780638da5cb5b146106d65780638f8c3063146106f357806391f2eba11461072057806393808fe21461073f57806395d89b4114610772575f80fd5b806339509351116102455780636f7c3e0b116101ff57806370a08231116101da57806370a0823114610622578063715018a6146106565780637a6826001461066a5780637b7ad43714610689575f80fd5b80636f7c3e0b146105975780636ffc4ac5146105e25780637084a57114610601575f80fd5b806339509351146104a3578063398daa85146104c257806356340e81146104f05780635c3e00c81461053a578063671c6eca146105595780636ed3e24414610578575f80fd5b80632089ed74116102965780632089ed74146103f3578063231b026814610421578063232050f91461043657806323b872dd1461044a5780632604c3cb14610469578063313ce56714610488575f80fd5b806305d2e7ee146102e757806306fdde031461032a578063095ea7b31461034b5780630d678bed1461036a57806315aa7652146103b457806318160ddd146103d5575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b50610315610301366004612bb7565b600c6020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610335575f80fd5b5061033e6109d5565b6040516103219190612bd7565b348015610356575f80fd5b50610315610365366004612c0c565b610a65565b348015610375575f80fd5b50601154610395906001600160501b03811690600160501b900460ff1682565b604080516001600160501b039093168352901515602083015201610321565b3480156103bf575f80fd5b506103d36103ce366004612c34565b610a7e565b005b3480156103e0575f80fd5b506002545b604051908152602001610321565b3480156103fe575f80fd5b5061031561040d366004612bb7565b600a6020525f908152604090205460ff1681565b34801561042c575f80fd5b506103e5600f5481565b348015610441575f80fd5b506103d3610b1f565b348015610455575f80fd5b50610315610464366004612c5a565b610bc2565b348015610474575f80fd5b506007546103159062010000900460ff1681565b348015610493575f80fd5b5060405160128152602001610321565b3480156104ae575f80fd5b506103156104bd366004612c0c565b610be5565b3480156104cd575f80fd5b506103156104dc366004612bb7565b60086020525f908152604090205460ff1681565b3480156104fb575f80fd5b5060105461051a906001600160801b0380821691600160801b90041682565b604080516001600160801b03938416815292909116602083015201610321565b348015610545575f80fd5b506103d3610554366004612ca0565b610c06565b348015610564575f80fd5b506103d3610573366004612d1c565b610d53565b348015610583575f80fd5b506103d3610592366004612c34565b610e27565b3480156105a2575f80fd5b506105ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610321565b3480156105ed575f80fd5b506103d36105fc366004612d82565b610ebf565b34801561060c575f80fd5b5060075461031590640100000000900460ff1681565b34801561062d575f80fd5b506103e561063c366004612bb7565b6001600160a01b03165f9081526020819052604090205490565b348015610661575f80fd5b506103d3610fe0565b348015610675575f80fd5b506103d3610684366004612d82565b611053565b348015610694575f80fd5b506103156106a3366004612bb7565b60096020525f908152604090205460ff1681565b3480156106c2575f80fd5b506103d36106d1366004612bb7565b611167565b3480156106e1575f80fd5b506005546001600160a01b03166105ca565b3480156106fe575f80fd5b5061070861271081565b6040516001600160401b039091168152602001610321565b34801561072b575f80fd5b506103d361073a366004612ca0565b6111f8565b34801561074a575f80fd5b506105ca7f000000000000000000000000000000000000000000000000000000000000000081565b34801561077d575f80fd5b5061033e61131a565b348015610791575f80fd5b50601354610708906001600160401b031681565b3480156107b0575f80fd5b506103d36107bf366004612da8565b611329565b3480156107cf575f80fd5b506103156107de366004612c0c565b611423565b3480156107ee575f80fd5b506007546103159060ff1681565b348015610807575f80fd5b50610315610816366004612c0c565b61149d565b348015610826575f80fd5b50600d546105ca906001600160a01b031681565b348015610845575f80fd5b5060075461031590610100900460ff1681565b348015610863575f80fd5b506005546105ca906001600160a01b031681565b348015610882575f80fd5b506105ca7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108b5575f80fd5b506103d36108c4366004612dd9565b6114aa565b3480156108d4575f80fd5b506103e56108e3366004612da8565b6114ee565b3480156108f3575f80fd5b50600754610315906301000000900460ff1681565b348015610913575f80fd5b50601254610708906001600160401b031681565b348015610932575f80fd5b506103d3610941366004612df4565b611518565b348015610951575f80fd5b506103d3611730565b348015610965575f80fd5b506103e5600e5481565b34801561097a575f80fd5b506103d3610989366004612bb7565b6117b6565b348015610999575f80fd5b506103d36109a8366004612e46565b6118a0565b3480156109b8575f80fd5b506103d36119eb565b3480156109cc575f80fd5b506103d3611a69565b6060600380546109e490612e5d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1090612e5d565b8015610a5b5780601f10610a3257610100808354040283529160200191610a5b565b820191905f5260205f20905b815481529060010190602001808311610a3e57829003601f168201915b5050505050905090565b5f33610a72818585611af9565b60019150505b92915050565b6005546001600160a01b03163314610ab15760405162461bcd60e51b8152600401610aa890612e95565b60405180910390fd5b60408051602080820183526001600160401b038416808352925192835290917fc9d5952b1f3c1b1a0194027998b195d38e356b5cdcdb07d02335a1bde8f67e70910160405180910390a1516013805467ffffffffffffffff19166001600160401b0390921691909117905550565b6005546001600160a01b03163314610b495760405162461bcd60e51b8152600401610aa890612e95565b6007805464ff0000000019169055604080518082019091525f80825260208201525f610b7460025490565b6001600160801b03811680845260208401819052600160801b8102176010556040519091507f7f67b1c0cef0ede407092cde57078dde97fc063d3ea5c7353043c8536d85cf07905f90a15050565b5f33610bcf858285611c1c565b610bda858585611c8e565b506001949350505050565b5f33610a72818585610bf783836114ee565b610c019190612ede565b611af9565b6005546001600160a01b03163314610c305760405162461bcd60e51b8152600401610aa890612e95565b6001600160a01b038216610c755760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610aa8565b80610cf0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610cf05760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb32903830b4b960711b6044820152606401610aa8565b6001600160a01b0382165f81815260096020908152604091829020805460ff19168515159081179091558251938452908301527f09b631341efb0516853fc01bb7721db352d8d3e95e4578fdf435ac19779fb4d191015b60405180910390a15050565b6005546001600160a01b03163314610d7d5760405162461bcd60e51b8152600401610aa890612e95565b828114610dc55760405162461bcd60e51b81526020600482015260166024820152750c2e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b6044820152606401610aa8565b5f5b83811015610e2057610e1833868684818110610de557610de5612ef1565b9050602002016020810190610dfa9190612bb7565b858585818110610e0c57610e0c612ef1565b90506020020135611e09565b600101610dc7565b5050505050565b6005546001600160a01b03163314610e515760405162461bcd60e51b8152600401610aa890612e95565b60408051602080820183526001600160401b038416808352925192835290917f5afb44aa9b5f1075bba60d26aec3fbc5ad05f89fb9f7754b7c1e37fd6daee7e3910160405180910390a1516012805467ffffffffffffffff19166001600160401b0390921691909117905550565b6005546001600160a01b03163314610ee95760405162461bcd60e51b8152600401610aa890612e95565b610ef56012600a612fe5565b6103e8610f0160025490565b610f0c906001612ff3565b610f16919061301e565b610f20919061301e565b816001600160801b03161015610f625760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610aa8565b610f6e6012600a612fe5565b610f81906001600160801b038316612ff3565b601080546fffffffffffffffffffffffffffffffff19166001600160801b039290921691821790556040519081527f24864ad91fa8f2ebe0cd39246d84465fc5e857bf602b3b906a437c3fca8de086906020015b60405180910390a150565b6005546001600160a01b0316331461100a5760405162461bcd60e51b8152600401610aa890612e95565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610aa890612e95565b6110896012600a612fe5565b6103e861109560025490565b6110a0906001612ff3565b6110aa919061301e565b6110b4919061301e565b816001600160801b031610156110f65760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610aa8565b6111026012600a612fe5565b611115906001600160801b038316612ff3565b601080546001600160801b03908116600160801b93821684021791829055604051929091041681527f324a24c86a50898a4cd9c9416d6ca6c1f64cd95fbba3bf6d164f40ca4f885b8690602001610fd5565b6005546001600160a01b031633146111915760405162461bcd60e51b8152600401610aa890612e95565b6001600160a01b0381166111d65760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610aa8565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146112225760405162461bcd60e51b8152600401610aa890612e95565b6001600160a01b0382166112675760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610aa8565b306001600160a01b038316036112bf5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420756e6578656d707420636f6e747261637400000000000000006044820152606401610aa8565b6001600160a01b0382165f81815260086020908152604091829020805460ff19168515159081179091558251938452908301527fb2e1820fbf10d9b16ea8fb74ba340d257f249aa5eb47c32a5c43cebee6af44e49101610d47565b6060600480546109e490612e5d565b6005546001600160a01b031633146113535760405162461bcd60e51b8152600401610aa890612e95565b6001600160a01b0382166113a95760405162461bcd60e51b815260206004820152601960248201527f546f6b656e20616464726573732063616e6e6f742062652030000000000000006044820152606401610aa8565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa1580156113ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114119190613031565b905061141e838383611fab565b505050565b5f338161143082866114ee565b9050838110156114905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610aa8565b610bda8286868403611af9565b5f33610a72818585611c8e565b6005546001600160a01b031633146114d45760405162461bcd60e51b8152600401610aa890612e95565b600780549115156101000261ff0019909216919091179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146115425760405162461bcd60e51b8152600401610aa890612e95565b5f5b8281101561172a57600a5f85858481811061156157611561612ef1565b90506020020160208101906115769190612bb7565b6001600160a01b0316815260208101919091526040015f205460ff161580156115f757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168484838181106115d6576115d6612ef1565b90506020020160208101906115eb9190612bb7565b6001600160a01b031614155b801561163257503084848381811061161157611611612ef1565b90506020020160208101906116269190612bb7565b6001600160a01b031614155b80156116cf575060085f85858481811061164e5761164e612ef1565b90506020020160208101906116639190612bb7565b6001600160a01b0316815260208101919091526040015f205460ff161580156116cf575060095f85858481811061169c5761169c612ef1565b90506020020160208101906116b19190612bb7565b6001600160a01b0316815260208101919091526040015f205460ff16155b15611722576117228484838181106116e9576116e9612ef1565b90506020020160208101906116fe9190612bb7565b6001600160a01b03165f908152600c60205260409020805460ff1916841515179055565b600101611544565b50505050565b6005546001600160a01b0316331461175a5760405162461bcd60e51b8152600401610aa890612e95565b6007546301000000900460ff166117a75760405162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b6044820152606401610aa8565b6007805463ff00000019169055565b6005546001600160a01b031633146117e05760405162461bcd60e51b8152600401610aa890612e95565b6001600160a01b0381166118455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aa8565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146118ca5760405162461bcd60e51b8152600401610aa890612e95565b620186a06118d760025490565b6118e2906001612ff3565b6118ec919061301e565b8110156119595760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610aa8565b6103e861196560025490565b611970906005612ff3565b61197a919061301e565b8111156119e65760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610aa8565b600e55565b6005546001600160a01b03163314611a155760405162461bcd60e51b8152600401610aa890612e95565b60075462010000900460ff16611a5b5760405162461bcd60e51b815260206004820152600b60248201526a20b63932b0b23c9037b33360a91b6044820152606401610aa8565b6007805462ff000019169055565b6005546001600160a01b03163314611a935760405162461bcd60e51b8152600401610aa890612e95565b60075460ff1615611ae65760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610aa8565b6007805460ff1916600117905543600f55565b6001600160a01b038316611b5b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610aa8565b6001600160a01b038216611bbc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610aa8565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f611c2784846114ee565b90505f19811461172a5781811015611c815760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610aa8565b61172a8484848403611af9565b6001600160a01b0383165f908152600c602052604090205460ff1615611cc65760405162461bcd60e51b8152600401610aa890613048565b336001600160a01b0384161480611cec5750335f908152600c602052604090205460ff16155b611d085760405162461bcd60e51b8152600401610aa890613048565b326001600160a01b0384161480611d1e57503233145b80611d385750325f908152600c602052604090205460ff16155b611d545760405162461bcd60e51b8152600401610aa890613048565b6001600160a01b0383165f9081526008602052604090205460ff16158015611d9457506001600160a01b0382165f9081526008602052604090205460ff16155b15611e025760075460ff16611de05760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610aa8565b611deb838383611ffd565b611df5908261306e565b9050611e028383836121e9565b61141e8383835b6001600160a01b038316611e6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aa8565b6001600160a01b038216611ecf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aa8565b6001600160a01b0383165f9081526020819052604090205481811015611f465760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610aa8565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361172a565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261141e9084906125ca565b600e54305f9081526020819052604081205490911115801561203757506001600160a01b0384165f908152600a602052604090205460ff16155b156120445761204461269b565b60075462010000900460ff161561205d5761205d6127b3565b60408051602080820183525f8083526001600160a01b0387168152600a9091529182205460ff16156120a8575060408051602081019091526013546001600160401b031681526120e3565b6001600160a01b0386165f908152600a602052604090205460ff16156120e3575060408051602081019091526012546001600160401b031681525b80516001600160401b0316156121d757604080518082019091526011546001600160501b0381168252600160501b900460ff1615156020820152815161271090612136906001600160401b031687612ff3565b612140919061301e565b8251909350633b9aca00906001600160401b031661215e8186613081565b61216891906130ac565b61217291906130ac565b815182906121819083906130d1565b6001600160501b0390811690915282516011805460208601511515600160501b026affffffffffffffffffffff199091169290931691909117919091179055506121d587306001600160801b038616611e09565b505b506001600160801b0316949350505050565b600754640100000000900460ff1615612523576001600160a01b038281165f9081526009602090815260408083205483835281842054825180840184526010546001600160801b038082168352600160801b90910416818601529589168552600a90935292205460ff928316939192168015612263575082155b156123045780516001600160801b03168411156122ac5760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b6044820152606401610aa8565b60208101516001600160801b03166122c48386612ede565b11156122ff5760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b6044820152606401610aa8565b6123e4565b6001600160a01b0385165f908152600a602052604090205460ff16801561234357506001600160a01b0386165f9081526009602052604090205460ff16155b1561238c5780516001600160801b03168411156122ff5760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b6044820152606401610aa8565b826123e45760208101516001600160801b03166123a98386612ede565b11156123e45760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b6044820152606401610aa8565b6007546301000000900460ff161561251f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161415801561246a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b1561251f57325f908152600b602052604090205443116124bd5760405162461bcd60e51b815260206004820152600e60248201526d5472616e736665722044656c617960901b6044820152606401610aa8565b326001600160a01b0386161461251f5760405162461bcd60e51b815260206004820152602160248201527f6e6f20627579696e6720746f2065787465726e616c2077616c6c6574732079656044820152601d60fa1b6064820152608401610aa8565b5050505b600754610100900460ff161561141e576001600160a01b0382165f908152600a602052604090205460ff16156125a4576001600160a01b0383165f908152600b6020526040902054431161141e5760405162461bcd60e51b815260206004820152600860248201526720b73a349026a2ab60c11b6044820152606401610aa8565b506001600160a01b03165f908152600b6020526040808220439081905532835291205550565b5f61261e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661284a9092919063ffffffff16565b80519091501561141e578080602001905181019061263c91906130f8565b61141e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610aa8565b305f90815260208190526040812054604080518082019091526011546001600160501b038116808352600160501b90910460ff1615156020830152919250908215806126e5575080155b156126ef57505050565b600e546126fd906014612ff3565b83111561271557600e54612712906014612ff3565b92505b82156127845761272483612860565b475f811561278157600d546040516001600160a01b039091169083905f81818185875af1925050503d805f8114612776576040519150601f19603f3d011682016040523d82523d5f602084013e61277b565b606091505b50909150505b50505b505f8152601180546020909201511515600160501b026affffffffffffffffffffff1990921691909117905550565b5f600f54436127c2919061306e565b9050600381116127da576127d75f606461297c565b50565b600681116127ef576127d76107d0601961297c565b60098111612804576127d76105dc603261297c565b600c8111612819576127d76103e8604b61297c565b6011811161282e576127d76101f4606461297c565b61283a5f61271061297c565b6007805463ffff00001916905550565b606061285884845f85612a28565b949350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061289357612893612ef1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106128e7576128e7612ef1565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac9479061294b9085905f90869030904290600401613113565b5f604051808303815f87803b158015612962575f80fd5b505af1158015612974573d5f803e3d5ffd5b505050505050565b60408051602081019091526001600160401b0383168082526013805467ffffffffffffffff1990811683179091556012805490911690911790556001600160801b0382161561141e57604080518082019091525f80825260208201525f612710846001600160801b03166129ef60025490565b6129f99190612ff3565b612a03919061301e565b6001600160801b0316808352602090920182905250600160801b810217601055505050565b606082471015612a895760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610aa8565b5f80866001600160a01b03168587604051612aa49190613184565b5f6040518083038185875af1925050503d805f8114612ade576040519150601f19603f3d011682016040523d82523d5f602084013e612ae3565b606091505b5091509150612af487838387612aff565b979650505050505050565b60608315612b6d5782515f03612b66576001600160a01b0385163b612b665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa8565b5081612858565b6128588383815115612b825781518083602001fd5b8060405162461bcd60e51b8152600401610aa89190612bd7565b80356001600160a01b0381168114612bb2575f80fd5b919050565b5f60208284031215612bc7575f80fd5b612bd082612b9c565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215612c1d575f80fd5b612c2683612b9c565b946020939093013593505050565b5f60208284031215612c44575f80fd5b81356001600160401b0381168114612bd0575f80fd5b5f805f60608486031215612c6c575f80fd5b612c7584612b9c565b9250612c8360208501612b9c565b9150604084013590509250925092565b80151581146127d7575f80fd5b5f8060408385031215612cb1575f80fd5b612cba83612b9c565b91506020830135612cca81612c93565b809150509250929050565b5f8083601f840112612ce5575f80fd5b5081356001600160401b03811115612cfb575f80fd5b6020830191508360208260051b8501011115612d15575f80fd5b9250929050565b5f805f8060408587031215612d2f575f80fd5b84356001600160401b0380821115612d45575f80fd5b612d5188838901612cd5565b90965094506020870135915080821115612d69575f80fd5b50612d7687828801612cd5565b95989497509550505050565b5f60208284031215612d92575f80fd5b81356001600160801b0381168114612bd0575f80fd5b5f8060408385031215612db9575f80fd5b612dc283612b9c565b9150612dd060208401612b9c565b90509250929050565b5f60208284031215612de9575f80fd5b8135612bd081612c93565b5f805f60408486031215612e06575f80fd5b83356001600160401b03811115612e1b575f80fd5b612e2786828701612cd5565b9094509250506020840135612e3b81612c93565b809150509250925092565b5f60208284031215612e56575f80fd5b5035919050565b600181811c90821680612e7157607f821691505b602082108103612e8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610a7857610a78612eca565b634e487b7160e01b5f52603260045260245ffd5b600181815b80851115612f3f57815f1904821115612f2557612f25612eca565b80851615612f3257918102915b93841c9390800290612f0a565b509250929050565b5f82612f5557506001610a78565b81612f6157505f610a78565b8160018114612f775760028114612f8157612f9d565b6001915050610a78565b60ff841115612f9257612f92612eca565b50506001821b610a78565b5060208310610133831016604e8410600b8410161715612fc0575081810a610a78565b612fca8383612f05565b805f1904821115612fdd57612fdd612eca565b029392505050565b5f612bd060ff841683612f47565b8082028115828204841417610a7857610a78612eca565b634e487b7160e01b5f52601260045260245ffd5b5f8261302c5761302c61300a565b500490565b5f60208284031215613041575f80fd5b5051919050565b6020808252600c908201526b189bdd0819195d1958dd195960a21b604082015260600190565b81810381811115610a7857610a78612eca565b6001600160801b038181168382160280821691908281146130a4576130a4612eca565b505092915050565b5f6001600160801b03808416806130c5576130c561300a565b92169190910492915050565b6001600160501b038181168382160190808211156130f1576130f1612eca565b5092915050565b5f60208284031215613108575f80fd5b8151612bd081612c93565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156131635784516001600160a01b03168352938301939183019160010161313e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e21190546a817062482a035e9b843845e5d2e4a527b20783a42f92bf266016ad64736f6c63430008190033