60c06040526000600d819055600e556005600f556010805462ffffff191660011790556012805460ff1916905562061a806022553480156200004057600080fd5b506040518060400160405280600c81526020016b263ab1b5bc90223930b3b7b760a11b815250604051806040016040528060058152602001644c55434b5960d81b815250816003908162000095919062000b48565b506004620000a4828262000b48565b5050506000620000b9620006ff60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350336a066f0222d28f572924000060646200012382600162000c2a565b6200012f919062000c4c565b600a5560646200014182600262000c2a565b6200014d919062000c4c565b600b556127106200016082600562000c2a565b6200016c919062000c4c565b600c5560196015819055600460168190556001601781905560006018819055909290916200019a9162000c6f565b620001a6919062000c6f565b620001b2919062000c6f565b6014556000601a8190556004601b8190556001601c819055601d8390559190620001dd908262000c6f565b620001e9919062000c6f565b620001f5919062000c6f565b601955604051620002069062000a96565b604051809103906000f08015801562000223573d6000803e3d6000fd5b50600780546001600160a01b03929092166001600160a01b03199283161790556008805482167379fa4a1975870a3268da9af290dead4c863f649e17905560098054909116739c93fc51694f13a24aefba249f5b468d1e39549d1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc919062000c8a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000370919062000c8a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000c8a565b600680546001600160a01b0319166001600160a01b03858116918217909255908216608052604080516315ab88c960e31b81529051929350909163ad5c4648916004808201926020929091908290030181865afa1580156200044a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000470919062000c8a565b6001600160a01b031660a0526200048981600162000703565b60075460405163031e79db60e41b81526001600160a01b0390911660048201819052906331e79db090602401600060405180830381600087803b158015620004d057600080fd5b505af1158015620004e5573d6000803e3d6000fd5b505060075460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b1580156200052f57600080fd5b505af115801562000544573d6000803e3d6000fd5b505060075460405163031e79db60e41b81526001600160a01b03888116600483015290911692506331e79db09150602401600060405180830381600087803b1580156200059057600080fd5b505af1158015620005a5573d6000803e3d6000fd5b505060075460405163031e79db60e41b81526001600160a01b03868116600483015290911692506331e79db09150602401600060405180830381600087803b158015620005f157600080fd5b505af115801562000606573d6000803e3d6000fd5b505060075460405163031e79db60e41b815261dead60048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b1580156200065257600080fd5b505af115801562000667573d6000803e3d6000fd5b505050506200067e846001620007d860201b60201c565b6200068b306001620007d8565b6200069a61dead6001620007d8565b620006a784600162000887565b620006b430600162000887565b600754620006cd906001600160a01b0316600162000887565b620006da82600162000887565b620006e961dead600162000887565b620006f584846200092b565b5050505062000cb5565b3390565b6001600160a01b0382166000908152602660205260409020805460ff191682151517905562000733828262000887565b80156200079c5760075460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b1580156200078257600080fd5b505af115801562000797573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620008275760405162461bcd60e51b8152602060048201819052602482015260008051602062006e3183398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b6005546001600160a01b03163314620008d25760405162461bcd60e51b8152602060048201819052602482015260008051602062006e3183398151915260448201526064016200081e565b6001600160a01b038216600081815260246020908152604091829020805460ff191685151590811790915591519182527f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9591016200087b565b6001600160a01b038216620009835760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200081e565b6200099f8160025462000a2c60201b620027981790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620009d29183906200279862000a2c821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b60008062000a3b838562000c6f565b90508381101562000a8f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200081e565b9392505050565b611b7080620052c183390190565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000acf57607f821691505b60208210810362000af057634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a2757600081815260208120601f850160051c8101602086101562000b1f5750805b601f850160051c820191505b8181101562000b405782815560010162000b2b565b505050505050565b81516001600160401b0381111562000b645762000b6462000aa4565b62000b7c8162000b75845462000aba565b8462000af6565b602080601f83116001811462000bb4576000841562000b9b5750858301515b600019600386901b1c1916600185901b17855562000b40565b600085815260208120601f198616915b8281101562000be55788860151825594840194600190910190840162000bc4565b508582101562000c045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000c475762000c4762000c14565b500290565b60008262000c6a57634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111562000c855762000c8562000c14565b500190565b60006020828403121562000c9d57600080fd5b81516001600160a01b038116811462000a8f57600080fd5b60805160a0516145b562000d0c60003960008181610f24015281816139dd01528181613a7c0152613ea60152600081816107ea01528181611bcc01528181612a1f01528181612abd0152612cc701526145b56000f3fe6080604052600436106104c45760003560e01c80638da5cb5b11610276578063c492f0461161014f578063e7841ec0116100c1578063ee40166e11610085578063ee40166e14610ea6578063f27fd25414610ebc578063f2fde38b14610edc578063f54afa7814610efc578063fc0c546a14610f12578063fc155d1d14610f4657600080fd5b8063e7841ec014610e26578063e7ad9fcd14610e3b578063e7f444b314610e5b578063e884f26014610e71578063e98030c714610e8657600080fd5b8063d0a3981411610113578063d0a3981414610d54578063d1660f9914610d6a578063d257b34f14610d8a578063d2fcc00114610daa578063dd62ed3e14610dca578063e2f4560514610e1057600080fd5b8063c492f04614610cd8578063c876d0b914610cf8578063c8c8ebe414610d12578063ccb6135814610d28578063ccd146b214610d3e57600080fd5b8063aa4bde28116101e8578063b62496f5116101ac578063b62496f514610c13578063b9e9370014610c43578063bbc0c74214610c59578063c024666814610c78578063c0f306ef14610c98578063c18bc19514610cb857600080fd5b8063aa4bde2814610b42578063aacebbe314610b58578063ad56c13c14610b78578063b1a8361014610bdd578063b45e83f814610bfd57600080fd5b80639c1b8af51161023a5780639c1b8af514610aa15780639fccce3214610ab7578063a26579ad14610acd578063a457c2d714610ae2578063a8b9d24014610b02578063a9059cbb14610b2257600080fd5b80638da5cb5b146109fe5780638ea5220f14610a1c57806395d89b4114610a3c57806396880b1714610a515780639a7a23d614610a8157600080fd5b806339509351116103a85780636ddd17131161031a578063751039fc116102de578063751039fc1461095f5780637571336a1461097457806375f0a874146109945780637fa787ba146109b4578063871c128d146109c95780638a8c523c146109e957600080fd5b80636ddd1713146108d5578063700bb191146108f557806370a0823114610915578063715018a61461093557806371778e7d1461094a57600080fd5b80634af6f7ee1161036c5780634af6f7ee146108265780634e71d92d1461083c5780634fbee1931461085157806364b0f6531461088a578063680789521461089f5780636843cd84146108b557600080fd5b8063395093511461077857806342af18841461079857806348479175146107b857806349bd5a5e146107d85780634a62bb651461080c57600080fd5b80631816467f116104415780632c1f5216116104055780632c1f5216146106c75780632e6ed7ef146106e75780632fcc761d1461070757806330bb4cff14610727578063313ce5671461073c57806331e79db01461075857600080fd5b80631816467f1461063b578063193d6e891461065b5780631a8145bb1461067b5780631f3fed8f1461069157806323b872dd146106a757600080fd5b8063106b5da111610488578063106b5da11461057757806310d5de5314610599578063122fe685146105c95780631694505e1461060657806318160ddd1461062657600080fd5b806301143fea146104d057806306fdde03146104f9578063095ea7b31461051b578063099d0d301461054b5780630f4432e31461056157600080fd5b366104cb57005b600080fd5b3480156104dc57600080fd5b506104e6601c5481565b6040519081526020015b60405180910390f35b34801561050557600080fd5b5061050e610f66565b6040516104f09190613f2d565b34801561052757600080fd5b5061053b610536366004613f97565b610ff8565b60405190151581526020016104f0565b34801561055757600080fd5b506104e660185481565b34801561056d57600080fd5b506104e6600d5481565b34801561058357600080fd5b50610597610592366004613fc3565b61100f565b005b3480156105a557600080fd5b5061053b6105b4366004613fdc565b60246020526000908152604090205460ff1681565b3480156105d557600080fd5b506012546105ee9061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016104f0565b34801561061257600080fd5b506006546105ee906001600160a01b031681565b34801561063257600080fd5b506002546104e6565b34801561064757600080fd5b50610597610656366004613fdc565b6110f4565b34801561066757600080fd5b50610597610676366004613ff9565b611186565b34801561068757600080fd5b506104e660215481565b34801561069d57600080fd5b506104e6601f5481565b3480156106b357600080fd5b5061053b6106c2366004613ff9565b611229565b3480156106d357600080fd5b506007546105ee906001600160a01b031681565b3480156106f357600080fd5b5061059761070236600461403a565b611292565b34801561071357600080fd5b5061059761072236600461406c565b611345565b34801561073357600080fd5b506104e66113a7565b34801561074857600080fd5b50604051601281526020016104f0565b34801561076457600080fd5b50610597610773366004613fdc565b61141a565b34801561078457600080fd5b5061053b610793366004613f97565b6114da565b3480156107a457600080fd5b506105976107b3366004613fc3565b611510565b3480156107c457600080fd5b506013546105ee906001600160a01b031681565b3480156107e457600080fd5b506105ee7f000000000000000000000000000000000000000000000000000000000000000081565b34801561081857600080fd5b5060105461053b9060ff1681565b34801561083257600080fd5b506104e6601a5481565b34801561084857600080fd5b506105976115a5565b34801561085d57600080fd5b5061053b61086c366004613fdc565b6001600160a01b031660009081526023602052604090205460ff1690565b34801561089657600080fd5b506104e661161d565b3480156108ab57600080fd5b506104e6601b5481565b3480156108c157600080fd5b506104e66108d0366004613fdc565b611667565b3480156108e157600080fd5b5060105461053b9062010000900460ff1681565b34801561090157600080fd5b50610597610910366004613fc3565b6116d7565b34801561092157600080fd5b506104e6610930366004613fdc565b6117aa565b34801561094157600080fd5b506105976117c5565b34801561095657600080fd5b506104e6611839565b34801561096b57600080fd5b5061053b611883565b34801561098057600080fd5b5061059761098f3660046140b3565b6118cc565b3480156109a057600080fd5b506008546105ee906001600160a01b031681565b3480156109c057600080fd5b50610597611956565b3480156109d557600080fd5b506105976109e4366004613fc3565b611a0d565b3480156109f557600080fd5b50610597611b50565b348015610a0a57600080fd5b506005546001600160a01b03166105ee565b348015610a2857600080fd5b506009546105ee906001600160a01b031681565b348015610a4857600080fd5b5061050e611b91565b348015610a5d57600080fd5b5061053b610a6c366004613fdc565b60256020526000908152604090205460ff1681565b348015610a8d57600080fd5b50610597610a9c3660046140b3565b611ba0565b348015610aad57600080fd5b506104e660225481565b348015610ac357600080fd5b506104e660205481565b348015610ad957600080fd5b506104e6611c8d565b348015610aee57600080fd5b5061053b610afd366004613f97565b611cd7565b348015610b0e57600080fd5b506104e6610b1d366004613fdc565b611d26565b348015610b2e57600080fd5b5061053b610b3d366004613f97565b611d59565b348015610b4e57600080fd5b506104e6600b5481565b348015610b6457600080fd5b50610597610b73366004613fdc565b611d66565b348015610b8457600080fd5b50610b98610b93366004613fdc565b611df8565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016104f0565b348015610be957600080fd5b50610597610bf836600461406c565b611e93565b348015610c0957600080fd5b506104e660175481565b348015610c1f57600080fd5b5061053b610c2e366004613fdc565b60266020526000908152604090205460ff1681565b348015610c4f57600080fd5b506104e660195481565b348015610c6557600080fd5b5060105461053b90610100900460ff1681565b348015610c8457600080fd5b50610597610c933660046140b3565b611fe2565b348015610ca457600080fd5b50610597610cb3366004613fdc565b612064565b348015610cc457600080fd5b50610597610cd3366004613fc3565b612124565b348015610ce457600080fd5b50610597610cf33660046140e1565b61214e565b348015610d0457600080fd5b5060125461053b9060ff1681565b348015610d1e57600080fd5b506104e6600a5481565b348015610d3457600080fd5b506104e6601d5481565b348015610d4a57600080fd5b506104e660155481565b348015610d6057600080fd5b506104e660145481565b348015610d7657600080fd5b50610597610d85366004613ff9565b61222a565b348015610d9657600080fd5b50610597610da5366004613fc3565b612264565b348015610db657600080fd5b50610597610dc53660046140b3565b6122a6565b348015610dd657600080fd5b506104e6610de536600461406c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610e1c57600080fd5b506104e6600c5481565b348015610e3257600080fd5b506104e6612328565b348015610e4757600080fd5b50610597610e5636600461403a565b612372565b348015610e6757600080fd5b506104e660165481565b348015610e7d57600080fd5b5061053b612426565b348015610e9257600080fd5b50610597610ea1366004613fc3565b612463565b348015610eb257600080fd5b506104e6600e5481565b348015610ec857600080fd5b50610b98610ed7366004613fc3565b6124ee565b348015610ee857600080fd5b50610597610ef7366004613fdc565b612530565b348015610f0857600080fd5b506104e6601e5481565b348015610f1e57600080fd5b506105ee7f000000000000000000000000000000000000000000000000000000000000000081565b348015610f5257600080fd5b50610597610f61366004613fc3565b61261b565b606060038054610f7590614167565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa190614167565b8015610fee5780601f10610fc357610100808354040283529160200191610fee565b820191906000526020600020905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b60006110053384846127fe565b5060015b92915050565b6005546001600160a01b031633146110425760405162461bcd60e51b8152600401611039906141a1565b60405180910390fd5b670de0b6b3a76400006103e861105760025490565b6110629060056141ec565b61106c919061420b565b611076919061420b565b81116110dc5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e352560881b6064820152608401611039565b6110ee81670de0b6b3a76400006141ec565b600a5550565b6005546001600160a01b0316331461111e5760405162461bcd60e51b8152600401611039906141a1565b611129816001611fe2565b6009546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111b05760405162461bcd60e51b8152600401611039906141a1565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156111ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611223919061422d565b50505050565b6000611236848484612923565b611288843361128385604051806060016040528060288152602001614533602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061346a565b6127fe565b5060019392505050565b6005546001600160a01b031633146112bc5760405162461bcd60e51b8152600401611039906141a1565b601b849055601c839055601a829055601d81905582816112dc848761424a565b6112e6919061424a565b6112f0919061424a565b6019819055601410156112235760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c6573730000006044820152606401611039565b6005546001600160a01b0316331461136f5760405162461bcd60e51b8152600401611039906141a1565b60128054610100600160a81b0319166101006001600160a01b0394851602179055601380546001600160a01b03191691909216179055565b600754604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae9160048083019260209291908290030181865afa1580156113f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114159190614262565b905090565b6005546001600160a01b031633146114445760405162461bcd60e51b8152600401611039906141a1565b60075460405163031e79db60e41b81526001600160a01b038381166004830152909116906331e79db090602401600060405180830381600087803b15801561148b57600080fd5b505af115801561149f573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916110059185906112839086612798565b6005546001600160a01b0316331461153a5760405162461bcd60e51b8152600401611039906141a1565b601054610100900460ff16156115a05760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401611039565b600f55565b60075460405163bc4c4b3760e01b8152336004820152600060248201526001600160a01b039091169063bc4c4b37906044016020604051808303816000875af11580156115f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161a919061422d565b50565b600754604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde9160048083019260209291908290030181865afa1580156113f1573d6000803e3d6000fd5b60075460405163156dbbf560e31b81526001600160a01b038381166004830152600092169063ab6ddfa8906024015b602060405180830381865afa1580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110099190614262565b6007546040516001624d3b8760e01b0319815260048101839052600091829182916001600160a01b03169063ffb2c479906024016060604051808303816000875af115801561172a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174e919061427b565b604080518481526020810184905290810182905260608101889052929550909350915032906000907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a98906080015b60405180910390a350505050565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b031633146117ef5760405162461bcd60e51b8152600401611039906141a1565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6007546040805163ad7a672f60e01b815290516000926001600160a01b03169163ad7a672f9160048083019260209291908290030181865afa1580156113f1573d6000803e3d6000fd5b6005546000906001600160a01b031633146118b05760405162461bcd60e51b8152600401611039906141a1565b506010805460ff19908116909155601280549091169055600190565b6005546001600160a01b031633146118f65760405162461bcd60e51b8152600401611039906141a1565b6001600160a01b038216600081815260246020908152604091829020805460ff191685151590811790915591519182527f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9591015b60405180910390a25050565b6005546001600160a01b031633146119805760405162461bcd60e51b8152600401611039906141a1565b604051600090339047908381818185875af1925050503d80600081146119c2576040519150601f19603f3d011682016040523d82523d6000602084013e6119c7565b606091505b505090508061161a5760405162461bcd60e51b81526020600482015260126024820152716661696c656420746f20776974686472617760701b6044820152606401611039565b6005546001600160a01b03163314611a375760405162461bcd60e51b8152600401611039906141a1565b62030d408110158015611a4d57506207a1208111155b611ab75760405162461bcd60e51b815260206004820152603560248201527f20676173466f7250726f63657373696e67206d7573742062652062657477656560448201527406e203230302c30303020616e64203530302c30303605c1b6064820152608401611039565b6022548103611b1d5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f742075706461746520676173466f7250726f63657373696e67207460448201526b6f2073616d652076616c756560a01b6064820152608401611039565b60225460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a3602255565b6005546001600160a01b03163314611b7a5760405162461bcd60e51b8152600401611039906141a1565b6010805462ffff0019166201010017905543600e55565b606060048054610f7590614167565b6005546001600160a01b03163314611bca5760405162461bcd60e51b8152600401611039906141a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611c7f5760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a401611039565b611c8982826134a4565b5050565b60075460408051631bc9e27b60e21b815290516000926001600160a01b031691636f2789ec9160048083019260209291908290030181865afa1580156113f1573d6000803e3d6000fd5b600061100533846112838560405180606001604052806025815260200161455b602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061346a565b6007546040516302a2e74960e61b81526001600160a01b038381166004830152600092169063a8b9d24090602401611696565b6000611005338484612923565b6005546001600160a01b03163314611d905760405162461bcd60e51b8152600401611039906141a1565b611d9b816001611fe2565b6008546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60075460405163fbcbc0f160e01b81526001600160a01b038381166004830152600092839283928392839283928392839291169063fbcbc0f1906024015b61010060405180830381865afa158015611e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7891906142a9565b97509750975097509750975097509750919395975091939597565b6005546001600160a01b03163314611ebd5760405162461bcd60e51b8152600401611039906141a1565b60128054610100600160a81b0319166101006001600160a01b03851602179055611ee8826001611fe2565b60075460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b158015611f2f57600080fd5b505af1158015611f43573d6000803e3d6000fd5b50505050611f528260016118cc565b601380546001600160a01b0319166001600160a01b038316179055611f78816001611fe2565b60075460405163031e79db60e41b81526001600160a01b038381166004830152909116906331e79db090602401600060405180830381600087803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b50505050611c898160016118cc565b6005546001600160a01b0316331461200c5760405162461bcd60e51b8152600401611039906141a1565b6001600160a01b038216600081815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910161194a565b6005546001600160a01b0316331461208e5760405162461bcd60e51b8152600401611039906141a1565b60075460405163c0f306ef60e01b81526001600160a01b0383811660048301529091169063c0f306ef90602401600060405180830381600087803b1580156120d557600080fd5b505af11580156120e9573d6000803e3d6000fd5b50506040516001600160a01b03841692507f40a78dcf8526b72f2eaf598af1c7e49c8d5fc577f6c8f1bed887f3e4dfa289329150600090a250565b6005546001600160a01b031633146110dc5760405162461bcd60e51b8152600401611039906141a1565b6005546001600160a01b031633146121785760405162461bcd60e51b8152600401611039906141a1565b60005b828110156121e957816023600086868581811061219a5761219a614313565b90506020020160208101906121af9190613fdc565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806121e181614329565b91505061217b565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161221d93929190614342565b60405180910390a1505050565b6005546001600160a01b031633146122545760405162461bcd60e51b8152600401611039906141a1565b61225f838383613574565b505050565b6005546001600160a01b0316331461228e5760405162461bcd60e51b8152600401611039906141a1565b6122a081670de0b6b3a76400006141ec565b600c5550565b6005546001600160a01b031633146122d05760405162461bcd60e51b8152600401611039906141a1565b6001600160a01b038216600081815260256020908152604091829020805460ff191685151590811790915591519182527f5956094251965a24e12663de1458c0d93ae46d0299678c87fb094b82fe3f2687910161194a565b6007546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec09160048083019260209291908290030181865afa1580156113f1573d6000803e3d6000fd5b6005546001600160a01b0316331461239c5760405162461bcd60e51b8152600401611039906141a1565b601684905560178390556015829055601881905582816123bc848761424a565b6123c6919061424a565b6123d0919061424a565b601455601954601e10156112235760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401611039565b6005546000906001600160a01b031633146124535760405162461bcd60e51b8152600401611039906141a1565b506012805460ff19169055600190565b6005546001600160a01b0316331461248d5760405162461bcd60e51b8152600401611039906141a1565b60075460405163e98030c760e01b8152600481018390526001600160a01b039091169063e98030c790602401600060405180830381600087803b1580156124d357600080fd5b505af11580156124e7573d6000803e3d6000fd5b5050505050565b600754604051635183d6fd60e01b81526004810183905260009182918291829182918291829182916001600160a01b0390911690635183d6fd90602401611e36565b6005546001600160a01b0316331461255a5760405162461bcd60e51b8152600401611039906141a1565b6001600160a01b0381166125bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611039565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146126455760405162461bcd60e51b8152600401611039906141a1565b6040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156126af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d3919061439b565b816000815181106126e6576126e6614313565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061271a5761271a614313565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de9590849061276290600090869061dead9042906004016143fc565b6000604051808303818588803b15801561277b57600080fd5b505af115801561278f573d6000803e3d6000fd5b50505050505050565b6000806127a5838561424a565b9050838110156127f75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401611039565b9392505050565b6001600160a01b0383166128605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401611039565b6001600160a01b0382166128c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401611039565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166129495760405162461bcd60e51b815260040161103990614431565b6001600160a01b03821661296f5760405162461bcd60e51b815260040161103990614476565b806000036129835761225f83836000613678565b601054610100900460ff16612a1d576001600160a01b03831660009081526023602052604090205460ff16806129d157506001600160a01b03821660009081526023602052604090205460ff165b612a1d5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420616374697665207965742e0000000000006044820152606401611039565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614612abb57600b5481612a63846117aa565b612a6d919061424a565b1115612abb5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401611039565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015612b1557506001600160a01b03821660009081526025602052604090205460ff16155b15612bd157600b54811115612b6c5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401611039565b600b5481612b79846117aa565b612b83919061424a565b1115612bd15760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401611039565b60105460ff1615612f1c576005546001600160a01b03848116911614801590612c0857506005546001600160a01b03838116911614155b8015612c1c57506001600160a01b03821615155b8015612c3357506001600160a01b03821661dead14155b8015612c495750600654600160a01b900460ff16155b8015612c6857506012546001600160a01b038481166101009092041614155b8015612c8257506013546001600160a01b03848116911614155b15612f1c5760125460ff1615612daa576005546001600160a01b03838116911614801590612cbe57506006546001600160a01b03838116911614155b8015612cfc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15612daa57326000908152601160205260409020544311612d975760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401611039565b3260009081526011602052604090204390555b6001600160a01b03831660009081526026602052604090205460ff168015612deb57506001600160a01b03821660009081526024602052604090205460ff16155b15612e6557600a54811115612e605760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401611039565b612f1c565b6001600160a01b03821660009081526026602052604090205460ff168015612ea657506001600160a01b03831660009081526024602052604090205460ff16155b15612f1c57600a54811115612f1c5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401611039565b6000612f27306117aa565b600c5490915081108015908190612f46575060105462010000900460ff165b8015612f5c5750600654600160a01b900460ff16155b8015612f8157506001600160a01b03851660009081526026602052604090205460ff16155b8015612fa657506001600160a01b03851660009081526023602052604090205460ff16155b8015612fcb57506001600160a01b03841660009081526023602052604090205460ff16155b15612ff9576006805460ff60a01b1916600160a01b179055612feb613781565b6006805460ff60a01b191690555b6006546001600160a01b03861660009081526023602052604090205460ff600160a01b90920482161591168061304757506001600160a01b03851660009081526023602052604090205460ff165b15613050575060005b6000811561329b576001600160a01b03861660009081526026602052604090205460ff16801561308257506000601454115b15613170576130a760646130a160145488613b9990919063ffffffff16565b90613c1b565b9050601454601554826130ba91906141ec565b6130c4919061420b565b601e60008282546130d5919061424a565b90915550506014546018546130ea90836141ec565b6130f4919061420b565b60216000828254613105919061424a565b909155505060145460165461311a90836141ec565b613124919061420b565b601f6000828254613135919061424a565b909155505060145460175461314a90836141ec565b613154919061420b565b60206000828254613165919061424a565b9091555061327d9050565b6001600160a01b03871660009081526026602052604090205460ff16801561319a57506000601954115b1561327d576131b960646130a160195488613b9990919063ffffffff16565b9050601954601a54826131cc91906141ec565b6131d6919061420b565b601e60008282546131e7919061424a565b9091555050601954601d546131fc90836141ec565b613206919061420b565b60216000828254613217919061424a565b9091555050601954601b5461322c90836141ec565b613236919061420b565b601f6000828254613247919061424a565b9091555050601954601c5461325c90836141ec565b613266919061420b565b60206000828254613277919061424a565b90915550505b801561328e5761328e873083613678565b61329881866144b9565b94505b6132a6878787613678565b6007546001600160a01b031663e30443bc886132c1816117aa565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561330757600080fd5b505af1925050508015613318575060015b506007546001600160a01b031663e30443bc87613334816117aa565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561337a57600080fd5b505af192505050801561338b575060015b50600654600160a01b900460ff1661278f576022546007546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024016060604051808303816000875af192505050801561340a575060408051601f3d908101601f191682019092526134079181019061427b565b60015b156134605760408051848152602081018490529081018290526060810185905232906001907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a35050505b5050505050505050565b6000818484111561348e5760405162461bcd60e51b81526004016110399190613f2d565b50600061349b84866144b9565b95945050505050565b6001600160a01b0382166000908152602660205260409020805460ff19168215151790556134d282826118cc565b80156135385760075460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b15801561351f57600080fd5b505af1158015613533573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b038316600090815260208190526040902054818110156135ec5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401611039565b6135f682826144b9565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061362c90849061424a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161179c91815260200190565b6001600160a01b03831661369e5760405162461bcd60e51b815260040161103990614431565b6001600160a01b0382166136c45760405162461bcd60e51b815260040161103990614476565b6137018160405180606001604052806026815260200161450d602691396001600160a01b038616600090815260208190526040902054919061346a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546137309082612798565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612916565b600061378c306117aa565b90506000601e54602054601f546021546137a6919061424a565b6137b0919061424a565b6137ba919061424a565b90508115806137c7575080155b156137d0575050565b6000600282602154856137e391906141ec565b6137ed919061420b565b6137f7919061420b565b905060006138058483613c5d565b90504761381182613c9f565b600061381d4783613c5d565b9050600061383a866130a1601f5485613b9990919063ffffffff16565b90506000613857876130a160205486613b9990919063ffffffff16565b90506000613874886130a1601e5487613b9990919063ffffffff16565b905060008161388385876144b9565b61388d91906144b9565b60006021819055601f8190556020819055601e81905560085460405192935090916001600160a01b039091169086908381818185875af1925050503d80600081146138f4576040519150601f19603f3d011682016040523d82523d6000602084013e6138f9565b606091505b50506009546040519192506000916001600160a01b039091169086908381818185875af1925050503d806000811461394d576040519150601f19603f3d011682016040523d82523d6000602084013e613952565b606091505b5050905060008a1180156139665750600083115b156139b9576139758a84613df9565b602154604080518b81526020810186905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b4793506139c584613ea4565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015613a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a509190614262565b60075460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192507f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015613ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae9919061422d565b92508215613b8a5760075460405163b0c7ce3760e01b8152600481018390526001600160a01b039091169063b0c7ce3790602401600060405180830381600087803b158015613b3757600080fd5b505af1158015613b4b573d6000803e3d6000fd5b505060408051848152602081018990527f80195cc573b02cc48460cbca6e6e4cc85ddb91959d946e1c3025ea3d87942dc3935001905060405180910390a15b50505050505050505050505050565b600082600003613bab57506000611009565b6000613bb783856141ec565b905082613bc4858361420b565b146127f75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401611039565b60006127f783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613eff565b60006127f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061346a565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613cd457613cd4614313565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015613d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d51919061439b565b81600181518110613d6457613d64614313565b6001600160a01b039283166020918202929092010152600654613d8a91309116846127fe565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790613dc39085906000908690309042906004016144d0565b600060405180830381600087803b158015613ddd57600080fd5b505af1158015613df1573d6000803e3d6000fd5b505050505050565b600654613e119030906001600160a01b0316846127fe565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015613e7f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124e7919061427b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613ddd57600080fd5b60008183613f205760405162461bcd60e51b81526004016110399190613f2d565b50600061349b848661420b565b600060208083528351808285015260005b81811015613f5a57858101830151858201604001528201613f3e565b81811115613f6c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461161a57600080fd5b60008060408385031215613faa57600080fd5b8235613fb581613f82565b946020939093013593505050565b600060208284031215613fd557600080fd5b5035919050565b600060208284031215613fee57600080fd5b81356127f781613f82565b60008060006060848603121561400e57600080fd5b833561401981613f82565b9250602084013561402981613f82565b929592945050506040919091013590565b6000806000806080858703121561405057600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561407f57600080fd5b823561408a81613f82565b9150602083013561409a81613f82565b809150509250929050565b801515811461161a57600080fd5b600080604083850312156140c657600080fd5b82356140d181613f82565b9150602083013561409a816140a5565b6000806000604084860312156140f657600080fd5b833567ffffffffffffffff8082111561410e57600080fd5b818601915086601f83011261412257600080fd5b81358181111561413157600080fd5b8760208260051b850101111561414657600080fd5b6020928301955093505084013561415c816140a5565b809150509250925092565b600181811c9082168061417b57607f821691505b60208210810361419b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615614206576142066141d6565b500290565b60008261422857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561423f57600080fd5b81516127f7816140a5565b6000821982111561425d5761425d6141d6565b500190565b60006020828403121561427457600080fd5b5051919050565b60008060006060848603121561429057600080fd5b8351925060208401519150604084015190509250925092565b600080600080600080600080610100898b0312156142c657600080fd5b88516142d181613f82565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b634e487b7160e01b600052603260045260246000fd5b60006001820161433b5761433b6141d6565b5060010190565b6040808252810183905260008460608301825b8681101561438557823561436881613f82565b6001600160a01b0316825260209283019290910190600101614355565b5080925050508215156020830152949350505050565b6000602082840312156143ad57600080fd5b81516127f781613f82565b600081518084526020808501945080840160005b838110156143f15781516001600160a01b0316875295820195908201906001016143cc565b509495945050505050565b84815260806020820152600061441560808301866143b8565b6001600160a01b03949094166040830152506060015292915050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156144cb576144cb6141d6565b500390565b85815284602082015260a0604082015260006144ef60a08301866143b8565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122021652f886278536e2dc1128d39e142d8b60be4e9f8215be9fada4ac1a564506564736f6c634300080f003360c060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100cd91906100f0565b6001600160a01b0316608052506104b0600e55662386f26fc1000060a052610120565b60006020828403121561010257600080fd5b81516001600160a01b038116811461011957600080fd5b9392505050565b60805160a051611a1d610153600039600081816104c10152610c270152600081816105aa01526114760152611a1d6000f3fe6080604052600436106101c65760003560e01c8063a8b9d240116100f7578063c0f306ef11610095578063f2fde38b11610064578063f2fde38b14610558578063fbcbc0f114610578578063fc0c546a14610598578063ffb2c479146105cc57600080fd5b8063c0f306ef146104e3578063e30443bc14610503578063e7841ec014610523578063e98030c71461053857600080fd5b8063ad7a672f116100d1578063ad7a672f14610459578063b0c7ce371461046f578063bc4c4b371461048f578063be10b614146104af57600080fd5b8063a8b9d240146103d6578063aafd847a146103f6578063ab6ddfa81461042c57600080fd5b80635183d6fd11610164578063715018a61161013e578063715018a61461035957806385a6b3ae1461036e5780638da5cb5b1461038457806391b89fba146103b657600080fd5b80635183d6fd146102c95780636a4740021461032e5780636f2789ec1461034357600080fd5b806327ce0147116101a057806327ce0147146102335780633009a6091461025357806331e79db0146102695780634e7b827f1461028957600080fd5b806303c83302146101da57806309bbedde146101e2578063226cfa3d1461020657600080fd5b366101d5576101d3610607565b005b600080fd5b6101d3610607565b3480156101ee57600080fd5b506007545b6040519081526020015b60405180910390f35b34801561021257600080fd5b506101f361022136600461172c565b600d6020526000908152604090205481565b34801561023f57600080fd5b506101f361024e36600461172c565b61067a565b34801561025f57600080fd5b506101f3600b5481565b34801561027557600080fd5b506101d361028436600461172c565b6106dd565b34801561029557600080fd5b506102b96102a436600461172c565b600c6020526000908152604090205460ff1681565b60405190151581526020016101fd565b3480156102d557600080fd5b506102e96102e4366004611749565b6107de565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016101fd565b34801561033a57600080fd5b506101d3610932565b34801561034f57600080fd5b506101f3600e5481565b34801561036557600080fd5b506101d361093e565b34801561037a57600080fd5b506101f360065481565b34801561039057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101fd565b3480156103c257600080fd5b506101f36103d136600461172c565b6109b2565b3480156103e257600080fd5b506101f36103f136600461172c565b6109b9565b34801561040257600080fd5b506101f361041136600461172c565b6001600160a01b031660009081526003602052604090205490565b34801561043857600080fd5b506101f361044736600461172c565b60046020526000908152604090205481565b34801561046557600080fd5b506101f360055481565b34801561047b57600080fd5b506101d361048a366004611749565b6109e5565b34801561049b57600080fd5b506102b96104aa366004611770565b610a97565b3480156104bb57600080fd5b506101f37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ef57600080fd5b506101d36104fe36600461172c565b610b43565b34801561050f57600080fd5b506101d361051e3660046117a9565b610bdb565b34801561052f57600080fd5b50600b546101f3565b34801561054457600080fd5b506101d3610553366004611749565b610d63565b34801561056457600080fd5b506101d361057336600461172c565b610ecc565b34801561058457600080fd5b506102e961059336600461172c565b610fb6565b3480156105a457600080fd5b5061039e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d857600080fd5b506105ec6105e7366004611749565b61111f565b604080519384526020840192909252908201526060016101fd565b60405162461bcd60e51b815260206004820152603a60248201527f43616e6e6f742073656e6420657468206469726563746c7920746f207472616360448201527f6b657220617320697420697320756e7265636f76657261626c6500000000000060648201526084015b60405180910390fd5b6001600160a01b0381166000908152600260209081526040808320546004909252822054600154600160801b926106cd926106c8926106c2916106bd919061123c565b6112c5565b906112d5565b611313565b6106d791906117eb565b92915050565b6000546001600160a01b031633146107075760405162461bcd60e51b81526004016106719061180d565b6001600160a01b0381166000908152600c60205260408120805460ff19166001179055610735908290611326565b60405163131836e760e21b8152600760048201526001600160a01b038216602482015273e764a6835f7c29e1b0805ff0b3ddc0e90785598f90634c60db9c9060440160006040518083038186803b15801561078f57600080fd5b505af41580156107a3573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b600080600080600080600080600773e764a6835f7c29e1b0805ff0b3ddc0e90785598f63deb3d89690916040518263ffffffff1660e01b815260040161082691815260200190565b602060405180830381865af4158015610843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108679190611842565b891061088c575060009650600019955085945086935083925082915081905080610927565b6040516368d54f3f60e11b815260076004820152602481018a905260009073e764a6835f7c29e1b0805ff0b3ddc0e90785598f9063d1aa9e7e90604401602060405180830381865af41580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a919061185b565b905061091581610fb6565b98509850985098509850985098509850505b919395975091939597565b61093b336113bf565b50565b6000546001600160a01b031633146109685760405162461bcd60e51b81526004016106719061180d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106d7825b6001600160a01b0381166000908152600360205260408120546106d7906109df8461067a565b90611544565b6000546001600160a01b03163314610a0f5760405162461bcd60e51b81526004016106719061180d565b600060055411610a1e57600080fd5b801561093b57600554610a4c90610a3983600160801b61123c565b610a4391906117eb565b60015490611586565b60015560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a2600654610a919082611586565b60065550565b600080546001600160a01b03163314610ac25760405162461bcd60e51b81526004016106719061180d565b6000610acd846113bf565b90508015610b39576001600160a01b0384166000818152600d6020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09290610b279085815260200190565b60405180910390a360019150506106d7565b5060009392505050565b6000546001600160a01b03163314610b6d5760405162461bcd60e51b81526004016106719061180d565b6001600160a01b0381166000908152600c602052604090205460ff16610b9257600080fd5b6001600160a01b0381166000818152600c6020526040808220805460ff19169055517f40a78dcf8526b72f2eaf598af1c7e49c8d5fc577f6c8f1bed887f3e4dfa289329190a250565b6000546001600160a01b03163314610c055760405162461bcd60e51b81526004016106719061180d565b6001600160a01b0382166000908152600c602052604090205460ff16610d5f577f00000000000000000000000000000000000000000000000000000000000000008110610cd457610c568282611326565b604051632f0ad01760e21b8152600760048201526001600160a01b03831660248201526044810182905273e764a6835f7c29e1b0805ff0b3ddc0e90785598f9063bc2b405c9060640160006040518083038186803b158015610cb757600080fd5b505af4158015610ccb573d6000803e3d6000fd5b50505050610d52565b610cdf826000611326565b60405163131836e760e21b8152600760048201526001600160a01b038316602482015273e764a6835f7c29e1b0805ff0b3ddc0e90785598f90634c60db9c9060440160006040518083038186803b158015610d3957600080fd5b505af4158015610d4d573d6000803e3d6000fd5b505050505b610d5d826001610a97565b505b5050565b6000546001600160a01b03163314610d8d5760405162461bcd60e51b81526004016106719061180d565b6104b08110158015610da25750620151808111155b610e225760405162461bcd60e51b815260206004820152604560248201527f4469766964656e645f547261636b65723a20636c61696d57616974206d75737460448201527f206265207570646174656420746f206265747765656e203120616e6420323420606482015264686f75727360d81b608482015260a401610671565b600e548103610e995760405162461bcd60e51b815260206004820152603760248201527f4469766964656e645f547261636b65723a2043616e6e6f74207570646174652060448201527f636c61696d5761697420746f2073616d652076616c75650000000000000000006064820152608401610671565b600e5460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f90600090a3600e55565b6000546001600160a01b03163314610ef65760405162461bcd60e51b81526004016106719061180d565b6001600160a01b038116610f5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610671565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040516317e142d160e01b8152600760048201526001600160a01b0382166024820152819060009081908190819081908190819073e764a6835f7c29e1b0805ff0b3ddc0e90785598f906317e142d190604401602060405180830381865af4158015611026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104a9190611842565b96506000199550600087126110ac57600b5487111561107857600b546110719088906115e5565b95506110ac565b600b546007546000911061108d57600061109c565b600b5460075461109c91611544565b90506110a888826112d5565b9650505b6110b5886109b9565b94506110c08861067a565b6001600160a01b0389166000908152600d60205260409020549094509250826110ea5760006110f8565b600e546110f8908490611586565b9150428211611108576000611112565b6111128242611544565b9050919395975091939597565b60075460009081908190808203611141575050600b5460009250829150611235565b600b546000805a90506000805b898410801561115c57508582105b15611224578461116b81611878565b6007549096508610905061117e57600094505b60006007600001868154811061119657611196611891565b60009182526020808320909101546001600160a01b0316808352600d9091526040909120549091506111c790611622565b156111ea576111d7816001610a97565b156111ea57816111e681611878565b9250505b826111f481611878565b93505060005a90508085111561121b576112186112118683611544565b8790611586565b95505b935061114e9050565b600b85905590975095509193505050505b9193909250565b60008260000361124e575060006106d7565b600061125a83856118a7565b90508261126785836117eb565b146112be5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610671565b9392505050565b600081818112156106d757600080fd5b6000806112e283856118c6565b9050600083121580156112f55750838112155b8061130a575060008312801561130a57508381125b6112be57600080fd5b60008082121561132257600080fd5b5090565b6001600160a01b0382166000908152600460205260409020805490829055808211156113825760006113588383611544565b90506113648482611649565b80600560008282546113769190611907565b90915550610d5d915050565b80821015610d5d5760006113968284611544565b90506113a284826116a3565b80600560008282546113b4919061191f565b909155505050505050565b6000806113cb836109b9565b9050801561153b576001600160a01b0383166000908152600360205260409020546113f69082611586565b6001600160a01b038416600081815260036020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d906114459084815260200190565b60405180910390a260405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af11580156114c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e59190611936565b905080611534576001600160a01b03841660009081526003602052604090205461150f9083611544565b6001600160a01b03909416600090815260036020526040812094909455509192915050565b5092915050565b50600092915050565b60006112be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116dd565b6000806115938385611907565b9050838110156112be5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610671565b6000806115f28385611953565b9050600083121580156116055750838113155b8061130a575060008312801561130a57508381136112be57600080fd5b60004282111561163457506000919050565b600e546116414284611544565b101592915050565b6116836116646106bd8360015461123c90919063ffffffff16565b6001600160a01b038416600090815260026020526040902054906115e5565b6001600160a01b0390921660009081526002602052604090209190915550565b6116836116be6106bd8360015461123c90919063ffffffff16565b6001600160a01b038416600090815260026020526040902054906112d5565b600081848411156117015760405162461bcd60e51b81526004016106719190611992565b50600061170e848661191f565b95945050505050565b6001600160a01b038116811461093b57600080fd5b60006020828403121561173e57600080fd5b81356112be81611717565b60006020828403121561175b57600080fd5b5035919050565b801515811461093b57600080fd5b6000806040838503121561178357600080fd5b823561178e81611717565b9150602083013561179e81611762565b809150509250929050565b600080604083850312156117bc57600080fd5b82356117c781611717565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b60008261180857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561185457600080fd5b5051919050565b60006020828403121561186d57600080fd5b81516112be81611717565b60006001820161188a5761188a6117d5565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60008160001904831182151516156118c1576118c16117d5565b500290565b600080821280156001600160ff1b03849003851316156118e8576118e86117d5565b600160ff1b8390038412811615611901576119016117d5565b50500190565b6000821982111561191a5761191a6117d5565b500190565b600082821015611931576119316117d5565b500390565b60006020828403121561194857600080fd5b81516112be81611762565b60008083128015600160ff1b850184121615611971576119716117d5565b6001600160ff1b038401831381161561198c5761198c6117d5565b50500390565b600060208083528351808285015260005b818110156119bf578581018301518582016040015282016119a3565b818111156119d1576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220484a01491ce8cc2ae91672027f801cd6b42295eaa1509f43676c880de25d031664736f6c634300080f00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572