60806040526040518060400160405280601281526020017f5375706572204d656d65204669676874657200000000000000000000000000008152506040518060400160405280600381526020017f534d460000000000000000000000000000000000000000000000000000000000815250816003908161007f919061058b565b50806004908161008f919061058b565b5050506100ae336b033b2e3c9fd0803ce80000006100b360201b60201c565b61076f565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610123575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161011a9190610699565b60405180910390fd5b6101345f838361013860201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610188578060025f82825461017c91906106df565b92505081905550610256565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610211578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161020893929190610721565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361029d578060025f82825403925050819055506102e7565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103449190610756565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103cc57607f821691505b6020821081036103df576103de610388565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610406565b61044b8683610406565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61048f61048a61048584610463565b61046c565b610463565b9050919050565b5f819050919050565b6104a883610475565b6104bc6104b482610496565b848454610412565b825550505050565b5f90565b6104d06104c4565b6104db81848461049f565b505050565b5b818110156104fe576104f35f826104c8565b6001810190506104e1565b5050565b601f82111561054357610514816103e5565b61051d846103f7565b8101602085101561052c578190505b610540610538856103f7565b8301826104e0565b50505b505050565b5f82821c905092915050565b5f6105635f1984600802610548565b1980831691505092915050565b5f61057b8383610554565b9150826002028217905092915050565b61059482610351565b67ffffffffffffffff8111156105ad576105ac61035b565b5b6105b782546103b5565b6105c2828285610502565b5f60209050601f8311600181146105f3575f84156105e1578287015190505b6105eb8582610570565b865550610652565b601f198416610601866103e5565b5f5b8281101561062857848901518255600182019150602085019450602081019050610603565b868310156106455784890151610641601f891682610554565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106838261065a565b9050919050565b61069381610679565b82525050565b5f6020820190506106ac5f83018461068a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106e982610463565b91506106f483610463565b925082820190508082111561070c5761070b6106b2565b5b92915050565b61071b81610463565b82525050565b5f6060820190506107345f83018661068a565b6107416020830185610712565b61074e6040830184610712565b949350505050565b5f6020820190506107695f830184610712565b92915050565b610ee48061077c5f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c806370a082311161006f57806370a082311461016557806395d89b4114610195578063a9059cbb146101b3578063beb0a416146101e3578063dd62ed3e14610201578063fb7f21eb14610231576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b361024f565b6040516100c09190610b09565b60405180910390f35b6100e360048036038101906100de9190610bba565b6102df565b6040516100f09190610c12565b60405180910390f35b610101610301565b60405161010e9190610c3a565b60405180910390f35b610131600480360381019061012c9190610c53565b61030a565b60405161013e9190610c12565b60405180910390f35b61014f610338565b60405161015c9190610cbe565b60405180910390f35b61017f600480360381019061017a9190610cd7565b610340565b60405161018c9190610c3a565b60405180910390f35b61019d610385565b6040516101aa9190610b09565b60405180910390f35b6101cd60048036038101906101c89190610bba565b610415565b6040516101da9190610c12565b60405180910390f35b6101eb610437565b6040516101f89190610b09565b60405180910390f35b61021b60048036038101906102169190610d02565b610474565b6040516102289190610c3a565b60405180910390f35b6102396104f6565b6040516102469190610b09565b60405180910390f35b60606003805461025e90610d6d565b80601f016020809104026020016040519081016040528092919081815260200182805461028a90610d6d565b80156102d55780601f106102ac576101008083540402835291602001916102d5565b820191905f5260205f20905b8154815290600101906020018083116102b857829003601f168201915b5050505050905090565b5f806102e9610516565b90506102f681858561051d565b600191505092915050565b5f600254905090565b5f80610314610516565b905061032185828561052f565b61032c8585856105c1565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461039490610d6d565b80601f01602080910402602001604051908101604052809291908181526020018280546103c090610d6d565b801561040b5780601f106103e25761010080835404028352916020019161040b565b820191905f5260205f20905b8154815290600101906020018083116103ee57829003601f168201915b5050505050905090565b5f8061041f610516565b905061042c8185856105c1565b600191505092915050565b60606040518060400160405280601c81526020017f68747470733a2f2f73757065726d656d65666967687465722e78797a00000000815250905090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6060604051806080016040528060548152602001610e5b60549139905090565b5f33905090565b61052a83838360016106b1565b505050565b5f61053a8484610474565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bb57818110156105ac578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a393929190610dac565b60405180910390fd5b6105ba84848484035f6106b1565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610631575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106289190610de1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a1575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106989190610de1565b60405180910390fd5b6106ac838383610880565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610721575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107189190610de1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610791575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107889190610de1565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561087a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108719190610c3a565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d0578060025f8282546108c49190610e27565b9250508190555061099e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610959578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161095093929190610dac565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e5578060025f8282540392505081905550610a2f565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a8c9190610c3a565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610adb82610a99565b610ae58185610aa3565b9350610af5818560208601610ab3565b610afe81610ac1565b840191505092915050565b5f6020820190508181035f830152610b218184610ad1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b5682610b2d565b9050919050565b610b6681610b4c565b8114610b70575f80fd5b50565b5f81359050610b8181610b5d565b92915050565b5f819050919050565b610b9981610b87565b8114610ba3575f80fd5b50565b5f81359050610bb481610b90565b92915050565b5f8060408385031215610bd057610bcf610b29565b5b5f610bdd85828601610b73565b9250506020610bee85828601610ba6565b9150509250929050565b5f8115159050919050565b610c0c81610bf8565b82525050565b5f602082019050610c255f830184610c03565b92915050565b610c3481610b87565b82525050565b5f602082019050610c4d5f830184610c2b565b92915050565b5f805f60608486031215610c6a57610c69610b29565b5b5f610c7786828701610b73565b9350506020610c8886828701610b73565b9250506040610c9986828701610ba6565b9150509250925092565b5f60ff82169050919050565b610cb881610ca3565b82525050565b5f602082019050610cd15f830184610caf565b92915050565b5f60208284031215610cec57610ceb610b29565b5b5f610cf984828501610b73565b91505092915050565b5f8060408385031215610d1857610d17610b29565b5b5f610d2585828601610b73565b9250506020610d3685828601610b73565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d8457607f821691505b602082108103610d9757610d96610d40565b5b50919050565b610da681610b4c565b82525050565b5f606082019050610dbf5f830186610d9d565b610dcc6020830185610c2b565b610dd96040830184610c2b565b949350505050565b5f602082019050610df45f830184610d9d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e3182610b87565b9150610e3c83610b87565b9250828201905080821115610e5457610e53610dfa565b5b9291505056fe68747470733a2f2f697066732e696f2f697066732f516d54756d746531554d704e63734362527178467077735a457a744a4d6d654e67796b5975784d596e68586b4a613f66696c656e616d653d736d662e706e67a2646970667358221220fa51519b4402f09494acefce5a526ef9a9a23c35578f91db19f597f773028e5264736f6c634300081a0033