0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80637965d56d116100f9578063a457c2d711610097578063c4d66de811610071578063c4d66de8146103e1578063d505accf146103f4578063dd62ed3e14610407578063ee99205c1461044d57600080fd5b8063a457c2d7146103a8578063a9059cbb146103bb578063ac5a7d5c146103ce57600080fd5b8063893d20e8116100d3578063893d20e81461035a5780639358928b1461037857806395d89b41146103805780639ce110d71461038857600080fd5b80637965d56d1461032c5780637ecebe001461033f57806381045ead1461035257600080fd5b8063313ce567116101665780633e2fe149116101405780633e2fe149146102885780636cef16e6146102c757806370a08231146102d157806373c69eb7146102e457600080fd5b8063313ce5671461025e5780633644e5151461026d578063395093511461027557600080fd5b806318160ddd116101a257806318160ddd146102275780631bd396741461022f57806323b872dd146102425780632986c0e51461025557600080fd5b8063058ecdb4146101c957806306fdde03146101ef578063095ea7b314610204575b600080fd5b6101dc6101d7366004611ddb565b61046d565b6040519081526020015b60405180910390f35b6101f76106f4565b6040516101e69190611dfd565b610217610212366004611e99565b610786565b60405190151581526020016101e6565b6002546101dc565b6101dc61023d366004611ec3565b6107ff565b610217610250366004611edc565b61080f565b6101dc600b5481565b604051601281526020016101e6565b6101dc610a40565b610217610283366004611e99565b610a4f565b60075473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e6565b6102cf610b02565b005b6101dc6102df366004611f18565b610c41565b6102f76102f2366004611ec3565b610c75565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e0016101e6565b6101dc61033a366004611ec3565b610cc7565b6101dc61034d366004611f18565b610cd7565b6101dc610d02565b60065473ffffffffffffffffffffffffffffffffffffffff166102a2565b6101dc610d0f565b6101f7610d41565b6009546102a29073ffffffffffffffffffffffffffffffffffffffff1681565b6102176103b6366004611e99565b610d50565b6102176103c9366004611e99565b610e9b565b6102cf6103dc366004611f18565b611059565b6102176103ef366004611f18565b611168565b6102cf610402366004611f3a565b6113b2565b6101dc610415366004611fad565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600e6020908152604080832093909416825291909152205490565b6008546102a29073ffffffffffffffffffffffffffffffffffffffff1681565b60085460009073ffffffffffffffffffffffffffffffffffffffff1633146104f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f74207374616b696e6720636f6e747261637400000000000000000000000060448201526064015b60405180910390fd5b600080610501610d0f565b90506000811161056d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43616e277420726562617365206966206e6f742063697263756c6174696e670060448201526064016104ed565b8461060757837f917acfbe39be6509ccf7fecb66a7e42ce2be1083c2d7dd3b9b7491dabddb8da4426002546040516105af929190918252602082015260400190565b60405180910390a2837f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb260006105e3610d02565b6040805192835260208301919091520160405180910390a2600254925050506106ee565b8060025486610616919061200f565b610620919061207b565b915081600254610630919061208f565b60028190556fffffffffffffffffffffffffffffffff1015610661576fffffffffffffffffffffffffffffffff6002555b60025461067a670de0b6b3a7640000631dcd650061200f565b6106a4907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120a7565b6106ce907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120bb565b6106d8919061207b565b600c556106e6818686611571565b600254925050505b92915050565b606060038054610703906120d2565b80601f016020809104026020016040519081016040528092919081815260200182805461072f906120d2565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b5050505050905090565b336000818152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ee9086815260200190565b60405180910390a350600192915050565b6000600c54826106ee919061200f565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600e602090815260408083203384529091528120548211156108a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f416c6c6f77616e636520746f6f206c6f7700000000000000000000000000000060448201526064016104ed565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600e602090815260408083203384529091528120546108e59084906120bb565b73ffffffffffffffffffffffffffffffffffffffff86166000818152600e6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3600061095a846107ff565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600d602052604090205490915061098e9082906120bb565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600d602052604080822093909355908716815220546109cb90829061208f565b73ffffffffffffffffffffffffffffffffffffffff8087166000818152600d602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a2c9088815260200190565b60405180910390a350600195945050505050565b6000610a4a6116ba565b905090565b336000908152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120548190610a8d90849061208f565b336000818152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a16808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610ba9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f776e61626c653a206d757374206265206e6577206f776e657220746f20707560448201527f6c6c00000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b60075460065460405173ffffffffffffffffffffffffffffffffffffffff92831692909116907faa151555690c956fc3ea32f106bb9f119b5237a061eaa8557cff3e51e3792c8d90600090a360078054600680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b600c5473ffffffffffffffffffffffffffffffffffffffff82166000908152600d602052604081205490916106ee9161207b565b600a8181548110610c8557600080fd5b90600052602060002090600702016000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b6000600c54826106ee919061207b565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120546106ee565b6000610a4a600b54610cc7565b600854600090610d349073ffffffffffffffffffffffffffffffffffffffff16610c41565b600254610a4a91906120bb565b606060048054610703906120d2565b336000908152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054821115610dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f7420656e6f75676820616c6c6f77616e636500000000000000000000000060448201526064016104ed565b336000908152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490610e2684836120bb565b336000818152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b16808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3506001949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8316610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016104ed565b6000600c5483610f2a919061200f565b336000908152600d6020526040902054909150811115610fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420656e6f7567682066756e64730000000000000000000000000000000060448201526064016104ed565b336000908152600d6020526040902054610fc19082906120bb565b336000908152600d60205260408082209290925573ffffffffffffffffffffffffffffffffffffffff861681522054610ffb90829061208f565b73ffffffffffffffffffffffffffffffffffffffff85166000818152600d60205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610af09087815260200190565b60065473ffffffffffffffffffffffffffffffffffffffff1633146110da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b60065460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba90600090a3600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60095460009073ffffffffffffffffffffffffffffffffffffffff1633146111ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d7573742062652063616c6c65642066726f6d20696e697469616c697a65720060448201526064016104ed565b600980547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff8216611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016104ed565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556112e7670de0b6b3a7640000631dcd650061200f565b611311907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120a7565b61133b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120bb565b6008805473ffffffffffffffffffffffffffffffffffffffff9081166000908152600d602052604080822094909455915460025493519116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916113a291815260200190565b60405180910390a3506001919050565b8342111561141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104ed565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861144b8c6117ee565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006114b382611823565b905060006114c38287878761188c565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104ed565b6115658a8a8a6118b4565b50505050505050505050565b600083611586670de0b6b3a76400008561200f565b611590919061207b565b9050600a6040518060e001604052808481526020018381526020018681526020016115b9610d0f565b81526020018581526020016115cc610d02565b81524360209182015282546001808201855560009485529382902083516007909202019081558282015193810193909355604080830151600280860191909155606084015160038601556080840151600486015560a0840151600586015560c090930151600690940193909355905482514281529182015283917f917acfbe39be6509ccf7fecb66a7e42ce2be1083c2d7dd3b9b7491dabddb8da4910160405180910390a2817f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb28261169c610d02565b6040805192835260208301919091520160405180910390a250505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000dc49108ce5c57bc3408c3a5e95f3d864ec386ed31614801561172057507f000000000000000000000000000000000000000000000000000000000000000146145b1561174a57507f092c117ff57646f501b5e84bb782f2d12e0b1f37043b3b30c368d4a8ab634e8b90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f9afbcf44c347a1f9df011fb486e79c6e0f7dc5119862f262f6fde17ca46495c3828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604090208054600181018255905b50919050565b60006106ee6118306116ba565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061189d87878787611a67565b915091506118aa81611b7f565b5095945050505050565b73ffffffffffffffffffffffffffffffffffffffff8316611956576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104ed565b73ffffffffffffffffffffffffffffffffffffffff82166119f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611a9e5750600090506003611b76565b8460ff16601b14158015611ab657508460ff16601c14155b15611ac75750600090506004611b76565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b1b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611b6f57600060019250925050611b76565b9150600090505b94509492505050565b6000816004811115611b9357611b93612120565b1415611b9c5750565b6001816004811115611bb057611bb0612120565b1415611c18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104ed565b6002816004811115611c2c57611c2c612120565b1415611c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104ed565b6003816004811115611ca857611ca8612120565b1415611d36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b6004816004811115611d4a57611d4a612120565b1415611dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b50565b60008060408385031215611dee57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611e2a57858101830151858201604001528201611e0e565b81811115611e3c576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e9457600080fd5b919050565b60008060408385031215611eac57600080fd5b611eb583611e70565b946020939093013593505050565b600060208284031215611ed557600080fd5b5035919050565b600080600060608486031215611ef157600080fd5b611efa84611e70565b9250611f0860208501611e70565b9150604084013590509250925092565b600060208284031215611f2a57600080fd5b611f3382611e70565b9392505050565b600080600080600080600060e0888a031215611f5557600080fd5b611f5e88611e70565b9650611f6c60208901611e70565b95506040880135945060608801359350608088013560ff81168114611f9057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215611fc057600080fd5b611fc983611e70565b9150611fd760208401611e70565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561204757612047611fe0565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261208a5761208a61204c565b500490565b600082198211156120a2576120a2611fe0565b500190565b6000826120b6576120b661204c565b500690565b6000828210156120cd576120cd611fe0565b500390565b600181811c908216806120e657607f821691505b6020821081141561181d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea264697066735822122018b24aa2d2c21eedc78c55d4a0a09ab11fc3a57b128f8b937aded02a5b263b5064736f6c63430008090033
0x6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140523480156200003757600080fd5b506040518060400160405280600a815260200169464f58205969656c647960b01b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600a815260200169464f58205969656c647960b01b81525060405180604001604052806004815260200163464f587960e01b8152508160039080519060200190620000ce92919062000277565b508051620000e490600490602084019062000277565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c052610120525050600680546001600160a01b03191633908117909155604051909350600092507fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba91508290a3600980546001600160a01b03191633179055620001e5670de0b6b3a7640000631dcd650062000333565b600281905562000202670de0b6b3a7640000631dcd650062000333565b62000210906000196200036b565b6200021e9060001962000382565b6200022a91906200039c565b600c5562000240670de0b6b3a764000062000247565b50620003f0565b600062000254826200025f565b600b55506001919050565b6000600c548262000271919062000333565b92915050565b8280546200028590620003b3565b90600052602060002090601f016020900481019282620002a95760008555620002f4565b82601f10620002c457805160ff1916838001178555620002f4565b82800160010185558215620002f4579182015b82811115620002f4578251825591602001919060010190620002d7565b506200030292915062000306565b5090565b5b8082111562000302576000815560010162000307565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200035057620003506200031d565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200037d576200037d62000355565b500690565b6000828210156200039757620003976200031d565b500390565b600082620003ae57620003ae62000355565b500490565b600181811c90821680620003c857607f821691505b60208210811415620003ea57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051610140516121856200044b600039600061142001526000611751015260006117a00152600061177b015260006116d4015260006116fe0152600061172801526121856000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80637965d56d116100f9578063a457c2d711610097578063c4d66de811610071578063c4d66de8146103e1578063d505accf146103f4578063dd62ed3e14610407578063ee99205c1461044d57600080fd5b8063a457c2d7146103a8578063a9059cbb146103bb578063ac5a7d5c146103ce57600080fd5b8063893d20e8116100d3578063893d20e81461035a5780639358928b1461037857806395d89b41146103805780639ce110d71461038857600080fd5b80637965d56d1461032c5780637ecebe001461033f57806381045ead1461035257600080fd5b8063313ce567116101665780633e2fe149116101405780633e2fe149146102885780636cef16e6146102c757806370a08231146102d157806373c69eb7146102e457600080fd5b8063313ce5671461025e5780633644e5151461026d578063395093511461027557600080fd5b806318160ddd116101a257806318160ddd146102275780631bd396741461022f57806323b872dd146102425780632986c0e51461025557600080fd5b8063058ecdb4146101c957806306fdde03146101ef578063095ea7b314610204575b600080fd5b6101dc6101d7366004611ddb565b61046d565b6040519081526020015b60405180910390f35b6101f76106f4565b6040516101e69190611dfd565b610217610212366004611e99565b610786565b60405190151581526020016101e6565b6002546101dc565b6101dc61023d366004611ec3565b6107ff565b610217610250366004611edc565b61080f565b6101dc600b5481565b604051601281526020016101e6565b6101dc610a40565b610217610283366004611e99565b610a4f565b60075473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e6565b6102cf610b02565b005b6101dc6102df366004611f18565b610c41565b6102f76102f2366004611ec3565b610c75565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e0016101e6565b6101dc61033a366004611ec3565b610cc7565b6101dc61034d366004611f18565b610cd7565b6101dc610d02565b60065473ffffffffffffffffffffffffffffffffffffffff166102a2565b6101dc610d0f565b6101f7610d41565b6009546102a29073ffffffffffffffffffffffffffffffffffffffff1681565b6102176103b6366004611e99565b610d50565b6102176103c9366004611e99565b610e9b565b6102cf6103dc366004611f18565b611059565b6102176103ef366004611f18565b611168565b6102cf610402366004611f3a565b6113b2565b6101dc610415366004611fad565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600e6020908152604080832093909416825291909152205490565b6008546102a29073ffffffffffffffffffffffffffffffffffffffff1681565b60085460009073ffffffffffffffffffffffffffffffffffffffff1633146104f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f74207374616b696e6720636f6e747261637400000000000000000000000060448201526064015b60405180910390fd5b600080610501610d0f565b90506000811161056d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43616e277420726562617365206966206e6f742063697263756c6174696e670060448201526064016104ed565b8461060757837f917acfbe39be6509ccf7fecb66a7e42ce2be1083c2d7dd3b9b7491dabddb8da4426002546040516105af929190918252602082015260400190565b60405180910390a2837f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb260006105e3610d02565b6040805192835260208301919091520160405180910390a2600254925050506106ee565b8060025486610616919061200f565b610620919061207b565b915081600254610630919061208f565b60028190556fffffffffffffffffffffffffffffffff1015610661576fffffffffffffffffffffffffffffffff6002555b60025461067a670de0b6b3a7640000631dcd650061200f565b6106a4907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120a7565b6106ce907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120bb565b6106d8919061207b565b600c556106e6818686611571565b600254925050505b92915050565b606060038054610703906120d2565b80601f016020809104026020016040519081016040528092919081815260200182805461072f906120d2565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b5050505050905090565b336000818152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107ee9086815260200190565b60405180910390a350600192915050565b6000600c54826106ee919061200f565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600e602090815260408083203384529091528120548211156108a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f416c6c6f77616e636520746f6f206c6f7700000000000000000000000000000060448201526064016104ed565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600e602090815260408083203384529091528120546108e59084906120bb565b73ffffffffffffffffffffffffffffffffffffffff86166000818152600e6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3600061095a846107ff565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600d602052604090205490915061098e9082906120bb565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600d602052604080822093909355908716815220546109cb90829061208f565b73ffffffffffffffffffffffffffffffffffffffff8087166000818152600d602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a2c9088815260200190565b60405180910390a350600195945050505050565b6000610a4a6116ba565b905090565b336000908152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120548190610a8d90849061208f565b336000818152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a16808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610ba9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f776e61626c653a206d757374206265206e6577206f776e657220746f20707560448201527f6c6c00000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b60075460065460405173ffffffffffffffffffffffffffffffffffffffff92831692909116907faa151555690c956fc3ea32f106bb9f119b5237a061eaa8557cff3e51e3792c8d90600090a360078054600680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b600c5473ffffffffffffffffffffffffffffffffffffffff82166000908152600d602052604081205490916106ee9161207b565b600a8181548110610c8557600080fd5b90600052602060002090600702016000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b6000600c54826106ee919061207b565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120546106ee565b6000610a4a600b54610cc7565b600854600090610d349073ffffffffffffffffffffffffffffffffffffffff16610c41565b600254610a4a91906120bb565b606060048054610703906120d2565b336000908152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054821115610dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f7420656e6f75676820616c6c6f77616e636500000000000000000000000060448201526064016104ed565b336000908152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490610e2684836120bb565b336000818152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b16808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3506001949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8316610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016104ed565b6000600c5483610f2a919061200f565b336000908152600d6020526040902054909150811115610fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420656e6f7567682066756e64730000000000000000000000000000000060448201526064016104ed565b336000908152600d6020526040902054610fc19082906120bb565b336000908152600d60205260408082209290925573ffffffffffffffffffffffffffffffffffffffff861681522054610ffb90829061208f565b73ffffffffffffffffffffffffffffffffffffffff85166000818152600d60205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610af09087815260200190565b60065473ffffffffffffffffffffffffffffffffffffffff1633146110da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b60065460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba90600090a3600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60095460009073ffffffffffffffffffffffffffffffffffffffff1633146111ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d7573742062652063616c6c65642066726f6d20696e697469616c697a65720060448201526064016104ed565b600980547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff8216611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016104ed565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556112e7670de0b6b3a7640000631dcd650061200f565b611311907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120a7565b61133b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120bb565b6008805473ffffffffffffffffffffffffffffffffffffffff9081166000908152600d602052604080822094909455915460025493519116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916113a291815260200190565b60405180910390a3506001919050565b8342111561141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104ed565b60007f000000000000000000000000000000000000000000000000000000000000000088888861144b8c6117ee565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006114b382611823565b905060006114c38287878761188c565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104ed565b6115658a8a8a6118b4565b50505050505050505050565b600083611586670de0b6b3a76400008561200f565b611590919061207b565b9050600a6040518060e001604052808481526020018381526020018681526020016115b9610d0f565b81526020018581526020016115cc610d02565b81524360209182015282546001808201855560009485529382902083516007909202019081558282015193810193909355604080830151600280860191909155606084015160038601556080840151600486015560a0840151600586015560c090930151600690940193909355905482514281529182015283917f917acfbe39be6509ccf7fecb66a7e42ce2be1083c2d7dd3b9b7491dabddb8da4910160405180910390a2817f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb28261169c610d02565b6040805192835260208301919091520160405180910390a250505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561172057507f000000000000000000000000000000000000000000000000000000000000000046145b1561174a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604090208054600181018255905b50919050565b60006106ee6118306116ba565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061189d87878787611a67565b915091506118aa81611b7f565b5095945050505050565b73ffffffffffffffffffffffffffffffffffffffff8316611956576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104ed565b73ffffffffffffffffffffffffffffffffffffffff82166119f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611a9e5750600090506003611b76565b8460ff16601b14158015611ab657508460ff16601c14155b15611ac75750600090506004611b76565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b1b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611b6f57600060019250925050611b76565b9150600090505b94509492505050565b6000816004811115611b9357611b93612120565b1415611b9c5750565b6001816004811115611bb057611bb0612120565b1415611c18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104ed565b6002816004811115611c2c57611c2c612120565b1415611c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104ed565b6003816004811115611ca857611ca8612120565b1415611d36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b6004816004811115611d4a57611d4a612120565b1415611dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104ed565b50565b60008060408385031215611dee57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611e2a57858101830151858201604001528201611e0e565b81811115611e3c576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e9457600080fd5b919050565b60008060408385031215611eac57600080fd5b611eb583611e70565b946020939093013593505050565b600060208284031215611ed557600080fd5b5035919050565b600080600060608486031215611ef157600080fd5b611efa84611e70565b9250611f0860208501611e70565b9150604084013590509250925092565b600060208284031215611f2a57600080fd5b611f3382611e70565b9392505050565b600080600080600080600060e0888a031215611f5557600080fd5b611f5e88611e70565b9650611f6c60208901611e70565b95506040880135945060608801359350608088013560ff81168114611f9057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215611fc057600080fd5b611fc983611e70565b9150611fd760208401611e70565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561204757612047611fe0565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261208a5761208a61204c565b500490565b600082198211156120a2576120a2611fe0565b500190565b6000826120b6576120b661204c565b500690565b6000828210156120cd576120cd611fe0565b500390565b600181811c908216806120e657607f821691505b6020821081141561181d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea264697066735822122018b24aa2d2c21eedc78c55d4a0a09ab11fc3a57b128f8b937aded02a5b263b5064736f6c63430008090033