0x6080604052600436106102b25760003560e01c80638ea5220f11610175578063c0246668116100dc578063e884f26011610095578063f248ae391161006f578063f248ae391461084f578063f2fde38b1461086f578063f63743421461088f578063f8b45b05146108a557600080fd5b8063e884f26014610804578063eea96c5714610819578063f11a24d31461083957600080fd5b8063c024666814610742578063c876d0b914610762578063c8c8ebe41461077c578063d85ba06314610792578063dd62ed3e146107a8578063e2f45605146107ee57600080fd5b8063a0d82dc51161012e578063a0d82dc51461067e578063a457c2d714610694578063a9059cbb146106b4578063b107668b146106d4578063b62496f5146106f4578063bbc0c7421461072357600080fd5b80638ea5220f146105e7578063921369131461060757806395d89b411461061d5780639a7a23d6146106325780639c3b4fdc146106525780639fccce321461066857600080fd5b80633950935111610219578063715018a6116101d2578063715018a614610549578063751039fc1461055e5780637571336a146105735780637bce5a041461059357806382aa7c68146105a95780638da5cb5b146105c957600080fd5b8063395093511461046a5780634a62bb651461048a5780634fbee193146104a45780636a486a8e146104dd5780636ddd1713146104f357806370a082311461051357600080fd5b80631694505e1161026b5780631694505e146103ab57806318160ddd146103e35780631a8145bb146104025780631f3fed8f1461041857806323b872dd1461042e578063313ce5671461044e57600080fd5b806306fdde03146102be57806307522de9146102e9578063095ea7b31461030b57806309e89af71461033b57806310d5de531461035b57806316802f161461038b57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d36108bb565b6040516102e09190612077565b60405180910390f35b3480156102f557600080fd5b506103096103043660046120cc565b61094d565b005b34801561031757600080fd5b5061032b6103263660046120fd565b610a90565b60405190151581526020016102e0565b34801561034757600080fd5b5061032b6103563660046120cc565b610aa7565b34801561036757600080fd5b5061032b610376366004612129565b601f6020526000908152604090205460ff1681565b34801561039757600080fd5b506103096103a6366004612146565b610c02565b3480156103b757600080fd5b506006546103cb906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b3480156103ef57600080fd5b506002545b6040519081526020016102e0565b34801561040e57600080fd5b506103f460145481565b34801561042457600080fd5b506103f460135481565b34801561043a57600080fd5b5061032b610449366004612172565b610caa565b34801561045a57600080fd5b50604051601281526020016102e0565b34801561047657600080fd5b5061032b6104853660046120fd565b610d13565b34801561049657600080fd5b50600d5461032b9060ff1681565b3480156104b057600080fd5b5061032b6104bf366004612129565b6001600160a01b03166000908152601e602052604090205460ff1690565b3480156104e957600080fd5b506103f460165481565b3480156104ff57600080fd5b50600d5461032b9062010000900460ff1681565b34801561051f57600080fd5b506103f461052e366004612129565b6001600160a01b031660009081526020819052604090205490565b34801561055557600080fd5b50610309610d49565b34801561056a57600080fd5b5061032b610dbd565b34801561057f57600080fd5b5061030961058e3660046121b3565b610dfa565b34801561059f57600080fd5b506103f4601b5481565b3480156105b557600080fd5b506103096105c43660046120cc565b610e4f565b3480156105d557600080fd5b506005546001600160a01b03166103cb565b3480156105f357600080fd5b506009546103cb906001600160a01b031681565b34801561061357600080fd5b506103f460175481565b34801561062957600080fd5b506102d3610f7f565b34801561063e57600080fd5b5061030961064d3660046121b3565b610f8e565b34801561065e57600080fd5b506103f4601d5481565b34801561067457600080fd5b506103f460155481565b34801561068a57600080fd5b506103f460195481565b3480156106a057600080fd5b5061032b6106af3660046120fd565b61104a565b3480156106c057600080fd5b5061032b6106cf3660046120fd565b611099565b3480156106e057600080fd5b506103096106ef3660046120cc565b6110a6565b34801561070057600080fd5b5061032b61070f366004612129565b602080526000908152604090205460ff1681565b34801561072f57600080fd5b50600d5461032b90610100900460ff1681565b34801561074e57600080fd5b5061030961075d3660046121b3565b61113f565b34801561076e57600080fd5b5060105461032b9060ff1681565b34801561078857600080fd5b506103f4600a5481565b34801561079e57600080fd5b506103f4601a5481565b3480156107b457600080fd5b506103f46107c33660046121f1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107fa57600080fd5b506103f4600b5481565b34801561081057600080fd5b5061032b6111c8565b34801561082557600080fd5b506008546103cb906001600160a01b031681565b34801561084557600080fd5b506103f4601c5481565b34801561085b57600080fd5b506007546103cb906001600160a01b031681565b34801561087b57600080fd5b5061030961088a366004612129565b611205565b34801561089b57600080fd5b506103f460185481565b3480156108b157600080fd5b506103f4600c5481565b6060600380546108ca9061221f565b80601f01602080910402602001604051908101604052809291908181526020018280546108f69061221f565b80156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b5050505050905090565b6008546001600160a01b0316331461096457600080fd5b6007546001600160a01b031660009081526020819052604090205460018111156109a9576007546109a9906001600160a01b0316306109a460018561226f565b611356565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109f957600080fd5b505af1158015610a0d573d6000803e3d6000fd5b50505050610a36610a1c601290565b610a2790600a61236a565b610a319084612379565b611a1a565b6008546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610a83576040519150601f19603f3d011682016040523d82523d6000602084013e610a88565b606091505b505050505050565b6000610a9d338484611b6c565b5060015b92915050565b6005546000906001600160a01b03163314610add5760405162461bcd60e51b8152600401610ad490612398565b60405180910390fd5b620186a0610aea60025490565b610af5906001612379565b610aff91906123e3565b821015610b6c5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610ad4565b6103e8610b7860025490565b610b83906005612379565b610b8d91906123e3565b821115610bf95760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610ad4565b50600b55600190565b6008546001600160a01b03163314610c1957600080fd5b60178390556018829055601981905580610c3383856123f7565b610c3d91906123f7565b601681905560641015610ca55760405162461bcd60e51b815260206004820152602a60248201527f72656d6f766573203130302066726f6d206665657320746f20302066726f6d2060448201526930b73c90373ab6b132b960b11b6064820152608401610ad4565b505050565b6000610cb7848484611356565b610d098433610d0485604051806060016040528060288152602001612576602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611c91565b611b6c565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a9d918590610d0490866112f0565b6005546001600160a01b03163314610d735760405162461bcd60e51b8152600401610ad490612398565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610dea5760405162461bcd60e51b8152600401610ad490612398565b50600d805460ff19169055600190565b6005546001600160a01b03163314610e245760405162461bcd60e51b8152600401610ad490612398565b6001600160a01b03919091166000908152601f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e795760405162461bcd60e51b8152600401610ad490612398565b6001811115610ebf5760405162461bcd60e51b8152602060048201526012602482015271646f6e27742063617463682068756d616e7360701b6044820152606401610ad4565b600d805462ff0000191662010000179055601054610100900460ff161515600114610f155760405162461bcd60e51b8152600401610ad490602080825260049082015263646f6e6560e01b604082015260600190565b6010805461ff0019169055610f3c8143601155601255600d805461ff001916610100179055565b60105460405161010090910460ff16151581527fbd657b4e94b205761f2ca5be9988d7b243c828f625c0746c6581ec528e507c479060200160405180910390a150565b6060600480546108ca9061221f565b6005546001600160a01b03163314610fb85760405162461bcd60e51b8152600401610ad490612398565b6007546001600160a01b039081169083160361103c5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610ad4565b6110468282611ccb565b5050565b6000610a9d3384610d048560405180606001604052806025815260200161259e602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611c91565b6000610a9d338484611356565b6008546001600160a01b031633146110bd57600080fd5b6103e86110c960025490565b6110d391906123e3565b81101561113a5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610ad4565b600a55565b6005546001600160a01b031633146111695760405162461bcd60e51b8152600401610ad490612398565b6001600160a01b0382166000818152601e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546000906001600160a01b031633146111f55760405162461bcd60e51b8152600401610ad490612398565b506010805460ff19169055600190565b6005546001600160a01b0316331461122f5760405162461bcd60e51b8152600401610ad490612398565b6001600160a01b0381166112945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad4565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000806112fd83856123f7565b90508381101561134f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ad4565b9392505050565b6001600160a01b03831661137c5760405162461bcd60e51b8152600401610ad49061240f565b6001600160a01b0382166113a25760405162461bcd60e51b8152600401610ad490612454565b6001600160a01b0383166000908152600e602052604090205460ff161580156113e457506001600160a01b0382166000908152600e602052604090205460ff16155b6113ed57600080fd5b8060000361140157610ca583836000611d1e565b600d5460ff1615611681576005546001600160a01b0384811691161480159061143857506005546001600160a01b03838116911614155b801561144c57506001600160a01b03821615155b801561146357506001600160a01b03821661dead14155b80156114795750600754600160a01b900460ff16155b1561168157600d54610100900460ff16611511576001600160a01b0383166000908152601e602052604090205460ff16806114cc57506001600160a01b0382166000908152601e602052604090205460ff165b6115115760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610ad4565b6001600160a01b038316600090815260208052604090205460ff16801561155157506001600160a01b0382166000908152601f602052604090205460ff16155b156115cb57600a548111156115c65760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610ad4565b611681565b6001600160a01b038216600090815260208052604090205460ff16801561160b57506001600160a01b0383166000908152601f602052604090205460ff16155b1561168157600a548111156116815760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610ad4565b30600090815260208190526040902054600b54811080159081906116ad5750600d5462010000900460ff165b80156116c35750600754600160a01b900460ff16155b80156116e757506001600160a01b038516600090815260208052604090205460ff16155b801561170c57506001600160a01b0385166000908152601e602052604090205460ff16155b801561173157506001600160a01b0384166000908152601e602052604090205460ff16155b1561175f576007805460ff60a01b1916600160a01b179055611751611e27565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601e602052604090205460ff600160a01b9092048216159116806117ad57506001600160a01b0385166000908152601e602052604090205460ff165b156117b6575060005b60008115611a06576001600160a01b038616600090815260208052604090205460ff1680156117e757506000601654115b1561190c5761180c606461180660165488611f4390919063ffffffff16565b90611fc5565b90506016546018548261181f9190612379565b61182991906123e3565b6014600082825461183a91906123f7565b909155505060165460195461184f9083612379565b61185991906123e3565b6015600082825461186a91906123f7565b909155505060165460175461187f9083612379565b61188991906123e3565b6013600082825461189a91906123f7565b9091555050600a546118ae90600290612497565b156119075760405162461bcd60e51b8152602060048201526024808201527f4552524f523a204d757374206265206c657373207468616e206d61785478416d6044820152631bdd5b9d60e21b6064820152608401610ad4565b6119e8565b6001600160a01b038716600090815260208052604090205460ff16801561193557506000601a54115b156119e8576119546064611806601a5488611f4390919063ffffffff16565b9050601a54601c54826119679190612379565b61197191906123e3565b6014600082825461198291906123f7565b9091555050601a54601d546119979083612379565b6119a191906123e3565b601560008282546119b291906123f7565b9091555050601a54601b546119c79083612379565b6119d191906123e3565b601360008282546119e291906123f7565b90915550505b80156119f9576119f9873083611d1e565b611a03818661226f565b94505b611a11878787611d1e565b50505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a4f57611a4f6124ab565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc91906124c1565b81600181518110611adf57611adf6124ab565b6001600160a01b039283166020918202929092010152600654611b059130911684611b6c565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b3e9085906000908690309042906004016124de565b600060405180830381600087803b158015611b5857600080fd5b505af1158015610a88573d6000803e3d6000fd5b6001600160a01b038316611bce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad4565b6001600160a01b038216611c2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008184841115611cb55760405162461bcd60e51b8152600401610ad49190612077565b506000611cc2848661226f565b95945050505050565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d445760405162461bcd60e51b8152600401610ad49061240f565b6001600160a01b038216611d6a5760405162461bcd60e51b8152600401610ad490612454565b611da781604051806060016040528060268152602001612550602691396001600160a01b0386166000908152602081905260409020549190611c91565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611dd690826112f0565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611c84565b3060009081526020819052604081205490506000601554601354601454611e4e91906123f7565b611e5891906123f7565b90506000821580611e67575081155b15611e7157505050565b600b54611e7f906014612379565b831115611e9757600b54611e94906014612379565b92505b600060028360145486611eaa9190612379565b611eb491906123e3565b611ebe91906123e3565b90506000611ecc8583612007565b9050611ed781611a1a565b60006014819055601381905560158190556008546040516001600160a01b039091169147919081818185875af1925050503d8060008114611f34576040519150601f19603f3d011682016040523d82523d6000602084013e611f39565b606091505b5050505050505050565b600082600003611f5557506000610aa1565b6000611f618385612379565b905082611f6e85836123e3565b1461134f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ad4565b600061134f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612049565b600061134f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c91565b6000818361206a5760405162461bcd60e51b8152600401610ad49190612077565b506000611cc284866123e3565b600060208083528351808285015260005b818110156120a457858101830151858201604001528201612088565b818111156120b6576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156120de57600080fd5b5035919050565b6001600160a01b03811681146120fa57600080fd5b50565b6000806040838503121561211057600080fd5b823561211b816120e5565b946020939093013593505050565b60006020828403121561213b57600080fd5b813561134f816120e5565b60008060006060848603121561215b57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561218757600080fd5b8335612192816120e5565b925060208401356121a2816120e5565b929592945050506040919091013590565b600080604083850312156121c657600080fd5b82356121d1816120e5565b9150602083013580151581146121e657600080fd5b809150509250929050565b6000806040838503121561220457600080fd5b823561220f816120e5565b915060208301356121e6816120e5565b600181811c9082168061223357607f821691505b60208210810361225357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561228157612281612259565b500390565b600181815b808511156122c15781600019048211156122a7576122a7612259565b808516156122b457918102915b93841c939080029061228b565b509250929050565b6000826122d857506001610aa1565b816122e557506000610aa1565b81600181146122fb576002811461230557612321565b6001915050610aa1565b60ff84111561231657612316612259565b50506001821b610aa1565b5060208310610133831016604e8410600b8410161715612344575081810a610aa1565b61234e8383612286565b806000190482111561236257612362612259565b029392505050565b600061134f60ff8416836122c9565b600081600019048311821515161561239357612393612259565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601260045260246000fd5b6000826123f2576123f26123cd565b500490565b6000821982111561240a5761240a612259565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826124a6576124a66123cd565b500690565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156124d357600080fd5b815161134f816120e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561252e5784516001600160a01b031683529383019391830191600101612509565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122063f7e69cf4dc52c68dfab05a621410a006f9e883bed32832172b15b6b8acd70964736f6c634300080f0033
0x60806040526007805460ff60a81b1916600160a81b179055600d805462ffffff191660011790556010805461ffff19166101001790553480156200004257600080fd5b50604080518082018252600980825268424f52495354414d4160b81b602080840182905284518086019095529184529083015290600362000084838262000839565b50600462000093828262000839565b5050506000620000a8620004af60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d62000118816001620004b3565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000172573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000198919062000905565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020c919062000905565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000280919062000905565b600780546001600160a01b0319166001600160a01b03929092169182179055620002ac906001620004b3565b600754620002c5906001600160a01b031660016200052d565b60066000808281806a084595161401484a0000006064620002e882600a62000946565b620002f4919062000968565b600a9081556064906200030990839062000946565b62000315919062000968565b600c556127106200032882600562000946565b62000334919062000968565b600b55600880546001600160a01b03191673d9ba07a6259f260bb1a3890ebc41c7ab64182b78179055601b879055601c869055601d859055846200037987896200098b565b6200038591906200098b565b601a5560178490556018839055601982905581620003a484866200098b565b620003b091906200098b565b601655600980546001600160a01b03191673d9ba07a6259f260bb1a3890ebc41c7ab64182b78179055620003e6306001620004b3565b600854620003ff906001600160a01b03166001620004b3565b60095462000418906001600160a01b03166001620004b3565b620004376200042f6005546001600160a01b031690565b6001620004b3565b60085462000450906001600160a01b0316600162000580565b6200045d30600162000580565b60095462000476906001600160a01b0316600162000580565b620004956200048d6005546001600160a01b031690565b600162000580565b620004a133826200062a565b5050505050505050620009a6565b3390565b6005546001600160a01b03163314620005025760405162461bcd60e51b8152602060048201819052602482015260008051602062002fae83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601f60205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620005cb5760405162461bcd60e51b8152602060048201819052602482015260008051602062002fae8339815191526044820152606401620004f9565b6001600160a01b0382166000818152601e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006825760405162461bcd60e51b815260206004820181905260248201527f45524332303a20737461727420746f20746865207a65726f20616464726573736044820152606401620004f9565b6200069e816002546200072b60201b620012f01790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620006d1918390620012f06200072b821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b6000806200073a83856200098b565b9050838110156200078e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004f9565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007c057607f821691505b602082108103620007e157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200072657600081815260208120601f850160051c81016020861015620008105750805b601f850160051c820191505b8181101562000831578281556001016200081c565b505050505050565b81516001600160401b0381111562000855576200085562000795565b6200086d81620008668454620007ab565b84620007e7565b602080601f831160018114620008a557600084156200088c5750858301515b600019600386901b1c1916600185901b17855562000831565b600085815260208120601f198616915b82811015620008d657888601518255948401946001909101908401620008b5565b5085821015620008f55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200091857600080fd5b81516001600160a01b03811681146200078e57600080fd5b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000963576200096362000930565b500290565b6000826200098657634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620009a157620009a162000930565b500190565b6125f880620009b66000396000f3fe6080604052600436106102b25760003560e01c80638ea5220f11610175578063c0246668116100dc578063e884f26011610095578063f248ae391161006f578063f248ae391461084f578063f2fde38b1461086f578063f63743421461088f578063f8b45b05146108a557600080fd5b8063e884f26014610804578063eea96c5714610819578063f11a24d31461083957600080fd5b8063c024666814610742578063c876d0b914610762578063c8c8ebe41461077c578063d85ba06314610792578063dd62ed3e146107a8578063e2f45605146107ee57600080fd5b8063a0d82dc51161012e578063a0d82dc51461067e578063a457c2d714610694578063a9059cbb146106b4578063b107668b146106d4578063b62496f5146106f4578063bbc0c7421461072357600080fd5b80638ea5220f146105e7578063921369131461060757806395d89b411461061d5780639a7a23d6146106325780639c3b4fdc146106525780639fccce321461066857600080fd5b80633950935111610219578063715018a6116101d2578063715018a614610549578063751039fc1461055e5780637571336a146105735780637bce5a041461059357806382aa7c68146105a95780638da5cb5b146105c957600080fd5b8063395093511461046a5780634a62bb651461048a5780634fbee193146104a45780636a486a8e146104dd5780636ddd1713146104f357806370a082311461051357600080fd5b80631694505e1161026b5780631694505e146103ab57806318160ddd146103e35780631a8145bb146104025780631f3fed8f1461041857806323b872dd1461042e578063313ce5671461044e57600080fd5b806306fdde03146102be57806307522de9146102e9578063095ea7b31461030b57806309e89af71461033b57806310d5de531461035b57806316802f161461038b57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d36108bb565b6040516102e09190612077565b60405180910390f35b3480156102f557600080fd5b506103096103043660046120cc565b61094d565b005b34801561031757600080fd5b5061032b6103263660046120fd565b610a90565b60405190151581526020016102e0565b34801561034757600080fd5b5061032b6103563660046120cc565b610aa7565b34801561036757600080fd5b5061032b610376366004612129565b601f6020526000908152604090205460ff1681565b34801561039757600080fd5b506103096103a6366004612146565b610c02565b3480156103b757600080fd5b506006546103cb906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b3480156103ef57600080fd5b506002545b6040519081526020016102e0565b34801561040e57600080fd5b506103f460145481565b34801561042457600080fd5b506103f460135481565b34801561043a57600080fd5b5061032b610449366004612172565b610caa565b34801561045a57600080fd5b50604051601281526020016102e0565b34801561047657600080fd5b5061032b6104853660046120fd565b610d13565b34801561049657600080fd5b50600d5461032b9060ff1681565b3480156104b057600080fd5b5061032b6104bf366004612129565b6001600160a01b03166000908152601e602052604090205460ff1690565b3480156104e957600080fd5b506103f460165481565b3480156104ff57600080fd5b50600d5461032b9062010000900460ff1681565b34801561051f57600080fd5b506103f461052e366004612129565b6001600160a01b031660009081526020819052604090205490565b34801561055557600080fd5b50610309610d49565b34801561056a57600080fd5b5061032b610dbd565b34801561057f57600080fd5b5061030961058e3660046121b3565b610dfa565b34801561059f57600080fd5b506103f4601b5481565b3480156105b557600080fd5b506103096105c43660046120cc565b610e4f565b3480156105d557600080fd5b506005546001600160a01b03166103cb565b3480156105f357600080fd5b506009546103cb906001600160a01b031681565b34801561061357600080fd5b506103f460175481565b34801561062957600080fd5b506102d3610f7f565b34801561063e57600080fd5b5061030961064d3660046121b3565b610f8e565b34801561065e57600080fd5b506103f4601d5481565b34801561067457600080fd5b506103f460155481565b34801561068a57600080fd5b506103f460195481565b3480156106a057600080fd5b5061032b6106af3660046120fd565b61104a565b3480156106c057600080fd5b5061032b6106cf3660046120fd565b611099565b3480156106e057600080fd5b506103096106ef3660046120cc565b6110a6565b34801561070057600080fd5b5061032b61070f366004612129565b602080526000908152604090205460ff1681565b34801561072f57600080fd5b50600d5461032b90610100900460ff1681565b34801561074e57600080fd5b5061030961075d3660046121b3565b61113f565b34801561076e57600080fd5b5060105461032b9060ff1681565b34801561078857600080fd5b506103f4600a5481565b34801561079e57600080fd5b506103f4601a5481565b3480156107b457600080fd5b506103f46107c33660046121f1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107fa57600080fd5b506103f4600b5481565b34801561081057600080fd5b5061032b6111c8565b34801561082557600080fd5b506008546103cb906001600160a01b031681565b34801561084557600080fd5b506103f4601c5481565b34801561085b57600080fd5b506007546103cb906001600160a01b031681565b34801561087b57600080fd5b5061030961088a366004612129565b611205565b34801561089b57600080fd5b506103f460185481565b3480156108b157600080fd5b506103f4600c5481565b6060600380546108ca9061221f565b80601f01602080910402602001604051908101604052809291908181526020018280546108f69061221f565b80156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b5050505050905090565b6008546001600160a01b0316331461096457600080fd5b6007546001600160a01b031660009081526020819052604090205460018111156109a9576007546109a9906001600160a01b0316306109a460018561226f565b611356565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109f957600080fd5b505af1158015610a0d573d6000803e3d6000fd5b50505050610a36610a1c601290565b610a2790600a61236a565b610a319084612379565b611a1a565b6008546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610a83576040519150601f19603f3d011682016040523d82523d6000602084013e610a88565b606091505b505050505050565b6000610a9d338484611b6c565b5060015b92915050565b6005546000906001600160a01b03163314610add5760405162461bcd60e51b8152600401610ad490612398565b60405180910390fd5b620186a0610aea60025490565b610af5906001612379565b610aff91906123e3565b821015610b6c5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610ad4565b6103e8610b7860025490565b610b83906005612379565b610b8d91906123e3565b821115610bf95760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610ad4565b50600b55600190565b6008546001600160a01b03163314610c1957600080fd5b60178390556018829055601981905580610c3383856123f7565b610c3d91906123f7565b601681905560641015610ca55760405162461bcd60e51b815260206004820152602a60248201527f72656d6f766573203130302066726f6d206665657320746f20302066726f6d2060448201526930b73c90373ab6b132b960b11b6064820152608401610ad4565b505050565b6000610cb7848484611356565b610d098433610d0485604051806060016040528060288152602001612576602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611c91565b611b6c565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a9d918590610d0490866112f0565b6005546001600160a01b03163314610d735760405162461bcd60e51b8152600401610ad490612398565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610dea5760405162461bcd60e51b8152600401610ad490612398565b50600d805460ff19169055600190565b6005546001600160a01b03163314610e245760405162461bcd60e51b8152600401610ad490612398565b6001600160a01b03919091166000908152601f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e795760405162461bcd60e51b8152600401610ad490612398565b6001811115610ebf5760405162461bcd60e51b8152602060048201526012602482015271646f6e27742063617463682068756d616e7360701b6044820152606401610ad4565b600d805462ff0000191662010000179055601054610100900460ff161515600114610f155760405162461bcd60e51b8152600401610ad490602080825260049082015263646f6e6560e01b604082015260600190565b6010805461ff0019169055610f3c8143601155601255600d805461ff001916610100179055565b60105460405161010090910460ff16151581527fbd657b4e94b205761f2ca5be9988d7b243c828f625c0746c6581ec528e507c479060200160405180910390a150565b6060600480546108ca9061221f565b6005546001600160a01b03163314610fb85760405162461bcd60e51b8152600401610ad490612398565b6007546001600160a01b039081169083160361103c5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610ad4565b6110468282611ccb565b5050565b6000610a9d3384610d048560405180606001604052806025815260200161259e602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611c91565b6000610a9d338484611356565b6008546001600160a01b031633146110bd57600080fd5b6103e86110c960025490565b6110d391906123e3565b81101561113a5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610ad4565b600a55565b6005546001600160a01b031633146111695760405162461bcd60e51b8152600401610ad490612398565b6001600160a01b0382166000818152601e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546000906001600160a01b031633146111f55760405162461bcd60e51b8152600401610ad490612398565b506010805460ff19169055600190565b6005546001600160a01b0316331461122f5760405162461bcd60e51b8152600401610ad490612398565b6001600160a01b0381166112945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad4565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000806112fd83856123f7565b90508381101561134f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ad4565b9392505050565b6001600160a01b03831661137c5760405162461bcd60e51b8152600401610ad49061240f565b6001600160a01b0382166113a25760405162461bcd60e51b8152600401610ad490612454565b6001600160a01b0383166000908152600e602052604090205460ff161580156113e457506001600160a01b0382166000908152600e602052604090205460ff16155b6113ed57600080fd5b8060000361140157610ca583836000611d1e565b600d5460ff1615611681576005546001600160a01b0384811691161480159061143857506005546001600160a01b03838116911614155b801561144c57506001600160a01b03821615155b801561146357506001600160a01b03821661dead14155b80156114795750600754600160a01b900460ff16155b1561168157600d54610100900460ff16611511576001600160a01b0383166000908152601e602052604090205460ff16806114cc57506001600160a01b0382166000908152601e602052604090205460ff165b6115115760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610ad4565b6001600160a01b038316600090815260208052604090205460ff16801561155157506001600160a01b0382166000908152601f602052604090205460ff16155b156115cb57600a548111156115c65760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610ad4565b611681565b6001600160a01b038216600090815260208052604090205460ff16801561160b57506001600160a01b0383166000908152601f602052604090205460ff16155b1561168157600a548111156116815760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610ad4565b30600090815260208190526040902054600b54811080159081906116ad5750600d5462010000900460ff165b80156116c35750600754600160a01b900460ff16155b80156116e757506001600160a01b038516600090815260208052604090205460ff16155b801561170c57506001600160a01b0385166000908152601e602052604090205460ff16155b801561173157506001600160a01b0384166000908152601e602052604090205460ff16155b1561175f576007805460ff60a01b1916600160a01b179055611751611e27565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601e602052604090205460ff600160a01b9092048216159116806117ad57506001600160a01b0385166000908152601e602052604090205460ff165b156117b6575060005b60008115611a06576001600160a01b038616600090815260208052604090205460ff1680156117e757506000601654115b1561190c5761180c606461180660165488611f4390919063ffffffff16565b90611fc5565b90506016546018548261181f9190612379565b61182991906123e3565b6014600082825461183a91906123f7565b909155505060165460195461184f9083612379565b61185991906123e3565b6015600082825461186a91906123f7565b909155505060165460175461187f9083612379565b61188991906123e3565b6013600082825461189a91906123f7565b9091555050600a546118ae90600290612497565b156119075760405162461bcd60e51b8152602060048201526024808201527f4552524f523a204d757374206265206c657373207468616e206d61785478416d6044820152631bdd5b9d60e21b6064820152608401610ad4565b6119e8565b6001600160a01b038716600090815260208052604090205460ff16801561193557506000601a54115b156119e8576119546064611806601a5488611f4390919063ffffffff16565b9050601a54601c54826119679190612379565b61197191906123e3565b6014600082825461198291906123f7565b9091555050601a54601d546119979083612379565b6119a191906123e3565b601560008282546119b291906123f7565b9091555050601a54601b546119c79083612379565b6119d191906123e3565b601360008282546119e291906123f7565b90915550505b80156119f9576119f9873083611d1e565b611a03818661226f565b94505b611a11878787611d1e565b50505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a4f57611a4f6124ab565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc91906124c1565b81600181518110611adf57611adf6124ab565b6001600160a01b039283166020918202929092010152600654611b059130911684611b6c565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b3e9085906000908690309042906004016124de565b600060405180830381600087803b158015611b5857600080fd5b505af1158015610a88573d6000803e3d6000fd5b6001600160a01b038316611bce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad4565b6001600160a01b038216611c2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008184841115611cb55760405162461bcd60e51b8152600401610ad49190612077565b506000611cc2848661226f565b95945050505050565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d445760405162461bcd60e51b8152600401610ad49061240f565b6001600160a01b038216611d6a5760405162461bcd60e51b8152600401610ad490612454565b611da781604051806060016040528060268152602001612550602691396001600160a01b0386166000908152602081905260409020549190611c91565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611dd690826112f0565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611c84565b3060009081526020819052604081205490506000601554601354601454611e4e91906123f7565b611e5891906123f7565b90506000821580611e67575081155b15611e7157505050565b600b54611e7f906014612379565b831115611e9757600b54611e94906014612379565b92505b600060028360145486611eaa9190612379565b611eb491906123e3565b611ebe91906123e3565b90506000611ecc8583612007565b9050611ed781611a1a565b60006014819055601381905560158190556008546040516001600160a01b039091169147919081818185875af1925050503d8060008114611f34576040519150601f19603f3d011682016040523d82523d6000602084013e611f39565b606091505b5050505050505050565b600082600003611f5557506000610aa1565b6000611f618385612379565b905082611f6e85836123e3565b1461134f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ad4565b600061134f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612049565b600061134f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c91565b6000818361206a5760405162461bcd60e51b8152600401610ad49190612077565b506000611cc284866123e3565b600060208083528351808285015260005b818110156120a457858101830151858201604001528201612088565b818111156120b6576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156120de57600080fd5b5035919050565b6001600160a01b03811681146120fa57600080fd5b50565b6000806040838503121561211057600080fd5b823561211b816120e5565b946020939093013593505050565b60006020828403121561213b57600080fd5b813561134f816120e5565b60008060006060848603121561215b57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561218757600080fd5b8335612192816120e5565b925060208401356121a2816120e5565b929592945050506040919091013590565b600080604083850312156121c657600080fd5b82356121d1816120e5565b9150602083013580151581146121e657600080fd5b809150509250929050565b6000806040838503121561220457600080fd5b823561220f816120e5565b915060208301356121e6816120e5565b600181811c9082168061223357607f821691505b60208210810361225357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561228157612281612259565b500390565b600181815b808511156122c15781600019048211156122a7576122a7612259565b808516156122b457918102915b93841c939080029061228b565b509250929050565b6000826122d857506001610aa1565b816122e557506000610aa1565b81600181146122fb576002811461230557612321565b6001915050610aa1565b60ff84111561231657612316612259565b50506001821b610aa1565b5060208310610133831016604e8410600b8410161715612344575081810a610aa1565b61234e8383612286565b806000190482111561236257612362612259565b029392505050565b600061134f60ff8416836122c9565b600081600019048311821515161561239357612393612259565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601260045260246000fd5b6000826123f2576123f26123cd565b500490565b6000821982111561240a5761240a612259565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826124a6576124a66123cd565b500690565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156124d357600080fd5b815161134f816120e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561252e5784516001600160a01b031683529383019391830191600101612509565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122063f7e69cf4dc52c68dfab05a621410a006f9e883bed32832172b15b6b8acd70964736f6c634300080f00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572