60806040523480156200001157600080fd5b50604051602080620015fd83398101604081815291518282018352601682527f526f626f2041647669736f7220666f72205969656c64000000000000000000006020808401919091528351808501909452600384527f52415900000000000000000000000000000000000000000000000000000000009084015291620000c07f01ffc9a7000000000000000000000000000000000000000000000000000000006401000000006200017c810204565b620000f47f80ac58cd000000000000000000000000000000000000000000000000000000006401000000006200017c810204565b815162000109906005906020850190620001e9565b5080516200011f906006906020840190620001e9565b50620001547f5b5e139f000000000000000000000000000000000000000000000000000000006401000000006200017c810204565b505060088054600160a060020a031916600160a060020a03929092169190911790556200028e565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620001ac57600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022c57805160ff19168380011785556200025c565b828001600101855582156200025c579182015b828111156200025c5782518255916020019190600101906200023f565b506200026a9291506200026e565b5090565b6200028b91905b808211156200026a576000815560010162000275565b90565b61135f806200029e6000396000f3006080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461010057806306fdde031461014b578063081812fc146101d5578063095ea7b31461020957806323b872dd1461022f57806342842e0e1461025957806342966c681461028357806356fa44a61461029b5780636352211e146102b35780636ede4983146102cb57806370a082311461030157806395d89b4114610322578063a22cb46514610337578063b88d4fde1461035d578063ba20dda4146103cc578063c3fb90d6146103e4578063c87b56dd146103f9578063e985e9c514610411575b600080fd5b34801561010c57600080fd5b506101377bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960043516610438565b604080519115158252519081900360200190f35b34801561015757600080fd5b5061016061046c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019a578181015183820152602001610182565b50505050905090810190601f1680156101c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e157600080fd5b506101ed600435610503565b60408051600160a060020a039092168252519081900360200190f35b34801561021557600080fd5b5061022d600160a060020a0360043516602435610535565b005b34801561023b57600080fd5b5061022d600160a060020a03600435811690602435166044356105eb565b34801561026557600080fd5b5061022d600160a060020a0360043581169060243516604435610610565b34801561028f57600080fd5b5061022d60043561062c565b3480156102a757600080fd5b5061013760043561064d565b3480156102bf57600080fd5b506101ed60043561065e565b3480156102d757600080fd5b506102ef600435600160a060020a03602435166106f3565b60408051918252519081900360200190f35b34801561030d57600080fd5b506102ef600160a060020a036004351661088a565b34801561032e57600080fd5b506101606108bd565b34801561034357600080fd5b5061022d600160a060020a0360043516602435151561091e565b34801561036957600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261022d94600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506109a29650505050505050565b3480156103d857600080fd5b506101ed6004356109ca565b3480156103f057600080fd5b506101ed6109d5565b34801561040557600080fd5b506101606004356109e4565b34801561041d57600080fd5b50610137600160a060020a0360043581169060243516610a99565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f85780601f106104cd576101008083540402835291602001916104f8565b820191906000526020600020905b8154815290600101906020018083116104db57829003601f168201915b505050505090505b90565b600061050e82610ac7565b151561051957600080fd5b50600090815260026020526040902054600160a060020a031690565b60006105408261065e565b9050600160a060020a03838116908216141561055b57600080fd5b33600160a060020a038216148061057757506105778133610a99565b151561058257600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6105f53382610ae4565b151561060057600080fd5b61060b838383610b43565b505050565b61060b83838360206040519081016040528060008152506109a2565b6106363382610ae4565b151561064157600080fd5b61064a81610c6c565b50565b600061065882610ac7565b92915050565b600081815260016020526040812054600160a060020a0316801515610658576040805160e560020a62461bcd02815260206004820152603160248201527f23455243373231206f776e65724f6628293a205468657265206973206e6f207460448201527f6f6b656e20776974682074686973204944000000000000000000000000000000606482015290519081900360840190fd5b600854604080517f546f6b656e57726170706572436f6e7472616374000000000000000000000000815281519081900360140181207f0d2020dd0000000000000000000000000000000000000000000000000000000082526004820152905160009283923392600160a060020a039290921691630d2020dd9160248082019260209290919082900301818887803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b505050506040513d60208110156107b757600080fd5b5051600160a060020a031614610863576040805160e560020a62461bcd02815260206004820152604560248201527f23524159546f6b656e206f6e6c79546f6b656e57726170706572204d6f64696660448201527f6965723a204f6e6c7920546f6b656e20577261707065722063616e2063616c6c60648201527f2074686973000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600980546001019081905561087790610c7e565b90506108838382610d2c565b9392505050565b6000600160a060020a03821615156108a157600080fd5b50600160a060020a031660009081526003602052604090205490565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f85780601f106104cd576101008083540402835291602001916104f8565b600160a060020a03821633141561093457600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6109ad8484846105eb565b6109b984848484610edc565b15156109c457600080fd5b50505050565b60006106588261065e565b600854600160a060020a031681565b60606109ef82610ac7565b15156109fa57600080fd5b60008281526007602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a8d5780601f10610a6257610100808354040283529160200191610a8d565b820191906000526020600020905b815481529060010190602001808311610a7057829003601f168201915b50505050509050919050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600090815260016020526040902054600160a060020a0316151590565b600080610af08361065e565b905080600160a060020a031684600160a060020a03161480610b2b575083600160a060020a0316610b2084610503565b600160a060020a0316145b80610b3b5750610b3b8185610a99565b949350505050565b82600160a060020a0316610b568261065e565b600160a060020a031614610b6957600080fd5b600160a060020a0382161515610b7e57600080fd5b610b878161105e565b600160a060020a038316600090815260036020526040902054610bb190600163ffffffff6110a616565b600160a060020a038085166000908152600360205260408082209390935590841681522054610be790600163ffffffff61112e16565b600160a060020a038084166000818152600360209081526040808320959095558582526001815290849020805473ffffffffffffffffffffffffffffffffffffffff191683179055835185815293519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b61064a610c788261065e565b826111b1565b60008030836040516020018083600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310610cf95780518252601f199092019160209182019101610cda565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b600160a060020a0382161515610db2576040805160e560020a62461bcd02815260206004820152603860248201527f23455243373231205f6d696e7428293a2043616e6e6f74206d696e742061207460448201527f6f6b656e20746f20746865206e756c6c20616464726573730000000000000000606482015290519081900360840190fd5b610dbb81610ac7565b15610e36576040805160e560020a62461bcd02815260206004820152603060248201527f234552433732313a205f6d696e7428293a204120746f6b656e20616c7265616460448201527f7920657869737473207769746820494400000000000000000000000000000000606482015290519081900360840190fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054610e849161112e565b600160a060020a03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600080610ef185600160a060020a03166111fd565b1515610f005760019150611055565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b83811015610f93578181015183820152602001610f7b565b50505050905090810190601f168015610fc05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610fe257600080fd5b505af1158015610ff6573d6000803e3d6000fd5b505050506040513d602081101561100c57600080fd5b50517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f150b7a020000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b600081815260026020526040902054600160a060020a03161561064a576000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008083831115611127576040805160e560020a62461bcd02815260206004820152603260248201527f23536166654d6174682073756228293a205468697320776f756c64207265737560448201527f6c7420696e20616e20756e646572666c6f770000000000000000000000000000606482015290519081900360840190fd5b5050900390565b600082820183811015610883576040805160e560020a62461bcd02815260206004820152603160248201527f23536166654d6174682061646428293a205468697320776f756c64207265737560448201527f6c7420696e20616e206f766572666c6f77000000000000000000000000000000606482015290519081900360840190fd5b6111bb8282611205565b60008181526007602052604090205460026000196101006001841615020190911604156111f95760008181526007602052604081206111f9916112da565b5050565b6000903b1190565b81600160a060020a03166112188261065e565b600160a060020a03161461122b57600080fd5b6112348161105e565b600160a060020a03821660009081526003602052604090205461125e90600163ffffffff6110a616565b600160a060020a03831660008181526003602090815260408083209490945584825260018152838220805473ffffffffffffffffffffffffffffffffffffffff191690558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b50805460018160011615610100020316600290046000825580601f10611300575061064a565b600091825260209182902061064a9261050092601f01048101905b8082111561132f576000815560010161131b565b50905600a165627a7a723058205bfac71d34176d2444bc9711c5923e30bdca22fdda136367546c754a592b8c020029000000000000000000000000446711e5ed3013743e40342a0462fbdc437cd43f