608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a620f4240026006556103e8600a60065402816200015457fe5b046007556103e8601460065402816200016957fe5b04600855620186a06009556001600a556001600b60006101000a81548160ff0219169083151502179055506003601055600760115560056012556000601355600060145566b1a2bc2ec500006017556001601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055506107d060056006540281620001ff57fe5b04601a553480156200021057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037657600080fd5b505afa1580156200038b573d6000803e3d6000fd5b505050506040513d6020811015620003a257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200045c57600080fd5b505af115801562000471573d6000803e3d6000fd5b505050506040513d60208110156200048857600080fd5b8101908080519060200190929190505050601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620005e757600080fd5b505afa158015620005fc573d6000803e3d6000fd5b505050506040513d60208110156200061357600080fd5b8101908080519060200190929190505050600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000a5860125462000a4460115460105462000b1b60201b62001d461790919060201c565b62000b1b60201b62001d461790919060201c565b601381905550601354601481905550600654600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000ba4565b60008082840190508381101562000b9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6135358062000bb46000396000f3fe6080604052600436106102605760003560e01c8063807c2d9c11610144578063bce90ce6116100b6578063da00097d1161007a578063da00097d14610ce6578063dd62ed3e14610d13578063ddf3fc1a14610d98578063f0b37c0414610dd3578063f887ea4014610e24578063fe9fbb8014610e6557610267565b8063bce90ce614610bd5578063ca33e64c14610c00578063ca987b0e14610c41578063cec10c1114610c6c578063d09de08a14610cbb57610267565b80638ea5220f116101085780638ea5220f146109d657806395d89b4114610a1757806398118cb414610aa7578063a8aa1b3114610ad2578063a9059cbb14610b13578063b6a5d7de14610b8457610267565b8063807c2d9c14610885578063893d20e8146108b0578063899420ed146108f15780638b42507f1461092e5780638dd950021461099557610267565b8063313ce567116101dd5780634b2aee52116101a15780634b2aee52146106d7578063571ac8b0146107125780636827e7641461077957806370a08231146107a457806378051f4d146108095780637b97a9bf1461085a57610267565b8063313ce567146105bd5780633b2d081c146105eb5780633f4218e01461061657806344de2e4c1461067d5780634a74bb02146106aa57610267565b80631f2c80f1116102245780631f2c80f1146103ee57806323b872dd1461045f57806327a14fc2146104f05780632b112e491461052b5780632f54bf6e1461055657610267565b80630445b6671461026c57806306fdde0314610297578063095ea7b31461032757806318160ddd146103985780631df4ccfc146103c357610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610ecc565b6040518082815260200191505060405180910390f35b3480156102a357600080fd5b506102ac610ed2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ec5780820151818401526020810190506102d1565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033357600080fd5b506103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0f565b60405180821515815260200191505060405180910390f35b3480156103a457600080fd5b506103ad611001565b6040518082815260200191505060405180910390f35b3480156103cf57600080fd5b506103d861100b565b6040518082815260200191505060405180910390f35b3480156103fa57600080fd5b5061045d6004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611011565b005b34801561046b57600080fd5b506104d86004803603606081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611112565b60405180821515815260200191505060405180910390f35b3480156104fc57600080fd5b506105296004803603602081101561051357600080fd5b8101908080359060200190929190505050611312565b005b34801561053757600080fd5b506105406113a9565b6040518082815260200191505060405180910390f35b34801561056257600080fd5b506105a56004803603602081101561057957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061142b565b60405180821515815260200191505060405180910390f35b3480156105c957600080fd5b506105d2611484565b604051808260ff16815260200191505060405180910390f35b3480156105f757600080fd5b5061060061148d565b6040518082815260200191505060405180910390f35b34801561062257600080fd5b506106656004803603602081101561063957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611493565b60405180821515815260200191505060405180910390f35b34801561068957600080fd5b506106926114b3565b60405180821515815260200191505060405180910390f35b3480156106b657600080fd5b506106bf6114c6565b60405180821515815260200191505060405180910390f35b3480156106e357600080fd5b50610710600480360360208110156106fa57600080fd5b81019080803590602001909291905050506114d9565b005b34801561071e57600080fd5b506107616004803603602081101561073557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061155e565b60405180821515815260200191505060405180910390f35b34801561078557600080fd5b5061078e611591565b6040518082815260200191505060405180910390f35b3480156107b057600080fd5b506107f3600480360360208110156107c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611597565b6040518082815260200191505060405180910390f35b34801561081557600080fd5b506108586004803603602081101561082c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115e0565b005b34801561086657600080fd5b5061086f611742565b6040518082815260200191505060405180910390f35b34801561089157600080fd5b5061089a611748565b6040518082815260200191505060405180910390f35b3480156108bc57600080fd5b506108c561174e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108fd57600080fd5b5061092c6004803603602081101561091457600080fd5b81019080803515159060200190929190505050611777565b005b34801561093a57600080fd5b5061097d6004803603602081101561095157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061180f565b60405180821515815260200191505060405180910390f35b3480156109a157600080fd5b506109aa61182f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e257600080fd5b506109eb611855565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a2357600080fd5b50610a2c61187b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a6c578082015181840152602081019050610a51565b50505050905090810190601f168015610a995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ab357600080fd5b50610abc6118b8565b6040518082815260200191505060405180910390f35b348015610ade57600080fd5b50610ae76118be565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1f57600080fd5b50610b6c60048036036040811015610b3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e4565b60405180821515815260200191505060405180910390f35b348015610b9057600080fd5b50610bd360048036036020811015610ba757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f9565b005b348015610be157600080fd5b50610bea6119ce565b6040518082815260200191505060405180910390f35b348015610c0c57600080fd5b50610c156119d4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c4d57600080fd5b50610c566119fa565b6040518082815260200191505060405180910390f35b348015610c7857600080fd5b50610cb960048036036060811015610c8f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611a00565b005b348015610cc757600080fd5b50610cd0611acf565b6040518082815260200191505060405180910390f35b348015610cf257600080fd5b50610cfb611ad5565b60405180821515815260200191505060405180910390f35b348015610d1f57600080fd5b50610d8260048036036040811015610d3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae8565b6040518082815260200191505060405180910390f35b348015610da457600080fd5b50610dd160048036036020811015610dbb57600080fd5b8101908080359060200190929190505050611b6f565b005b348015610ddf57600080fd5b50610e2260048036036020811015610df657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf4565b005b348015610e3057600080fd5b50610e39611cca565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e7157600080fd5b50610eb460048036036020811015610e8857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf0565b60405180821515815260200191505060405180910390f35b601a5481565b60606040518060400160405280600781526020017f44726163756c6100000000000000000000000000000000000000000000000000815250905090565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b60135481565b61101a33611cf0565b61108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112fe5761127d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611309848484611e8e565b90509392505050565b61131b33611cf0565b61138d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e8600a8202600654028161139f57fe5b0460078190555050565b60006114266113d9600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611597565b611418611407600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611597565b60065461223190919063ffffffff16565b61223190919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60125481565b600e6020528060005260406000206000915054906101000a900460ff1681565b600b60009054906101000a900460ff1681565b601960159054906101000a900460ff1681565b6114e233611cf0565b611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060178190555050565b600061158a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f0f565b9050919050565b60115481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115e93361142b565b61165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60085481565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61178033611cf0565b6117f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b600f6020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600481526020017ff09fa79b00000000000000000000000000000000000000000000000000000000815250905090565b60105481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118f1338484611e8e565b905092915050565b6119023361142b565b611974576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b611a0933611cf0565b611a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b826010819055508160118190555080601281905550611abb601254611aad601154601054611d4690919063ffffffff16565b611d4690919063ffffffff16565b601381905550601354601481905550505050565b60095481565b601960169054906101000a900460ff1681565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b7833611cf0565b611bea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060098190555050565b611bfd3361142b565b611c6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080828401905083811015611dc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290611e7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e40578082015181840152602081019050611e25565b50505050905090810190601f168015611e6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601960149054906101000a900460ff1615611eb757611eb084848461227b565b905061222a565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611f225750601960149054906101000a900460ff16155b8015611f3a5750601960159054906101000a900460ff165b8015611f875750601a54600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611f9557611f9461244e565b5b611fa0848484612b04565b612029826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121125750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61211c5782612128565b612127858585612f9f565b5b905061217c81600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061227383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dce565b905092915050565b6000612306826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce9092919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239b82600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006124eb60026124dd6013546124cf6010548761314790919063ffffffff16565b6131cd90919063ffffffff16565b6131cd90919063ffffffff16565b90506000612502828461223190919063ffffffff16565b90506000600267ffffffffffffffff8111801561251e57600080fd5b5060405190808252806020026020018201604052801561254d5781602001602082028036833780820191505090505b509050308160008151811061255e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561260057600080fd5b505afa158015612614573d6000803e3d6000fd5b505050506040513d602081101561262a57600080fd5b81019080805190602001909291905050508160018151811061264857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561274657808201518184015260208101905061272b565b505050509050019650505050505050600060405180830381600087803b15801561276f57600080fd5b505af1158015612783573d6000803e3d6000fd5b50505050600047905060006127b86127a760026010546131cd90919063ffffffff16565b60135461223190919063ffffffff16565b905060006127e3826127d56011548661314790919063ffffffff16565b6131cd90919063ffffffff16565b9050600061280e836128006012548761314790919063ffffffff16565b6131cd90919063ffffffff16565b9050600061284c600261283e866128306010548a61314790919063ffffffff16565b6131cd90919063ffffffff16565b6131cd90919063ffffffff16565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d80600081146128d5576040519150601f19603f3d011682016040523d82523d6000602084013e6128da565b606091505b505090506000905060003073ffffffffffffffffffffffffffffffffffffffff168461753090604051806000019050600060405180830381858888f193505050503d8060008114612947576040519150601f19603f3d011682016040523d82523d6000602084013e61294c565b606091505b505090506000905060008a1115612adc57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308d600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612a4957600080fd5b505af1158015612a5d573d6000803e3d6000fd5b50505050506040513d6060811015612a7457600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601960146101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612bac575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612c025750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c5c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612cb65750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d105750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d4857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612dce57600b60009054906101000a900460ff1615612d8657600081612d6e84611597565b01905060009050600754811115612d8457600080fd5b505b6001600a5401600a819055506008546007541015612db757600954600a546006540281612daf57fe5b046007819055505b6008546007541115612dcd576008546007819055505b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e76575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ecc5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f265750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612f5e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f9a576017544710612f9957612f9847600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613217565b5b5b505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fff57601354613003565b6014545b9050600061302d606461301f848761314790919063ffffffff16565b6131cd90919063ffffffff16565b905061308181600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4690919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361313c818561223190919063ffffffff16565b925050509392505050565b60008083141561315a57600090506131c7565b600082840290508284828161316b57fe5b04146131c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134df6021913960400191505060405180910390fd5b809150505b92915050565b600061320f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613418565b905092915050565b6000600267ffffffffffffffff8111801561323157600080fd5b506040519080825280602002602001820160405280156132605781602001602082028036833780820191505090505b509050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061329357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106132db57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156133d35780820151818401526020810190506133b8565b50505050905001955050505050506000604051808303818588803b1580156133fa57600080fd5b505af115801561340e573d6000803e3d6000fd5b5050505050505050565b600080831182906134c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561348957808201518184015260208101905061346e565b50505050905090810190601f1680156134b65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134d057fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122016e45526796797fd1370772fa6f07f94730a5cc4989fd4201d2bea3040d98a9064736f6c63430007060033