60606040526000600460006101000a81548160ff0219169083151502179055506359b480806005556000600655600a600d55600a600e55341561004157600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737eaa96c5c37ba4faebd5080a516ee7d3dbe89bcb600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cd7dec8e3dfedbba4888bb9ee74ae1a3fd4d8710600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600863ffffffff16600d540a600d819055506010600e540a600e8190555061018e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54612710026101cb64010000000002611a22176401000000009004565b5062278d0060055401600b819055506b014adf4b7320334b90000000600f8190555066025e6bb6509010600781905550600060088190555061029e565b6000600460009054906101000a900460ff161515156101e957600080fd5b8160036000828254019250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a26001905092915050565b611c31806102ad6000396000f3006060604052361561015d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146102ef57806306fdde031461031c578063095ea7b3146103aa57806318160ddd1461040457806323b872dd1461042d57806327e235e3146104a657806329dcb0cf146104f35780632beaead01461051c5780632ddbd13a14610545578063313ce5671461056e57806344cb9d03146105a35780634783c35b146105cc5780635bf5d54c1461062157806370a082311461064a5780637d64bcb4146106975780637e88f603146106c457806385956649146106d95780638da5cb5b1461071b57806395d89b4114610770578063a035b1fe146107fe578063a9059cbb14610827578063be9a655514610869578063c885bc5814610892578063dd62ed3e146108bb578063e1be746714610927578063f2fde38b1461097c578063fd6b7ef8146109b5575b600080600b544210151561017057600080fd5b600f54600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163111156101b857600080fd5b600754348115156101c557fe5b049150600d548202905080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555034601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508060086000828254019250508190555061028981336109ca565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156102eb57600080fd5b5050005b34156102fa57600080fd5b610302610a90565b604051808215151515815260200191505060405180910390f35b341561032757600080fd5b61032f610aa3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036f578082015181840152602081019050610354565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103b557600080fd5b6103ea600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610adc565b604051808215151515815260200191505060405180910390f35b341561040f57600080fd5b610417610c63565b6040518082815260200191505060405180910390f35b341561043857600080fd5b61048c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c69565b604051808215151515815260200191505060405180910390f35b34156104b157600080fd5b6104dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f61565b6040518082815260200191505060405180910390f35b34156104fe57600080fd5b610506610f79565b6040518082815260200191505060405180910390f35b341561052757600080fd5b61052f610f7f565b6040518082815260200191505060405180910390f35b341561055057600080fd5b610558610f85565b6040518082815260200191505060405180910390f35b341561057957600080fd5b610581610f8f565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34156105ae57600080fd5b6105b6610f94565b6040518082815260200191505060405180910390f35b34156105d757600080fd5b6105df610f9a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062c57600080fd5b610634610fc0565b6040518082815260200191505060405180910390f35b341561065557600080fd5b610681600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610fc6565b6040518082815260200191505060405180910390f35b34156106a257600080fd5b6106aa61100f565b604051808215151515815260200191505060405180910390f35b34156106cf57600080fd5b6106d76110ba565b005b34156106e457600080fd5b610719600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111b5565b005b341561072657600080fd5b61072e61132e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561077b57600080fd5b610783611353565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107c35780820151818401526020810190506107a8565b50505050905090810190601f1680156107f05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561080957600080fd5b61081161138c565b6040518082815260200191505060405180910390f35b341561083257600080fd5b610867600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611392565b005b341561087457600080fd5b61087c61156e565b6040518082815260200191505060405180910390f35b341561089d57600080fd5b6108a5611574565b6040518082815260200191505060405180910390f35b34156108c657600080fd5b610911600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116e2565b6040518082815260200191505060405180910390f35b341561093257600080fd5b61093a611769565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561098757600080fd5b6109b3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061178f565b005b34156109c057600080fd5b6109c8611869565b005b6109d38161193b565b6109dd8183611a22565b50610a086000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193b565b610a336000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a22565b50610a5f600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193b565b610a8b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a22565b505050565b600460009054906101000a900460ff1681565b6040805190810160405280600981526020017f546f6b656e73616c65000000000000000000000000000000000000000000000081525081565b600080821480610b6857506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610b7357600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60035481565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cb757600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015610d4457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610dcd57600080fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60016020528060005260406000206000915090505481565b600b5481565b600c5481565b6000600354905090565b600881565b60085481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561106c57600080fd5b6001600460006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600b54421080156110cd57506002600654105b156110d757600080fd5b60006110e233610fc6565b14156110ed57600080fd5b600f54600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163110156111b3573373ffffffffffffffffffffffffffffffffffffffff166108fc601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549081150290604051600060405180830381858888f1935050505015156111b257600080fd5b5b565b600b54421015156111c557600080fd5b600f54600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631111561120d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126857600080fd5b6112718161193b565b61127b8183611a22565b506112a66000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193b565b6112d16000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a22565b506112fd600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661193b565b611329600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a22565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f44434c000000000000000000000000000000000000000000000000000000000081525081565b60075481565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156113de57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561146b57600080fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60055481565b60008062278d00600b540142101561158b57600080fd5b600b544210801561159e57506002600654105b156115a857600080fd5b60006115b333610fc6565b14156115be57600080fd5b6115c6611af5565b905060008114156115da57600091506116de565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561161a57600080fd5b600061162533610fc6565b141561169257601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160009055600382016000905550506116da565b42601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b8091505b5090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ea57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561182657600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561193957600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561193857600080fd5b5b565b600c54601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154111515611a1f5742601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506119d881610fc6565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b50565b6000600460009054906101000a900460ff16151515611a4057600080fd5b8160036000828254019250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a26001905092915050565b600080600c54601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154101515611b4e5760009150611c01565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050600c54601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154111515611bec57611be933610fc6565b90505b6008548160105402811515611bfd57fe5b0491505b50905600a165627a7a72305820557dabfe9f09f9c668fb1525016907879d4c05200989c4b65ae1a49d9410bcb70029