From 6ef3b82a2b9d7ee1af318efe189bc64619743b36 Mon Sep 17 00:00:00 2001 From: vsmk98 Date: Tue, 12 Feb 2019 20:24:31 +0800 Subject: [PATCH] changes to contract based on review comments --- controls/cluster/Clusterkeys.sol | 2 +- controls/cluster/abi/Clusterkeys.bin-runtime | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/controls/cluster/Clusterkeys.sol b/controls/cluster/Clusterkeys.sol index 8d0d34f9c..58db69d6e 100644 --- a/controls/cluster/Clusterkeys.sol +++ b/controls/cluster/Clusterkeys.sol @@ -247,7 +247,7 @@ contract Clusterkeys { function isVoter (string calldata _orgId, address account) external view returns (bool){ uint orgIndex = getOrgIndex(_orgId); uint morgIndex = getMasterOrgIndex(orgList[orgIndex].morgId); - return (masterOrgList[morgIndex].voterIndex[account] == 0); + return (!(masterOrgList[morgIndex].voterIndex[account] == 0)); } // checks if the voter account is already in the voter accounts list for the org diff --git a/controls/cluster/abi/Clusterkeys.bin-runtime b/controls/cluster/abi/Clusterkeys.bin-runtime index 26ede20a9..7d8ab0463 100644 --- a/controls/cluster/abi/Clusterkeys.bin-runtime +++ b/controls/cluster/abi/Clusterkeys.bin-runtime @@ -1 +1 @@ -608060405234801561001057600080fd5b50600436106101aa576000357c0100000000000000000000000000000000000000000000000000000000900480637755ebdd116100fb578063d88ce6bb116100b4578063ee0c7dda1161008e578063ee0c7dda14610f5f578063f346a3a714610485578063fb23dedc14610f67578063ffe40d1d14610fd7576101aa565b8063d88ce6bb14610dbd578063d912967a14610e7f578063e7089a0c14610eef576101aa565b80637755ebdd14610af45780638fde9c5e14610afc5780639b904f0a14610bbe578063bd9e887a14610c64578063c7304f3f14610cdd578063cb2c45dc14610d4d576101aa565b80634898598e116101685780635607395b116101425780635607395b14610897578063561870631461091057806359cbd6fe146109805780635c4f32ee146109f9576101aa565b80634898598e146105f257806349379c501461071f5780635002dadf146107e1576101aa565b8062b813df146101af57806317a2fb72146102745780631f9534801461033f578063243cc5061461040357806333680eb71461048557806335dc477214610582575b600080fd5b610260600480360360408110156101c557600080fd5b8101906020810181356401000000008111156101e057600080fd5b8201836020820111156101f257600080fd5b8035906020019184600183028401116401000000008311171561021457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506110479050565b604080519115158252519081900360200190f35b61031c6004803603604081101561028a57600080fd5b8101906020810181356401000000008111156102a557600080fd5b8201836020820111156102b757600080fd5b803590602001918460018302840111640100000000831117156102d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061110a915050565b60408051600160a060020a03909316835290151560208301528051918290030190f35b6104016004803603604081101561035557600080fd5b81019060208101813564010000000081111561037057600080fd5b82018360208201111561038257600080fd5b803590602001918460018302840111640100000000831117156103a457600080fd5b9193909290916020810190356401000000008111156103c257600080fd5b8201836020820111156103d457600080fd5b803590602001918460018302840111640100000000831117156103f657600080fd5b5090925090506111be565b005b6104736004803603602081101561041957600080fd5b81019060208101813564010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b509092509050611392565b60408051918252519081900360200190f35b6104f56004803603602081101561049b57600080fd5b8101906020810181356401000000008111156104b657600080fd5b8201836020820111156104c857600080fd5b803590602001918460018302840111640100000000831117156104ea57600080fd5b5090925090506113f9565b604051808060200183600281111561050957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561054657818101518382015260200161052e565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6104016004803603602081101561059857600080fd5b8101906020810181356401000000008111156105b357600080fd5b8201836020820111156105c557600080fd5b803590602001918460018302840111640100000000831117156105e757600080fd5b509092509050611520565b6102606004803603604081101561060857600080fd5b81019060208101813564010000000081111561062357600080fd5b82018360208201111561063557600080fd5b8035906020019184600183028401116401000000008311171561065757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156106aa57600080fd5b8201836020820111156106bc57600080fd5b803590602001918460018302840111640100000000831117156106de57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115b0945050505050565b6104016004803603604081101561073557600080fd5b81019060208101813564010000000081111561075057600080fd5b82018360208201111561076257600080fd5b8035906020019184600183028401116401000000008311171561078457600080fd5b9193909290916020810190356401000000008111156107a257600080fd5b8201836020820111156107b457600080fd5b803590602001918460018302840111640100000000831117156107d657600080fd5b5090925090506116ca565b610851600480360360408110156107f757600080fd5b81019060208101813564010000000081111561081257600080fd5b82018360208201111561082457600080fd5b8035906020019184600183028401116401000000008311171561084657600080fd5b919350915035611959565b604051808060200183151515158152602001828103825284818151815260200191508051906020019080838360008381101561054657818101518382015260200161052e565b610401600480360360408110156108ad57600080fd5b8101906020810181356401000000008111156108c857600080fd5b8201836020820111156108da57600080fd5b803590602001918460018302840111640100000000831117156108fc57600080fd5b919350915035600160a060020a0316611abd565b6102606004803603602081101561092657600080fd5b81019060208101813564010000000081111561094157600080fd5b82018360208201111561095357600080fd5b8035906020019184600183028401116401000000008311171561097557600080fd5b509092509050611cc8565b6104016004803603604081101561099657600080fd5b8101906020810181356401000000008111156109b157600080fd5b8201836020820111156109c357600080fd5b803590602001918460018302840111640100000000831117156109e557600080fd5b919350915035600160a060020a0316611d35565b610a1660048036036020811015610a0f57600080fd5b5035611efd565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610a57578181015183820152602001610a3f565b50505050905090810190601f168015610a845780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610ab7578181015183820152602001610a9f565b50505050905090810190601f168015610ae45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b610473612073565b61026060048036036040811015610b1257600080fd5b810190602081018135640100000000811115610b2d57600080fd5b820183602082011115610b3f57600080fd5b80359060200191846001830284011164010000000083111715610b6157600080fd5b919390929091602081019035640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846001830284011164010000000083111715610bb357600080fd5b50909250905061207a565b61047360048036036020811015610bd457600080fd5b810190602081018135640100000000811115610bef57600080fd5b820183602082011115610c0157600080fd5b80359060200191846001830284011164010000000083111715610c2357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122f7945050505050565b61026060048036036040811015610c7a57600080fd5b810190602081018135640100000000811115610c9557600080fd5b820183602082011115610ca757600080fd5b80359060200191846001830284011164010000000083111715610cc957600080fd5b919350915035600160a060020a0316612327565b61040160048036036020811015610cf357600080fd5b810190602081018135640100000000811115610d0e57600080fd5b820183602082011115610d2057600080fd5b80359060200191846001830284011164010000000083111715610d4257600080fd5b509092509050612474565b61026060048036036020811015610d6357600080fd5b810190602081018135640100000000811115610d7e57600080fd5b820183602082011115610d9057600080fd5b80359060200191846001830284011164010000000083111715610db257600080fd5b5090925090506125be565b61040160048036036040811015610dd357600080fd5b810190602081018135640100000000811115610dee57600080fd5b820183602082011115610e0057600080fd5b80359060200191846001830284011164010000000083111715610e2257600080fd5b919390929091602081019035640100000000811115610e4057600080fd5b820183602082011115610e5257600080fd5b80359060200191846001830284011164010000000083111715610e7457600080fd5b509092509050612646565b61026060048036036020811015610e9557600080fd5b810190602081018135640100000000811115610eb057600080fd5b820183602082011115610ec257600080fd5b80359060200191846001830284011164010000000083111715610ee457600080fd5b509092509050612a86565b61047360048036036020811015610f0557600080fd5b810190602081018135640100000000811115610f2057600080fd5b820183602082011115610f3257600080fd5b80359060200191846001830284011164010000000083111715610f5457600080fd5b509092509050612ad7565b610260612b33565b61026060048036036020811015610f7d57600080fd5b810190602081018135640100000000811115610f9857600080fd5b820183602082011115610faa57600080fd5b80359060200191846001830284011164010000000083111715610fcc57600080fd5b509092509050612b38565b61026060048036036020811015610fed57600080fd5b81019060208101813564010000000081111561100857600080fd5b82018360208201111561101a57600080fd5b8035906020019184600183028401116401000000008311171561103c57600080fd5b509092509050612bc6565b60008061105384612c17565b905060028181548110151561106457fe5b60009182526020808320600160a060020a038716845260046005909302019190910190526040902054151561109d576000915050611104565b60006110a98585612ca4565b90506002828154811015156110ba57fe5b9060005260206000209060050201600301818154811015156110d857fe5b60009182526020909120015474010000000000000000000000000000000000000000900460ff16925050505b92915050565b600080600061111885612c17565b905060028181548110151561112957fe5b90600052602060002090600502016003018481548110151561114757fe5b60009182526020909120015460028054600160a060020a03909216918390811061116d57fe5b90600052602060002090600502016003018581548110151561118b57fe5b60009182526020909120015490967401000000000000000000000000000000000000000090910460ff1695509350505050565b60088054600190810191829055604051600090879087906020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000208190555060008080548091906001016112279190613c71565b9050848460008381548110151561123a57fe5b600091825260209091206112549360079092020191613c9d565b50828260008381548110151561126657fe5b90600052602060002090600702016001019190611284929190613c9d565b506000808281548110151561129557fe5b90600052602060002090600702016004018190555060206040519081016040528060008152506000828154811015156112ca57fe5b906000526020600020906007020160020190805190602001906112ee929190613d1b565b50600080828154811015156112ff57fe5b60009182526020909120600360079092020101805460ff1916600183600281111561132657fe5b02179055507fd734c07873f32f0735016e51dc718e21a48a3bec999d5be38cf3af363fbfedab838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15050505050565b6000806113d484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b815481106113de57fe5b60009182526020909120600560079092020101549392505050565b606060008061143d85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b905060008181548110151561144e57fe5b906000526020600020906007020160020160008281548110151561146e57fe5b600091825260209182902060036007909202010154825460408051601f6002600019600186161561010002019094169390930492830185900485028101850190915281815260ff9092169284919083018282801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b5050505050915092509250509250929050565b600061156183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b90506115a283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d2f92505050565b6115ab81612d9e565b505050565b6000806115bc84612cf6565b90506000818154811015156115cd57fe5b90600052602060002090600702016006016000846040516020018082805190602001908083835b602083106116135780518252601f1990920191602091820191016115f4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001208152602001908152602001600020546000141561166f576000915050611104565b600061167b828561390e565b905060008281548110151561168c57fe5b9060005260206000209060070201600501818154811015156116aa57fe5b600091825260209091206002909102016001015460ff1695945050505050565b600061170b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b905061178085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284376000920191909152506115b092505050565b1561195257828260008381548110151561179657fe5b906000526020600020906007020160020191906117b4929190613c9d565b5060026000828154811015156117c657fe5b60009182526020909120600360079092020101805460ff191660018360028111156117ed57fe5b021790555061183185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139ba92505050565b600061187284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613af092505050565b9050600160048281548110151561188557fe5b906000526020600020906004020160030160006101000a81548160ff0219169083151502179055507f4475befcee492797e02530076fd7e138aa058eb3bcd028a9df5c0f2815ba9f4a86866002878760405180806020018560028111156118e857fe5b60ff168152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f1916909201829003995090975050505050505050a1505b5050505050565b606060008061199d86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b90506000818154811015156119ae57fe5b9060005260206000209060070201600501848154811015156119cc57fe5b90600052602060002090600202016000016000828154811015156119ec57fe5b906000526020600020906007020160050185815481101515611a0a57fe5b600091825260209182902060029182020160019081015484546040805161010094831615949094026000190190911693909304601f810185900485028301850190935282825260ff169290918491830182828015611aa95780601f10611a7e57610100808354040283529160200191611aa9565b820191906000526020600020905b815481529060010190602001808311611a8c57829003601f168201915b505050505091509250925050935093915050565b6000611afe84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c1792505050565b9050600281815481101515611b0f57fe5b6000918252602090912060016005909202018101805490910190556002805482908110611b3857fe5b600091825260209091206002600590920201810180546001019055805482908110611b5f57fe5b906000526020600020906005020160010154600282815481101515611b8057fe5b60009182526020808320600160a060020a0387168452600460059093020191909101905260409020556002805482908110611bb757fe5b60009182526020808320604080518082018252600160a060020a038881168083526001838701818152600598909802909501600301805495860181558852968590209151919093018054955173ffffffffffffffffffffffffffffffffffffffff19909616919093161774ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000009415159490940293909317905581519081019290925280825281018490527f424f3ad05c61ea35cad66f22b70b1fad7250d8229921238078c401db36d34574908590859085908060608101858580828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b600060066000611d0d85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b81526020808201929092526040908101600090812033825290925290205460ff169392505050565b6000611d7684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c1792505050565b9050611db984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250611047915050565b15611ef7576000611e0185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612ca4915050565b9050600282815481101515611e1257fe5b600091825260208220600260059092020181018054600019019055805484908110611e3957fe5b906000526020600020906005020160030182815481101515611e5757fe5b9060005260206000200160000160146101000a81548160ff0219169083151502179055507f654cd85d9b2abaf3affef0a047625d088e6e4d0448935c9b5016b5f5aa0ca3b6858585604051808060200183600160a060020a0316600160a060020a031681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505b50505050565b606080600083815481101515611f0f57fe5b9060005260206000209060070201600001600084815481101515611f2f57fe5b9060005260206000209060070201600101818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd55780601f10611faa57610100808354040283529160200191611fd5565b820191906000526020600020905b815481529060010190602001808311611fb857829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156120635780601f1061203857610100808354040283529160200191612063565b820191906000526020600020905b81548152906001019060200180831161204657829003601f168201915b5050505050905091509150915091565b6008545b90565b6000806120bc86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b905060006120ff85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613af092505050565b9050600560008686604051602001808383808284378083019250505092505050604051602081830303815290604052805190602001208152602001908152602001600020546000141580156122835750600080548390811061215d57fe5b906000526020600020906007020160010160405160200180828054600181600116156101000203166002900480156121cc5780601f106121aa5761010080835404028352918201916121cc565b820191906000526020600020905b8154815290600101906020018083116121b8575b5050915050604051602081830303815290604052805190602001206004828154811015156121f657fe5b906000526020600020906004020160010160405160200180828054600181600116156101000203166002900480156122655780601f10612243576101008083540402835291820191612265565b820191906000526020600020905b815481529060010190602001808311612251575b50509150506040516020818303038152906040528051906020012014155b156122e857600060048281548110151561229957fe5b90600052602060002090600402016002015411806122d8575060048054829081106122c057fe5b600091825260209091206003600490920201015460ff165b156122e8576001925050506122ef565b6000925050505b949350505050565b6000600261230483612c17565b8154811061230e57fe5b9060005260206000209060050201600101549050919050565b60008061236985858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b9050600061242e60008381548110151561237f57fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124245780601f106123f957610100808354040283529160200191612424565b820191906000526020600020905b81548152906001019060200180831161240757829003601f168201915b5050505050612c17565b905060028181548110151561243f57fe5b60009182526020808320600160a060020a03881684526004600590930201919091019052604090205415925050509392505050565b600980546001019081905560405160039060009085908590602001808383808284378083019250505092505050604051602081830303815290604052805190602001208152602001908152602001600020819055506000600280548091906001016124df9190613d89565b905082826002838154811015156124f257fe5b6000918252602090912061250c9360059092020191613c9d565b50600060028281548110151561251e57fe5b906000526020600020906005020160010181905550600060028281548110151561254457fe5b9060005260206000209060050201600201819055507ffe62f8d1508aa8ddbb57fd8a6d631f4418cfcbafa90c6ce6d4b8105da5609729838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505050565b60008061260084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b9050600061261660008381548110151561237f57fe5b9050600060028281548110151561262957fe5b906000526020600020906005020160020154119250505092915050565b600061268785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b90506126fc85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284376000920191909152506115b092505050565b151561195257828260008381548110151561271357fe5b90600052602060002090600702016002019190612731929190613c9d565b50600160008281548110151561274357fe5b60009182526020909120600360079092020101805460ff1916600183600281111561276a57fe5b02179055506127ae85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139ba92505050565b60006127ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613af092505050565b90506005600085856040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415612a1757600a8054600101908190556040516005906000908790879060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600460806040519081016040528086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050815460209093019287915081106128e957fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561298e5780601f106129635761010080835404028352916020019161298e565b820191906000526020600020905b81548152906001019060200180831161297157829003601f168201915b50505091835250506000602080830182905260016040909301839052845492830180865594825290819020835180516004909402909101926129d39284920190613d1b565b5060208281015180516129ec9260018501920190613d1b565b50604082015160028201556060909101516003909101805460ff191691151591909117905550612a4b565b6001600482815481101515612a2857fe5b60009182526020909120600490910201600301805460ff19169115159190911790555b7f4475befcee492797e02530076fd7e138aa058eb3bcd028a9df5c0f2815ba9f4a86866001878760405180806020018560028111156118e857fe5b60006003600084846040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415905092915050565b600060076000612b1c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b815260200190815260200160002054905092915050565b600190565b600080612b7a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cf692505050565b9050600080805483908110612b8b57fe5b600091825260209091206003600790920201015460ff166002811115612bad57fe5b14612bbc576001915050611104565b5060009392505050565b60006001600084846040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415905092915050565b6000600160036000846040516020018082805190602001908083835b60208310612c525780518252601f199092019160209182019101612c33565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054039050919050565b600080612cb084612c17565b90506001600282815481101515612cc357fe5b60009182526020808320600160a060020a0388168452600460059093020191909101905260409020540391505092915050565b600060018060008460405160200180828051906020019080838360208310612c525780518252601f199092019160209182019101612c33565b6000612d3a82612cf6565b600081815260066020908152604080832033845290915290205490915060ff161515612d9a5760008181526006602090815260408083203384528252808320805460ff191660019081179091558484526007909252909120805490910190555b5050565b612f06600082815481101515612db057fe5b6000918252602091829020600790910201805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612e435780601f10612e1857610100808354040283529160200191612e43565b820191906000526020600020905b815481529060010190602001808311612e2657829003601f168201915b5050505050600083815481101515612e5757fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612efc5780601f10612ed157610100808354040283529160200191612efc565b820191906000526020600020905b815481529060010190602001808311612edf57829003601f168201915b5050505050613b2a565b1561390b5760008082815481101515612f1b57fe5b60009182526020909120600260079092020101905060016000805484908110612f4057fe5b600091825260209091206003600790920201015460ff166002811115612f6257fe5b141561367a576130a2600083815481101515612f7a57fe5b6000918252602091829020600790910201805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561300d5780601f10612fe25761010080835404028352916020019161300d565b820191906000526020600020905b815481529060010190602001808311612ff057829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152945087935091508301828280156130985780601f1061306d57610100808354040283529160200191613098565b820191906000526020600020905b81548152906001019060200180831161307b57829003601f168201915b50505050506115b0565b15613199578054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000926131409286929186918301828280156131365780601f1061310b57610100808354040283529160200191613136565b820191906000526020600020905b81548152906001019060200180831161311957829003601f168201915b505050505061390e565b9050600160008481548110151561315357fe5b90600052602060002090600702016005018281548110151561317157fe5b60009182526020909120600290910201600101805460ff19169115159190911790555061352f565b60008054839081106131a757fe5b600091825260208220600460079092020101805460010190558054839081106131cc57fe5b9060005260206000209060070201600401546000838154811015156131ed57fe5b9060005260206000209060070201600601600083604051602001808280546001816001161561010002031660029004801561325f5780601f1061323d57610100808354040283529182019161325f565b820191906000526020600020905b81548152906001019060200180831161324b575b50509150506040516020818303038152906040528051906020012081526020019081526020016000208190555060008281548110151561329b57fe5b600091825260209182902060408051855460026001821615610100026000190190911604601f81018690049095028101606090810183529181018581526007949094029092016005019391928392909186919084018282801561333f5780601f106133145761010080835404028352916020019161333f565b820191906000526020600020905b81548152906001019060200180831161332257829003601f168201915b50505091835250506001602091820181905283549081018085556000948552938290208351805160029093029091019261337e92849290910190613d1b565b50602091909101516001909101805460ff1916911515919091179055506000805461352f9190849081106133ae57fe5b600091825260209182902060026007909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134465780601f1061341b57610100808354040283529160200191613446565b820191906000526020600020905b81548152906001019060200180831161342957829003601f168201915b505050505060008481548110151561345a57fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134ff5780601f106134d4576101008083540402835291602001916134ff565b820191906000526020600020905b8154815290600101906020018083116134e257829003601f168201915b505050505060008581548110151561351357fe5b600091825260209091206003600790920201015460ff16613b8d565b7f6f4d370520782587dabc737a258f46de81ad45d733a42cd5a0045cff1e46deb460008381548110151561355f57fe5b60009182526020918290206040805181815260079093029091018054600260001961010060018416150201909116049183018290529285929182918201906060830190869080156135f15780601f106135c6576101008083540402835291602001916135f1565b820191906000526020600020905b8154815290600101906020018083116135d457829003601f168201915b50508381038252845460026000196101006001841615020190911604808252602090910190859080156136655780601f1061363a57610100808354040283529160200191613665565b820191906000526020600020905b81548152906001019060200180831161364857829003601f168201915b505094505050505060405180910390a161388f565b61368c600083815481101515612f7a57fe5b1561388f578054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000926136f59286929186918301828280156131365780601f1061310b57610100808354040283529160200191613136565b90506000808481548110151561370757fe5b90600052602060002090600702016005018281548110151561372557fe5b60009182526020822060029190910201600101805460ff19169215159290921790915580547f2e0a2dc845dce9ef7206b8fe38f3dacaad17ba74d7be9fba469c9858ae16a5d691908590811061377757fe5b60009182526020918290206040805181815260079093029091018054600260001961010060018416150201909116049183018290529286929182918201906060830190869080156138095780601f106137de57610100808354040283529160200191613809565b820191906000526020600020905b8154815290600101906020018083116137ec57829003601f168201915b505083810382528454600260001961010060018416150201909116048082526020909101908590801561387d5780601f106138525761010080835404028352916020019161387d565b820191906000526020600020905b81548152906001019060200180831161386057829003601f168201915b505094505050505060405180910390a1505b6000808381548110151561389f57fe5b60009182526020909120600360079092020101805460ff191660018360028111156138c657fe5b0217905550604080516020810190915260008082528054849081106138e757fe5b906000526020600020906007020160020190805190602001906115ab929190613d1b565b50565b6000600160008481548110151561392157fe5b90600052602060002090600702016006016000846040516020018082805190602001908083835b602083106139675780518252601f199092019160209182019101613948565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081526020019081526020016000205403905092915050565b60006139c582612cf6565b905060006139db60008381548110151561237f57fe5b905060005b60028054839081106139ee57fe5b906000526020600020906005020160030180549050811015613adc576002805483908110613a1857fe5b906000526020600020906005020160030181815481101515613a3657fe5b60009182526020909120015474010000000000000000000000000000000000000000900460ff1615613ad45760008381526006602052604081206002805483919086908110613a8157fe5b906000526020600020906005020160030184815481101515613a9f57fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790555b6001016139e0565b505060009081526007602052604081205550565b60006001600560008460405160200180828051906020019080838360208310612c525780518252601f199092019160209182019101612c33565b600080613b3684612cf6565b90506000613b4384612c17565b905060028082815481101515613b5557fe5b906000526020600020906005020160020154811515613b7057fe5b600093845260076020526040909320549204909111949350505050565b6000613b9884613af0565b90506000600482815481101515613bab57fe5b60009182526020909120600490910201600301805460ff19169115159190911790556001826002811115613bdb57fe5b1415613c42576004805482908110613bef57fe5b6000918252602090912060049182020160020180546001019055805484919083908110613c1857fe5b90600052602060002090600402016001019080519060200190613c3c929190613d1b565b50611ef7565b6004805482908110613c5057fe5b60009182526020909120600260049092020101805460001901905550505050565b8154818355818111156115ab576007028160070283600052602060002091820191016115ab9190613db5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613cde5782800160ff19823516178555613d0b565b82800160010185558215613d0b579182015b82811115613d0b578235825591602001919060010190613cf0565b50613d17929150613e17565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d5c57805160ff1916838001178555613d0b565b82800160010185558215613d0b579182015b82811115613d0b578251825591602001919060010190613d6e565b8154818355818111156115ab576005028160050283600052602060002091820191016115ab9190613e31565b61207791905b80821115613d17576000613dcf8282613e74565b613ddd600183016000613e74565b613deb600283016000613e74565b60038201805460ff19169055600060048301819055613e0e906005840190613eb8565b50600701613dbb565b61207791905b80821115613d175760008155600101613e1d565b61207791905b80821115613d17576000613e4b8282613e74565b60018201600090556002820160009055600382016000613e6b9190613ed9565b50600501613e37565b50805460018160011615610100020316600290046000825580601f10613e9a575061390b565b601f01602090049060005260206000209081019061390b9190613e17565b508054600082556002029060005260206000209081019061390b9190613ef7565b508054600082559060005260206000209081019061390b9190613f26565b61207791905b80821115613d17576000613f118282613e74565b5060018101805460ff19169055600201613efd565b61207791905b80821115613d1757805474ffffffffffffffffffffffffffffffffffffffffff19168155600101613f2c56fea165627a7a72305820a4a026266eff595bacc1c154de53d50109abf4f8ddcdb18e7ebae9ef7c8041510029 \ No newline at end of file +608060405234801561001057600080fd5b50600436106101aa576000357c0100000000000000000000000000000000000000000000000000000000900480637755ebdd116100fb578063d88ce6bb116100b4578063ee0c7dda1161008e578063ee0c7dda14610f5f578063f346a3a714610485578063fb23dedc14610f67578063ffe40d1d14610fd7576101aa565b8063d88ce6bb14610dbd578063d912967a14610e7f578063e7089a0c14610eef576101aa565b80637755ebdd14610af45780638fde9c5e14610afc5780639b904f0a14610bbe578063bd9e887a14610c64578063c7304f3f14610cdd578063cb2c45dc14610d4d576101aa565b80634898598e116101685780635607395b116101425780635607395b14610897578063561870631461091057806359cbd6fe146109805780635c4f32ee146109f9576101aa565b80634898598e146105f257806349379c501461071f5780635002dadf146107e1576101aa565b8062b813df146101af57806317a2fb72146102745780631f9534801461033f578063243cc5061461040357806333680eb71461048557806335dc477214610582575b600080fd5b610260600480360360408110156101c557600080fd5b8101906020810181356401000000008111156101e057600080fd5b8201836020820111156101f257600080fd5b8035906020019184600183028401116401000000008311171561021457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506110479050565b604080519115158252519081900360200190f35b61031c6004803603604081101561028a57600080fd5b8101906020810181356401000000008111156102a557600080fd5b8201836020820111156102b757600080fd5b803590602001918460018302840111640100000000831117156102d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061110a915050565b60408051600160a060020a03909316835290151560208301528051918290030190f35b6104016004803603604081101561035557600080fd5b81019060208101813564010000000081111561037057600080fd5b82018360208201111561038257600080fd5b803590602001918460018302840111640100000000831117156103a457600080fd5b9193909290916020810190356401000000008111156103c257600080fd5b8201836020820111156103d457600080fd5b803590602001918460018302840111640100000000831117156103f657600080fd5b5090925090506111be565b005b6104736004803603602081101561041957600080fd5b81019060208101813564010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b509092509050611392565b60408051918252519081900360200190f35b6104f56004803603602081101561049b57600080fd5b8101906020810181356401000000008111156104b657600080fd5b8201836020820111156104c857600080fd5b803590602001918460018302840111640100000000831117156104ea57600080fd5b5090925090506113f9565b604051808060200183600281111561050957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561054657818101518382015260200161052e565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6104016004803603602081101561059857600080fd5b8101906020810181356401000000008111156105b357600080fd5b8201836020820111156105c557600080fd5b803590602001918460018302840111640100000000831117156105e757600080fd5b509092509050611520565b6102606004803603604081101561060857600080fd5b81019060208101813564010000000081111561062357600080fd5b82018360208201111561063557600080fd5b8035906020019184600183028401116401000000008311171561065757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156106aa57600080fd5b8201836020820111156106bc57600080fd5b803590602001918460018302840111640100000000831117156106de57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115b0945050505050565b6104016004803603604081101561073557600080fd5b81019060208101813564010000000081111561075057600080fd5b82018360208201111561076257600080fd5b8035906020019184600183028401116401000000008311171561078457600080fd5b9193909290916020810190356401000000008111156107a257600080fd5b8201836020820111156107b457600080fd5b803590602001918460018302840111640100000000831117156107d657600080fd5b5090925090506116ca565b610851600480360360408110156107f757600080fd5b81019060208101813564010000000081111561081257600080fd5b82018360208201111561082457600080fd5b8035906020019184600183028401116401000000008311171561084657600080fd5b919350915035611959565b604051808060200183151515158152602001828103825284818151815260200191508051906020019080838360008381101561054657818101518382015260200161052e565b610401600480360360408110156108ad57600080fd5b8101906020810181356401000000008111156108c857600080fd5b8201836020820111156108da57600080fd5b803590602001918460018302840111640100000000831117156108fc57600080fd5b919350915035600160a060020a0316611abd565b6102606004803603602081101561092657600080fd5b81019060208101813564010000000081111561094157600080fd5b82018360208201111561095357600080fd5b8035906020019184600183028401116401000000008311171561097557600080fd5b509092509050611cc8565b6104016004803603604081101561099657600080fd5b8101906020810181356401000000008111156109b157600080fd5b8201836020820111156109c357600080fd5b803590602001918460018302840111640100000000831117156109e557600080fd5b919350915035600160a060020a0316611d35565b610a1660048036036020811015610a0f57600080fd5b5035611efd565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610a57578181015183820152602001610a3f565b50505050905090810190601f168015610a845780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610ab7578181015183820152602001610a9f565b50505050905090810190601f168015610ae45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b610473612073565b61026060048036036040811015610b1257600080fd5b810190602081018135640100000000811115610b2d57600080fd5b820183602082011115610b3f57600080fd5b80359060200191846001830284011164010000000083111715610b6157600080fd5b919390929091602081019035640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846001830284011164010000000083111715610bb357600080fd5b50909250905061207a565b61047360048036036020811015610bd457600080fd5b810190602081018135640100000000811115610bef57600080fd5b820183602082011115610c0157600080fd5b80359060200191846001830284011164010000000083111715610c2357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122f7945050505050565b61026060048036036040811015610c7a57600080fd5b810190602081018135640100000000811115610c9557600080fd5b820183602082011115610ca757600080fd5b80359060200191846001830284011164010000000083111715610cc957600080fd5b919350915035600160a060020a0316612327565b61040160048036036020811015610cf357600080fd5b810190602081018135640100000000811115610d0e57600080fd5b820183602082011115610d2057600080fd5b80359060200191846001830284011164010000000083111715610d4257600080fd5b509092509050612475565b61026060048036036020811015610d6357600080fd5b810190602081018135640100000000811115610d7e57600080fd5b820183602082011115610d9057600080fd5b80359060200191846001830284011164010000000083111715610db257600080fd5b5090925090506125bf565b61040160048036036040811015610dd357600080fd5b810190602081018135640100000000811115610dee57600080fd5b820183602082011115610e0057600080fd5b80359060200191846001830284011164010000000083111715610e2257600080fd5b919390929091602081019035640100000000811115610e4057600080fd5b820183602082011115610e5257600080fd5b80359060200191846001830284011164010000000083111715610e7457600080fd5b509092509050612647565b61026060048036036020811015610e9557600080fd5b810190602081018135640100000000811115610eb057600080fd5b820183602082011115610ec257600080fd5b80359060200191846001830284011164010000000083111715610ee457600080fd5b509092509050612a87565b61047360048036036020811015610f0557600080fd5b810190602081018135640100000000811115610f2057600080fd5b820183602082011115610f3257600080fd5b80359060200191846001830284011164010000000083111715610f5457600080fd5b509092509050612ad8565b610260612b34565b61026060048036036020811015610f7d57600080fd5b810190602081018135640100000000811115610f9857600080fd5b820183602082011115610faa57600080fd5b80359060200191846001830284011164010000000083111715610fcc57600080fd5b509092509050612b39565b61026060048036036020811015610fed57600080fd5b81019060208101813564010000000081111561100857600080fd5b82018360208201111561101a57600080fd5b8035906020019184600183028401116401000000008311171561103c57600080fd5b509092509050612bb8565b60008061105384612c09565b905060028181548110151561106457fe5b60009182526020808320600160a060020a038716845260046005909302019190910190526040902054151561109d576000915050611104565b60006110a98585612c96565b90506002828154811015156110ba57fe5b9060005260206000209060050201600301818154811015156110d857fe5b60009182526020909120015474010000000000000000000000000000000000000000900460ff16925050505b92915050565b600080600061111885612c09565b905060028181548110151561112957fe5b90600052602060002090600502016003018481548110151561114757fe5b60009182526020909120015460028054600160a060020a03909216918390811061116d57fe5b90600052602060002090600502016003018581548110151561118b57fe5b60009182526020909120015490967401000000000000000000000000000000000000000090910460ff1695509350505050565b60088054600190810191829055604051600090879087906020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000208190555060008080548091906001016112279190613c63565b9050848460008381548110151561123a57fe5b600091825260209091206112549360079092020191613c8f565b50828260008381548110151561126657fe5b90600052602060002090600702016001019190611284929190613c8f565b506000808281548110151561129557fe5b90600052602060002090600702016004018190555060206040519081016040528060008152506000828154811015156112ca57fe5b906000526020600020906007020160020190805190602001906112ee929190613d0d565b50600080828154811015156112ff57fe5b60009182526020909120600360079092020101805460ff1916600183600281111561132657fe5b02179055507fd734c07873f32f0735016e51dc718e21a48a3bec999d5be38cf3af363fbfedab838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15050505050565b6000806113d484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b815481106113de57fe5b60009182526020909120600560079092020101549392505050565b606060008061143d85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b905060008181548110151561144e57fe5b906000526020600020906007020160020160008281548110151561146e57fe5b600091825260209182902060036007909202010154825460408051601f6002600019600186161561010002019094169390930492830185900485028101850190915281815260ff9092169284919083018282801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b5050505050915092509250509250929050565b600061156183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b90506115a283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d2192505050565b6115ab81612d90565b505050565b6000806115bc84612ce8565b90506000818154811015156115cd57fe5b90600052602060002090600702016006016000846040516020018082805190602001908083835b602083106116135780518252601f1990920191602091820191016115f4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001208152602001908152602001600020546000141561166f576000915050611104565b600061167b8285613900565b905060008281548110151561168c57fe5b9060005260206000209060070201600501818154811015156116aa57fe5b600091825260209091206002909102016001015460ff1695945050505050565b600061170b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b905061178085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284376000920191909152506115b092505050565b1561195257828260008381548110151561179657fe5b906000526020600020906007020160020191906117b4929190613c8f565b5060026000828154811015156117c657fe5b60009182526020909120600360079092020101805460ff191660018360028111156117ed57fe5b021790555061183185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139ac92505050565b600061187284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ae292505050565b9050600160048281548110151561188557fe5b906000526020600020906004020160030160006101000a81548160ff0219169083151502179055507f4475befcee492797e02530076fd7e138aa058eb3bcd028a9df5c0f2815ba9f4a86866002878760405180806020018560028111156118e857fe5b60ff168152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f1916909201829003995090975050505050505050a1505b5050505050565b606060008061199d86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b90506000818154811015156119ae57fe5b9060005260206000209060070201600501848154811015156119cc57fe5b90600052602060002090600202016000016000828154811015156119ec57fe5b906000526020600020906007020160050185815481101515611a0a57fe5b600091825260209182902060029182020160019081015484546040805161010094831615949094026000190190911693909304601f810185900485028301850190935282825260ff169290918491830182828015611aa95780601f10611a7e57610100808354040283529160200191611aa9565b820191906000526020600020905b815481529060010190602001808311611a8c57829003601f168201915b505050505091509250925050935093915050565b6000611afe84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c0992505050565b9050600281815481101515611b0f57fe5b6000918252602090912060016005909202018101805490910190556002805482908110611b3857fe5b600091825260209091206002600590920201810180546001019055805482908110611b5f57fe5b906000526020600020906005020160010154600282815481101515611b8057fe5b60009182526020808320600160a060020a0387168452600460059093020191909101905260409020556002805482908110611bb757fe5b60009182526020808320604080518082018252600160a060020a038881168083526001838701818152600598909802909501600301805495860181558852968590209151919093018054955173ffffffffffffffffffffffffffffffffffffffff19909616919093161774ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000009415159490940293909317905581519081019290925280825281018490527f424f3ad05c61ea35cad66f22b70b1fad7250d8229921238078c401db36d34574908590859085908060608101858580828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b600060066000611d0d85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b81526020808201929092526040908101600090812033825290925290205460ff169392505050565b6000611d7684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c0992505050565b9050611db984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250611047915050565b15611ef7576000611e0185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612c96915050565b9050600282815481101515611e1257fe5b600091825260208220600260059092020181018054600019019055805484908110611e3957fe5b906000526020600020906005020160030182815481101515611e5757fe5b9060005260206000200160000160146101000a81548160ff0219169083151502179055507f654cd85d9b2abaf3affef0a047625d088e6e4d0448935c9b5016b5f5aa0ca3b6858585604051808060200183600160a060020a0316600160a060020a031681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505b50505050565b606080600083815481101515611f0f57fe5b9060005260206000209060070201600001600084815481101515611f2f57fe5b9060005260206000209060070201600101818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd55780601f10611faa57610100808354040283529160200191611fd5565b820191906000526020600020905b815481529060010190602001808311611fb857829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156120635780601f1061203857610100808354040283529160200191612063565b820191906000526020600020905b81548152906001019060200180831161204657829003601f168201915b5050505050905091509150915091565b6008545b90565b6000806120bc86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b905060006120ff85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ae292505050565b9050600560008686604051602001808383808284378083019250505092505050604051602081830303815290604052805190602001208152602001908152602001600020546000141580156122835750600080548390811061215d57fe5b906000526020600020906007020160010160405160200180828054600181600116156101000203166002900480156121cc5780601f106121aa5761010080835404028352918201916121cc565b820191906000526020600020905b8154815290600101906020018083116121b8575b5050915050604051602081830303815290604052805190602001206004828154811015156121f657fe5b906000526020600020906004020160010160405160200180828054600181600116156101000203166002900480156122655780601f10612243576101008083540402835291820191612265565b820191906000526020600020905b815481529060010190602001808311612251575b50509150506040516020818303038152906040528051906020012014155b156122e857600060048281548110151561229957fe5b90600052602060002090600402016002015411806122d8575060048054829081106122c057fe5b600091825260209091206003600490920201015460ff165b156122e8576001925050506122ef565b6000925050505b949350505050565b6000600261230483612c09565b8154811061230e57fe5b9060005260206000209060050201600101549050919050565b60008061236985858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b9050600061242e60008381548110151561237f57fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124245780601f106123f957610100808354040283529160200191612424565b820191906000526020600020905b81548152906001019060200180831161240757829003601f168201915b5050505050612c09565b905060028181548110151561243f57fe5b60009182526020808320600160a060020a0388168452600460059093020191909101905260409020541515925050509392505050565b600980546001019081905560405160039060009085908590602001808383808284378083019250505092505050604051602081830303815290604052805190602001208152602001908152602001600020819055506000600280548091906001016124e09190613d7b565b905082826002838154811015156124f357fe5b6000918252602090912061250d9360059092020191613c8f565b50600060028281548110151561251f57fe5b906000526020600020906005020160010181905550600060028281548110151561254557fe5b9060005260206000209060050201600201819055507ffe62f8d1508aa8ddbb57fd8a6d631f4418cfcbafa90c6ce6d4b8105da5609729838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505050565b60008061260184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b9050600061261760008381548110151561237f57fe5b9050600060028281548110151561262a57fe5b906000526020600020906005020160020154119250505092915050565b600061268885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b90506126fd85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284376000920191909152506115b092505050565b151561195257828260008381548110151561271457fe5b90600052602060002090600702016002019190612732929190613c8f565b50600160008281548110151561274457fe5b60009182526020909120600360079092020101805460ff1916600183600281111561276b57fe5b02179055506127af85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139ac92505050565b60006127f084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ae292505050565b90506005600085856040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415612a1857600a8054600101908190556040516005906000908790879060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600460806040519081016040528086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050815460209093019287915081106128ea57fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561298f5780601f106129645761010080835404028352916020019161298f565b820191906000526020600020905b81548152906001019060200180831161297257829003601f168201915b50505091835250506000602080830182905260016040909301839052845492830180865594825290819020835180516004909402909101926129d49284920190613d0d565b5060208281015180516129ed9260018501920190613d0d565b50604082015160028201556060909101516003909101805460ff191691151591909117905550612a4c565b6001600482815481101515612a2957fe5b60009182526020909120600490910201600301805460ff19169115159190911790555b7f4475befcee492797e02530076fd7e138aa058eb3bcd028a9df5c0f2815ba9f4a86866001878760405180806020018560028111156118e857fe5b60006003600084846040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415905092915050565b600060076000612b1d85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b815260200190815260200160002054905092915050565b600190565b600080612b7b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce892505050565b9050600080805483908110612b8c57fe5b600091825260209091206003600790920201015460ff166002811115612bae57fe5b1415949350505050565b60006001600084846040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415905092915050565b6000600160036000846040516020018082805190602001908083835b60208310612c445780518252601f199092019160209182019101612c25565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054039050919050565b600080612ca284612c09565b90506001600282815481101515612cb557fe5b60009182526020808320600160a060020a0388168452600460059093020191909101905260409020540391505092915050565b600060018060008460405160200180828051906020019080838360208310612c445780518252601f199092019160209182019101612c25565b6000612d2c82612ce8565b600081815260066020908152604080832033845290915290205490915060ff161515612d8c5760008181526006602090815260408083203384528252808320805460ff191660019081179091558484526007909252909120805490910190555b5050565b612ef8600082815481101515612da257fe5b6000918252602091829020600790910201805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612e355780601f10612e0a57610100808354040283529160200191612e35565b820191906000526020600020905b815481529060010190602001808311612e1857829003601f168201915b5050505050600083815481101515612e4957fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eee5780601f10612ec357610100808354040283529160200191612eee565b820191906000526020600020905b815481529060010190602001808311612ed157829003601f168201915b5050505050613b1c565b156138fd5760008082815481101515612f0d57fe5b60009182526020909120600260079092020101905060016000805484908110612f3257fe5b600091825260209091206003600790920201015460ff166002811115612f5457fe5b141561366c57613094600083815481101515612f6c57fe5b6000918252602091829020600790910201805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612fff5780601f10612fd457610100808354040283529160200191612fff565b820191906000526020600020905b815481529060010190602001808311612fe257829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529450879350915083018282801561308a5780601f1061305f5761010080835404028352916020019161308a565b820191906000526020600020905b81548152906001019060200180831161306d57829003601f168201915b50505050506115b0565b1561318b578054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000926131329286929186918301828280156131285780601f106130fd57610100808354040283529160200191613128565b820191906000526020600020905b81548152906001019060200180831161310b57829003601f168201915b5050505050613900565b9050600160008481548110151561314557fe5b90600052602060002090600702016005018281548110151561316357fe5b60009182526020909120600290910201600101805460ff191691151591909117905550613521565b600080548390811061319957fe5b600091825260208220600460079092020101805460010190558054839081106131be57fe5b9060005260206000209060070201600401546000838154811015156131df57fe5b906000526020600020906007020160060160008360405160200180828054600181600116156101000203166002900480156132515780601f1061322f576101008083540402835291820191613251565b820191906000526020600020905b81548152906001019060200180831161323d575b50509150506040516020818303038152906040528051906020012081526020019081526020016000208190555060008281548110151561328d57fe5b600091825260209182902060408051855460026001821615610100026000190190911604601f8101869004909502810160609081018352918101858152600794909402909201600501939192839290918691908401828280156133315780601f1061330657610100808354040283529160200191613331565b820191906000526020600020905b81548152906001019060200180831161331457829003601f168201915b50505091835250506001602091820181905283549081018085556000948552938290208351805160029093029091019261337092849290910190613d0d565b50602091909101516001909101805460ff191691151591909117905550600080546135219190849081106133a057fe5b600091825260209182902060026007909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134385780601f1061340d57610100808354040283529160200191613438565b820191906000526020600020905b81548152906001019060200180831161341b57829003601f168201915b505050505060008481548110151561344c57fe5b90600052602060002090600702016001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134f15780601f106134c6576101008083540402835291602001916134f1565b820191906000526020600020905b8154815290600101906020018083116134d457829003601f168201915b505050505060008581548110151561350557fe5b600091825260209091206003600790920201015460ff16613b7f565b7f6f4d370520782587dabc737a258f46de81ad45d733a42cd5a0045cff1e46deb460008381548110151561355157fe5b60009182526020918290206040805181815260079093029091018054600260001961010060018416150201909116049183018290529285929182918201906060830190869080156135e35780601f106135b8576101008083540402835291602001916135e3565b820191906000526020600020905b8154815290600101906020018083116135c657829003601f168201915b50508381038252845460026000196101006001841615020190911604808252602090910190859080156136575780601f1061362c57610100808354040283529160200191613657565b820191906000526020600020905b81548152906001019060200180831161363a57829003601f168201915b505094505050505060405180910390a1613881565b61367e600083815481101515612f6c57fe5b15613881578054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526000926136e79286929186918301828280156131285780601f106130fd57610100808354040283529160200191613128565b9050600080848154811015156136f957fe5b90600052602060002090600702016005018281548110151561371757fe5b60009182526020822060029190910201600101805460ff19169215159290921790915580547f2e0a2dc845dce9ef7206b8fe38f3dacaad17ba74d7be9fba469c9858ae16a5d691908590811061376957fe5b60009182526020918290206040805181815260079093029091018054600260001961010060018416150201909116049183018290529286929182918201906060830190869080156137fb5780601f106137d0576101008083540402835291602001916137fb565b820191906000526020600020905b8154815290600101906020018083116137de57829003601f168201915b505083810382528454600260001961010060018416150201909116048082526020909101908590801561386f5780601f106138445761010080835404028352916020019161386f565b820191906000526020600020905b81548152906001019060200180831161385257829003601f168201915b505094505050505060405180910390a1505b6000808381548110151561389157fe5b60009182526020909120600360079092020101805460ff191660018360028111156138b857fe5b0217905550604080516020810190915260008082528054849081106138d957fe5b906000526020600020906007020160020190805190602001906115ab929190613d0d565b50565b6000600160008481548110151561391357fe5b90600052602060002090600702016006016000846040516020018082805190602001908083835b602083106139595780518252601f19909201916020918201910161393a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081526020019081526020016000205403905092915050565b60006139b782612ce8565b905060006139cd60008381548110151561237f57fe5b905060005b60028054839081106139e057fe5b906000526020600020906005020160030180549050811015613ace576002805483908110613a0a57fe5b906000526020600020906005020160030181815481101515613a2857fe5b60009182526020909120015474010000000000000000000000000000000000000000900460ff1615613ac65760008381526006602052604081206002805483919086908110613a7357fe5b906000526020600020906005020160030184815481101515613a9157fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790555b6001016139d2565b505060009081526007602052604081205550565b60006001600560008460405160200180828051906020019080838360208310612c445780518252601f199092019160209182019101612c25565b600080613b2884612ce8565b90506000613b3584612c09565b905060028082815481101515613b4757fe5b906000526020600020906005020160020154811515613b6257fe5b600093845260076020526040909320549204909111949350505050565b6000613b8a84613ae2565b90506000600482815481101515613b9d57fe5b60009182526020909120600490910201600301805460ff19169115159190911790556001826002811115613bcd57fe5b1415613c34576004805482908110613be157fe5b6000918252602090912060049182020160020180546001019055805484919083908110613c0a57fe5b90600052602060002090600402016001019080519060200190613c2e929190613d0d565b50611ef7565b6004805482908110613c4257fe5b60009182526020909120600260049092020101805460001901905550505050565b8154818355818111156115ab576007028160070283600052602060002091820191016115ab9190613da7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613cd05782800160ff19823516178555613cfd565b82800160010185558215613cfd579182015b82811115613cfd578235825591602001919060010190613ce2565b50613d09929150613e09565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d4e57805160ff1916838001178555613cfd565b82800160010185558215613cfd579182015b82811115613cfd578251825591602001919060010190613d60565b8154818355818111156115ab576005028160050283600052602060002091820191016115ab9190613e23565b61207791905b80821115613d09576000613dc18282613e66565b613dcf600183016000613e66565b613ddd600283016000613e66565b60038201805460ff19169055600060048301819055613e00906005840190613eaa565b50600701613dad565b61207791905b80821115613d095760008155600101613e0f565b61207791905b80821115613d09576000613e3d8282613e66565b60018201600090556002820160009055600382016000613e5d9190613ecb565b50600501613e29565b50805460018160011615610100020316600290046000825580601f10613e8c57506138fd565b601f0160209004906000526020600020908101906138fd9190613e09565b50805460008255600202906000526020600020908101906138fd9190613ee9565b50805460008255906000526020600020908101906138fd9190613f18565b61207791905b80821115613d09576000613f038282613e66565b5060018101805460ff19169055600201613eef565b61207791905b80821115613d0957805474ffffffffffffffffffffffffffffffffffffffffff19168155600101613f1e56fea165627a7a723058203041041b0de9687a596d4c1f163aee37b0d8450bc422afce4d719e9c09dd67ca0029 \ No newline at end of file