60a0604052600a805461ffff191690556020600e5534801562000020575f80fd5b506040805180820182526004808252631d195cdd60e21b60208084018290528451808601909552918452908301529060036200005d83826200051c565b5060046200006c82826200051c565b5050505f620000806200020960201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35073dd9501781fa1c77584b0c55e0e68607af3c35840620000ef8160016200020d565b6001600160a01b0381166080526d14bddab3e51a57cff87a500000006103e86200011b82600a620005fc565b62000127919062000616565b6009556103e86200013a826005620005fc565b62000146919062000616565b600855600780546001600160a01b03191673f267fb1744cbabb13e1954b96632568954bf0ef01790556200018e620001866005546001600160a01b031690565b600162000285565b6200019b30600162000285565b620001ba620001b26005546001600160a01b031690565b60016200020d565b620001c73060016200020d565b620001ed336064620001db846006620005fc565b620001e7919062000616565b6200032d565b62000201306064620001db84605e620005fc565b50506200064c565b3390565b6005546001600160a01b031633146200025b5760405162461bcd60e51b815260206004820181905260248201525f805160206200232183398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314620002cf5760405162461bcd60e51b815260206004820181905260248201525f8051602062002321833981519152604482015260640162000252565b6001600160a01b0382165f818152600f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620003855760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000252565b60025462000394908262000414565b6002556001600160a01b0382165f90815260208190526040902054620003bb908262000414565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b5f8062000422838562000636565b905083811015620004765760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000252565b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004a857607f821691505b602082108103620004c757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200040f57805f5260205f20601f840160051c81016020851015620004f45750805b601f840160051c820191505b8181101562000515575f815560010162000500565b5050505050565b81516001600160401b038111156200053857620005386200047f565b620005508162000549845462000493565b84620004cd565b602080601f83116001811462000586575f84156200056e5750858301515b5f19600386901b1c1916600185901b178555620005e0565b5f85815260208120601f198616915b82811015620005b65788860151825594840194600190910190840162000595565b5085821015620005d457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620004795762000479620005e8565b5f826200063157634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620004795762000479620005e8565b608051611c846200069d5f395f818161024801528181610946015281816109d501528181610af101528181610b1901528181610f5f015281816116a10152818161175801526117940152611c845ff3fe6080604052600436106101b2575f3560e01c80637dfcbe34116100e7578063c024666811610087578063dd62ed3e11610062578063dd62ed3e146104fb578063e2f456051461053f578063f2fde38b14610554578063f8b45b0514610573575f80fd5b8063c02466681461049a578063c9567bf9146104b9578063d9c81c57146104cd575f80fd5b806395d89b41116100c257806395d89b4114610429578063a457c2d71461043d578063a9059cbb1461045c578063b91ebc881461047b575f80fd5b80637dfcbe34146103d45780638da5cb5b146103ed578063924de9b71461040a575f80fd5b806339509351116101525780636ddd17131161012d5780636ddd17131461034f57806370a082311461036d578063715018a6146103a157806375f0a874146103b5575f80fd5b806339509351146102da57806349bd5a5e146102f95780634fbee19314610318575f80fd5b80631694505e1161018d5780631694505e1461023757806318160ddd1461028257806323b872dd146102a0578063313ce567146102bf575f80fd5b806306fdde03146101bd578063095ea7b3146101e75780630c77a8f614610216575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b506101d1610588565b6040516101de919061182e565b60405180910390f35b3480156101f2575f80fd5b50610206610201366004611891565b610618565b60405190151581526020016101de565b348015610221575f80fd5b506102356102303660046118cf565b61062e565b005b348015610242575f80fd5b5061026a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101de565b34801561028d575f80fd5b506002545b6040519081526020016101de565b3480156102ab575f80fd5b506102066102ba366004611902565b61068b565b3480156102ca575f80fd5b50604051601281526020016101de565b3480156102e5575f80fd5b506102066102f4366004611891565b6106f2565b348015610304575f80fd5b5060065461026a906001600160a01b031681565b348015610323575f80fd5b50610206610332366004611940565b6001600160a01b03165f908152600f602052604090205460ff1690565b34801561035a575f80fd5b50600a5461020690610100900460ff1681565b348015610378575f80fd5b50610292610387366004611940565b6001600160a01b03165f9081526020819052604090205490565b3480156103ac575f80fd5b50610235610727565b3480156103c0575f80fd5b5060075461026a906001600160a01b031681565b3480156103df575f80fd5b50600a546102069060ff1681565b3480156103f8575f80fd5b506005546001600160a01b031661026a565b348015610415575f80fd5b5061023561042436600461195b565b61079a565b348015610434575f80fd5b506101d16107de565b348015610448575f80fd5b50610206610457366004611891565b6107ed565b348015610467575f80fd5b50610206610476366004611891565b61083a565b348015610486575f80fd5b50610235610495366004611940565b610846565b3480156104a5575f80fd5b506102356104b43660046118cf565b610892565b3480156104c4575f80fd5b5061023561091a565b3480156104d8575f80fd5b506102066104e7366004611940565b60106020525f908152604090205460ff1681565b348015610506575f80fd5b50610292610515366004611974565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561054a575f80fd5b5061029260085481565b34801561055f575f80fd5b5061023561056e366004611940565b610c1d565b34801561057e575f80fd5b5061029260095481565b606060038054610597906119ab565b80601f01602080910402602001604051908101604052809291908181526020018280546105c3906119ab565b801561060e5780601f106105e55761010080835404028352916020019161060e565b820191905f5260205f20905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b5f610624338484610d07565b5060015b92915050565b6005546001600160a01b031633146106615760405162461bcd60e51b8152600401610658906119e3565b60405180910390fd5b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b5f610697848484610e2b565b6106e884336106e385604051806060016040528060288152602001611c02602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190611368565b610d07565b5060019392505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106249185906106e390866113a0565b6005546001600160a01b031633146107515760405162461bcd60e51b8152600401610658906119e3565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146107c45760405162461bcd60e51b8152600401610658906119e3565b600a80549115156101000261ff0019909216919091179055565b606060048054610597906119ab565b5f61062433846106e385604051806060016040528060258152602001611c2a60259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190611368565b5f610624338484610e2b565b6005546001600160a01b031633146108705760405162461bcd60e51b8152600401610658906119e3565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146108bc5760405162461bcd60e51b8152600401610658906119e3565b6001600160a01b0382165f818152600f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146109445760405162461bcd60e51b8152600401610658906119e3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c49190611a18565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a539190611a18565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac19190611a18565b600680546001600160a01b0319166001600160a01b03929092169182179055610aeb90600161062e565b610b17307f00000000000000000000000000000000000000000000000000000000000000005f19610d07565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610b66306001600160a01b03165f9081526020819052604090205490565b5f80610b7a6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610be0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c059190611a33565b5050600a805443600b5561ffff191661010117905550565b6005546001600160a01b03163314610c475760405162461bcd60e51b8152600401610658906119e3565b6001600160a01b038116610cac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610658565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610658565b6001600160a01b038216610dca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610658565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e515760405162461bcd60e51b815260040161065890611a5e565b6001600160a01b038216610e775760405162461bcd60e51b815260040161065890611aa3565b805f03610e8e57610e8983835f611405565b505050565b600a5460ff168015610ea157505f600b54115b8015610eba5750600b54610eb690600c611afa565b4310155b15610ef157600a805460ff191690555f600e556064610ed860025490565b610ee3906002611b0d565b610eed9190611b24565b6009555b600a5460ff168015610f1157506005546001600160a01b03848116911614155b8015610f2b57506005546001600160a01b03838116911614155b8015610f3f57506001600160a01b03821615155b8015610f5657506001600160a01b03821661dead14155b8015610f9457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b8015610fae57506006546001600160a01b03838116911614155b8015610fc45750600654600160a01b900460ff16155b1561107057325f908152600c6020526040902054431161105e5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610658565b325f908152600c602052604090204390555b6001600160a01b0382165f9081526010602052604090205460ff1661117b5742600b54036111125760026009546110a79190611b24565b6001600160a01b0383165f908152602081905260409020546110c99083611afa565b111561110d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610658565b61117b565b6009546001600160a01b0383165f908152602081905260409020546111379083611afa565b111561117b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610658565b305f90815260208190526040902054600854811080159081906111a55750600a54610100900460ff165b80156111bb5750600654600160a01b900460ff16155b80156111d557506006546001600160a01b03868116911614155b80156111f957506001600160a01b0385165f908152600f602052604090205460ff16155b801561121d57506001600160a01b0384165f908152600f602052604090205460ff16155b801561122a5750600d5443115b15611258576006805460ff60a01b1916600160a01b17905561124a61150b565b6006805460ff60a01b191690555b6006545f90600160a01b900460ff161580156112765750600a5460ff165b6001600160a01b0387165f908152600f602052604090205490915060ff16806112b657506001600160a01b0385165f908152600f602052604090205460ff165b156112be57505f5b5f8115611354576006546001600160a01b03878116911614806112ee57506006546001600160a01b038881169116145b156113365742600b540361131957611312606461130c87602d61158d565b9061160b565b9050611336565b611333606461130c600e548861158d90919063ffffffff16565b90505b801561134757611347873083611405565b6113518186611b43565b94505b61135f878787611405565b50505050505050565b5f818484111561138b5760405162461bcd60e51b8152600401610658919061182e565b505f6113978486611b43565b95945050505050565b5f806113ac8385611afa565b9050838110156113fe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610658565b9392505050565b6001600160a01b03831661142b5760405162461bcd60e51b815260040161065890611a5e565b6001600160a01b0382166114515760405162461bcd60e51b815260040161065890611aa3565b61148d81604051806060016040528060268152602001611bdc602691396001600160a01b0386165f908152602081905260409020549190611368565b6001600160a01b038085165f9081526020819052604080822093909355908416815220546114bb90826113a0565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610e1e565b305f9081526020819052604090205460085481116115265750565b5043600d556008546115378161164c565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f8114611581576040519150601f19603f3d011682016040523d82523d5f602084013e611586565b606091505b5050505050565b5f825f0361159c57505f610628565b5f6115a78385611b0d565b9050826115b48583611b24565b146113fe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610658565b5f6113fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611802565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061167f5761167f611b56565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061171f9190611a18565b8160018151811061173257611732611b56565b60200260200101906001600160a01b031690816001600160a01b03168152505061177d307f000000000000000000000000000000000000000000000000000000000000000084610d07565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906117d19085905f90869030904290600401611b6a565b5f604051808303815f87803b1580156117e8575f80fd5b505af11580156117fa573d5f803e3d5ffd5b505050505050565b5f81836118225760405162461bcd60e51b8152600401610658919061182e565b505f6113978486611b24565b5f602080835283518060208501525f5b8181101561185a5785810183015185820160400152820161183e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461188e575f80fd5b50565b5f80604083850312156118a2575f80fd5b82356118ad8161187a565b946020939093013593505050565b803580151581146118ca575f80fd5b919050565b5f80604083850312156118e0575f80fd5b82356118eb8161187a565b91506118f9602084016118bb565b90509250929050565b5f805f60608486031215611914575f80fd5b833561191f8161187a565b9250602084013561192f8161187a565b929592945050506040919091013590565b5f60208284031215611950575f80fd5b81356113fe8161187a565b5f6020828403121561196b575f80fd5b6113fe826118bb565b5f8060408385031215611985575f80fd5b82356119908161187a565b915060208301356119a08161187a565b809150509250929050565b600181811c908216806119bf57607f821691505b6020821081036119dd57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a28575f80fd5b81516113fe8161187a565b5f805f60608486031215611a45575f80fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561062857610628611ae6565b808202811582820484141761062857610628611ae6565b5f82611b3e57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561062857610628611ae6565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611bba5784516001600160a01b031683529383019391830191600101611b95565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220167c7b3b831f3f45b894c7692a08065956ce710bb6ae2bca19499403b2c6a04064736f6c634300081800334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572