6080604052620493e0600155620493e060025560056003555f600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff0219169083151502179055505f600d555f600e555f600f5534801562000064575f80fd5b506200008562000079620007f760201b60201c565b620007fe60201b60201c565b5f6012600a62000096919062000de6565b6319133850620000a7919062000e36565b9050620000ca620000bd620007f760201b60201c565b82620008bf60201b60201c565b620000da620007f760201b60201c565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001a13060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168362000a4b60201b60201c565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000232919062000ee5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002df919062000ee5565b6040518363ffffffff1660e01b8152600401620002fe92919062000f26565b6020604051808303815f875af11580156200031b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000341919062000ee5565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200041f92919062000f62565b6020604051808303815f875af11580156200043c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000462919062000fc7565b506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f6200052262000c1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f6200058662000c1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f620006b562000c1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050620011f2565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000930576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009279062001055565b60405180910390fd5b620009478160055462000c3d60201b90919060201c565b6005819055506200099f8160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205462000c3d60201b90919060201c565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a3f919062001075565b60405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000abc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ab39062001104565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b249062001198565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c09919062001075565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f818362000c4c9190620011b8565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000cde5780860481111562000cb65762000cb562000c54565b5b600185161562000cc65780820291505b808102905062000cd68562000c81565b945062000c96565b94509492505050565b5f8262000cf8576001905062000dca565b8162000d07575f905062000dca565b816001811462000d20576002811462000d2b5762000d61565b600191505062000dca565b60ff84111562000d405762000d3f62000c54565b5b8360020a91508482111562000d5a5762000d5962000c54565b5b5062000dca565b5060208310610133831016604e8410600b841016171562000d9b5782820a90508381111562000d955762000d9462000c54565b5b62000dca565b62000daa848484600162000c8d565b9250905081840481111562000dc45762000dc362000c54565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000df28262000dd1565b915062000dff8362000dda565b925062000e2e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ce7565b905092915050565b5f62000e428262000dd1565b915062000e4f8362000dd1565b925082820262000e5f8162000dd1565b9150828204841483151762000e795762000e7862000c54565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000eaf8262000e84565b9050919050565b62000ec18162000ea3565b811462000ecc575f80fd5b50565b5f8151905062000edf8162000eb6565b92915050565b5f6020828403121562000efd5762000efc62000e80565b5b5f62000f0c8482850162000ecf565b91505092915050565b62000f208162000ea3565b82525050565b5f60408201905062000f3b5f83018562000f15565b62000f4a602083018462000f15565b9392505050565b62000f5c8162000dd1565b82525050565b5f60408201905062000f775f83018562000f15565b62000f86602083018462000f51565b9392505050565b5f8115159050919050565b62000fa38162000f8d565b811462000fae575f80fd5b50565b5f8151905062000fc18162000f98565b92915050565b5f6020828403121562000fdf5762000fde62000e80565b5b5f62000fee8482850162000fb1565b91505092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6200103d601f8362000ff7565b91506200104a8262001007565b602082019050919050565b5f6020820190508181035f8301526200106e816200102f565b9050919050565b5f6020820190506200108a5f83018462000f51565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f620010ec60248362000ff7565b9150620010f98262001090565b604082019050919050565b5f6020820190508181035f8301526200111d81620010de565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200118060228362000ff7565b91506200118d8262001124565b604082019050919050565b5f6020820190508181035f830152620011b18162001172565b9050919050565b5f620011c48262000dd1565b9150620011d18362000dd1565b9250828201905080821115620011ec57620011eb62000c54565b5b92915050565b612be880620012005f395ff3fe608060405260043610610184575f3560e01c8063725fee41116100d0578063a9059cbb11610089578063cdf4bab911610063578063cdf4bab9146105ad578063d54f7d5e146105d7578063dd62ed3e14610601578063f2fde38b1461063d576101b7565b8063a9059cbb1461051f578063b60a3ebf1461055b578063c0b0fda214610583576101b7565b8063725fee41146104135780637d1db4a51461043b5780638d5f81e2146104655780638da5cb5b1461048f57806395d89b41146104b9578063a457c2d7146104e3576101b7565b806340b9a54b1161013d57806351c6590a1161011757806351c6590a1461037b578063590f897e1461039757806370a08231146103c1578063715018a6146103fd576101b7565b806340b9a54b146102ed57806342966c68146103175780634fbee1931461033f576101b7565b806306fdde03146101bb578063095ea7b3146101e557806318160ddd1461022157806323b872dd1461024b578063313ce5671461028757806339509351146102b1576101b7565b366101b7577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b5f80fd5b3480156101c6575f80fd5b506101cf610665565b6040516101dc9190611e6a565b60405180910390f35b3480156101f0575f80fd5b5061020b60048036038101906102069190611f28565b6106a2565b6040516102189190611f80565b60405180910390f35b34801561022c575f80fd5b506102356106bf565b6040516102429190611fa8565b60405180910390f35b348015610256575f80fd5b50610271600480360381019061026c9190611fc1565b6106c8565b60405161027e9190611f80565b60405180910390f35b348015610292575f80fd5b5061029b61079c565b6040516102a8919061202c565b60405180910390f35b3480156102bc575f80fd5b506102d760048036038101906102d29190611f28565b6107a4565b6040516102e49190611f80565b60405180910390f35b3480156102f8575f80fd5b50610301610852565b60405161030e9190611fa8565b60405180910390f35b348015610322575f80fd5b5061033d60048036038101906103389190612045565b610858565b005b34801561034a575f80fd5b5061036560048036038101906103609190612070565b61086c565b6040516103729190611f80565b60405180910390f35b61039560048036038101906103909190612045565b6108be565b005b3480156103a2575f80fd5b506103ab61091a565b6040516103b89190611fa8565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e29190612070565b610920565b6040516103f49190611fa8565b60405180910390f35b348015610408575f80fd5b50610411610966565b005b34801561041e575f80fd5b50610439600480360381019061043491906121db565b610979565b005b348015610446575f80fd5b5061044f610a56565b60405161045c9190611fa8565b60405180910390f35b348015610470575f80fd5b50610479610a87565b6040516104869190612231565b60405180910390f35b34801561049a575f80fd5b506104a3610aaf565b6040516104b09190612231565b60405180910390f35b3480156104c4575f80fd5b506104cd610ad6565b6040516104da9190611e6a565b60405180910390f35b3480156104ee575f80fd5b5061050960048036038101906105049190611f28565b610b13565b6040516105169190611f80565b60405180910390f35b34801561052a575f80fd5b5061054560048036038101906105409190611f28565b610bdb565b6040516105529190611f80565b60405180910390f35b348015610566575f80fd5b50610581600480360381019061057c919061224a565b610bf8565b005b34801561058e575f80fd5b50610597610c12565b6040516105a49190611fa8565b60405180910390f35b3480156105b8575f80fd5b506105c1610c18565b6040516105ce9190611f80565b60405180910390f35b3480156105e2575f80fd5b506105eb610c2e565b6040516105f89190612231565b60405180910390f35b34801561060c575f80fd5b5061062760048036038101906106229190612288565b610c56565b6040516106349190611fa8565b60405180910390f35b348015610648575f80fd5b50610663600480360381019061065e9190612070565b610cd8565b005b60606040518060400160405280600a81526020017f4261627947726f6b414900000000000000000000000000000000000000000000815250905090565b5f6106b56106ae610d5a565b8484610d61565b6001905092915050565b5f600554905090565b5f6106d4848484610f24565b610791846106e0610d5a565b61078c85604051806060016040528060288152602001612b666028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610743610d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118599092919063ffffffff16565b610d61565b600190509392505050565b5f6012905090565b5f6108486107b0610d5a565b846108438560075f6107c0610d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ad90919063ffffffff16565b610d61565b6001905092915050565b600f5481565b610869610863610d5a565b826118c2565b50565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6108c6611a5f565b6001600860146101000a81548160ff0219169083151502179055506108f36108ec610aaf565b3083610f24565b6108fd8134611add565b5f600860146101000a81548160ff02191690831515021790555050565b600d5481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61096e611a5f565b6109775f611bbd565b565b610981611a5f565b60c8815111156109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90612336565b60405180910390fd5b5f600c90505f5b8251811015610a51576001825f8584815181106109ed576109ec612354565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109cd565b505050565b5f610a82612710610a74600154600554611c7e90919063ffffffff16565b611c9390919063ffffffff16565b905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4247524f4b000000000000000000000000000000000000000000000000000000815250905090565b5f610bd1610b1f610d5a565b84610bcc85604051806060016040528060258152602001612b8e6025913960075f610b48610d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118599092919063ffffffff16565b610d61565b6001905092915050565b5f610bee610be7610d5a565b8484610f24565b6001905092915050565b610c00611a5f565b81600d8190555080600f819055505050565b600e5481565b5f600860149054906101000a900460ff16905090565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ce0611a5f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d45906123f1565b60405180910390fd5b610d5781611bbd565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc69061247f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e349061250d565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f179190611fa8565b60405180910390a3505050565b610f2f838383611ca8565b5f80610f39610aaf565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610fa75750610f77610aaf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561150757600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561104a5750600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115065760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156110f8575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561114b5750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561119e5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611298576111ce6127106111c0600154600554611c7e90919063ffffffff16565b611c9390919063ffffffff16565b831115611210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112079061259b565b60405180910390fd5b61123b61271061122d600254600554611c7e90919063ffffffff16565b611c9390919063ffffffff16565b6112568461124887610920565b6118ad90919063ffffffff16565b1115611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90612629565b60405180910390fd5b5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561132057503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156113be5761134e612710611340600e5486611c7e90919063ffffffff16565b611c9390919063ffffffff16565b915061137961271061136b600d5486611c7e90919063ffffffff16565b611c9390919063ffffffff16565b905043600a5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611467575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561150557611495612710611487600e5486611c7e90919063ffffffff16565b611c9390919063ffffffff16565b91506114c06127106114b2600f5486611c7e90919063ffffffff16565b611c9390919063ffffffff16565b905043600a5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5b5f61151b82846118ad90919063ffffffff16565b90505f8111156116b0575f8311156115385761153786846118c2565b5b5f82111561169a576115b18260045f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ad90919063ffffffff16565b60045f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116919190611fa8565b60405180910390a35b6116ad8185611dcb90919063ffffffff16565b93505b61171a84604051806060016040528060268152602001612b406026913960045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118599092919063ffffffff16565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506117ab8460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118ad90919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516118499190611fa8565b60405180910390a3505050505050565b5f8383111582906118a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118979190611e6a565b60405180910390fd5b5082840390509392505050565b5f81836118ba9190612674565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192790612717565b60405180910390fd5b61199a81604051806060016040528060228152602001612b1e6022913960045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118599092919063ffffffff16565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119f081600554611dcb90919063ffffffff16565b6005819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a539190611fa8565b60405180910390a35050565b611a67610d5a565b73ffffffffffffffffffffffffffffffffffffffff16611a85610aaf565b73ffffffffffffffffffffffffffffffffffffffff1614611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad29061277f565b60405180910390fd5b565b611b093060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d61565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80611b53610aaf565b426040518863ffffffff1660e01b8152600401611b75969594939291906127df565b60606040518083038185885af1158015611b91573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611bb69190612852565b5050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611c8b91906128a2565b905092915050565b5f8183611ca09190612910565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0d906129b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7b90612a3e565b60405180910390fd5b5f8111611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd90612acc565b60405180910390fd5b505050565b5f8183611dd89190612aea565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e17578082015181840152602081019050611dfc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e3c82611de0565b611e468185611dea565b9350611e56818560208601611dfa565b611e5f81611e22565b840191505092915050565b5f6020820190508181035f830152611e828184611e32565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ec482611e9b565b9050919050565b611ed481611eba565b8114611ede575f80fd5b50565b5f81359050611eef81611ecb565b92915050565b5f819050919050565b611f0781611ef5565b8114611f11575f80fd5b50565b5f81359050611f2281611efe565b92915050565b5f8060408385031215611f3e57611f3d611e93565b5b5f611f4b85828601611ee1565b9250506020611f5c85828601611f14565b9150509250929050565b5f8115159050919050565b611f7a81611f66565b82525050565b5f602082019050611f935f830184611f71565b92915050565b611fa281611ef5565b82525050565b5f602082019050611fbb5f830184611f99565b92915050565b5f805f60608486031215611fd857611fd7611e93565b5b5f611fe586828701611ee1565b9350506020611ff686828701611ee1565b925050604061200786828701611f14565b9150509250925092565b5f60ff82169050919050565b61202681612011565b82525050565b5f60208201905061203f5f83018461201d565b92915050565b5f6020828403121561205a57612059611e93565b5b5f61206784828501611f14565b91505092915050565b5f6020828403121561208557612084611e93565b5b5f61209284828501611ee1565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6120d582611e22565b810181811067ffffffffffffffff821117156120f4576120f361209f565b5b80604052505050565b5f612106611e8a565b905061211282826120cc565b919050565b5f67ffffffffffffffff8211156121315761213061209f565b5b602082029050602081019050919050565b5f80fd5b5f61215861215384612117565b6120fd565b9050808382526020820190506020840283018581111561217b5761217a612142565b5b835b818110156121a457806121908882611ee1565b84526020840193505060208101905061217d565b5050509392505050565b5f82601f8301126121c2576121c161209b565b5b81356121d2848260208601612146565b91505092915050565b5f602082840312156121f0576121ef611e93565b5b5f82013567ffffffffffffffff81111561220d5761220c611e97565b5b612219848285016121ae565b91505092915050565b61222b81611eba565b82525050565b5f6020820190506122445f830184612222565b92915050565b5f80604083850312156122605761225f611e93565b5b5f61226d85828601611f14565b925050602061227e85828601611f14565b9150509250929050565b5f806040838503121561229e5761229d611e93565b5b5f6122ab85828601611ee1565b92505060206122bc85828601611ee1565b9150509250929050565b7f4d6178696d756d206f66203230302063616e206265206164646564206174206f5f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f612320602383611dea565b915061232b826122c6565b604082019050919050565b5f6020820190508181035f83015261234d81612314565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6123db602683611dea565b91506123e682612381565b604082019050919050565b5f6020820190508181035f830152612408816123cf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612469602483611dea565b91506124748261240f565b604082019050919050565b5f6020820190508181035f8301526124968161245d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124f7602283611dea565b91506125028261249d565b604082019050919050565b5f6020820190508181035f830152612524816124eb565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f612585602883611dea565b91506125908261252b565b604082019050919050565b5f6020820190508181035f8301526125b281612579565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f5f8201527f756e740000000000000000000000000000000000000000000000000000000000602082015250565b5f612613602383611dea565b915061261e826125b9565b604082019050919050565b5f6020820190508181035f83015261264081612607565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61267e82611ef5565b915061268983611ef5565b92508282019050808211156126a1576126a0612647565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612701602183611dea565b915061270c826126a7565b604082019050919050565b5f6020820190508181035f83015261272e816126f5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612769602083611dea565b915061277482612735565b602082019050919050565b5f6020820190508181035f8301526127968161275d565b9050919050565b5f819050919050565b5f819050919050565b5f6127c96127c46127bf8461279d565b6127a6565b611ef5565b9050919050565b6127d9816127af565b82525050565b5f60c0820190506127f25f830189612222565b6127ff6020830188611f99565b61280c60408301876127d0565b61281960608301866127d0565b6128266080830185612222565b61283360a0830184611f99565b979650505050505050565b5f8151905061284c81611efe565b92915050565b5f805f6060848603121561286957612868611e93565b5b5f6128768682870161283e565b93505060206128878682870161283e565b92505060406128988682870161283e565b9150509250925092565b5f6128ac82611ef5565b91506128b783611ef5565b92508282026128c581611ef5565b915082820484148315176128dc576128db612647565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61291a82611ef5565b915061292583611ef5565b925082612935576129346128e3565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61299a602583611dea565b91506129a582612940565b604082019050919050565b5f6020820190508181035f8301526129c78161298e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a28602383611dea565b9150612a33826129ce565b604082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ab6602983611dea565b9150612ac182612a5c565b604082019050919050565b5f6020820190508181035f830152612ae381612aaa565b9050919050565b5f612af482611ef5565b9150612aff83611ef5565b9250828203905081811115612b1757612b16612647565b5b9291505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208bdd3cdfcc0208865148e4013a578d9e423ad790fb2d678af72737670c3f633e64736f6c63430008160033