60806040526040518060600160405280602281526020016133c0602291396003908161002b9190610bf8565b506040518060400160405280600b81526020017f707566666574682e636f6d000000000000000000000000000000000000000000815250600490816100709190610bf8565b50612710600555348015610082575f80fd5b5060405180606001604052806035815260200161338b603591396100ab8161010860201b60201c565b505f600190505b60058111610102576100ef7345300136662dd4e58fc0df61e6290dffd992b78582600160405180602001604052805f81525061011b60201b60201c565b80806100fa90610cf4565b9150506100b2565b506110dd565b80600290816101179190610bf8565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361018b575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016101829190610d7a565b60405180910390fd5b5f8061019d85856101bc60201b60201c565b915091506101b45f878484876101ec60201b60201c565b505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6101fe858585856102b060201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146102a9575f61024061064660201b60201c565b90506001845103610292575f61025f5f8661064d60201b90919060201c565b90505f6102755f8661064d60201b90919060201c565b905061028b83898985858961066060201b60201c565b50506102a7565b6102a681878787878761080f60201b60201c565b5b505b5050505050565b80518251146102fa57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016102f1929190610da2565b60405180910390fd5b5f61030961064660201b60201c565b90505f5b8351811015610505575f61032a828661064d60201b90919060201c565b90505f610340838661064d60201b90919060201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610463575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561040f57888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016104069493929190610dc9565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146104f857805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f09190610e0c565b925050819055505b505080600101905061030d565b5060018351036105c0575f6105235f8561064d60201b90919060201c565b90505f6105395f8561064d60201b90919060201c565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516105b1929190610da2565b60405180910390a4505061063f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610636929190610ef6565b60405180910390a45b5050505050565b5f33905090565b5f60208202602084010151905092915050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115610807578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016106c0959493929190610f9b565b6020604051808303815f875af19250505080156106fb57506040513d601f19601f820116820180604052508101906106f8919061104c565b60015b61077c573d805f8114610729576040519150601f19603f3d011682016040523d82523d5f602084013e61072e565b606091505b505f81510361077457846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161076b9190610d7a565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461080557846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107fc9190610d7a565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156109b6578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161086f959493929190611077565b6020604051808303815f875af19250505080156108aa57506040513d601f19601f820116820180604052508101906108a7919061104c565b60015b61092b573d805f81146108d8576040519150601f19603f3d011682016040523d82523d5f602084013e6108dd565b606091505b505f81510361092357846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161091a9190610d7a565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146109b457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016109ab9190610d7a565b60405180910390fd5b505b505050505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a3957607f821691505b602082108103610a4c57610a4b6109f5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610aae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a73565b610ab88683610a73565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610afc610af7610af284610ad0565b610ad9565b610ad0565b9050919050565b5f819050919050565b610b1583610ae2565b610b29610b2182610b03565b848454610a7f565b825550505050565b5f90565b610b3d610b31565b610b48818484610b0c565b505050565b5b81811015610b6b57610b605f82610b35565b600181019050610b4e565b5050565b601f821115610bb057610b8181610a52565b610b8a84610a64565b81016020851015610b99578190505b610bad610ba585610a64565b830182610b4d565b50505b505050565b5f82821c905092915050565b5f610bd05f1984600802610bb5565b1980831691505092915050565b5f610be88383610bc1565b9150826002028217905092915050565b610c01826109be565b67ffffffffffffffff811115610c1a57610c196109c8565b5b610c248254610a22565b610c2f828285610b6f565b5f60209050601f831160018114610c60575f8415610c4e578287015190505b610c588582610bdd565b865550610cbf565b601f198416610c6e86610a52565b5f5b82811015610c9557848901518255600182019150602085019450602081019050610c70565b86831015610cb25784890151610cae601f891682610bc1565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610cfe82610ad0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d3057610d2f610cc7565b5b600182019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d6482610d3b565b9050919050565b610d7481610d5a565b82525050565b5f602082019050610d8d5f830184610d6b565b92915050565b610d9c81610ad0565b82525050565b5f604082019050610db55f830185610d93565b610dc26020830184610d93565b9392505050565b5f608082019050610ddc5f830187610d6b565b610de96020830186610d93565b610df66040830185610d93565b610e036060830184610d93565b95945050505050565b5f610e1682610ad0565b9150610e2183610ad0565b9250828201905080821115610e3957610e38610cc7565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610e7181610ad0565b82525050565b5f610e828383610e68565b60208301905092915050565b5f602082019050919050565b5f610ea482610e3f565b610eae8185610e49565b9350610eb983610e59565b805f5b83811015610ee9578151610ed08882610e77565b9750610edb83610e8e565b925050600181019050610ebc565b5085935050505092915050565b5f6040820190508181035f830152610f0e8185610e9a565b90508181036020830152610f228184610e9a565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f6d82610f2b565b610f778185610f35565b9350610f87818560208601610f45565b610f9081610f53565b840191505092915050565b5f60a082019050610fae5f830188610d6b565b610fbb6020830187610d6b565b610fc86040830186610d93565b610fd56060830185610d93565b8181036080830152610fe78184610f63565b90509695505050505050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61102b81610ff7565b8114611035575f80fd5b50565b5f8151905061104681611022565b92915050565b5f6020828403121561106157611060610ff3565b5b5f61106e84828501611038565b91505092915050565b5f60a08201905061108a5f830188610d6b565b6110976020830187610d6b565b81810360408301526110a98186610e9a565b905081810360608301526110bd8185610e9a565b905081810360808301526110d18184610f63565b90509695505050505050565b6122a1806110ea5f395ff3fe6080604052600436106100a5575f3560e01c80634e1273f4116100635780634e1273f4146101d9578063729ad39e1461021557806395d89b4114610231578063a22cb4651461025b578063e985e9c514610283578063f242432a146102bf576100a5565b8062fdd58e146100a957806301ffc9a7146100e557806306fdde03146101215780630e89341c1461014b57806318160ddd146101875780632eb2c2d6146101b1575b5f80fd5b3480156100b4575f80fd5b506100cf60048036038101906100ca91906115fe565b6102e7565b6040516100dc919061164b565b60405180910390f35b3480156100f0575f80fd5b5061010b600480360381019061010691906116b9565b61033c565b60405161011891906116fe565b60405180910390f35b34801561012c575f80fd5b5061013561041d565b6040516101429190611787565b60405180910390f35b348015610156575f80fd5b50610171600480360381019061016c91906117a7565b6104a9565b60405161017e9190611787565b60405180910390f35b348015610192575f80fd5b5061019b61053b565b6040516101a8919061164b565b60405180910390f35b3480156101bc575f80fd5b506101d760048036038101906101d291906119c2565b610541565b005b3480156101e4575f80fd5b506101ff60048036038101906101fa9190611b4d565b6105e8565b60405161020c9190611c7a565b60405180910390f35b61022f600480360381019061022a9190611cf3565b6106ef565b005b34801561023c575f80fd5b506102456107c6565b6040516102529190611787565b60405180910390f35b348015610266575f80fd5b50610281600480360381019061027c9190611d68565b610852565b005b34801561028e575f80fd5b506102a960048036038101906102a49190611da6565b610868565b6040516102b691906116fe565b60405180910390f35b3480156102ca575f80fd5b506102e560048036038101906102e09190611de4565b6108f6565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040657507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041657506104158261099d565b5b9050919050565b6003805461042a90611ea4565b80601f016020809104026020016040519081016040528092919081815260200182805461045690611ea4565b80156104a15780601f10610478576101008083540402835291602001916104a1565b820191905f5260205f20905b81548152906001019060200180831161048457829003601f168201915b505050505081565b6060600280546104b890611ea4565b80601f01602080910402602001604051908101604052809291908181526020018280546104e490611ea4565b801561052f5780601f106105065761010080835404028352916020019161052f565b820191905f5260205f20905b81548152906001019060200180831161051257829003601f168201915b50505050509050919050565b60055481565b5f61054a610a06565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610868565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190611ee3565b60405180910390fd5b6105e08686868686610a0d565b505050505050565b6060815183511461063457815183516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161062b929190611f0a565b60405180910390fd5b5f835167ffffffffffffffff8111156106505761064f6117d6565b5b60405190808252806020026020018201604052801561067e5781602001602082028036833780820191505090505b5090505f5b84518110156106e4576106ba6106a28287610b0190919063ffffffff16565b6106b58387610b1490919063ffffffff16565b6102e7565b8282815181106106cd576106cc611f31565b5b602002602001018181525050806001019050610683565b508091505092915050565b5f5b828290508110156107c15782828281811061070f5761070e611f31565b5b90506020020160208101906107249190611f5e565b73ffffffffffffffffffffffffffffffffffffffff167345300136662dd4e58fc0df61e6290dffd992b78573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f625f60016040516107ae929190612004565b60405180910390a48060010190506106f1565b505050565b600480546107d390611ea4565b80601f01602080910402602001604051908101604052809291908181526020018280546107ff90611ea4565b801561084a5780601f106108215761010080835404028352916020019161084a565b820191905f5260205f20905b81548152906001019060200180831161082d57829003601f168201915b505050505081565b61086461085d610a06565b8383610b27565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6108ff610a06565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561094457506109428682610868565b155b156109885780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161097f929190611ee3565b60405180910390fd5b6109958686868686610c90565b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a7d575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610a74919061202b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610aed575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610ae4919061202b565b60405180910390fd5b610afa8585858585610d96565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b97575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610b8e919061202b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c8391906116fe565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d00575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610cf7919061202b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d70575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610d67919061202b565b60405180910390fd5b5f80610d7c8585610e42565b91509150610d8d8787848487610d96565b50505050505050565b610da285858585610e72565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610e3b575f610dde610a06565b90506001845103610e2a575f610dfd5f86610b1490919063ffffffff16565b90505f610e135f86610b1490919063ffffffff16565b9050610e23838989858589611202565b5050610e39565b610e388187878787876113b1565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b8051825114610ebc57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610eb3929190611f0a565b60405180910390fd5b5f610ec5610a06565b90505f5b83518110156110c1575f610ee68286610b1490919063ffffffff16565b90505f610efc8386610b1490919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461101f575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610fcb57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610fc29493929190612044565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146110b457805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110ac91906120b4565b925050819055505b5050806001019050610ec9565b50600183510361117c575f6110df5f85610b1490919063ffffffff16565b90505f6110f55f85610b1490919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161116d929190611f0a565b60405180910390a450506111fb565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516111f29291906120e7565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156113a9578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161126295949392919061216e565b6020604051808303815f875af192505050801561129d57506040513d601f19601f8201168201806040525081019061129a91906121da565b60015b61131e573d805f81146112cb576040519150601f19603f3d011682016040523d82523d5f602084013e6112d0565b606091505b505f81510361131657846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161130d919061202b565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113a757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161139e919061202b565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611558578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611411959493929190612205565b6020604051808303815f875af192505050801561144c57506040513d601f19601f8201168201806040525081019061144991906121da565b60015b6114cd573d805f811461147a576040519150601f19603f3d011682016040523d82523d5f602084013e61147f565b606091505b505f8151036114c557846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114bc919061202b565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461155657846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161154d919061202b565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61159a82611571565b9050919050565b6115aa81611590565b81146115b4575f80fd5b50565b5f813590506115c5816115a1565b92915050565b5f819050919050565b6115dd816115cb565b81146115e7575f80fd5b50565b5f813590506115f8816115d4565b92915050565b5f806040838503121561161457611613611569565b5b5f611621858286016115b7565b9250506020611632858286016115ea565b9150509250929050565b611645816115cb565b82525050565b5f60208201905061165e5f83018461163c565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61169881611664565b81146116a2575f80fd5b50565b5f813590506116b38161168f565b92915050565b5f602082840312156116ce576116cd611569565b5b5f6116db848285016116a5565b91505092915050565b5f8115159050919050565b6116f8816116e4565b82525050565b5f6020820190506117115f8301846116ef565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61175982611717565b6117638185611721565b9350611773818560208601611731565b61177c8161173f565b840191505092915050565b5f6020820190508181035f83015261179f818461174f565b905092915050565b5f602082840312156117bc576117bb611569565b5b5f6117c9848285016115ea565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61180c8261173f565b810181811067ffffffffffffffff8211171561182b5761182a6117d6565b5b80604052505050565b5f61183d611560565b90506118498282611803565b919050565b5f67ffffffffffffffff821115611868576118676117d6565b5b602082029050602081019050919050565b5f80fd5b5f61188f61188a8461184e565b611834565b905080838252602082019050602084028301858111156118b2576118b1611879565b5b835b818110156118db57806118c788826115ea565b8452602084019350506020810190506118b4565b5050509392505050565b5f82601f8301126118f9576118f86117d2565b5b813561190984826020860161187d565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156119305761192f6117d6565b5b6119398261173f565b9050602081019050919050565b828183375f83830152505050565b5f61196661196184611916565b611834565b90508281526020810184848401111561198257611981611912565b5b61198d848285611946565b509392505050565b5f82601f8301126119a9576119a86117d2565b5b81356119b9848260208601611954565b91505092915050565b5f805f805f60a086880312156119db576119da611569565b5b5f6119e8888289016115b7565b95505060206119f9888289016115b7565b945050604086013567ffffffffffffffff811115611a1a57611a1961156d565b5b611a26888289016118e5565b935050606086013567ffffffffffffffff811115611a4757611a4661156d565b5b611a53888289016118e5565b925050608086013567ffffffffffffffff811115611a7457611a7361156d565b5b611a8088828901611995565b9150509295509295909350565b5f67ffffffffffffffff821115611aa757611aa66117d6565b5b602082029050602081019050919050565b5f611aca611ac584611a8d565b611834565b90508083825260208201905060208402830185811115611aed57611aec611879565b5b835b81811015611b165780611b0288826115b7565b845260208401935050602081019050611aef565b5050509392505050565b5f82601f830112611b3457611b336117d2565b5b8135611b44848260208601611ab8565b91505092915050565b5f8060408385031215611b6357611b62611569565b5b5f83013567ffffffffffffffff811115611b8057611b7f61156d565b5b611b8c85828601611b20565b925050602083013567ffffffffffffffff811115611bad57611bac61156d565b5b611bb9858286016118e5565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611bf5816115cb565b82525050565b5f611c068383611bec565b60208301905092915050565b5f602082019050919050565b5f611c2882611bc3565b611c328185611bcd565b9350611c3d83611bdd565b805f5b83811015611c6d578151611c548882611bfb565b9750611c5f83611c12565b925050600181019050611c40565b5085935050505092915050565b5f6020820190508181035f830152611c928184611c1e565b905092915050565b5f80fd5b5f8083601f840112611cb357611cb26117d2565b5b8235905067ffffffffffffffff811115611cd057611ccf611c9a565b5b602083019150836020820283011115611cec57611ceb611879565b5b9250929050565b5f8060208385031215611d0957611d08611569565b5b5f83013567ffffffffffffffff811115611d2657611d2561156d565b5b611d3285828601611c9e565b92509250509250929050565b611d47816116e4565b8114611d51575f80fd5b50565b5f81359050611d6281611d3e565b92915050565b5f8060408385031215611d7e57611d7d611569565b5b5f611d8b858286016115b7565b9250506020611d9c85828601611d54565b9150509250929050565b5f8060408385031215611dbc57611dbb611569565b5b5f611dc9858286016115b7565b9250506020611dda858286016115b7565b9150509250929050565b5f805f805f60a08688031215611dfd57611dfc611569565b5b5f611e0a888289016115b7565b9550506020611e1b888289016115b7565b9450506040611e2c888289016115ea565b9350506060611e3d888289016115ea565b925050608086013567ffffffffffffffff811115611e5e57611e5d61156d565b5b611e6a88828901611995565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ebb57607f821691505b602082108103611ece57611ecd611e77565b5b50919050565b611edd81611590565b82525050565b5f604082019050611ef65f830185611ed4565b611f036020830184611ed4565b9392505050565b5f604082019050611f1d5f83018561163c565b611f2a602083018461163c565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611f7357611f72611569565b5b5f611f80848285016115b7565b91505092915050565b5f819050919050565b5f819050919050565b5f611fb5611fb0611fab84611f89565b611f92565b6115cb565b9050919050565b611fc581611f9b565b82525050565b5f819050919050565b5f611fee611fe9611fe484611fcb565b611f92565b6115cb565b9050919050565b611ffe81611fd4565b82525050565b5f6040820190506120175f830185611fbc565b6120246020830184611ff5565b9392505050565b5f60208201905061203e5f830184611ed4565b92915050565b5f6080820190506120575f830187611ed4565b612064602083018661163c565b612071604083018561163c565b61207e606083018461163c565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6120be826115cb565b91506120c9836115cb565b92508282019050808211156120e1576120e0612087565b5b92915050565b5f6040820190508181035f8301526120ff8185611c1e565b905081810360208301526121138184611c1e565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6121408261211c565b61214a8185612126565b935061215a818560208601611731565b6121638161173f565b840191505092915050565b5f60a0820190506121815f830188611ed4565b61218e6020830187611ed4565b61219b604083018661163c565b6121a8606083018561163c565b81810360808301526121ba8184612136565b90509695505050505050565b5f815190506121d48161168f565b92915050565b5f602082840312156121ef576121ee611569565b5b5f6121fc848285016121c6565b91505092915050565b5f60a0820190506122185f830188611ed4565b6122256020830187611ed4565b81810360408301526122378186611c1e565b9050818103606083015261224b8185611c1e565b9050818103608083015261225f8184612136565b9050969550505050505056fea26469706673582212200d1ec7fd209145abf14f71601ef5462e57fefaa5f484c1d4eeab8a8e3287a99464736f6c634300081a0033697066733a2f2f516d52514a33694b7856476f56384d526f426e664652456a766561477548486972674e595079344a533252573441566973697420707566666574682e636f6d20746f20636c61696d2072657761726473