0x60806040523480156200001157600080fd5b506a084595161401484a000000604051806040016040528060098152602001684b6c657665722e696f60b81b8152506040518060400160405280600481526020016309698acf60e31b81525081818160049080519060200190620000779291906200056f565b5080516200008d9060059060208401906200056f565b50506006805461ff001960ff1990911660121716905550620000ba6000620000b4620001a3565b620001a7565b620000e97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6620000b4620001a3565b620001187f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a620000b4620001a3565b50506000811162000170576040805162461bcd60e51b815260206004820152601560248201527f45524332304361707065643a2063617020697320300000000000000000000000604482015290519081900360640190fd5b6007556200019d73d5d6810fbdfe12a0c73cd2aa8e9c542a628162c569043c33c1937564800000620001b7565b6200060b565b3390565b620001b38282620002ca565b5050565b6001600160a01b03821662000213576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620002216000838362000343565b6200023d816003546200036060201b62000c101790919060201c565b6003556001600160a01b0382166000908152600160209081526040909120546200027291839062000c1062000360821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082815260208181526040909120620002ef91839062000c6a620003c4821b17901c565b15620001b357620002ff620001a3565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6200035b838383620003db60201b62000c7f1760201c565b505050565b600082820183811015620003bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6000620003bb836001600160a01b0384166200047c565b620003f3838383620004cb60201b62000d001760201c565b6001600160a01b0383166200035b57600754620004288262000414620004e3565b6200036060201b62000c101790919060201c565b11156200035b576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b60006200048a8383620004e9565b620004c257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003be565b506000620003be565b6200035b8383836200050160201b62000d071760201c565b60035490565b60009081526001919091016020526040902054151590565b620005198383836200035b60201b620009a01760201c565b6200052362000561565b156200035b5760405162461bcd60e51b815260040180806020018281038252602a81526020018062001f7d602a913960400191505060405180910390fd5b600654610100900460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005b257805160ff1916838001178555620005e2565b82800160010185558215620005e2579182015b82811115620005e2578251825591602001919060010190620005c5565b50620005f0929150620005f4565b5090565b5b80821115620005f05760008155600101620005f5565b611962806200061b6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d539139314610542578063d547741f1461054a578063dd62ed3e14610576578063e63ab1e9146105a4576101c4565b8063a457c2d7146104cd578063a9059cbb146104f9578063ca15c87314610525576101c4565b80639010d07c116100d35780639010d07c1461045257806391d148541461049157806395d89b41146104bd578063a217fddf146104c5576101c4565b806370a08231146103f857806379cc67901461041e5780638456cb591461044a576101c4565b8063355274ea116101665780633f4ba83a116101405780633f4ba83a1461039f57806340c10f19146103a757806342966c68146103d35780635c975abb146103f0576101c4565b8063355274ea1461033f57806336568abe146103475780633950935114610373576101c4565b806323b872dd116101a257806323b872dd146102a0578063248a9ca3146102d65780632f2ff15d146102f3578063313ce56714610321576101c4565b806306fdde03146101c9578063095ea7b31461024657806318160ddd14610286575b600080fd5b6101d16105ac565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102726004803603604081101561025c57600080fd5b506001600160a01b038135169060200135610642565b604080519115158252519081900360200190f35b61028e610660565b60408051918252519081900360200190f35b610272600480360360608110156102b657600080fd5b506001600160a01b03813581169160208101359091169060400135610666565b61028e600480360360208110156102ec57600080fd5b50356106ed565b61031f6004803603604081101561030957600080fd5b50803590602001356001600160a01b0316610702565b005b61032961076e565b6040805160ff9092168252519081900360200190f35b61028e610777565b61031f6004803603604081101561035d57600080fd5b50803590602001356001600160a01b031661077d565b6102726004803603604081101561038957600080fd5b506001600160a01b0381351690602001356107de565b61031f61082c565b61031f600480360360408110156103bd57600080fd5b506001600160a01b03813516906020013561089d565b61031f600480360360208110156103e957600080fd5b503561090e565b610272610922565b61028e6004803603602081101561040e57600080fd5b50356001600160a01b0316610930565b61031f6004803603604081101561043457600080fd5b506001600160a01b03813516906020013561094b565b61031f6109a5565b6104756004803603604081101561046857600080fd5b5080359060200135610a14565b604080516001600160a01b039092168252519081900360200190f35b610272600480360360408110156104a757600080fd5b50803590602001356001600160a01b0316610a33565b6101d1610a4b565b61028e610aac565b610272600480360360408110156104e357600080fd5b506001600160a01b038135169060200135610ab1565b6102726004803603604081101561050f57600080fd5b506001600160a01b038135169060200135610b19565b61028e6004803603602081101561053b57600080fd5b5035610b2d565b61028e610b44565b61031f6004803603604081101561056057600080fd5b50803590602001356001600160a01b0316610b68565b61028e6004803603604081101561058c57600080fd5b506001600160a01b0381358116916020013516610bc1565b61028e610bec565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b5050505050905090565b600061065661064f610d56565b8484610d5a565b5060015b92915050565b60035490565b6000610673848484610e46565b6106e38461067f610d56565b6106de8560405180606001604052806028815260200161178c602891396001600160a01b038a166000908152600260205260408120906106bd610d56565b6001600160a01b031681526020810191909152604001600020549190610fa3565b610d5a565b5060019392505050565b60009081526020819052604090206002015490565b60008281526020819052604090206002015461072590610720610d56565b610a33565b6107605760405162461bcd60e51b815260040180806020018281038252602f81526020018061168a602f913960400191505060405180910390fd5b61076a828261103a565b5050565b60065460ff1690565b60075490565b610785610d56565b6001600160a01b0316816001600160a01b0316146107d45760405162461bcd60e51b815260040180806020018281038252602f8152602001806118d4602f913960400191505060405180910390fd5b61076a82826110a3565b60006106566107eb610d56565b846106de85600260006107fc610d56565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610c10565b6108587f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610720610d56565b6108935760405162461bcd60e51b81526004018080602001828103825260398152602001806116db6039913960400191505060405180910390fd5b61089b61110c565b565b6108c97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610720610d56565b6109045760405162461bcd60e51b81526004018080602001828103825260368152602001806117b46036913960400191505060405180910390fd5b61076a82826111b0565b61091f610919610d56565b826112a2565b50565b600654610100900460ff1690565b6001600160a01b031660009081526001602052604090205490565b6000610982826040518060600160405280602481526020016117ea6024913961097b86610976610d56565b610bc1565b9190610fa3565b905061099683610990610d56565b83610d5a565b6109a083836112a2565b505050565b6109d17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610720610d56565b610a0c5760405162461bcd60e51b81526004018080602001828103825260378152602001806118786037913960400191505060405180910390fd5b61089b61139e565b6000828152602081905260408120610a2c9083611426565b9392505050565b6000828152602081905260408120610a2c9083611432565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106385780601f1061060d57610100808354040283529160200191610638565b600081565b6000610656610abe610d56565b846106de856040518060600160405280602581526020016118af6025913960026000610ae8610d56565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610fa3565b6000610656610b26610d56565b8484610e46565b600081815260208190526040812061065a90611447565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260208190526040902060020154610b8690610720610d56565b6107d45760405162461bcd60e51b815260040180806020018281038252603081526020018061175c6030913960400191505060405180910390fd5b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b600082820183811015610a2c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a2c836001600160a01b038416611452565b610c8a838383610d00565b6001600160a01b0383166109a057600754610cad82610ca7610660565b90610c10565b11156109a0576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b6109a08383835b610d128383836109a0565b610d1a610922565b156109a05760405162461bcd60e51b815260040180806020018281038252602a815260200180611903602a913960400191505060405180910390fd5b3390565b6001600160a01b038316610d9f5760405162461bcd60e51b81526004018080602001828103825260248152602001806118546024913960400191505060405180910390fd5b6001600160a01b038216610de45760405162461bcd60e51b81526004018080602001828103825260228152602001806117146022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610e8b5760405162461bcd60e51b815260040180806020018281038252602581526020018061182f6025913960400191505060405180910390fd5b6001600160a01b038216610ed05760405162461bcd60e51b81526004018080602001828103825260238152602001806116676023913960400191505060405180910390fd5b610edb83838361149c565b610f1881604051806060016040528060268152602001611736602691396001600160a01b0386166000908152600160205260409020549190610fa3565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610f479082610c10565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156110325760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ff7578181015183820152602001610fdf565b50505050905090810190601f1680156110245780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008281526020819052604090206110529082610c6a565b1561076a5761105f610d56565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020819052604090206110bb90826114a7565b1561076a576110c8610d56565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600654610100900460ff1661115f576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611193610d56565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b03821661120b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6112176000838361149c565b6003546112249082610c10565b6003556001600160a01b03821660009081526001602052604090205461124a9082610c10565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166112e75760405162461bcd60e51b815260040180806020018281038252602181526020018061180e6021913960400191505060405180910390fd5b6112f38260008361149c565b611330816040518060600160405280602281526020016116b9602291396001600160a01b0385166000908152600160205260409020549190610fa3565b6001600160a01b03831660009081526001602052604090205560035461135690826114bc565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600654610100900460ff16156113ee576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006805461ff0019166101001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611193610d56565b6000610a2c83836114fe565b6000610a2c836001600160a01b038416611562565b600061065a8261157a565b600061145e8383611562565b6114945750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561065a565b50600061065a565b6109a0838383610c7f565b6000610a2c836001600160a01b03841661157e565b6000610a2c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fa3565b815460009082106115405760405162461bcd60e51b81526004018080602001828103825260228152602001806116456022913960400191505060405180910390fd5b82600001828154811061154f57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000818152600183016020526040812054801561163a57835460001980830191908101906000908790839081106115b157fe5b90600052602060002001549050808760000184815481106115ce57fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806115fe57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061065a565b600091505061065a56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e706175736545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332305072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e7445524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20706175736545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c6645524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a2646970667358221220c84a69ad30080aa005adfb1d9919811ff9fcae0a9a738474adcbfd942555897364736f6c634300060c003345524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564