0x60806040523480156200001157600080fd5b50600062000024620000d960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620000d2620000e160201b60201c565b5062000272565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff16600160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620001aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f616c726561647920696e697469616c697a65642048414c4f000000000000000081525060200191505060405180910390fd5b73d5be963189a3e5ede3feba6f2998e30a3e067aa563b85565126040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ef57600080fd5b505af415801562000204573d6000803e3d6000fd5b505050506040513d60208110156200021b57600080fd5b8101908080519060200190929190505050600160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b613b8980620002826000396000f3fe6080604052600436106101185760003560e01c8063716aac3a116100a0578063b97dd9e211610064578063b97dd9e21461095c578063bf65a26214610987578063c2548166146109c8578063f2fde38b14610a09578063fd00430c14610a5a5761011f565b8063716aac3a146105eb5780637b0472f0146107fa5780638da5cb5b146108535780639e2c8a5b14610894578063a9dfbb46146108ed5761011f565b806346e5c437116100e757806346e5c437146104765780634ef0c6c0146104b15780635c356bd7146105165780635d7e1c9a1461057b578063715018a6146105d45761011f565b80631bbf4aae1461012457806323e3b73014610173578063372500ab146102d4578063437e32d3146102eb5761011f565b3661011f57005b600080fd5b34801561013057600080fd5b506101716004803603606081101561014757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610bbb565b005b34801561017f57600080fd5b506102596004803603604081101561019657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156101d357600080fd5b8201836020820111156101e557600080fd5b8035906020019184600183028401116401000000008311171561020757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610edb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561029957808201518184015260208101905061027e565b50505050905090810190601f1680156102c65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e057600080fd5b506102e961102f565b005b3480156102f757600080fd5b50610474600480360360e081101561030e57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561035d57600080fd5b82018360208201111561036f57600080fd5b8035906020019184602083028401116401000000008311171561039157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103f157600080fd5b82018360208201111561040357600080fd5b8035906020019184602083028401116401000000008311171561042557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611541565b005b34801561048257600080fd5b506104af6004803603602081101561049957600080fd5b81019080803590602001909291905050506117d8565b005b3480156104bd57600080fd5b50610514600480360360608110156104d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611901565b005b34801561052257600080fd5b5061054f6004803603602081101561053957600080fd5b8101908080359060200190929190505050612099565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561058757600080fd5b506105d26004803603608081101561059e57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291905050506120d8565b005b3480156105e057600080fd5b506105e961223d565b005b3480156105f757600080fd5b506107e26004803603608081101561060e57600080fd5b810190808035906020019064010000000081111561062b57600080fd5b82018360208201111561063d57600080fd5b8035906020019184602083028401116401000000008311171561065f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156106bf57600080fd5b8201836020820111156106d157600080fd5b803590602001918460208302840111640100000000831117156106f357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561075357600080fd5b82018360208201111561076557600080fd5b8035906020019184602083028401116401000000008311171561078757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035151590602001909291905050506123c3565b60405180821515815260200191505060405180910390f35b34801561080657600080fd5b5061083d6004803603604081101561081d57600080fd5b810190808035906020019092919080359060200190929190505050612625565b6040518082815260200191505060405180910390f35b34801561085f57600080fd5b506108686128fd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108a057600080fd5b506108d7600480360360408110156108b757600080fd5b810190808035906020019092919080359060200190929190505050612926565b6040518082815260200191505060405180910390f35b3480156108f957600080fd5b506109446004803603608081101561091057600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612b1f565b60405180821515815260200191505060405180910390f35b34801561096857600080fd5b50610971612e3b565b6040518082815260200191505060405180910390f35b34801561099357600080fd5b5061099c612e48565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d457600080fd5b506109dd612e75565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a1557600080fd5b50610a5860048036036020811015610a2c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612eb3565b005b348015610a6657600080fd5b50610b4060048036036040811015610a7d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610aba57600080fd5b820183602082011115610acc57600080fd5b80359060200191846001830284011164010000000083111715610aee57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506130be565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b80578082015181840152602081019050610b65565b50505050905090810190601f168015610bad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610bc3613236565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600180016000600a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7469657220616c7265616479206578697374730000000000000000000000000081525060200191505060405180910390fd5b6000731e293b7f829652a1b3ff9b015b4ffa398e7bd32d6327994044600a6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610dad57600080fd5b505af4158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b8101908080519060200190929190505050600180016000600a815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905590506040518060800160405280600a815260200185815260200184815260200183815250600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050610ed581612eb3565b50505050565b60603073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613a546022913960400191505060405180910390fd5b600060608473ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b60208310610fb05780518252602082019150602081019050602083039250610f8d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114611010576040519150601f19603f3d011682016040523d82523d6000602084013e611015565b606091505b50915091508161102457600080fd5b809250505092915050565b6000600180600b0154039050600081116110b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c69642065706f63680000000000000000000000000000000000000081525060200191505060405180910390fd5b600060016000016000838152602001908152602001600020905060008160000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020160009054906101000a900460ff16156111a961112f8561323e565b6040516020018080613b326022913960220182805190602001908083835b60208310611170578051825260208201915060208101905060208303925061114d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052613382565b9061124f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112145780820151818401526020810190506111f9565b50505050905090810190601f1680156112415780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600081600101601f9054906101000a900460ff16156112c1578160000160009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690506112de565b6112db33856101f4600161338c909392919063ffffffff16565b90505b60018260020160006101000a81548160ff021916908315150217905550600061132a846001015461131c84876002015461356c90919063ffffffff16565b6135f290919063ffffffff16565b9050600081111561137d573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561137b573d6000803e3d6000fd5b505b61139481856003015461363c90919063ffffffff16565b846003018190555060006113cb85600101546113bd85886004015461356c90919063ffffffff16565b6135f290919063ffffffff16565b90506113e481866005015461363c90919063ffffffff16565b8560050181905550600081111561153957600160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561148b57600080fd5b505af115801561149f573d6000803e3d6000fd5b505050506040513d60208110156114b557600080fd5b8101908080519060200190929190505050611538576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6661696c656420746f2073656e642048414c4f0000000000000000000000000081525060200191505060405180910390fd5b5b505050505050565b611549613236565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b670de0b6b3a7640000871115611687576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e76616c696420666c6173684c6f616e52617465000000000000000000000081525060200191505060405180910390fd5b670de0b6b3a76400008611156116e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ac76022913960400191505060405180910390fd5b8051825114611742576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613aa46023913960400191505060405180910390fd5b86600160030181905550856001600401819055508460016007018190555083600160060181905550826001600a018190555060005b82518110156117ce5781818151811061178c57fe5b6020026020010151600160090160008584815181106117a757fe5b60200260200101518152602001908152602001600020819055508080600101915050611777565b5050505050505050565b60004790506000611811670de0b6b3a76400006118036001600301548661356c90919063ffffffff16565b6135f290919063ffffffff16565b90503373ffffffffffffffffffffffffffffffffffffffff166306c3d63184611843848761368690919063ffffffff16565b6040518363ffffffff1660e01b8152600401808281526020019150506000604051808303818588803b15801561187857600080fd5b505af115801561188c573d6000803e3d6000fd5b50505050506118a4818361368690919063ffffffff16565b4710156118fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613a76602e913960400191505060405180910390fd5b505050565b6000600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015414156119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6e6f7420612076616c6964207374616b656420746f6b656e000000000000000081525060200191505060405180910390fd5b60006001600b015490506000600160000160006001600b01548152602001908152602001600020905042816006015411158015611a0e57506001600c0160009054906101000a900460ff165b15611d8d57818060010192505060006001600001600084815260200190815260200160002090506001600b0160008154809291906001019190505550426001600a0154018160060181905550816001015481600101819055506000611a9b670de0b6b3a7640000611a8d6001600401544761356c90919063ffffffff16565b6135f290919063ffffffff16565b90508047038360020181905550826002015483600301819055506001841115611ae157600060016000016000600287038152602001908152602001600020600201819055505b600060016009016000868152602001908152602001600020549050600080821415611b0f5760016007015491505b600160080160009054906101000a900460ff16611c62576000600160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9357600080fd5b505afa158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b810190808051906020019092919050505090506000611bea8260016006015461363c90919063ffffffff16565b90506000611bf78261370e565b9050611c26670de0b6b3a7640000611c18878461356c90919063ffffffff16565b6135f290919063ffffffff16565b935060016006015484840110611c5e578260016006015403935060018060080160006101000a81548160ff0219169083151502179055505b5050505b6000611cb960018811611c76576000611c94565b6001600001600060028a038152602001908152602001600020600501545b611cab84896004015461368690919063ffffffff16565b61368690919063ffffffff16565b905080866004018190555080866005018190555060008214611d8457600160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611d6b57600080fd5b505af1158015611d7f573d6000803e3d6000fd5b505050505b84955050505050505b60008160000160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600101601f9054906101000a900460ff16611ed7576000611e0488856101f4600161338c909392919063ffffffff16565b9050808260000160006101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550808260010160006101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550600182600101601f6101000a81548160ff021916908315150217905550505b6000611ef085600101548761356c90919063ffffffff16565b611f0786600101548961356c90919063ffffffff16565b0390506000818360010160009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff160190508260000160009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16811080611fbf5750600085145b1561201e57808360000160006101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055505b808360010160006101000a8154817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555061208682856001015401613770565b8460010181905550505050505050505050565b600060018001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6120e0613236565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006001600201600060018001600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508381600101819055508281600201819055508181600301819055505050505050565b612245613236565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006123cd613236565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600c0160009054906101000a900460ff1615612513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f67656e657369732065706f636820616c7265616479207365656465640000000081525060200191505060405180910390fd5b60008551905060005b818110156125f35786818151811061253057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166340c10f1987838151811061255f57fe5b602002602001015187848151811061257357fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156125ce57600080fd5b505af11580156125e2573d6000803e3d6000fd5b50505050808060010191505061251c565b50821561261857600180600c0160006101000a81548160ff0219169083151502179055505b6001915050949350505050565b60008060018001600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006126d982600201546126cb87670de0b6b3a764000061356c90919063ffffffff16565b6135f290919063ffffffff16565b90508160030154818473ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561272757600080fd5b505afa15801561273b573d6000803e3d6000fd5b505050506040513d602081101561275157600080fd5b81019080805190602001909291905050500111156127ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613b0a6028913960400191505060405180910390fd5b600160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561285057600080fd5b505af1158015612864573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156128d957600080fd5b505af11580156128ed573d6000803e3d6000fd5b5050505080935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060018001600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006129da670de0b6b3a76400006129cc87856002015461356c90919063ffffffff16565b6135f290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612a4d57600080fd5b505af1158015612a61573d6000803e3d6000fd5b50505050600160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612afb57600080fd5b505af1158015612b0f573d6000803e3d6000fd5b5050505080935050505092915050565b6000612b29613236565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612be9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660018001600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612cc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7469657220616c7265616479206578697374730000000000000000000000000081525060200191505060405180910390fd5b600073e5d7c94e1d22127698fdeaa4e1cbc6cbbe911d95632e17616a876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612d1157600080fd5b505af4158015612d25573d6000803e3d6000fd5b505050506040513d6020811015612d3b57600080fd5b810190808051906020019092919050505060018001600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790559050604051806080016040528087815260200186815260200185815260200184815250600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050506001915050949350505050565b60006001600b0154905090565b6000600160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600180016000600a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612ebb613236565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613a2e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600060608473ffffffffffffffffffffffffffffffffffffffff166130e5868661378c565b6040518082805190602001908083835b6020831061311857805182526020820191506020810190506020830392506130f5565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613178576040519150601f19603f3d011682016040523d82523d6000602084013e61317d565b606091505b509150915081819061322a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156131ef5780820151818401526020810190506131d4565b50505050905090810190601f16801561321c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50809250505092915050565b600033905090565b60606000821415613286576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061337d565b600082905060005b600082146132b0578080600101915050600a82816132a857fe5b04915061328e565b60608167ffffffffffffffff811180156132c957600080fd5b506040519080825280601f01601f1916602001820160405280156132fc5781602001600182028036833780820191505090505b50905060006001830390505b6000861461337557600a868161331a57fe5b0660300160f81b8282806001900393508151811061333457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a868161336d57fe5b049550613308565b819450505050505b919050565b6060819050919050565b60008085600001600060018603815260200190815260200160002060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600101601f9054906101000a900460ff1615613459578060010160009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050613564565b60008087600b015490505b6000811015801561347457508482105b1561355c57600088600001600083815260200190815260200160002060000160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600101601f9054906101000a900460ff1615613545578060010160009054906101000a90047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16945050505050613564565b828060010193505050808060019003915050613464565b506000925050505b949350505050565b60008083141561357f57600090506135ec565b600082840290508284828161359057fe5b04146135e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613ae96021913960400191505060405180910390fd5b809150505b92915050565b600061363483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506138a7565b905092915050565b600061367e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061396d565b905092915050565b600080828401905083811015613704576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000600382111561375d57819050600060016002848161372a57fe5b040190505b818110156137575780915060028182858161374657fe5b04018161374f57fe5b04905061372f565b5061376b565b6000821461376a57600190505b5b919050565b6000808212156137835781600003613785565b815b9050919050565b60608282604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137ef5780820151818401526020810190506137d4565b50505050905090810190601f16801561381c5780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f23e3b730000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905092915050565b60008083118290613953576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156139185780820151818401526020810190506138fd565b50505050905090810190601f1680156139455780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161395f57fe5b049050809150509392505050565b6000838311158290613a1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156139df5780820151818401526020810190506139c4565b50505050905090810190601f168015613a0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373756e617574686f72697a65642076696577206c617965722064656c65676174696f6e696e73756666696369656e742066656573207061696420746f20636f6d706c657465207472616e73616374696f6e65706f636820696e666c6174696f6e2076616c75657320646f206e6f74206d61746368696e76616c696420666c6173684c6f616e5265736572766550657263656e74616765536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776578636565647320617661696c61626c6520736861726573206f6e207374616b696e672074696572616c726561647920636c61696d6564207265776172647320666f722065706f636820a26469706673582212203b017609644d9874e6243655ec29a9b6ab1b53fb5237735f71ee19ad6e5afc3864736f6c634300060c0033