60606040526040805190810160405280600381526020017f312e30000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000519291906200042c565b506000600660006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600a6007556000600860006101000a81548160ff0219169083151502179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a0a6301036640026010556012600a0a621e8480026011556012600a0a620f4240026012556012600a0a620f4240026013556000601660006101000a81548160ff02191690831515021790555034156200013a57600080fd5b60405160808062004a7383398101604052808051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135460125460115460105401010160028190555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105460036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506012546011540160036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060135460036000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050505050620004db565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200046f57805160ff1916838001178555620004a0565b82800160010185558215620004a0579182015b828111156200049f57825182559160200191906001019062000482565b5b509050620004af9190620004b3565b5090565b620004d891905b80821115620004d4576000816000905550600101620004ba565b5090565b90565b61458880620004eb6000396000f300606060405260043610610267576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630576a0581461026957806305fefda7146102e057806306f698811461030c57806306fdde0314610361578063095ea7b3146103ef5780630f120fc31461044957806318160ddd1461045e5780631cd764981461048757806323b872dd146104b05780632404fc5714610529578063293877d7146105a8578063313ce567146105fd57806332cae0a8146106265780633a6188e61461064f57806342966c68146107365780634b750334146107715780635481c1ff1461079a57806354fd4d50146107c3578063626f554a14610851578063629615df146108cd57806369537243146109105780636c049b891461096d5780636c81fd6d1461098257806370076203146109bb57806370a08231146109f457806379cc679014610a415780637a8b089b14610a9b5780638191d30f14610af05780638620410b14610b1d5780638da5cb5b14610b465780638f4fde4214610b9b57806391b2341914610bd857806395d89b4114610c01578063a6f2ae3a14610c8f578063a9059cbb14610c99578063b414d4b614610cdb578063b658151614610d2c578063b85d627514610d81578063bd842a1114610dba578063be26733c14610e1d578063c4c3718b14610e32578063cae9ca5114610e5b578063db56313e14610ef8578063dd62ed3e14610f7d578063e45b39b314610fe9578063e4849b321461100c578063e724529c1461102f578063ec44acf214611073578063ee7d199d146110a0578063f256b13014611111578063f28532921461113a575b005b341561027457600080fd5b6102de600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611173565b005b34156102eb57600080fd5b61030a6004808035906020019091908035906020019091905050611296565b005b341561031757600080fd5b61031f611303565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561036c57600080fd5b610374611329565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b4578082015181840152602081019050610399565b50505050905090810190601f1680156103e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103fa57600080fd5b61042f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611362565b604051808215151515815260200191505060405180910390f35b341561045457600080fd5b61045c6113ef565b005b341561046957600080fd5b61047161151d565b6040518082815260200191505060405180910390f35b341561049257600080fd5b61049a611523565b6040518082815260200191505060405180910390f35b34156104bb57600080fd5b61050f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611529565b604051808215151515815260200191505060405180910390f35b341561053457600080fd5b610584600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611656565b6040518082600781111561059457fe5b60ff16815260200191505060405180910390f35b34156105b357600080fd5b6105bb611c37565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561060857600080fd5b610610611c5d565b6040518082815260200191505060405180910390f35b341561063157600080fd5b610639611c62565b6040518082815260200191505060405180910390f35b341561065a57600080fd5b61067a600480803567ffffffffffffffff16906020019091905050611c68565b60405180806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156106f85780820151818401526020810190506106dd565b50505050905090810190601f1680156107255780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561074157600080fd5b6107576004808035906020019091905050611d7e565b604051808215151515815260200191505060405180910390f35b341561077c57600080fd5b610784611e82565b6040518082815260200191505060405180910390f35b34156107a557600080fd5b6107ad611e88565b6040518082815260200191505060405180910390f35b34156107ce57600080fd5b6107d6611e8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108165780820151818401526020810190506107fb565b50505050905090810190601f1680156108435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561085c57600080fd5b6108cb600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f2c565b005b34156108d857600080fd5b61090e600480803567ffffffffffffffff16906020019091908035906020019091908035600019169060200190919050506123aa565b005b341561091b57600080fd5b61096b600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612acd565b005b341561097857600080fd5b61098061316c565b005b341561098d57600080fd5b6109b9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061329a565b005b34156109c657600080fd5b6109f2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613428565b005b34156109ff57600080fd5b610a2b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506134c7565b6040518082815260200191505060405180910390f35b3415610a4c57600080fd5b610a81600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506134df565b604051808215151515815260200191505060405180910390f35b3415610aa657600080fd5b610aae6136f9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610afb57600080fd5b610b0361371f565b604051808215151515815260200191505060405180910390f35b3415610b2857600080fd5b610b30613732565b6040518082815260200191505060405180910390f35b3415610b5157600080fd5b610b59613738565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610ba657600080fd5b610bae61375d565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610be357600080fd5b610beb613777565b6040518082815260200191505060405180910390f35b3415610c0c57600080fd5b610c1461377d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c54578082015181840152602081019050610c39565b50505050905090810190601f168015610c815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610c976137b6565b005b3415610ca457600080fd5b610cd9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061384f565b005b3415610ce657600080fd5b610d12600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061385e565b604051808215151515815260200191505060405180910390f35b3415610d3757600080fd5b610d3f61387e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d8c57600080fd5b610db8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506138a4565b005b3415610dc557600080fd5b610ddb6004808035906020019091905050613a97565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610e2857600080fd5b610e30613ad6565b005b3415610e3d57600080fd5b610e45613b6b565b6040518082815260200191505060405180910390f35b3415610e6657600080fd5b610ede600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613b74565b604051808215151515815260200191505060405180910390f35b3415610f0357600080fd5b610f53600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613cf2565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610f8857600080fd5b610fd3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613d7b565b6040518082815260200191505060405180910390f35b3415610ff457600080fd5b61100a6004808035906020019091905050613da0565b005b341561101757600080fd5b61102d6004808035906020019091905050613e05565b005b341561103a57600080fd5b611071600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050613efa565b005b341561107e57600080fd5b61108661401f565b604051808215151515815260200191505060405180910390f35b34156110ab57600080fd5b6110fb600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050614032565b6040518082815260200191505060405180910390f35b341561111c57600080fd5b6111246140b9565b6040518082815260200191505060405180910390f35b341561114557600080fd5b611171600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506140bf565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ce57600080fd5b82600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112f157600080fd5b81601481905550806015819055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600881526020017f427974657468657200000000000000000000000000000000000000000000000081525081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ef5760009150600090505b6001805490508110156114e2573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561148457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114d557600191506114e2565b8080600101915050611451565b8115156114ee57600080fd5b5b601660009054906101000a900460ff1615601660006101000a81548160ff0219169083151502179055505050565b60025481565b60105481565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156115b657600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061164b848484614194565b600190509392505050565b60008060008060011515600860009054906101000a900460ff16151514806116ca57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156116d557600080fd5b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561171d57600080fd5b846040518082805190602001908083835b602083101515611753578051825260208201915060208101905060208303925061172e565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092506000600a866040518082805190602001908083835b6020831015156117bc5780518252602082019150602081019050602083039250611797565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611156118f257600a856040518082805190602001908083835b60208310151561184c5780518252602082019150602081019050602083039250611827565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683600019167ff4ed228695933b438fa2fab7fbdedda1accdf885edba49f4ced28813186b4b3f6002604051808260078111156118d657fe5b60ff16815260200191505060405180910390a360029350611c2f565b6001600660008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060096000600660009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002091508482600001908051906020019061198c92919061444b565b50338260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008260020181905550428260040181905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166397be2f4a600660009054906101000a900467ffffffffffffffff1687336040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808467ffffffffffffffff1667ffffffffffffffff168152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611af4578082015181840152602081019050611ad9565b50505050905090810190601f168015611b215780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515611b4157600080fd5b6102c65a03f11515611b5257600080fd5b505050600a856040518082805190602001908083835b602083101515611b8d5780518252602082019150602081019050602083039250611b68565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900467ffffffffffffffff1667ffffffffffffffff1683600019167ff4ed228695933b438fa2fab7fbdedda1accdf885edba49f4ced28813186b4b3f600160405180826007811115611c1757fe5b60ff16815260200191505060405180910390a3600193505b505050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60125481565b611c706144cb565b600080600080600960008767ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600201548360040154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d675780601f10611d3c57610100808354040283529160200191611d67565b820191906000526020600020905b815481529060010190602001808311611d4a57829003601f168201915b505050505093509450945094509450509193509193565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611dce57600080fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816002600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b60145481565b60075481565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f245780601f10611ef957610100808354040283529160200191611f24565b820191906000526020600020905b815481529060010190602001808311611f0757829003601f168201915b505050505081565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561202f5760009150600090505b600180549050811015612022573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611fc457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156120155760019150612022565b8080600101915050611f91565b81151561202e57600080fd5b5b856040518082805190602001908083835b6020831015156120655780518252602082019150602081019050602083039250612040565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600b6000856000191660001916815260200190815260200160002054925060008314156121475783600019167ffb4753a4a03906a882c0be901e2149c3d887c005d07015cd7b2ebd2c819d00f086600080604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600181111561212d57fe5b60ff168152602001935050505060405180910390a26123a2565b8260036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561223d5783600019167ffb4753a4a03906a882c0be901e2149c3d887c005d07015cd7b2ebd2c819d00f08660006001604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600181111561222357fe5b60ff168152602001935050505060405180910390a26123a2565b6000600b60008660001916600019168152602001908152602001600020819055508260036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555083600019167ffb4753a4a03906a882c0be901e2149c3d887c005d07015cd7b2ebd2c819d00f086856000604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600181111561238c57fe5b60ff168152602001935050505060405180910390a25b505050505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415806124095750600083145b1561248b578367ffffffffffffffff167f08577924dc73ad235a6660bda91b4f0678f71be52dae93ee9b987862254f64e36000806004604051808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600781111561247157fe5b60ff168152602001935050505060405180910390a2612ac7565b600960008567ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020905060008160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156125ae578367ffffffffffffffff167f08577924dc73ad235a6660bda91b4f0678f71be52dae93ee9b987862254f64e38260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006005604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600781111561259457fe5b60ff168152602001935050505060405180910390a2612ac7565b6000600a8260000160405180828054600181600116156101000203166002900480156126115780601f106125ef576101008083540402835291820191612611565b820191906000526020600020905b8154815290600101906020018083116125fd575b5050915050908152602001604051809103902060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16141515612704578367ffffffffffffffff167f08577924dc73ad235a6660bda91b4f0678f71be52dae93ee9b987862254f64e38260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546002604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018260078111156126ea57fe5b60ff168152602001935050505060405180910390a2612ac7565b83600a8260000160405180828054600181600116156101000203166002900480156127665780601f10612744576101008083540402835291820191612766565b820191906000526020600020905b815481529060010190602001808311612752575b5050915050908152602001604051809103902060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506402540be40083028160020181905550806002015460036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156128d6578367ffffffffffffffff167f08577924dc73ad235a6660bda91b4f0678f71be52dae93ee9b987862254f64e38260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546006604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018260078111156128bc57fe5b60ff168152602001935050505060405180910390a2612ac7565b806002015460036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508060020154600360008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060006007541115612a11578181600301816000191690555060075481600201548115156129e757fe5b04600b60008460001916600019168152602001908152602001600020600082825401925050819055505b8367ffffffffffffffff167f08577924dc73ad235a6660bda91b4f0678f71be52dae93ee9b987862254f64e38260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600201546000604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001826007811115612ab157fe5b60ff168152602001935050505060405180910390a25b50505050565b6000806000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bd65760009150600090505b600180549050811015612bc9573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612b6b57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612bbc5760019150612bc9565b8080600101915050612b38565b811515612bd557600080fd5b5b886040518082805190602001908083835b602083101515612c0c5780518252602082019150602081019050602083039250612be7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209750600a896040518082805190602001908083835b602083101515612c735780518252602082019150602081019050602083039250612c4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900467ffffffffffffffff16965060008767ffffffffffffffff161415612d2c5760008089600019167fbf190adeb7837367b009b03e3e820254104f0d05e45a9fa494127cc5d58ec42e6000600760405180838152602001826007811115612d1357fe5b60ff1681526020019250505060405180910390a4613161565b600960008867ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209550856002015494508560010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508560020154600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612e48578667ffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1689600019167fbf190adeb7837367b009b03e3e820254104f0d05e45a9fa494127cc5d58ec42e88600660405180838152602001826007811115612e2f57fe5b60ff1681526020019250505060405180910390a4613161565b8560020154600360008860010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550856002015460036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600a8a6040518082805190602001908083835b602083101515612f6a5780518252602082019150602081019050602083039250612f45565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506020604051908101604052806000815250866000019080519060200190612feb92919061444b565b5060008660010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008660020181905550600086600401819055506000600b60008860030154600019166000191681526020019081526020016000205411156130eb578560020154925082600b60008860030154600019166000191681526020019081526020016000205410156130bd57600b60008760030154600019166000191681526020019081526020016000205492505b82600b6000886003015460001916600019168152602001908152602001600020600082825403925050819055505b8667ffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1689600019167fbf190adeb7837367b009b03e3e820254104f0d05e45a9fa494127cc5d58ec42e8860006040518083815260200182600781111561314c57fe5b60ff1681526020019250505060405180910390a45b505050505050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561326c5760009150600090505b60018054905081101561325f573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561320157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613252576001915061325f565b80806001019150506131ce565b81151561326b57600080fd5b5b600860009054906101000a900460ff1615600860006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132f757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561342357600090505b6001805490508110156133bf578173ffffffffffffffffffffffffffffffffffffffff1660018281548110151561336557fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156133b257613424565b8080600101915050613332565b600180548060010182816133d391906144df565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561348357600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036020528060005260406000206000915090505481565b600081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561352f57600080fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156135ba57600080fd5b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816002600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a26001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900460ff1681565b60155481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900467ffffffffffffffff1681565b60135481565b6040805190810160405280600381526020017f425448000000000000000000000000000000000000000000000000000000000081525081565b600060011515601660009054906101000a900460ff161515148061382657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561383157600080fd5b6015543481151561383e57fe5b04905061384c303383614194565b50565b61385a338383614194565b5050565b60176020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561390157600080fd5b600090505b600180549050811015613993578173ffffffffffffffffffffffffffffffffffffffff1660018281548110151561393957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561398657613993565b8080600101915050613906565b600180549050811015613a93576001808080549050038154811015156139b557fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001828154811015156139f057fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180808054905003815481101515613a4e57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001805480919060019003613a91919061450b565b505b5050565b600181815481101515613aa657fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613b3157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6402540be40081565b600080849050613b848585611362565b15613ce9578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613c7e578082015181840152602081019050613c63565b50505050905090810190601f168015613cab5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515613ccc57600080fd5b6102c65a03f11515613cdd57600080fd5b50505060019150613cea565b5b509392505050565b6000600a826040518082805190602001908083835b602083101515613d2c5780518252602082019150602081019050602083039250613d07565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900467ffffffffffffffff169050919050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dfb57600080fd5b8060078190555050565b60011515601660009054906101000a900460ff1615151480613e7357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613e7e57600080fd5b60145481023073ffffffffffffffffffffffffffffffffffffffff163110151515613ea857600080fd5b613eb3333083614194565b3373ffffffffffffffffffffffffffffffffffffffff166108fc60145483029081150290604051600060405180830381858888f193505050501515613ef757600080fd5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613f5557600080fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b601660009054906101000a900460ff1681565b6000600b6000836040518082805190602001908083835b60208310151561406e5780518252602082019150602081019050602083039250614049565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916600019168152602001908152602001600020549050919050565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561411a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561419157806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156141ba57600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561420757600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111151561429557600080fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156142ee57600080fd5b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561434757600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061448c57805160ff19168380011785556144ba565b828001600101855582156144ba579182015b828111156144b957825182559160200191906001019061449e565b5b5090506144c79190614537565b5090565b602060405190810160405280600081525090565b815481835581811511614506578183600052602060002091820191016145059190614537565b5b505050565b815481835581811511614532578183600052602060002091820191016145319190614537565b5b505050565b61455991905b8082111561455557600081600090555060010161453d565b5090565b905600a165627a7a723058209e181b768832c4e6725776d8378957a62bcbd8d46202f1b635d74164792014e600290000000000000000000000009ef2767b5c265cd032a94601203639abcd9cb92f000000000000000000000000b241799acafd92f1597d27ccc382c31cdb374785000000000000000000000000a81135aa1630307e52097b605791f293865a7bbc000000000000000000000000dc34edb880f2ec86243274d94026fbf307f80e89