60806040526014609d556000609e60006101000a81548160ff02191690831515021790555061232860a255737a250d5630b4cf539739df2c5dacb4c659f2488d60a760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060a960006101000a81548160ff0219169083151502179055506202a30060ac55348015620000ae57600080fd5b50620000ce33620002776401000000000262002ddb176401000000009004565b6200015a6040805190810160405280601181526020017f52657665727365202050726f746f636f6c0000000000000000000000000000008152506040805190810160405280600781526020017f526576657273650000000000000000000000000000000000000000000000000081525060096200040a6401000000000262002f5a176401000000009004565b66020dc92dd27936609f8190555066020dc92dd279366000198115156200017d57fe5b066000190360a160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000203609f5466020dc92dd27936600019811515620001e157fe5b0660001903620005a36401000000000262002af9179091906401000000009004565b60a0819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef609f546040518082815260200191505060405180910390a36200078d565b60008060019054906101000a900460ff1680620002a95750620002a8620005fe640100000000026401000000009004565b5b80620002c157506000809054906101000a900460ff16155b15156200035c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060698190555080600060016101000a81548160ff0219169083151502179055505050565b60008060019054906101000a900460ff16806200043c57506200043b620005fe640100000000026401000000009004565b5b806200045457506000809054906101000a900460ff16155b1515620004ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083603390805190602001906200054e929190620006de565b50826034908051906020019062000567929190620006de565b5081603560006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000620005f683836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200060f640100000000026401000000009004565b905092915050565b600080303b90506000811491505090565b6000806000841183901515620006c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620006875780820151818401526020810190506200066a565b50505050905090810190601f168015620006b55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508385811515620006d057fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200072157805160ff191683800117855562000752565b8280016001018555821562000752579182015b828111156200075157825182559160200191906001019062000734565b5b50905062000761919062000765565b5090565b6200078a91905b80821115620007865760008160009055506001016200076c565b5090565b90565b6131bd806200079d6000396000f3006080604052600436106101a1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630577c02b146101a657806306fdde03146101bd578063095ea7b31461024d57806318160ddd146102b257806323b872dd146102dd578063313ce567146103625780633167f78b1461039357806339509351146103c957806344894cd71461042e57806350415c461461047157806356bd235e146104885780635872a91f146104df57806370a08231146105225780637a2a2e7b14610579578063826ecda4146105d05780638da5cb5b146106135780638f32d59b1461066a57806394611fef1461069957806395d89b41146106f057806397905b3c146107805780639b5617bd146107ad5780639ff94374146107d8578063a16ecd8e1461082f578063a457c2d714610886578063a9059cbb146108eb578063a99728b914610950578063af14052c146109ab578063b200107c146109d6578063c81635a214610a05578063ce554f6d14610a48578063dd62ed3e14610a77578063ef6b88e614610aee578063f2fde38b14610b19575b600080fd5b3480156101b257600080fd5b506101bb610b5c565b005b3480156101c957600080fd5b506101d2610c0f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102125780820151818401526020810190506101f7565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025957600080fd5b50610298600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cb1565b604051808215151515815260200191505060405180910390f35b3480156102be57600080fd5b506102c7610da3565b6040518082815260200191505060405180910390f35b3480156102e957600080fd5b50610348600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dad565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b506103776112f2565b604051808260ff1660ff16815260200191505060405180910390f35b34801561039f57600080fd5b506103a8611309565b60405180838152602001821515151581526020019250505060405180910390f35b3480156103d557600080fd5b50610414600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114a6565b604051808215151515815260200191505060405180910390f35b34801561043a57600080fd5b5061046f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a2565b005b34801561047d57600080fd5b5061048661188d565b005b34801561049457600080fd5b5061049d611963565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104eb57600080fd5b50610520600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061198d565b005b34801561052e57600080fd5b50610563600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119e4565b6040518082815260200191505060405180910390f35b34801561058557600080fd5b5061058e611a41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6b565b005b34801561061f57600080fd5b50610628611ac2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067657600080fd5b5061067f611aec565b604051808215151515815260200191505060405180910390f35b3480156106a557600080fd5b506106ae611b44565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106fc57600080fd5b50610705611b6e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074557808201518184015260208101905061072a565b50505050905090810190601f1680156107725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561078c57600080fd5b506107ab60048036038101908080359060200190929190505050611c10565b005b3480156107b957600080fd5b506107c2611c2d565b6040518082815260200191505060405180910390f35b3480156107e457600080fd5b506107ed611c33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083b57600080fd5b50610870600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5d565b6040518082815260200191505060405180910390f35b34801561089257600080fd5b506108d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c7b565b604051808215151515815260200191505060405180910390f35b3480156108f757600080fd5b50610936600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f0d565b604051808215151515815260200191505060405180910390f35b34801561095c57600080fd5b50610991600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612342565b604051808215151515815260200191505060405180910390f35b3480156109b757600080fd5b506109c06123a2565b6040518082815260200191505060405180910390f35b3480156109e257600080fd5b506109eb61282f565b604051808215151515815260200191505060405180910390f35b348015610a1157600080fd5b50610a46600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612842565b005b348015610a5457600080fd5b50610a5d612899565b604051808215151515815260200191505060405180910390f35b348015610a8357600080fd5b50610ad8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b6040518082815260200191505060405180910390f35b348015610afa57600080fd5b50610b03612933565b6040518082815260200191505060405180910390f35b348015610b2557600080fd5b50610b5a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612939565b005b610b64611aec565b1515610b6f57600080fd5b6000606954141515610b8057600080fd5b7f88edfb4ea96673000ad101b18d1c7dbd727c5d92217c8d0b9966f2aaf77e93f4606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16001606981905550565b606060338054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ca75780601f10610c7c57610100808354040283529160200191610ca7565b820191906000526020600020905b815481529060010190602001808311610c8a57829003601f168201915b5050505050905090565b60008160aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000609f54905090565b60008083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ded57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e2857600080fd5b60011515609e60009054906101000a900460ff16151514156110305760011515610e5187612342565b1515141515610ec8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f596f752063616e742073656e64206265666f7265204d616769636c6f636b000081525060200191505060405180910390fd5b60a560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610f74575060a760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610fce575060a460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561102f57610fe843609d5461295890919063ffffffff16565b609c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b6110bf8460aa60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e290919063ffffffff16565b60aa60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061115460a05485612a2c90919063ffffffff16565b91506111a88260a160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e290919063ffffffff16565b60a160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061123d8260a160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295890919063ffffffff16565b60a160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b6000603560009054906101000a900460ff16905090565b600080600080600060a360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561139757600080fd5b505af11580156113ab573d6000803e3d6000fd5b505050506040513d60208110156113c157600080fd5b810190808051906020019092919050505092506000905060a8548311156114375761141f60a85461141161271061140360a854886129e290919063ffffffff16565b612a2c90919063ffffffff16565b612af990919063ffffffff16565b9150612710821015156114325760a25491505b611499565b8260a854111561149857611491600261148360a8546114756127106114678960a8546129e290919063ffffffff16565b612a2c90919063ffffffff16565b612af990919063ffffffff16565b612a2c90919063ffffffff16565b9150600190505b5b8181945094505050509091565b60006115378260aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295890919063ffffffff16565b60aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60a660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060a360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561182e57600080fd5b505af1158015611842573d6000803e3d6000fd5b505050506040513d602081101561185857600080fd5b810190808051906020019092919050505060a881905550600160a960006101000a81548160ff02191690831515021790555050565b611895611aec565b15156118a057600080fd5b60001515609e60009054906101000a900460ff16151514151561192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d6167696320416c72656164792041637469766564000000000000000000000081525060200191505060405180910390fd5b61194060ac544361295890919063ffffffff16565b60ab819055506001609e60006101000a81548160ff021916908315150217905550565b600060a560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611995611aec565b15156119a057600080fd5b8060a460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611a3a60a05460a160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612af990919063ffffffff16565b9050919050565b600060a460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a73611aec565b1515611a7e57600080fd5b8060a560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600060a360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060348054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c065780601f10611bdb57610100808354040283529160200191611c06565b820191906000526020600020905b815481529060010190602001808311611be957829003601f168201915b5050505050905090565b611c18611aec565b1515611c2357600080fd5b8060a28190555050565b60ab5481565b600060a660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b609c6020528060005260406000206000915090508060000154905081565b60008060aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083101515611d8d57600060aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e21565b611da083826129e290919063ffffffff16565b60aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560aa60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f4d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f8857600080fd5b60011515609e60009054906101000a900460ff16151514156121905760011515611fb133612342565b1515141515612028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f596f752063616e742073656e64206265666f7265204d616769636c6f636b000081525060200191505060405180910390fd5b60a560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156120d4575060a760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561212e575060a460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561218f5761214843609d5461295890919063ffffffff16565b609c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b6121a560a05485612a2c90919063ffffffff16565b91506121f98260a160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e290919063ffffffff16565b60a160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061228e8260a160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295890919063ffffffff16565b60a160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000609c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015443101515612398576001905061239d565b600090505b919050565b60008060008060a360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561242e57600080fd5b505af1158015612442573d6000803e3d6000fd5b505050506040513d602081101561245857600080fd5b8101908080519060200190929190505050925060a85483141515156124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e4f542059455420504c4541534520574149540000000000000000000000000081525060200191505060405180910390fd5b60ab544310151561250c576000609e60006101000a81548160ff0219169083151502179055505b60a85483111561256b5761255360a85461254561271061253760a854886129e290919063ffffffff16565b612a2c90919063ffffffff16565b612af990919063ffffffff16565b915060a254821015156125665760a25491505b6125c9565b8260a85411156125c8576125c560026125b760a8546125a961271061259b8960a8546129e290919063ffffffff16565b612a2c90919063ffffffff16565b612af990919063ffffffff16565b612a2c90919063ffffffff16565b91505b5b6125f26127106125e484609f54612a2c90919063ffffffff16565b612af990919063ffffffff16565b905060a85483111561261e5761261381609f546129e290919063ffffffff16565b609f8190555061263a565b61263381609f5461295890919063ffffffff16565b609f819055505b6000196fffffffffffffffffffffffffffffffff16609f541115612674576000196fffffffffffffffffffffffffffffffff16609f819055505b6126a1609f5466020dc92dd2793660001981151561268e57fe5b0660001903612af990919063ffffffff16565b60a0819055508260a88190555060a560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561273457600080fd5b505af1158015612748573d6000803e3d6000fd5b5050505060a460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631751186c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b50505050427f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2609f546040518082815260200191505060405180910390a2609f54935050505090565b609e60009054906101000a900460ff1681565b61284a611aec565b151561285557600080fd5b8060a660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60a960009054906101000a900460ff1681565b600060aa60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60a85481565b612941611aec565b151561294c57600080fd5b61295581612b43565b50565b60008082840190508381101515156129d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612a2483836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c50565b905092915050565b6000806000841415612a415760009150612af2565b8284029050828482811515612a5257fe5b04141515612aee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8091505b5092915050565b6000612b3b83836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d11565b905092915050565b6000606954141515612b5457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b9057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808484111583901515612d00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cc5578082015181840152602081019050612caa565b50505050905090810190601f168015612cf25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508385039050809150509392505050565b6000806000841183901515612dc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d86578082015181840152602081019050612d6b565b50505050905090810190601f168015612db35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508385811515612dcd57fe5b049050809150509392505050565b60008060019054906101000a900460ff1680612dfb5750612dfa6130db565b5b80612e1257506000809054906101000a900460ff16155b1515612eac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060698190555080600060016101000a81548160ff0219169083151502179055505050565b60008060019054906101000a900460ff1680612f7a5750612f796130db565b5b80612f9157506000809054906101000a900460ff16155b151561302b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083603390805190602001906130889291906130ec565b50826034908051906020019061309f9291906130ec565b5081603560006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b600080303b90506000811491505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061312d57805160ff191683800117855561315b565b8280016001018555821561315b579182015b8281111561315a57825182559160200191906001019061313f565b5b509050613168919061316c565b5090565b61318e91905b8082111561318a576000816000905550600101613172565b5090565b905600a165627a7a723058206bee6d1d78c0a15bc33eb0dbc70c0a7c3843ae760c44ca3939837658682c12630029