608060405261270f600b5566071afd498d0000600c556032600d556002600e556103e8600f5560006010553480156200003757600080fd5b5060405162003dd438038062003dd483398181016040528101906200005d9190620005ba565b733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280601781526020017f426f726564204b656e6e656c20446567656e20436c75620000000000000000008152506040518060400160405280600481526020017f424b4443000000000000000000000000000000000000000000000000000000008152508160029081620000f1919062000856565b50806003908162000103919062000856565b50620001146200035460201b60201c565b600081905550505060006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b111562000311578015620001d7576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200019d92919062000982565b600060405180830381600087803b158015620001b857600080fd5b505af1158015620001cd573d6000803e3d6000fd5b5050505062000310565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000291576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b81526004016200025792919062000982565b600060405180830381600087803b1580156200027257600080fd5b505af115801562000287573d6000803e3d6000fd5b505050506200030f565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b8152600401620002da9190620009af565b600060405180830381600087803b158015620002f557600080fd5b505af11580156200030a573d6000803e3d6000fd5b505050505b5b5b505062000333620003276200035960201b60201c565b6200036160201b60201c565b600160098190555080601190816200034c919062000856565b5050620009cc565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004908262000445565b810181811067ffffffffffffffff82111715620004b257620004b162000456565b5b80604052505050565b6000620004c762000427565b9050620004d5828262000485565b919050565b600067ffffffffffffffff821115620004f857620004f762000456565b5b620005038262000445565b9050602081019050919050565b60005b838110156200053057808201518184015260208101905062000513565b60008484015250505050565b6000620005536200054d84620004da565b620004bb565b90508281526020810184848401111562000572576200057162000440565b5b6200057f84828562000510565b509392505050565b600082601f8301126200059f576200059e6200043b565b5b8151620005b18482602086016200053c565b91505092915050565b600060208284031215620005d357620005d262000431565b5b600082015167ffffffffffffffff811115620005f457620005f362000436565b5b620006028482850162000587565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200065e57607f821691505b60208210810362000674576200067362000616565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200069f565b620006ea86836200069f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000737620007316200072b8462000702565b6200070c565b62000702565b9050919050565b6000819050919050565b620007538362000716565b6200076b62000762826200073e565b848454620006ac565b825550505050565b600090565b6200078262000773565b6200078f81848462000748565b505050565b5b81811015620007b757620007ab60008262000778565b60018101905062000795565b5050565b601f8211156200080657620007d0816200067a565b620007db846200068f565b81016020851015620007eb578190505b62000803620007fa856200068f565b83018262000794565b50505b505050565b600082821c905092915050565b60006200082b600019846008026200080b565b1980831691505092915050565b600062000846838362000818565b9150826002028217905092915050565b62000861826200060b565b67ffffffffffffffff8111156200087d576200087c62000456565b5b62000889825462000645565b62000896828285620007bb565b600060209050601f831160018114620008ce5760008415620008b9578287015190505b620008c5858262000838565b86555062000935565b601f198416620008de866200067a565b60005b828110156200090857848901518255600182019150602085019450602081019050620008e1565b8683101562000928578489015162000924601f89168262000818565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200096a826200093d565b9050919050565b6200097c816200095d565b82525050565b600060408201905062000999600083018562000971565b620009a8602083018462000971565b9392505050565b6000602082019050620009c6600083018462000971565b92915050565b6133f880620009dc6000396000f3fe6080604052600436106101e35760003560e01c80636c0360eb116101025780639cb57d2011610095578063c87b56dd11610064578063c87b56dd14610648578063de314a5914610685578063e985e9c5146106b0578063f2fde38b146106ed576101e3565b80639cb57d20146105bc578063a0712d68146105e7578063a22cb46514610603578063b88d4fde1461062c576101e3565b80638da5cb5b116100d15780638da5cb5b1461051457806391b7f5ed1461053f57806392910eec1461056857806395d89b4114610591576101e3565b80636c0360eb1461047e57806370a08231146104a9578063715018a6146104e65780637c69e207146104fd576101e3565b806323b872dd1161017a57806342842e0e1161014957806342842e0e146103d157806355f804b3146103ed5780635e1c4b60146104165780636352211e14610441576101e3565b806323b872dd146103555780633ccfd60b1461037157806341c66d0a1461037b57806341f43434146103a6576101e3565b8063095ea7b3116101b6578063095ea7b3146102b85780630afb04db146102d457806318160ddd146102ff57806322f4596f1461032a576101e3565b806301ffc9a7146101e85780630387da421461022557806306fdde0314610250578063081812fc1461027b575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a91906122ef565b610716565b60405161021c9190612337565b60405180910390f35b34801561023157600080fd5b5061023a6107a8565b604051610247919061236b565b60405180910390f35b34801561025c57600080fd5b506102656107ae565b6040516102729190612416565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190612464565b610840565b6040516102af91906124d2565b60405180910390f35b6102d260048036038101906102cd9190612519565b6108bf565b005b3480156102e057600080fd5b506102e96108d8565b6040516102f6919061236b565b60405180910390f35b34801561030b57600080fd5b506103146108de565b604051610321919061236b565b60405180910390f35b34801561033657600080fd5b5061033f6108f5565b60405161034c919061236b565b60405180910390f35b61036f600480360381019061036a9190612559565b6108fb565b005b61037961094a565b005b34801561038757600080fd5b506103906109db565b60405161039d919061236b565b60405180910390f35b3480156103b257600080fd5b506103bb6109e1565b6040516103c8919061260b565b60405180910390f35b6103eb60048036038101906103e69190612559565b6109f3565b005b3480156103f957600080fd5b50610414600480360381019061040f919061275b565b610a42565b005b34801561042257600080fd5b5061042b610a5d565b604051610438919061236b565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190612464565b610a63565b60405161047591906124d2565b60405180910390f35b34801561048a57600080fd5b50610493610a75565b6040516104a09190612416565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb91906127a4565b610b03565b6040516104dd919061236b565b60405180910390f35b3480156104f257600080fd5b506104fb610bbb565b005b34801561050957600080fd5b50610512610bcf565b005b34801561052057600080fd5b50610529610c46565b60405161053691906124d2565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190612464565b610c70565b005b34801561057457600080fd5b5061058f600480360381019061058a9190612464565b610c82565b005b34801561059d57600080fd5b506105a6610c94565b6040516105b39190612416565b60405180910390f35b3480156105c857600080fd5b506105d1610d26565b6040516105de919061236b565b60405180910390f35b61060160048036038101906105fc9190612464565b610d2c565b005b34801561060f57600080fd5b5061062a600480360381019061062591906127fd565b610f73565b005b610646600480360381019061064191906128de565b610f8c565b005b34801561065457600080fd5b5061066f600480360381019061066a9190612464565b610fdd565b60405161067c9190612416565b60405180910390f35b34801561069157600080fd5b5061069a611059565b6040516106a7919061236b565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190612961565b61105f565b6040516106e49190612337565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f91906127a4565b6110c4565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077157506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107a15750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600c5481565b6060600280546107bd906129d0565b80601f01602080910402602001604051908101604052809291908181526020018280546107e9906129d0565b80156108365780601f1061080b57610100808354040283529160200191610836565b820191906000526020600020905b81548152906001019060200180831161081957829003601f168201915b5050505050905090565b600061084b82611147565b610881576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b816108c9816111a6565b6108d383836112a3565b505050565b600a5481565b60006108e86113e7565b6001546000540303905090565b600b5481565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461093957610938336111a6565b5b6109448484846113ec565b50505050565b61095261170e565b61095a61178c565b60003373ffffffffffffffffffffffffffffffffffffffff164760405161098090612a32565b60006040518083038185875af1925050503d80600081146109bd576040519150601f19603f3d011682016040523d82523d6000602084013e6109c2565b606091505b50509050806109d057600080fd5b506109d96117db565b565b60105481565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a3157610a30336111a6565b5b610a3c8484846117e5565b50505050565b610a4a61170e565b8060119081610a599190612be9565b5050565b600f5481565b6000610a6e82611805565b9050919050565b60118054610a82906129d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610aae906129d0565b8015610afb5780601f10610ad057610100808354040283529160200191610afb565b820191906000526020600020905b815481529060010190602001808311610ade57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b6a576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610bc361170e565b610bcd60006118d1565b565b610bd761170e565b601054600a6000828254610beb9190612cea565b925050819055507f8d8664e4328cbcd16b52db004cff5622d17995140cefada9f4578b857f9b204e610c1b611997565b600a54601054604051610c3093929190612d1e565b60405180910390a1610c443360105461199f565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c7861170e565b80600c8190555050565b610c8a61170e565b80600f8190555050565b606060038054610ca3906129d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccf906129d0565b8015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b820191906000526020600020905b815481529060010190602001808311610cff57829003601f168201915b5050505050905090565b600e5481565b6000600c54905060006001600f54610d449190612cea565b83610d4d6108de565b610d579190612cea565b108015610db05750600e5483601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dad9190612cea565b11155b80610ded5750610dbe610c46565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b90508015610dfa57600091505b8183610e069190612d55565b341015610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612de3565b60405180910390fd5b6001601054600b54610e5a9190612e03565b610e649190612cea565b83610e6d6108de565b610e779190612cea565b10610eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eae90612e83565b60405180910390fd5b6001600d54610ec69190612cea565b8310610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612eef565b60405180910390fd5b8015610f645782601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f5c9190612cea565b925050819055505b610f6e338461199f565b505050565b81610f7d816111a6565b610f8783836119bd565b505050565b833373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fca57610fc9336111a6565b5b610fd685858585611ac8565b5050505050565b6060610fe882611147565b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612f81565b60405180910390fd5b601161103283611b3b565b6040516020016110439291906130ac565b6040516020818303038152906040529050919050565b600d5481565b600073f849de01b080adc3a814fabe1e2087475cf2e35473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110b157600090506110be565b6110bb8383611c09565b90505b92915050565b6110cc61170e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061314d565b60405180910390fd5b611144816118d1565b50565b6000816111526113e7565b11158015611161575060005482105b801561119f575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b11156112a0576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b815260040161121d92919061316d565b602060405180830381865afa15801561123a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125e91906131ab565b61129f57806040517fede71dcc00000000000000000000000000000000000000000000000000000000815260040161129691906124d2565b60405180910390fd5b5b50565b60006112ae82610a63565b90508073ffffffffffffffffffffffffffffffffffffffff166112cf611c9d565b73ffffffffffffffffffffffffffffffffffffffff1614611332576112fb816112f6611c9d565b61105f565b611331576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600090565b60006113f782611805565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461145e576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061146a84611ca5565b91509150611480818761147b611c9d565b611ccc565b6114cc5761149586611490611c9d565b61105f565b6114cb576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611532576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61153f8686866001611d10565b801561154a57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550611618856115f4888887611d16565b7c020000000000000000000000000000000000000000000000000000000017611d3e565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084160361169e576000600185019050600060046000838152602001908152602001600020540361169c57600054811461169b578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117068686866001611d69565b505050505050565b611716611997565b73ffffffffffffffffffffffffffffffffffffffff16611734610c46565b73ffffffffffffffffffffffffffffffffffffffff161461178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190613224565b60405180910390fd5b565b6002600954036117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890613290565b60405180910390fd5b6002600981905550565b6001600981905550565b61180083838360405180602001604052806000815250610f8c565b505050565b600080829050806118146113e7565b1161189a576000548110156118995760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611897575b6000810361188d576004600083600190039350838152602001908152602001600020549050611863565b80925050506118cc565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6119b9828260405180602001604052806000815250611d6f565b5050565b80600760006119ca611c9d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a77611c9d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611abc9190612337565b60405180910390a35050565b611ad38484846108fb565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611b3557611afe84848484611e0c565b611b34576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606060006001611b4a84611f5c565b01905060008167ffffffffffffffff811115611b6957611b68612630565b5b6040519080825280601f01601f191660200182016040528015611b9b5781602001600182028036833780820191505090505b509050600082602001820190505b600115611bfe578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611bf257611bf16132b0565b5b04945060008503611ba9575b819350505050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611d2d8686846120af565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611d7983836120b8565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611e0757600080549050600083820390505b611db96000868380600101945086611e0c565b611def576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110611da6578160005414611e0457600080fd5b50505b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611e32611c9d565b8786866040518563ffffffff1660e01b8152600401611e549493929190613334565b6020604051808303816000875af1925050508015611e9057506040513d601f19601f82011682018060405250810190611e8d9190613395565b60015b611f09573d8060008114611ec0576040519150601f19603f3d011682016040523d82523d6000602084013e611ec5565b606091505b506000815103611f01576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611fba577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611fb057611faf6132b0565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611ff7576d04ee2d6d415b85acef81000000008381611fed57611fec6132b0565b5b0492506020810190505b662386f26fc10000831061202657662386f26fc10000838161201c5761201b6132b0565b5b0492506010810190505b6305f5e100831061204f576305f5e1008381612045576120446132b0565b5b0492506008810190505b612710831061207457612710838161206a576120696132b0565b5b0492506004810190505b60648310612097576064838161208d5761208c6132b0565b5b0492506002810190505b600a83106120a6576001810190505b80915050919050565b60009392505050565b600080549050600082036120f8576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121056000848385611d10565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061217c8361216d6000866000611d16565b61217685612273565b17611d3e565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461221d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506121e2565b5060008203612258576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600081905550505061226e6000848385611d69565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122cc81612297565b81146122d757600080fd5b50565b6000813590506122e9816122c3565b92915050565b6000602082840312156123055761230461228d565b5b6000612313848285016122da565b91505092915050565b60008115159050919050565b6123318161231c565b82525050565b600060208201905061234c6000830184612328565b92915050565b6000819050919050565b61236581612352565b82525050565b6000602082019050612380600083018461235c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123c05780820151818401526020810190506123a5565b60008484015250505050565b6000601f19601f8301169050919050565b60006123e882612386565b6123f28185612391565b93506124028185602086016123a2565b61240b816123cc565b840191505092915050565b6000602082019050818103600083015261243081846123dd565b905092915050565b61244181612352565b811461244c57600080fd5b50565b60008135905061245e81612438565b92915050565b60006020828403121561247a5761247961228d565b5b60006124888482850161244f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124bc82612491565b9050919050565b6124cc816124b1565b82525050565b60006020820190506124e760008301846124c3565b92915050565b6124f6816124b1565b811461250157600080fd5b50565b600081359050612513816124ed565b92915050565b600080604083850312156125305761252f61228d565b5b600061253e85828601612504565b925050602061254f8582860161244f565b9150509250929050565b6000806000606084860312156125725761257161228d565b5b600061258086828701612504565b935050602061259186828701612504565b92505060406125a28682870161244f565b9150509250925092565b6000819050919050565b60006125d16125cc6125c784612491565b6125ac565b612491565b9050919050565b60006125e3826125b6565b9050919050565b60006125f5826125d8565b9050919050565b612605816125ea565b82525050565b600060208201905061262060008301846125fc565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612668826123cc565b810181811067ffffffffffffffff8211171561268757612686612630565b5b80604052505050565b600061269a612283565b90506126a6828261265f565b919050565b600067ffffffffffffffff8211156126c6576126c5612630565b5b6126cf826123cc565b9050602081019050919050565b82818337600083830152505050565b60006126fe6126f9846126ab565b612690565b90508281526020810184848401111561271a5761271961262b565b5b6127258482856126dc565b509392505050565b600082601f83011261274257612741612626565b5b81356127528482602086016126eb565b91505092915050565b6000602082840312156127715761277061228d565b5b600082013567ffffffffffffffff81111561278f5761278e612292565b5b61279b8482850161272d565b91505092915050565b6000602082840312156127ba576127b961228d565b5b60006127c884828501612504565b91505092915050565b6127da8161231c565b81146127e557600080fd5b50565b6000813590506127f7816127d1565b92915050565b600080604083850312156128145761281361228d565b5b600061282285828601612504565b9250506020612833858286016127e8565b9150509250929050565b600067ffffffffffffffff82111561285857612857612630565b5b612861826123cc565b9050602081019050919050565b600061288161287c8461283d565b612690565b90508281526020810184848401111561289d5761289c61262b565b5b6128a88482856126dc565b509392505050565b600082601f8301126128c5576128c4612626565b5b81356128d584826020860161286e565b91505092915050565b600080600080608085870312156128f8576128f761228d565b5b600061290687828801612504565b945050602061291787828801612504565b93505060406129288782880161244f565b925050606085013567ffffffffffffffff81111561294957612948612292565b5b612955878288016128b0565b91505092959194509250565b600080604083850312156129785761297761228d565b5b600061298685828601612504565b925050602061299785828601612504565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129e857607f821691505b6020821081036129fb576129fa6129a1565b5b50919050565b600081905092915050565b50565b6000612a1c600083612a01565b9150612a2782612a0c565b600082019050919050565b6000612a3d82612a0f565b9150819050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612aa97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a6c565b612ab38683612a6c565b95508019841693508086168417925050509392505050565b6000612ae6612ae1612adc84612352565b6125ac565b612352565b9050919050565b6000819050919050565b612b0083612acb565b612b14612b0c82612aed565b848454612a79565b825550505050565b600090565b612b29612b1c565b612b34818484612af7565b505050565b5b81811015612b5857612b4d600082612b21565b600181019050612b3a565b5050565b601f821115612b9d57612b6e81612a47565b612b7784612a5c565b81016020851015612b86578190505b612b9a612b9285612a5c565b830182612b39565b50505b505050565b600082821c905092915050565b6000612bc060001984600802612ba2565b1980831691505092915050565b6000612bd98383612baf565b9150826002028217905092915050565b612bf282612386565b67ffffffffffffffff811115612c0b57612c0a612630565b5b612c1582546129d0565b612c20828285612b5c565b600060209050601f831160018114612c535760008415612c41578287015190505b612c4b8582612bcd565b865550612cb3565b601f198416612c6186612a47565b60005b82811015612c8957848901518255600182019150602085019450602081019050612c64565b86831015612ca65784890151612ca2601f891682612baf565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cf582612352565b9150612d0083612352565b9250828201905080821115612d1857612d17612cbb565b5b92915050565b6000606082019050612d3360008301866124c3565b612d40602083018561235c565b612d4d604083018461235c565b949350505050565b6000612d6082612352565b9150612d6b83612352565b9250828202612d7981612352565b91508282048414831517612d9057612d8f612cbb565b5b5092915050565b7f506c656173652073656e642074686520657861637420616d6f756e742e000000600082015250565b6000612dcd601d83612391565b9150612dd882612d97565b602082019050919050565b60006020820190508181036000830152612dfc81612dc0565b9050919050565b6000612e0e82612352565b9150612e1983612352565b9250828203905081811115612e3157612e30612cbb565b5b92915050565b7f536f6c64206f7574210000000000000000000000000000000000000000000000600082015250565b6000612e6d600983612391565b9150612e7882612e37565b602082019050919050565b60006020820190508181036000830152612e9c81612e60565b9050919050565b7f4d61782070657220545820726561636865642e00000000000000000000000000600082015250565b6000612ed9601383612391565b9150612ee482612ea3565b602082019050919050565b60006020820190508181036000830152612f0881612ecc565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000612f6b602f83612391565b9150612f7682612f0f565b604082019050919050565b60006020820190508181036000830152612f9a81612f5e565b9050919050565b600081905092915050565b60008154612fb9816129d0565b612fc38186612fa1565b94506001821660008114612fde5760018114612ff357613026565b60ff1983168652811515820286019350613026565b612ffc85612a47565b60005b8381101561301e57815481890152600182019150602081019050612fff565b838801955050505b50505092915050565b600061303a82612386565b6130448185612fa1565b93506130548185602086016123a2565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000613096600583612fa1565b91506130a182613060565b600582019050919050565b60006130b88285612fac565b91506130c4828461302f565b91506130cf82613089565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613137602683612391565b9150613142826130db565b604082019050919050565b600060208201905081810360008301526131668161312a565b9050919050565b600060408201905061318260008301856124c3565b61318f60208301846124c3565b9392505050565b6000815190506131a5816127d1565b92915050565b6000602082840312156131c1576131c061228d565b5b60006131cf84828501613196565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061320e602083612391565b9150613219826131d8565b602082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061327a601f83612391565b915061328582613244565b602082019050919050565b600060208201905081810360008301526132a98161326d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000613306826132df565b61331081856132ea565b93506133208185602086016123a2565b613329816123cc565b840191505092915050565b600060808201905061334960008301876124c3565b61335660208301866124c3565b613363604083018561235c565b818103606083015261337581846132fb565b905095945050505050565b60008151905061338f816122c3565b92915050565b6000602082840312156133ab576133aa61228d565b5b60006133b984828501613380565b9150509291505056fea2646970667358221220f1c71c7ad036c571cd6ae9b89e122489e0f9294a36d68632d9eb4f6cdad78c0464736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d6373593671636e454a6d695653424861524a5a716d6e57687867644c72746e6b654c566956667a6e74574c392f00000000000000000000