0x60806040526040518060a0016040528073c854d07210a06f296d641e44c8d0eaf84ecc365373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a04575e12cbf6ed9fec9ea1be8c906d4d39faa9873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739c2f8f92d7b3948c0ef52373b72158f0c1cd3a8173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732a2e2489153cc5bfe8964f333ee7ee15af70f8aa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e07ece75d10b5903b99caca0dd44c721677d8e3473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600f9060056200017d9291906200139c565b50604051806080016040528073acd7fe0fa98393c56abeaf4b3bd907f8bad4d61673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c5027562dc39fc206fd9f09c95ead844932b2beb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017343ab4a21f91cc5b229c479019a028cef3c4eb35b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017360c7d4ec00be6b28189e42398ba206aac292e0ee73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506010906004620002b19291906200142b565b506040518060a001604052806b09b18ab5df7180b6b80000006bffffffffffffffffffffffff1681526020016b09b18ab5df7180b6b80000006bffffffffffffffffffffffff1681526020016b033b2e3c9fd0803ce80000006bffffffffffffffffffffffff1681526020016b04d8c55aefb8c05b5c0000006bffffffffffffffffffffffff1681526020016b033b2e3c9fd0803ce80000006bffffffffffffffffffffffff1681525060119060056200036d929190620014ba565b5060405180608001604052806b0121836204bc2ce21e0000006bffffffffffffffffffffffff1681526020016a18d0bf423c03d8de0000006bffffffffffffffffffffffff1681526020016a108b2a2c280290940000006bffffffffffffffffffffffff1681526020016a52b7d2dcc80cd2e40000006bffffffffffffffffffffffff168152506012906004620004069291906200151c565b503480156200041457600080fd5b506b204fce5e3e250261100000006040518060400160405280600781526020017f506c617970616c000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f504300000000000000000000000000000000000000000000000000000000000081525060126301e133806000600c336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36064821115620005cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f494e434f52524543545f494e505554000000000000000000000000000000000081525060200191505060405180910390fd5b6000811480620005f65750620005f281846200094760201b62001d091790919060201c565b6000105b62000669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f494e434f52524543545f494e505554000000000000000000000000000000000081525060200191505060405180910390fd5b8260018190555081600281905550806003819055505050508260069080519060200190620006999291906200157e565b508160079080519060200190620006b29291906200157e565b5080600860006101000a81548160ff021916908360ff160217905550505050620006e233620009d860201b60201c565b6000811162000759576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f45524332304361707065643a206361702069732030000000000000000000000081525060200191505060405180910390fd5b80600d819055505062000851600f805480602002602001604051908101604052809291908181526020018280548015620007e957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116200079e575b505050505060118054806020026020016040519081016040528092919081815260200182805480156200083c57602002820191906000526020600020905b81548152602001906001019080831162000827575b50505050506000600262000a3960201b60201c565b620009416010805480602002602001604051908101604052809291908181526020018280548015620008d957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116200088e575b505050505060128054806020026020016040519081016040528092919081815260200182805480156200092c57602002820191906000526020600020905b81548152602001906001019080831162000917575b50505050506000600162000a3960201b60201c565b62001673565b6000808211620009bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481620009cb57fe5b0490508091505092915050565b620009f381600c62000c0760201b620028bc1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b825184511462000ab1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4152524159535f4e4f545f455155414c0000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b845181101562000c005762000afb85828151811062000ad257fe5b602002602001015185838151811062000ae757fe5b602002602001015162000ceb60201b60201c565b6000600281111562000b0957fe5b82600281111562000b1657fe5b1462000b925781600e600087848151811062000b2e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083600281111562000b8c57fe5b02179055505b821562000bf25762000bf185828151811062000baa57fe5b602002602001015185838151811062000bbf57fe5b602002602001015162000be56301e133804262000da760201b62001bf81790919060201c565b62000e3060201b60201c565b5b808060010191505062000ab7565b5050505050565b62000c19828262000fd160201b60201c565b1562000c8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5462000d178262000d03620010b160201b60201c565b62000da760201b62001bf81790919060201c565b111562000d8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b62000da38282620010bb60201b620026ff1760201c565b5050565b60008082840190508381101562000e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055506000600254111562000ef85762000ef5606462000ee162000ecc60025460646200128760201b62001c801790919060201c565b856200131160201b62001b721790919060201c565b6200094760201b62001d091790919060201c565b91505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150509060018203906000526020600020016000909192909190915055507f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d4278383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200105a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620042756022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600b54905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200115f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200117b81600b5462000da760201b62001bf81790919060201c565b600b81905550620011da81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000da760201b62001bf81790919060201c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008282111562001300576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008083141562001326576000905062001396565b60008284029050828482816200133857fe5b041462001391576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620042546021913960400191505060405180910390fd5b809150505b92915050565b82805482825590600052602060002090810192821562001418579160200282015b82811115620014175782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620013bd565b5b50905062001427919062001605565b5090565b828054828255906000526020600020908101928215620014a7579160200282015b82811115620014a65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200144c565b5b509050620014b6919062001605565b5090565b82805482825590600052602060002090810192821562001509579160200282015b828111156200150857825182906bffffffffffffffffffffffff16905591602001919060010190620014db565b5b5090506200151891906200164b565b5090565b8280548282559060005260206000209081019282156200156b579160200282015b828111156200156a57825182906bffffffffffffffffffffffff169055916020019190600101906200153d565b5b5090506200157a91906200164b565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620015c157805160ff1916838001178555620015f2565b82800160010185558215620015f2579182015b82811115620015f1578251825591602001919060010190620015d4565b5b5090506200160191906200164b565b5090565b6200164891905b808211156200164457600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200160c565b5090565b90565b6200167091905b808211156200166c57600081600090555060010162001652565b5090565b90565b612bd180620016836000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80638da5cb5b11610125578063a9059cbb116100ad578063cf26aa391161007c578063cf26aa3914610ac0578063dd62ed3e14610b02578063ed27daae14610b7a578063f2fde38b14610bbc578063f7d54fc614610c0057610211565b8063a9059cbb14610984578063aa271e1a146109ea578063c3f368af14610a46578063cf011b2614610a6457610211565b8063983b2d56116100f4578063983b2d561461081257806398650275146108565780639e8749e814610860578063a457c2d7146108bc578063a61bb7641461092257610211565b80638da5cb5b146106b55780638f32d59b146106ff5780639038236d1461072157806395d89b411461078f57610211565b8063355274ea116101a857806340c10f191161017757806340c10f19146105b157806370a0823114610617578063715018a61461066f57806383914540146106795780638af190b21461069757610211565b8063355274ea146104f1578063395093511461050f5780633b7832ba146105755780633fd8b02f1461059357610211565b806318160ddd116101e457806318160ddd146103bb57806323b872dd146103d95780632f5c3fe61461045f578063313ce567146104cd57610211565b806306fdde03146102165780630764ebd914610299578063095ea7b3146102e9578063158fe6e21461034f575b600080fd5b61021e610c66565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561025e578082015181840152602081019050610243565b50505050905090810190601f16801561028b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e7600480360360408110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610d08565b005b610335600480360360408110156102ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ddd565b604051808215151515815260200191505060405180910390f35b6103a56004803603606081101561036557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610df4565b6040518082815260200191505060405180910390f35b6103c36110ea565b6040518082815260200191505060405180910390f35b610445600480360360608110156103ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110f4565b604051808215151515815260200191505060405180910390f35b61048b6004803603602081101561047557600080fd5b81019080803590602001909291905050506111a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104d56111e1565b604051808260ff1660ff16815260200191505060405180910390f35b6104f96111f8565b6040518082815260200191505060405180910390f35b61055b6004803603604081101561052557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611202565b604051808215151515815260200191505060405180910390f35b61057d6112a7565b6040518082815260200191505060405180910390f35b61059b6112ad565b6040518082815260200191505060405180910390f35b6105fd600480360360408110156105c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112b3565b604051808215151515815260200191505060405180910390f35b6106596004803603602081101561062d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611327565b6040518082815260200191505060405180910390f35b610677611370565b005b6106816114a9565b6040518082815260200191505060405180910390f35b61069f6114b1565b6040518082815260200191505060405180910390f35b6106bd6114b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107076114df565b604051808215151515815260200191505060405180910390f35b61074d6004803603602081101561073757600080fd5b8101908080359060200190929190505050611536565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610797611572565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107d75780820151818401526020810190506107bc565b50505050905090810190601f1680156108045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108546004803603602081101561082857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611614565b005b61085e61167e565b005b6108a26004803603602081101561087657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611689565b604051808215151515815260200191505060405180910390f35b610908600480360360408110156108d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116df565b604051808215151515815260200191505060405180910390f35b61096e6004803603604081101561093857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611784565b6040518082815260200191505060405180910390f35b6109d06004803603604081101561099a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117b2565b604051808215151515815260200191505060405180910390f35b610a2c60048036036020811015610a0057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c9565b604051808215151515815260200191505060405180910390f35b610a4e6117e6565b6040518082815260200191505060405180910390f35b610aa660048036036020811015610a7a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ec565b604051808215151515815260200191505060405180910390f35b610aec60048036036020811015610ad657600080fd5b810190808035906020019092919050505061180c565b6040518082815260200191505060405180910390f35b610b6460048036036040811015610b1857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061182d565b6040518082815260200191505060405180910390f35b610ba660048036036020811015610b9057600080fd5b81019080803590602001909291905050506118b4565b6040518082815260200191505060405180910390f35b610bfe60048036036020811015610bd257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118d5565b005b610c4260048036036020811015610c1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061195b565b60405180826002811115610c5257fe5b60ff16815260200191505060405180910390f35b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cfe5780601f10610cd357610100808354040283529160200191610cfe565b820191906000526020600020905b815481529060010190602001808311610ce157829003601f168201915b5050505050905090565b610d106114df565b610d82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610dea33848461197b565b6001905092915050565b600060011515610e0385611689565b15151480610e5357506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050145b15610e60578190506110e3565b60006002600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081610eae57fe5b049050600080600090505b828110156110ca576000600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610f16600284611b7290919063ffffffff16565b81548110610f2057fe5b906000526020600020015490506000600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610f956001610f87600287611b7290919063ffffffff16565b611bf890919063ffffffff16565b81548110610f9f57fe5b9060005260206000200154905087821115610fd057610fc78185611bf890919063ffffffff16565b935050506110bd565b87610fe660015484611bf890919063ffffffff16565b11156110ba576000811415610ffc5750506110bd565b6000806003541115611091576000611045600154611037600354611029888f611c8090919063ffffffff16565b611b7290919063ffffffff16565b611d0990919063ffffffff16565b9050611081600354611073611064600185611bf890919063ffffffff16565b86611b7290919063ffffffff16565b611d0990919063ffffffff16565b91508282111561108f578291505b505b6110b6816110a88488611bf890919063ffffffff16565b611c8090919063ffffffff16565b9450505b50505b8080600101915050610eb9565b506110de8185611c8090919063ffffffff16565b925050505b9392505050565b6000600b54905090565b6000611101848484611d98565b61119a843361119585600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8090919063ffffffff16565b61197b565b600190509392505050565b600f81815481106111b257fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900460ff16905090565b6000600d54905090565b600061129d338461129885600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bf890919063ffffffff16565b61197b565b6001905092915050565b60035481565b60015481565b60006112be336117c9565b611313576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612ac06030913960400191505060405180910390fd5b61131d8383611f30565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113786114df565b6113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6301e1338081565b606481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6010818154811061154357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561160a5780601f106115df5761010080835404028352916020019161160a565b820191906000526020600020905b8154815290600101906020018083116115ed57829003601f168201915b5050505050905090565b61161d336117c9565b611672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612ac06030913960400191505060405180910390fd5b61167b81611fcf565b50565b61168733612029565b565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061177a338461177585600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8090919063ffffffff16565b61197b565b6001905092915050565b6004602052816000526040600020818154811061179d57fe5b90600052602060002001600091509150505481565b60006117bf338484611d98565b6001905092915050565b60006117df82600c61208390919063ffffffff16565b9050919050565b60025481565b60056020528060005260406000206000915054906101000a900460ff1681565b6011818154811061181957fe5b906000526020600020016000915090505481565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601281815481106118c157fe5b906000526020600020016000915090505481565b6118dd6114df565b61194f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61195881612161565b50565b600e6020528060005260406000206000915054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b796024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a9e6022913960400191505060405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080831415611b855760009050611bf2565b6000828402905082848281611b9657fe5b0414611bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b116021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611c76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600082821115611cf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808211611d80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481611d8b57fe5b0490508091505092915050565b611dac838242611da787611327565b6122a5565b15156001151514611e25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f414d4f554e545f4c4f434b45440000000000000000000000000000000000000081525060200191505060405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166002811115611e7d57fe5b60016002811115611e8a57fe5b148015611ef95750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166002811115611eea57fe5b60006002811115611ef757fe5b145b15611f2057611f1f8282611f1a6301e1338042611bf890919063ffffffff16565b6122d4565b5b611f2b83838361245f565b505050565b600d54611f4d82611f3f6110ea565b611bf890919063ffffffff16565b1115611fc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b611fcb82826126ff565b5050565b611fe381600c6128bc90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61203d81600c61299790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561210a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b326022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a786026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806122b3868585610df4565b90508481106122c65760019150506122cc565b60009150505b949350505050565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050906001820390600052602060002001600090919290919091505550600060025411156123865761238360646123756123666002546064611c8090919063ffffffff16565b85611b7290919063ffffffff16565b611d0990919063ffffffff16565b91505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150509060018203906000526020600020016000909192909190915055507f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d4278383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b546025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561256b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612a556023913960400191505060405180910390fd5b6125bd81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8090919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061265281600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bf890919063ffffffff16565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6127b781600b54611bf890919063ffffffff16565b600b8190555061280f81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bf890919063ffffffff16565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6128c68282612083565b15612939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6129a18282612083565b6129f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612af06021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a72315820a00834a4e413103e20640bf7c3db727e7fce0dccac93b6f323e32b4fcf98ba2864736f6c634300050b0032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373