6080604052601f805460ff191690553480156200001a575f80fd5b5060405162003b2038038062003b208339810160408190526200003d9162000641565b816001600160a01b0381166200009a5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600480546001600160a01b0319166001600160a01b038316908117909155604080515f815260208101929092527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1506001600160a01b0381166200014b5760405162461bcd60e51b815260206004820152601560248201527f5a65726f20616464726573732064657465637465640000000000000000000000604482015260640162000091565b600a62000159858262000754565b50600962000168848262000754565b50600b80546001600160a01b038085166001600160a01b031992831617909255600c805492841692909116919091179055620001ac5f620001a63390565b6200027b565b601d80546001600160a01b03191633179055600b54620001e1906001600160a01b03166a01a784379d99db420000006200028b565b600b546200021a907fb25402418ad555013210365a422f9f1206b2dd00719998db06f8a1fbe014641b906001600160a01b03166200036d565b600c5462000253907fb25402418ad555013210365a422f9f1206b2dd00719998db06f8a1fbe014641b906001600160a01b03166200036d565b50506109c46019555050620f42406016819055610e10601a55601b55611388601c5562000840565b620002878282620003f0565b5050565b6001600160a01b038216620002e35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000091565b600254620002f290826200044f565b6002556001600160a01b0382165f908152602081905260409020546200031990826200044f565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f828152600360205260409020600201546200038a9033620004ba565b6200027b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b606482015260840162000091565b5f828152600360205260409020620004099082620004d3565b15620002875760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b505050565b5f806200045d838562000820565b905083811015620004b15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000091565b90505b92915050565b5f828152600360205260408120620004b19083620004ee565b5f620004b1836001600160601b0319606085901b1662000515565b606081901b6001600160601b0319165f9081526001830160205260408120541515620004b1565b5f8181526001830160205260408120546200055c57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155620004b4565b505f620004b4565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000588575f80fd5b81516001600160401b0380821115620005a557620005a562000564565b604051601f8301601f19908116603f01168101908282118183101715620005d057620005d062000564565b8160405283815260209250866020858801011115620005ed575f80fd5b5f91505b83821015620006105785820183015181830184015290820190620005f1565b5f602085830101528094505050505092915050565b80516001600160a01b03811681146200063c575f80fd5b919050565b5f805f806080858703121562000655575f80fd5b84516001600160401b03808211156200066c575f80fd5b6200067a8883890162000578565b9550602087015191508082111562000690575f80fd5b506200069f8782880162000578565b935050620006b06040860162000625565b9150620006c06060860162000625565b905092959194509250565b600181811c90821680620006e057607f821691505b602082108103620006ff57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200044a57805f5260205f20601f840160051c810160208510156200072c5750805b601f840160051c820191505b818110156200074d575f815560010162000738565b5050505050565b81516001600160401b0381111562000770576200077062000564565b6200078881620007818454620006cb565b8462000705565b602080601f831160018114620007be575f8415620007a65750858301515b5f19600386901b1c1916600185901b17855562000818565b5f85815260208120601f198616915b82811015620007ee57888601518255948401946001909101908401620007cd565b50858210156200080c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b80820180821115620004b457634e487b7160e01b5f52601160045260245ffd5b6132d2806200084e5f395ff3fe608060405234801561000f575f80fd5b506004361061042d575f3560e01c806379ba50971161022c578063b4f56b2611610135578063cb73999f116100bf578063dc6663c711610084578063dc6663c71461093d578063dd62ed3e14610950578063df56e16814610988578063e223e9a9146109cb578063e7dced67146109de575f80fd5b8063cb73999f146108e4578063d0694aa1146108ed578063d2d97b061461090f578063d547741f14610917578063d914cd4b1461092a575f80fd5b8063c3355b8d11610105578063c3355b8d1461088f578063c3bc891014610898578063c8fae1a5146108ab578063ca15c873146108be578063ca65be0b146108d1575f80fd5b8063b4f56b2614610858578063bdacb3031461086b578063bef40ec81461087e578063c03f7be314610886575f80fd5b806395d89b41116101b6578063a9059cbb11610186578063a9059cbb14610804578063ad9f6eec14610817578063afe92c1a1461082a578063b0fc69ce1461083d578063b4db098014610850575f80fd5b806395d89b41146107cf578063a217fddf146107d7578063a457c2d7146107de578063a8a778ae146107f1575f80fd5b806387a140c3116101fc57806387a140c3146107765780638da5cb5b146107835780639010d07c1461079657806391d14854146107a957806392eefe9b146107bc575f80fd5b806379ba50971461073f57806379cc6790146107475780637bac07c71461075a5780637dbc1df014610763575f80fd5b8063345ba24b116103395780634bd0be23116102c35780636140133b116102885780636140133b146106cb57806367feda3e146106de57806370a08231146106f157806372b3cded14610719578063741d3c181461072c575f80fd5b80634bd0be231461064a57806351e238e31461065d57806353a47bb71461066f578063545055171461068257806355189488146106a9575f80fd5b8063395093511161030957806339509351146105f65780633b7d0946146106095780634013124a1461061c578063408ab10f1461062457806342966c6814610637575f80fd5b8063345ba24b146105a957806335467d5d146105b157806336568abe146105c457806338e21cce146105d7575f80fd5b806323b872dd116103ba578063288aafcb1161038a578063288aafcb146105575780632cb4f63e1461056a5780632eb9771b146105735780632f2ff15d1461057c578063313ce5671461058f575f80fd5b806323b872dd14610506578063246126bd14610519578063248a9ca31461052c5780632853fb101461054e575f80fd5b80631627540c116104005780631627540c146104b257806318160ddd146104c55780631c5df1e5146104d75780632258750a146104ea578063238a4709146104f3575f80fd5b806306fdde0314610431578063095ea7b31461044f5780630f9d20011461047257806310d92a7b1461049d575b5f80fd5b6104396109e6565b6040516104469190612d73565b60405180910390f35b61046261045d366004612dda565b610a72565b6040519015158152602001610446565b610485610480366004612e02565b610a88565b6040516001600160a01b039091168152602001610446565b6104b06104ab366004612e19565b610ab0565b005b6104b06104c0366004612e52565b610b6b565b6002545b604051908152602001610446565b6104b06104e5366004612e02565b610c32565b6104c960205481565b6104b0610501366004612e02565b610cbb565b610462610514366004612e6b565b610d44565b601154610485906001600160a01b031681565b6104c961053a366004612e02565b5f9081526003602052604090206002015490565b6104c9601c5481565b6104b0610565366004612e02565b610dbb565b6104c9601b5481565b6104c960165481565b6104b061058a366004612ea4565b610e37565b610597601281565b60405160ff9091168152602001610446565b6104c9610ec4565b601d54610485906001600160a01b031681565b6104b06105d2366004612ea4565b610f6e565b6104c96105e5366004612e52565b601e6020525f908152604090205481565b610462610604366004612dda565b610fe8565b6104b0610617366004612e52565b61101d565b6104b06111df565b6104b0610632366004612e02565b611387565b6104b0610645366004612e02565b611410565b600b54610485906001600160a01b031681565b6104c96a01a784379d99db4200000081565b600554610485906001600160a01b031681565b6104c97fb25402418ad555013210365a422f9f1206b2dd00719998db06f8a1fbe014641b81565b6104626106b7366004612e52565b60156020525f908152604090205460ff1681565b6104b06106d9366004612e02565b61141d565b600d54610485906001600160a01b031681565b6104c96106ff366004612e52565b6001600160a01b03165f9081526020819052604090205490565b600f54610485906001600160a01b031681565b6104b061073a366004612e52565b6114a6565b6104b06115ff565b6104b0610755366004612dda565b6116e9565b6104c960195481565b6104b0610771366004612e02565b611734565b601f546104629060ff1681565b600454610485906001600160a01b031681565b6104856107a4366004612ece565b6117bd565b6104626107b7366004612ea4565b6117db565b6104b06107ca366004612e52565b6117f2565b6104396118ba565b6104c95f81565b6104626107ec366004612dda565b6118c7565b6104b06107ff366004612dda565b611914565b610462610812366004612dda565b6119b4565b6104b0610825366004612e02565b6119c0565b6104b0610838366004612eee565b611a49565b601254610485906001600160a01b031681565b6104c9611b52565b6104b0610866366004612dda565b611b5c565b6104b0610879366004612e52565b611c1d565b6104b0611ce5565b6104c9601a5481565b6104c960185481565b6104b06108a6366004612e52565b611d64565b600e54610485906001600160a01b031681565b6104c96108cc366004612e02565b611e2c565b601054610485906001600160a01b031681565b6104c960175481565b6104626108fb366004612e52565b60136020525f908152604090205460ff1681565b6104c9611e42565b6104b0610925366004612ea4565b611f23565b6104b0610938366004612e52565b611fa3565b600c54610485906001600160a01b031681565b6104c961095e366004612eee565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610990612113565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610446565b6104b06109d9366004612eee565b612176565b6104c9612277565b600a80546109f390612f16565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1f90612f16565b8015610a6a5780601f10610a4157610100808354040283529160200191610a6a565b820191905f5260205f20905b815481529060010190602001808311610a4d57829003601f168201915b505050505081565b5f610a7e338484612282565b5060015b92915050565b60148181548110610a97575f80fd5b5f918252602090912001546001600160a01b0316905081565b6004546001600160a01b0316331480610ad35750600c546001600160a01b031633145b80610ae85750600d546001600160a01b031633145b610b0d5760405162461bcd60e51b8152600401610b0490612f48565b60405180910390fd5b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527fff4010b6559cb87425e51283af3b361863c08c8d7cbdb2c33a0146bc3ba34355910160405180910390a25050565b6004546001600160a01b03163314610bdd5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610b04565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020015b60405180910390a150565b6004546001600160a01b0316331480610c555750600c546001600160a01b031633145b80610c6a5750600d546001600160a01b031633145b610c865760405162461bcd60e51b8152600401610b0490612f48565b601a8190556040518181527fc7443059c2ed485e2c9efe4e766bef9432a6f0ed6695741ab4afdffab3b9215790602001610c27565b6004546001600160a01b0316331480610cde5750600c546001600160a01b031633145b80610cf35750600d546001600160a01b031633145b610d0f5760405162461bcd60e51b8152600401610b0490612f48565b60188190556040518181527f07aefbcc0d8cdf34e241279c78d93d1df9540b5a60d320437958df12ef59e46390602001610c27565b5f610d508484846123a6565b610db18433610dac8560405180606001604052806028815260200161322c602891396001600160a01b038a165f90815260016020526040812090335b6001600160a01b0316815260208101919091526040015f20549190612526565b612282565b5060019392505050565b335f9081526013602052604090205460ff161515600114610e0c5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610b04565b335f908152601e6020526040902054610e25908261255e565b335f908152601e602052604090205550565b5f82815260036020526040902060020154610e5290336117db565b610eb65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610b04565b610ec0828261259f565b5050565b6006545f90610f6990610ee290600160a01b900460ff16600a613091565b610f63620f424060065f9054906101000a90046001600160a01b03166001600160a01b0316638e15f4736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5d919061309f565b906125f6565b90612674565b905090565b6001600160a01b0381163314610fde5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610b04565b610ec082826126b5565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a7e918590610dac908661270c565b6004546001600160a01b03163314806110405750600c546001600160a01b031633145b806110555750600d546001600160a01b031633145b6110715760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b0381166110975760405162461bcd60e51b8152600401610b04906130b6565b6001600160a01b0381165f9081526015602052604090205460ff1615156001146110f95760405162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdb995e1a5cdd195b9d606a1b6044820152606401610b04565b6001600160a01b0381165f908152601560205260408120805460ff191690555b6014548110156111a557816001600160a01b031660148281548110611140576111406130e5565b5f918252602090912001546001600160a01b03160361119d575f6014828154811061116d5761116d6130e5565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506111a5565b600101611119565b506040516001600160a01b03821681527f4106dfdaa577573db51c0ca93f766dbedfa0758faa2e7f5bcdb7c142be803c3f90602001610c27565b601f5460ff16156112325760405162461bcd60e51b815260206004820181905260248201527f436f6c6c61746572616c20526174696f20686173206265656e207061757365646044820152606401610b04565b5f61123b611b52565b9050601a546020544261124e91906130f9565b10156112ba5760405162461bcd60e51b815260206004820152603560248201527f4d757374207761697420666f7220746865207265667265736820636f6f6c646f6044820152740eedc40e6d2dcc6ca40d8c2e6e840e4cacce4cae6d605b1b6064820152608401610b04565b601c54601b546112c99161270c565b8111156112fb57601954601654116112e4575f601655611350565b6019546016546112f39161255e565b601655611350565b601c54601b5461130a9161255e565b81101561135057620f424061132c60195460165461270c90919063ffffffff16565b1061133d57620f4240601655611350565b60195460165461134c9161270c565b6016555b4260209081556016546040519081527fb1200af9b3ac4dec88c9d01e1fb7cc7fa1f0fe55bf4afac1f30cc4fc2b2d1dd29101610c27565b6004546001600160a01b03163314806113aa5750600c546001600160a01b031633145b806113bf5750600d546001600160a01b031633145b6113db5760405162461bcd60e51b8152600401610b0490612f48565b601b8190556040518181527f898a2c9df7982133daaa8cfd78b8c49c520cba03205eec6480552c19059f6e3a90602001610c27565b61141a338261276a565b50565b6004546001600160a01b03163314806114405750600c546001600160a01b031633145b806114555750600d546001600160a01b031633145b6114715760405162461bcd60e51b8152600401610b0490612f48565b601c8190556040518181527fe9febe6aec89ff2870eeab6d13333c59cbed275b1d9a95f527c853d99ddb7cf490602001610c27565b6004546001600160a01b03163314806114c95750600c546001600160a01b031633145b806114de5750600d546001600160a01b031633145b6114fa5760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b0381166115205760405162461bcd60e51b8152600401610b04906130b6565b601280546001600160a01b0383166001600160a01b03199182168117909255600680549091168217905560408051633c05076160e21b8152905163f0141d84916004808201926020929091908290030181865afa158015611583573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a7919061310c565b6006805460ff92909216600160a01b0260ff60a01b199092169190911790556040516001600160a01b03821681527f4e76cd2b10c38c98ffe935e9b3e851cf6d1078a0a6f487a0636af025eded515890602001610c27565b6005546001600160a01b031633146116775760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610b04565b600454600554604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160058054600480546001600160a01b03199081166001600160a01b03841617909155169055565b5f6117188260405180606001604052806024815260200161325460249139611711863361095e565b9190612526565b9050611725833383612282565b61172f838361276a565b505050565b6004546001600160a01b03163314806117575750600c546001600160a01b031633145b8061176c5750600d546001600160a01b031633145b6117885760405162461bcd60e51b8152600401610b0490612f48565b60178190556040518181527f91cc643d187eb250905520d3dae0b1017edd16961d27ab9a4a61fea5e38f717d90602001610c27565b5f8281526003602052604081206117d4908361286b565b9392505050565b5f8281526003602052604081206117d49083612880565b6004546001600160a01b03163314806118155750600c546001600160a01b031633145b8061182a5750600d546001600160a01b031633145b6118465760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b03811661186c5760405162461bcd60e51b8152600401610b04906130b6565b600d80546001600160a01b0319166001600160a01b0383169081179091556040519081527f79f74fd5964b6943d8a1865abfb7f668c92fa3f32c0a2e3195da7d0946703ad790602001610c27565b600980546109f390612f16565b5f610a7e3384610dac8560405180606001604052806025815260200161327860259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190612526565b335f9081526015602052604090205460ff161515600114806119495750335f9081526013602052604090205460ff1615156001145b6119655760405162461bcd60e51b8152600401610b049061312c565b61196f82826128a6565b60405181815233906001600160a01b038416907ffead881ad94a58eeaebfdbce8eeb9906a0f42f0c896bab64a6ad08371608131a906020015b60405180910390a35050565b5f610a7e3384846123a6565b6004546001600160a01b03163314806119e35750600c546001600160a01b031633145b806119f85750600d546001600160a01b031633145b611a145760405162461bcd60e51b8152600401610b0490612f48565b60198190556040518181527ff63dc397cac6cb5b9f2e168b247e8aeebbde7ef8179a06750f44329f12cdbf4b90602001610c27565b6004546001600160a01b0316331480611a6c5750600c546001600160a01b031633145b80611a815750600d546001600160a01b031633145b611a9d5760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b03821615801590611abd57506001600160a01b03811615155b611ad95760405162461bcd60e51b8152600401610b04906130b6565b601080546001600160a01b038481166001600160a01b0319928316811790935560088054831684179055601180549185169190921681179091556040805192835260208301919091527f92fe580f348e919356977135b3a173366b1ae5e3eb000d0db90031d13197fdab91015b60405180910390a15050565b5f610f695f6128f0565b335f9081526015602052604090205460ff16151560011480611b915750335f9081526013602052604090205460ff1615156001145b611bad5760405162461bcd60e51b8152600401610b049061312c565b611bb78282612a87565b335f908152601e6020526040902054611bd0908261270c565b335f818152601e602090815260409182902093909355518381526001600160a01b038516927f1c0ed02ca521f3f5782d6c218460a4d053afba959cf41837f405d16e201e31c591016119a8565b6004546001600160a01b0316331480611c405750600c546001600160a01b031633145b80611c555750600d546001600160a01b031633145b611c715760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b038116611c975760405162461bcd60e51b8152600401610b04906130b6565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f7e7ee4175d63f671fac3401d5f401ed18d1f48a586e756f404d5696fc77a705890602001610c27565b611d0f7fb25402418ad555013210365a422f9f1206b2dd00719998db06f8a1fbe014641b336117db565b611d17575f80fd5b601f805460ff8082161560ff1990921682179092556040519116151581527f209068f7bed5a02fb7695c3e3b61bb8324d1facb25523c6422bfd2105ec44d929060200160405180910390a1565b6004546001600160a01b0316331480611d875750600c546001600160a01b031633145b80611d9c5750600d546001600160a01b031633145b611db85760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b038116611dde5760405162461bcd60e51b8152600401610b04906130b6565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527f109c7f139fe60a7cef65008440d643868c0247c49148cbab1281e51ee6108c6190602001610c27565b5f818152600360205260408120610a8290612b5c565b5f80805b601454811015611f1d575f6001600160a01b031660148281548110611e6d57611e6d6130e5565b5f918252602090912001546001600160a01b031614611f1557611f1260148281548110611e9c57611e9c6130e5565b5f9182526020918290200154604080516305ca132560e21b815290516001600160a01b03909216926317284c94926004808401938290030181865afa158015611ee7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0b919061309f565b839061270c565b91505b600101611e46565b50919050565b5f82815260036020526040902060020154611f3e90336117db565b610fde5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610b04565b6004546001600160a01b0316331480611fc65750600c546001600160a01b031633145b80611fdb5750600d546001600160a01b031633145b611ff75760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b03811661201d5760405162461bcd60e51b8152600401610b04906130b6565b6001600160a01b0381165f9081526015602052604090205460ff161561207e5760405162461bcd60e51b81526020600482015260166024820152754164647265737320616c72656164792065786973747360501b6044820152606401610b04565b6001600160a01b0381165f818152601560209081526040808320805460ff191660019081179091556014805491820181559093527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec90920180546001600160a01b0319168417905590519182527f73cca62ab1b520c9715bf4e6c71e3e518c754e7148f65102f43289a7df0efea69101610c27565b5f805f805f805f806121245f6128f0565b61212e60016128f0565b60025460165461213c611e42565b60185460175460065461215e90610ee290600160a01b900460ff16600a613091565b969f959e50939c50919a509850965094509092509050565b6004546001600160a01b03163314806121995750600c546001600160a01b031633145b806121ae5750600d546001600160a01b031633145b6121ca5760405162461bcd60e51b8152600401610b0490612f48565b6001600160a01b038216158015906121ea57506001600160a01b03811615155b6122065760405162461bcd60e51b8152600401610b04906130b6565b600f80546001600160a01b038481166001600160a01b0319928316811790935560078054831684179055601180549185169190921681179091556040805192835260208301919091527fb21874967eedf8b74dfe7dcc8d6097f77276866e02302f325c825e1502fe22289101611b46565b5f610f6960016128f0565b6001600160a01b0383166122e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b04565b6001600160a01b0382166123455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b04565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661240a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b04565b6001600160a01b03821661246c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b04565b6124a881604051806060016040528060268152602001613206602691396001600160a01b0386165f908152602081905260409020549190612526565b6001600160a01b038085165f9081526020819052604080822093909355908416815220546124d6908261270c565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612399565b5f81848411156125495760405162461bcd60e51b8152600401610b049190612d73565b505f61255584866130f9565b95945050505050565b5f6117d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612526565b5f8281526003602052604090206125b69082612b65565b15610ec05760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b5f825f0361260557505f610a82565b5f6126108385613172565b90508261261d8583613189565b146117d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b04565b5f6117d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b7e565b5f8281526003602052604090206126cc9082612baa565b15610ec05760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f8061271883856131a8565b9050838110156117d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b04565b6001600160a01b0382166127ca5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b04565b612806816040518060600160405280602281526020016131e4602291396001600160a01b0385165f908152602081905260409020549190612526565b6001600160a01b0383165f9081526020819052604090205560025461282b908261255e565b6002556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016119a8565b5f6128768383612bc3565b60601c9392505050565b606081901b6001600160601b0319165f90815260018301602052604081205415156117d4565b6128b0828261276a565b610ec08233610dac84604051806060016040528060248152602001613254602491396001600160a01b0388165f9081526001602052604081209033610d8c565b6006545f90819061291090610ee290600160a01b900460ff16600a613091565b90505f80846001811115612926576129266131bb565b036129aa57600754601154604051633ddac95360e01b81526001600160a01b039182166004820152620f42406024820152911690633ddac953906044015b602060405180830381865afa15801561297f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a3919061309f565b9050612a6e565b60018460018111156129be576129be6131bb565b03612a0057600854601154604051633ddac95360e01b81526001600160a01b039182166004820152620f42406024820152911690633ddac95390604401612964565b60405162461bcd60e51b815260206004820152603c60248201527f494e56414c49442050524943452043484f4943452e204e6565647320746f206260448201527f6520656974686572203020284652415829206f722031202846585329000000006064820152608401610b04565b612a7f81610f6384620f42406125f6565b949350505050565b6001600160a01b038216612add5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b04565b600254612aea908261270c565b6002556001600160a01b0382165f90815260208190526040902054612b0f908261270c565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016119a8565b5f610a82825490565b5f6117d4836001600160601b0319606085901b16612c45565b5f8183612b9e5760405162461bcd60e51b8152600401610b049190612d73565b505f6125558486613189565b5f6117d4836001600160601b0319606085901b16612c91565b81545f908210612c205760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610b04565b825f018281548110612c3457612c346130e5565b905f5260205f200154905092915050565b5f818152600183016020526040812054612c8a57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a82565b505f610a82565b5f8181526001830160205260408120548015612d6a575f612cb36001836130f9565b85549091505f90612cc6906001906130f9565b90505f865f018281548110612cdd57612cdd6130e5565b905f5260205f200154905080875f018481548110612cfd57612cfd6130e5565b5f91825260209091200155612d138360016131a8565b5f8281526001890160205260409020558654879080612d3457612d346131cf565b600190038181905f5260205f20015f90559055866001015f8781526020019081526020015f205f90556001945050505050610a82565b5f915050610a82565b5f602080835283518060208501525f5b81811015612d9f57858101830151858201604001528201612d83565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612dd5575f80fd5b919050565b5f8060408385031215612deb575f80fd5b612df483612dbf565b946020939093013593505050565b5f60208284031215612e12575f80fd5b5035919050565b5f8060408385031215612e2a575f80fd5b612e3383612dbf565b915060208301358015158114612e47575f80fd5b809150509250929050565b5f60208284031215612e62575f80fd5b6117d482612dbf565b5f805f60608486031215612e7d575f80fd5b612e8684612dbf565b9250612e9460208501612dbf565b9150604084013590509250925092565b5f8060408385031215612eb5575f80fd5b82359150612ec560208401612dbf565b90509250929050565b5f8060408385031215612edf575f80fd5b50508035926020909101359150565b5f8060408385031215612eff575f80fd5b612f0883612dbf565b9150612ec560208401612dbf565b600181811c90821680612f2a57607f821691505b602082108103611f1d57634e487b7160e01b5f52602260045260245ffd5b60208082526035908201527f4e6f7420746865206f776e65722c20636f6e74726f6c6c65722c206f722074686040820152746520676f7665726e616e63652074696d656c6f636b60581b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115612feb57815f1904821115612fd157612fd1612f9d565b80851615612fde57918102915b93841c9390800290612fb6565b509250929050565b5f8261300157506001610a82565b8161300d57505f610a82565b8160018114613023576002811461302d57613049565b6001915050610a82565b60ff84111561303e5761303e612f9d565b50506001821b610a82565b5060208310610133831016604e8410600b841016171561306c575081810a610a82565b6130768383612fb1565b805f190482111561308957613089612f9d565b029392505050565b5f6117d460ff841683612ff3565b5f602082840312156130af575f80fd5b5051919050565b60208082526015908201527416995c9bc81859191c995cdcc819195d1958dd1959605a1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b81810381811115610a8257610a82612f9d565b5f6020828403121561311c575f80fd5b815160ff811681146117d4575f80fd5b60208082526026908201527f4f6e6c79206672617820706f6f6c732063616e2063616c6c20746869732066756040820152653731ba34b7b760d11b606082015260800190565b8082028115828204841417610a8257610a82612f9d565b5f826131a357634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a8257610a82612f9d565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209ce0aed5a6355da69dd0ac1dc71f226e41ccf30b3c602ae05c526119436d008164736f6c63430008180033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000e70898ff2ae4146eb6133f9f14449cf0f80a34bf0000000000000000000000008af6d438aa973fb9715d526f78db10e04f18154d0000000000000000000000000000000000000000000000000000000000000007435245444954530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074352454449545300000000000000000000000000000000000000000000000000