60806040526d629b8c891b267182b61400000000600a819055620000269060001962001ac5565b620000349060001962001af2565b600b556040805180820190915260098082526850617261766572736560b81b60209092019182526200006991600d9162001a09565b50604080518082019091526004808252635052565360e01b60209092019182526200009791600e9162001a09565b50600f805460ff19166012908117909155600560108190556011819055908190556013819055600a601481905560158190556016819055600d601755601880546001600160a01b0319167310ae5477f9b2a47d56745a02333647814dea5057179055601a805460ff60a81b1916600160a81b1790555462000144916103e89162000130916200158e620004bf602090811b91909117901c565b6200055360201b6200160d1790919060201c565b601b55670de0b6b3a7640000601c55601d805460ff191660011790553480156200016d57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600b543360009081526003602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa15801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a919062001b0c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae919062001b0c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000322919062001b0c565b601a80546001600160a01b03199081166001600160a01b0393841617909155601980549091169183169190911790556001600660006200036a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260068452828120805486166001908117909155601a80548416835260078652848320805488168317905554909216815260099384905291822080549094168117909355620003f16000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260099092528082208054841660019081179091558280527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b805490941617909255600a54915133926000805160206200490f833981519152916200048691815260200190565b60405180910390a3620004b8336000620004b26002600a546200055360201b6200160d1790919060201c565b6200059d565b5062001cc7565b600082620004d0575060006200054d565b6000620004de838562001b37565b905082620004ed858362001b59565b146200054a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007ba60201b60201c565b6001600160a01b038316620006035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840162000541565b60008111620006675760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840162000541565b60006200067430620007f6565b601c5490915081108015908190620006965750601a54600160a01b900460ff16155b8015620006b15750601a546001600160a01b03868116911614155b8015620006c75750601a54600160a81b900460ff165b15620006d857620006d88262000858565b601a546000906001600160a01b0387811691161480620007055750601a546001600160a01b038681169116145b156200070f575060015b601d5460ff1615806200073a57506001600160a01b03861660009081526006602052604090205460ff165b806200075e57506001600160a01b03851660009081526006602052604090205460ff165b1562000768575060005b601a546001600160a01b038781169116141562000786576016546014555b601a546001600160a01b0386811691161415620007a4576017546014555b620007b2868686846200096c565b505050505050565b60008183620007de5760405162461bcd60e51b815260040162000541919062001b70565b506000620007ed848662001b59565b95945050505050565b6001600160a01b03811660009081526007602052604081205460ff16156200083457506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546200054d9062000b80565b601a805460ff60a01b1916600160a01b179055620008768162000c18565b60185460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114620008c9576040519150601f19603f3d011682016040523d82523d6000602084013e620008ce565b606091505b5050905080620009215760405162461bcd60e51b815260206004820152601660248201527f6d61726b6574696e6720455448206e6f742073656e7400000000000000000000604482015260640162000541565b60408051848152602081018490527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15050601a805460ff60a01b1916905550565b806200097c576200097c62000d79565b6001600160a01b03841660009081526007602052604090205460ff168015620009be57506001600160a01b03831660009081526007602052604090205460ff16155b15620009d757620009d184848462000da9565b62000ae3565b6001600160a01b03841660009081526007602052604090205460ff1615801562000a1957506001600160a01b03831660009081526007602052604090205460ff165b1562000a2c57620009d184848462000f1a565b6001600160a01b03841660009081526007602052604090205460ff1615801562000a6f57506001600160a01b03831660009081526007602052604090205460ff16155b1562000a8257620009d184848462000ffb565b6001600160a01b03841660009081526007602052604090205460ff16801562000ac357506001600160a01b03831660009081526007602052604090205460ff165b1562000ad657620009d18484846200105b565b62000ae384848462000ffb565b6001600160a01b03831660009081526009602052604090205460ff1662000b6257601b5462000b1284620007f6565b111562000b625760405162461bcd60e51b815260206004820152601560248201527f42616c616e6365206c696d697420726561636865640000000000000000000000604482015260640162000541565b8062000b7a5762000b7a601354601255601554601455565b50505050565b6000600b5482111562000be95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000541565b600062000bf5620011b8565b905062000c1181846200055360201b6200160d1790919060201c565b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811062000c505762000c5062001bc8565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801562000caa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd0919062001b0c565b8160018151811062000ce65762000ce662001bc8565b6001600160a01b03928316602091820292909201015260195462000d0e9130911684620011eb565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac9479062000d4990859060009086903090429060040162001bde565b600060405180830381600087803b15801562000d6457600080fd5b505af1158015620007b2573d6000803e3d6000fd5b60125415801562000d8a5750601454155b1562000d9257565b601280546013556014805460155560009182905555565b600080808080808062000dbc8862001313565b965096509650965096509650965062000e0988600460008d6001600160a01b03166001600160a01b03168152602001908152602001600020546200137560201b6200164f1790919060201c565b6001600160a01b038b16600090815260046020908152604080832093909355600381529190205462000e469189906200164f62001375821b17901c565b6001600160a01b03808c16600090815260036020908152604080832094909455918c168152919091205462000e8691889062001691620013bf821b17901c565b6001600160a01b038a16600090815260036020526040902055801562000eb25762000eb28a8262001422565b811562000ec55762000ec58a836200154b565b62000ed185846200162e565b886001600160a01b03168a6001600160a01b03166000805160206200490f8339815191528660405162000f0691815260200190565b60405180910390a350505050505050505050565b600080808080808062000f2d8862001313565b965096509650965096509650965062000f7a87600360008d6001600160a01b03166001600160a01b03168152602001908152602001600020546200137560201b6200164f1790919060201c565b6001600160a01b03808c16600090815260036020908152604080832094909455918c16815260048252919091205462000fbe91869062001691620013bf821b17901c565b6001600160a01b038a16600090815260046020908152604080832093909355600381529190205462000e8691889062001691620013bf821b17901c565b60008080808080806200100e8862001313565b965096509650965096509650965062000e4687600360008d6001600160a01b03166001600160a01b03168152602001908152602001600020546200137560201b6200164f1790919060201c565b60008080808080806200106e8862001313565b9650965096509650965096509650620010bb88600460008d6001600160a01b03166001600160a01b03168152602001908152602001600020546200137560201b6200164f1790919060201c565b6001600160a01b038b166000908152600460209081526040808320939093556003815291902054620010f89189906200164f62001375821b17901c565b6001600160a01b03808c16600090815260036020908152604080832094909455918c1681526004825291909120546200113c91869062001691620013bf821b17901c565b6001600160a01b038a1660009081526004602090815260408083209390935560038152919020546200117991889062001691620013bf821b17901c565b6001600160a01b038a166000908152600360205260409020558115620011a557620011a58a836200154b565b801562000ec55762000ec58a8262001422565b60008080620011c662001673565b91509150620011e481836200055360201b6200160d1790919060201c565b9250505090565b6001600160a01b0383166200124f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000541565b6001600160a01b038216620012b25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000541565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000808080808080808080806200132a8c62001833565b93509350935093506000806000620013558f87876200134e620011b860201b60201c565b88620018ae565b919f509d509b509599509397509195509350505050919395979092949650565b60006200054a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200196560201b60201c565b600080620013ce838562001c51565b9050838110156200054a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000541565b60006200142e620011b8565b905060006200144c8284620004bf60201b6200158e1790919060201c565b60008052600360209081526000805160206200492f83398151915254919250620014829190839062001691620013bf821b17901c565b600080526000805160206200492f8339815191525560076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460ff161562001514576000805260046020908152600080516020620048ef83398151915254620014f991859062001691620013bf821b17901c565b600080526004602052600080516020620048ef833981519152555b6040518381526000906001600160a01b038616906000805160206200490f833981519152906020015b60405180910390a350505050565b600062001557620011b8565b90506000620015758284620004bf60201b6200158e1790919060201c565b30600090815260036020908152604090912054919250620015a29190839062001691620013bf821b17901c565b3060009081526003602090815260408083209390935560079052205460ff1615620016015730600090815260046020908152604090912054620015f091859062001691620013bf821b17901c565b306000908152600460205260409020555b60405183815230906001600160a01b038616906000805160206200490f833981519152906020016200153d565b6200164a82600b546200137560201b6200164f1790919060201c565b600b819055506200166c81600c54620013bf60201b620016911790919060201c565b600c555050565b600b54600a546000918291825b600854811015620017f357826003600060088481548110620016a657620016a662001bc8565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620017155750816004600060088481548110620016ee57620016ee62001bc8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200172c57600b54600a54945094505050509091565b6200178360036000600884815481106200174a576200174a62001bc8565b60009182526020808320909101546001600160a01b0316835282810193909352604090910190205485916200164f62001375821b17901c565b9250620017dc6004600060088481548110620017a357620017a362001bc8565b60009182526020808320909101546001600160a01b0316835282810193909352604090910190205484916200164f62001375821b17901c565b915080620017ea8162001c6c565b91505062001680565b5062001812600a54600b546200055360201b6200160d1790919060201c565b8210156200182a57600b54600a549350935050509091565b90939092509050565b60008080808062001844866200199b565b905060006200185387620019c0565b905060006200186288620019e5565b905060006200189e846200188a846200188a878e6200137560201b6200164f1790919060201c565b6200137560201b6200164f1790919060201c565b9992985090965091945092505050565b600080600080620018ce868a620004bf60201b6200158e1790919060201c565b90506000620018ec878a620004bf60201b6200158e1790919060201c565b905060006200190a888a620004bf60201b6200158e1790919060201c565b90506000620019288989620004bf60201b6200158e1790919060201c565b9050600062001950826200188a856200188a888a6200137560201b6200164f1790919060201c565b949d949c50929a509298505050505050505050565b600081848411156200198c5760405162461bcd60e51b815260040162000541919062001b70565b506000620007ed848662001af2565b60006200054d6103e86200013060105485620004bf60201b6200158e1790919060201c565b60006200054d6103e86200013060125485620004bf60201b6200158e1790919060201c565b60006200054d60646200013060145485620004bf60201b6200158e1790919060201c565b82805462001a179062001c8a565b90600052602060002090601f01602090048101928262001a3b576000855562001a86565b82601f1062001a5657805160ff191683800117855562001a86565b8280016001018555821562001a86579182015b8281111562001a8657825182559160200191906001019062001a69565b5062001a9492915062001a98565b5090565b5b8082111562001a94576000815560010162001a99565b634e487b7160e01b600052601260045260246000fd5b60008262001ad75762001ad762001aaf565b500690565b634e487b7160e01b600052601160045260246000fd5b60008282101562001b075762001b0762001adc565b500390565b60006020828403121562001b1f57600080fd5b81516001600160a01b03811681146200054a57600080fd5b600081600019048311821515161562001b545762001b5462001adc565b500290565b60008262001b6b5762001b6b62001aaf565b500490565b600060208083528351808285015260005b8181101562001b9f5785810183015185820160400152820162001b81565b8181111562001bb2576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101562001c305784516001600160a01b03168352938301939183019160010162001c09565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111562001c675762001c6762001adc565b500190565b600060001982141562001c835762001c8362001adc565b5060010190565b600181811c9082168062001c9f57607f821691505b6020821081141562001cc157634e487b7160e01b600052602260045260246000fd5b50919050565b612c188062001cd76000396000f3fe60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063c49b9a80116100c1578063de7cf7991161007a578063de7cf799146107f0578063e4d1a87414610806578063e632313c1461081c578063e8b94e5a1461083c578063ea2f0b371461085c578063f2fde38b1461087c57600080fd5b8063c49b9a801461070e578063d12a76881461072e578063d1eae07314610744578063db48598b1461075a578063dd4670641461078a578063dd62ed3e146107aa57600080fd5b8063a2b8a94711610113578063a2b8a9471461066e578063a457c2d71461068e578063a69df4b5146106ae578063a9059cbb146106c3578063b6c52324146106e3578063c0b0fda2146106f857600080fd5b80638da5cb5b146105c157806391d919a9146105df578063950eb5d5146105ff57806395d89b411461061f578063966b47c3146106345780639daeac761461064e57600080fd5b80633685d419116101fe5780634a74bb02116101b75780634a74bb02146104d957806352390c02146104fa5780635342acb41461051a57806370a0823114610553578063715018a61461057357806388f820201461058857600080fd5b80633685d4191461042357806339509351146104435780633b124fe714610463578063437823ec146104795780634549b0391461049957806349bd5a5e146104b957600080fd5b80631694505e116102505780631694505e1461035457806318160ddd1461038c57806323b872dd146103a15780632d3e474a146103c15780632d838119146103e1578063313ce5671461040157600080fd5b8063061c82d01461029857806306fdde03146102ba578063095ea7b3146102e55780630bd3a7f91461031557806313114a9d1461033557600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102b86102b33660046127ce565b61089c565b005b3480156102c657600080fd5b506102cf61090b565b6040516102dc91906127e7565b60405180910390f35b3480156102f157600080fd5b50610305610300366004612854565b61099d565b60405190151581526020016102dc565b34801561032157600080fd5b506102b8610330366004612880565b6109b4565b34801561034157600080fd5b50600c545b6040519081526020016102dc565b34801561036057600080fd5b50601954610374906001600160a01b031681565b6040516001600160a01b0390911681526020016102dc565b34801561039857600080fd5b50600a54610346565b3480156103ad57600080fd5b506103056103bc36600461289d565b610a3b565b3480156103cd57600080fd5b50601854610374906001600160a01b031681565b3480156103ed57600080fd5b506103466103fc3660046127ce565b610aa4565b34801561040d57600080fd5b50600f5460405160ff90911681526020016102dc565b34801561042f57600080fd5b506102b861043e366004612880565b610b28565b34801561044f57600080fd5b5061030561045e366004612854565b610caf565b34801561046f57600080fd5b5061034660125481565b34801561048557600080fd5b506102b8610494366004612880565b610ce5565b3480156104a557600080fd5b506103466104b43660046128f3565b610d33565b3480156104c557600080fd5b50601a54610374906001600160a01b031681565b3480156104e557600080fd5b50601a5461030590600160a81b900460ff1681565b34801561050657600080fd5b506102b8610515366004612880565b610dc2565b34801561052657600080fd5b50610305610535366004612880565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561055f57600080fd5b5061034661056e366004612880565b610ee5565b34801561057f57600080fd5b506102b8610f44565b34801561059457600080fd5b506103056105a3366004612880565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156105cd57600080fd5b506000546001600160a01b0316610374565b3480156105eb57600080fd5b506102b86105fa366004612880565b610fa6565b34801561060b57600080fd5b506102b861061a3660046127ce565b611029565b34801561062b57600080fd5b506102cf611088565b34801561064057600080fd5b50601d546103059060ff1681565b34801561065a57600080fd5b506102b861066936600461291f565b611097565b34801561067a57600080fd5b506102b86106893660046127ce565b611102565b34801561069a57600080fd5b506103056106a9366004612854565b611161565b3480156106ba57600080fd5b506102b86111b0565b3480156106cf57600080fd5b506103056106de366004612854565b6112b6565b3480156106ef57600080fd5b50600254610346565b34801561070457600080fd5b5061034660105481565b34801561071a57600080fd5b506102b861072936600461291f565b6112c3565b34801561073a57600080fd5b50610346601c5481565b34801561075057600080fd5b50610346601b5481565b34801561076657600080fd5b50610305610775366004612880565b60096020526000908152604090205460ff1681565b34801561079657600080fd5b506102b86107a53660046127ce565b61133a565b3480156107b657600080fd5b506103466107c536600461293a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107fc57600080fd5b5061034660175481565b34801561081257600080fd5b5061034660165481565b34801561082857600080fd5b506102b86108373660046127ce565b6113bf565b34801561084857600080fd5b506102b86108573660046127ce565b6113ee565b34801561086857600080fd5b506102b8610877366004612880565b61146b565b34801561088857600080fd5b506102b8610897366004612880565b6114b6565b6000546001600160a01b031633146108cf5760405162461bcd60e51b81526004016108c690612973565b60405180910390fd5b60128190556040518181527f19da908cae03512cf29c19a5842b2904a06fd24ef9982759c78f9379831ed70f906020015b60405180910390a150565b6060600d805461091a906129a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610946906129a8565b80156109935780601f1061096857610100808354040283529160200191610993565b820191906000526020600020905b81548152906001019060200180831161097657829003601f168201915b5050505050905090565b60006109aa3384846116f0565b5060015b92915050565b6000546001600160a01b031633146109de5760405162461bcd60e51b81526004016108c690612973565b6001600160a01b03811660009081526009602052604090205460ff1615610a175760405162461bcd60e51b81526004016108c6906129e3565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000610a48848484611814565b610a9a8433610a9585604051806060016040528060288152602001612b76602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611a1c565b6116f0565b5060019392505050565b6000600b54821115610b0b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108c6565b6000610b15611a56565b9050610b21838261160d565b9392505050565b6000546001600160a01b03163314610b525760405162461bcd60e51b81526004016108c690612973565b6001600160a01b03811660009081526007602052604090205460ff16610b8a5760405162461bcd60e51b81526004016108c6906129e3565b60005b600854811015610cab57816001600160a01b031660088281548110610bb457610bb4612a1a565b6000918252602090912001546001600160a01b03161415610c995760088054610bdf90600190612a46565b81548110610bef57610bef612a1a565b600091825260209091200154600880546001600160a01b039092169183908110610c1b57610c1b612a1a565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff191690556008805480610c7357610c73612a5d565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ca381612a73565b915050610b8d565b5050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109aa918590610a959086611691565b6000546001600160a01b03163314610d0f5760405162461bcd60e51b81526004016108c690612973565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000600a54831115610d875760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108c6565b81610da7576000610d9784611a79565b509496506109ae95505050505050565b6000610db284611a79565b509396506109ae95505050505050565b6000546001600160a01b03163314610dec5760405162461bcd60e51b81526004016108c690612973565b6001600160a01b03811660009081526007602052604090205460ff1615610e255760405162461bcd60e51b81526004016108c6906129e3565b6001600160a01b03811660009081526003602052604090205415610e7f576001600160a01b038116600090815260036020526040902054610e6590610aa4565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff1615610f2257506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546109ae90610aa4565b6000546001600160a01b03163314610f6e5760405162461bcd60e51b81526004016108c690612973565b600080546040516001600160a01b0390911690600080516020612b9e833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610fd05760405162461bcd60e51b81526004016108c690612973565b6001600160a01b03811660009081526009602052604090205460ff166110085760405162461bcd60e51b81526004016108c6906129e3565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000546001600160a01b031633146110535760405162461bcd60e51b81526004016108c690612973565b60168190556040518181527f6015209cdab8f6bdf665de6893d6d42072d5010f9bb7d57613f678900249fd4f90602001610900565b6060600e805461091a906129a8565b6000546001600160a01b031633146110c15760405162461bcd60e51b81526004016108c690612973565b601d805460ff19168215159081179091556040519081527fd4842ff41c1cd38f5ef90a0583f64cf8fa8294a9b0868849a249992139c79a5790602001610900565b6000546001600160a01b0316331461112c5760405162461bcd60e51b81526004016108c690612973565b60178190556040518181527f894d603ff8413beb11dd008d602a13161d6032c7a09a5f39223aa5b73b3e6a2290602001610900565b60006109aa3384610a9585604051806060016040528060258152602001612bbe602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611a1c565b6001546001600160a01b031633146112165760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016108c6565b60025442116112675760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016108c6565b600154600080546040516001600160a01b039384169390911691600080516020612b9e83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006109aa338484611814565b6000546001600160a01b031633146112ed5760405162461bcd60e51b81526004016108c690612973565b601a8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061090090831515815260200190565b6000546001600160a01b031633146113645760405162461bcd60e51b81526004016108c690612973565b60008054600180546001600160a01b03199081166001600160a01b038416179091551690556113938142612a8e565b600255600080546040516001600160a01b0390911690600080516020612b9e833981519152908390a350565b6000546001600160a01b031633146113e95760405162461bcd60e51b81526004016108c690612973565b601c55565b6000546001600160a01b031633146114185760405162461bcd60e51b81526004016108c690612973565b611438606461143283600a5461158e90919063ffffffff16565b9061160d565b601b556040518181527fb6c7b4e7480a19c257e5c620bb1f94260496cd483d6b616ec07439f8c7670dbc90602001610900565b6000546001600160a01b031633146114955760405162461bcd60e51b81526004016108c690612973565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146114e05760405162461bcd60e51b81526004016108c690612973565b6001600160a01b0381166115455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c6565b600080546040516001600160a01b0380851693921691600080516020612b9e83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008261159d575060006109ae565b60006115a98385612aa6565b9050826115b68583612ac5565b14610b215760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c6565b6000610b2183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ad4565b6000610b2183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1c565b60008061169e8385612a8e565b905083811015610b215760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c6565b6001600160a01b0383166117525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108c6565b6001600160a01b0382166117b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108c6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118785760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108c6565b600081116118da5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108c6565b60006118e530610ee5565b601c54909150811080159081906119065750601a54600160a01b900460ff16155b80156119205750601a546001600160a01b03868116911614155b80156119355750601a54600160a81b900460ff165b156119435761194382611b02565b601a546000906001600160a01b038781169116148061196f5750601a546001600160a01b038681169116145b15611978575060015b601d5460ff1615806119a257506001600160a01b03861660009081526006602052604090205460ff165b806119c557506001600160a01b03851660009081526006602052604090205460ff165b156119ce575060005b601a546001600160a01b03878116911614156119eb576016546014555b601a546001600160a01b0386811691161415611a08576017546014555b611a1486868684611c09565b505050505050565b60008184841115611a405760405162461bcd60e51b81526004016108c691906127e7565b506000611a4d8486612a46565b95945050505050565b6000806000611a63611df8565b9092509050611a72828261160d565b9250505090565b6000806000806000806000806000806000611a938c611f7a565b93509350935093506000806000611ab48f8787611aae611a56565b88611fcf565b919f509d509b509599509397509195509350505050919395979092949650565b60008183611af55760405162461bcd60e51b81526004016108c691906127e7565b506000611a4d8486612ac5565b601a805460ff60a01b1916600160a01b179055611b1e81612031565b60185460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114611b6f576040519150601f19603f3d011682016040523d82523d6000602084013e611b74565b606091505b5050905080611bbe5760405162461bcd60e51b81526020600482015260166024820152751b585c9ad95d1a5b99c8115512081b9bdd081cd95b9d60521b60448201526064016108c6565b60408051848152602081018490527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15050601a805460ff60a01b1916905550565b80611c1657611c16612183565b6001600160a01b03841660009081526007602052604090205460ff168015611c5757506001600160a01b03831660009081526007602052604090205460ff16155b15611c6c57611c678484846121b1565b611d6a565b6001600160a01b03841660009081526007602052604090205460ff16158015611cad57506001600160a01b03831660009081526007602052604090205460ff165b15611cbd57611c67848484612305565b6001600160a01b03841660009081526007602052604090205460ff16158015611cff57506001600160a01b03831660009081526007602052604090205460ff16155b15611d0f57611c678484846123c4565b6001600160a01b03841660009081526007602052604090205460ff168015611d4f57506001600160a01b03831660009081526007602052604090205460ff165b15611d5f57611c6784848461241e565b611d6a8484846123c4565b6001600160a01b03831660009081526009602052604090205460ff16611ddc57601b54611d9684610ee5565b1115611ddc5760405162461bcd60e51b815260206004820152601560248201527410985b185b98d9481b1a5b5a5d081c995858da1959605a1b60448201526064016108c6565b80611df257611df2601354601255601554601455565b50505050565b600b54600a546000918291825b600854811015611f4a57826003600060088481548110611e2757611e27612a1a565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611e925750816004600060088481548110611e6b57611e6b612a1a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611ea857600b54600a54945094505050509091565b611eee6003600060088481548110611ec257611ec2612a1a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061164f565b9250611f366004600060088481548110611f0a57611f0a612a1a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061164f565b915080611f4281612a73565b915050611e05565b50600a54600b54611f5a9161160d565b821015611f7157600b54600a549350935050509091565b90939092509050565b6000806000806000611f8b86612545565b90506000611f9887612562565b90506000611fa58861257f565b90506000611fbf84611fb984818d8861164f565b9061164f565b9992985090965091945092505050565b6000808080611fde898761158e565b90506000611fec898861158e565b90506000611ffa898961158e565b90506000612008888a61158e565b9050600061201c82611fb98581898961164f565b949d949c50929a509298505050505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061206657612066612a1a565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e39190612ae7565b816001815181106120f6576120f6612a1a565b6001600160a01b03928316602091820292909201015260195461211c91309116846116f0565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790612155908590600090869030904290600401612b04565b600060405180830381600087803b15801561216f57600080fd5b505af1158015611a14573d6000803e3d6000fd5b6012541580156121935750601454155b1561219a57565b601280546013556014805460155560009182905555565b60008060008060008060006121c588611a79565b965096509650965096509650965061220b88600460008d6001600160a01b03166001600160a01b031681526020019081526020016000205461164f90919063ffffffff16565b6001600160a01b038b1660009081526004602090815260408083209390935560039052205461223a908861164f565b6001600160a01b03808c1660009081526003602052604080822093909355908b16815220546122699087611691565b6001600160a01b038a166000908152600360205260409020558015612292576122928a8261259b565b81156122a2576122a28a836126e9565b6122ac85846127aa565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516122f191815260200190565b60405180910390a350505050505050505050565b600080600080600080600061231988611a79565b965096509650965096509650965061235f87600360008d6001600160a01b03166001600160a01b031681526020019081526020016000205461164f90919063ffffffff16565b6001600160a01b03808c16600090815260036020908152604080832094909455918c168152600490915220546123959085611691565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546122699087611691565b60008060008060008060006123d888611a79565b965096509650965096509650965061223a87600360008d6001600160a01b03166001600160a01b031681526020019081526020016000205461164f90919063ffffffff16565b600080600080600080600061243288611a79565b965096509650965096509650965061247888600460008d6001600160a01b03166001600160a01b031681526020019081526020016000205461164f90919063ffffffff16565b6001600160a01b038b166000908152600460209081526040808320939093556003905220546124a7908861164f565b6001600160a01b03808c16600090815260036020908152604080832094909455918c168152600490915220546124dd9085611691565b6001600160a01b038a1660009081526004602090815260408083209390935560039052205461250c9087611691565b6001600160a01b038a166000908152600360205260409020558115612535576125358a836126e9565b80156122a2576122a28a8261259b565b60006109ae6103e86114326010548561158e90919063ffffffff16565b60006109ae6103e86114326012548561158e90919063ffffffff16565b60006109ae60646114326014548561158e90919063ffffffff16565b60006125a5611a56565b905060006125b3838361158e565b6000805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff549091506125eb9082611691565b600080527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5560076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460ff16156126a1576000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec546126759084611691565b6000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec555b6040518381526000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a350505050565b60006126f3611a56565b90506000612701838361158e565b3060009081526003602052604090205490915061271e9082611691565b3060009081526003602090815260408083209390935560079052205460ff161561276d573060009081526004602052604090205461275c9084611691565b306000908152600460205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016126db565b600b546127b7908361164f565b600b55600c546127c79082611691565b600c555050565b6000602082840312156127e057600080fd5b5035919050565b600060208083528351808285015260005b81811015612814578581018301518582016040015282016127f8565b81811115612826576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461285157600080fd5b50565b6000806040838503121561286757600080fd5b82356128728161283c565b946020939093013593505050565b60006020828403121561289257600080fd5b8135610b218161283c565b6000806000606084860312156128b257600080fd5b83356128bd8161283c565b925060208401356128cd8161283c565b929592945050506040919091013590565b803580151581146128ee57600080fd5b919050565b6000806040838503121561290657600080fd5b82359150612916602084016128de565b90509250929050565b60006020828403121561293157600080fd5b610b21826128de565b6000806040838503121561294d57600080fd5b82356129588161283c565b915060208301356129688161283c565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806129bc57607f821691505b602082108114156129dd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601b908201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015612a5857612a58612a30565b500390565b634e487b7160e01b600052603160045260246000fd5b6000600019821415612a8757612a87612a30565b5060010190565b60008219821115612aa157612aa1612a30565b500190565b6000816000190483118215151615612ac057612ac0612a30565b500290565b600082612ae257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612af957600080fd5b8151610b218161283c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b545784516001600160a01b031683529383019391830191600101612b2f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201de0e3da02837175e6d854751f05a53b04eaa5839a47f820eac5f5793c11390c64736f6c634300080a003317ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ecddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff