60806040526a084595161401484a0000006000553480156200002057600080fd5b506040516200151438038062001514833981016040819052620000439162000170565b428110156200006f5760405162461bcd60e51b8152600401620000669062000272565b60405180910390fd5b600080546001600160a01b0385168083526004602052604080842080546001600160601b0319166001600160601b0390941693909317909255825491519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000dd919062000284565b60405180910390a3600180546001600160a01b0319166001600160a01b0384811691909117918290556040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6926200013c926000929116906200024c565b60405180910390a160025550620002eb9050565b80516200015d81620002c6565b92915050565b80516200015d81620002e0565b6000806000606084860312156200018657600080fd5b600062000194868662000150565b9350506020620001a78682870162000150565b9250506040620001ba8682870162000163565b9150509250925092565b620001cf81620002b2565b82525050565b620001cf816200029d565b6000620001ef603b8362000294565b7f517569636b3a3a636f6e7374727563746f723a206d696e74696e672063616e2081527f6f6e6c7920626567696e206166746572206465706c6f796d656e740000000000602082015260400192915050565b620001cf81620002af565b604081016200025c8285620001c4565b6200026b6020830184620001d5565b9392505050565b602080825281016200015d81620001e0565b602081016200015d828462000241565b90815260200190565b60006001600160a01b0382166200015d565b90565b60006200015d8260006200015d826200029d565b620002d1816200029d565b8114620002dd57600080fd5b50565b620002d181620002af565b61121980620002fb6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f191161009757806395d89b411161006657806395d89b41146101d7578063a9059cbb146101df578063dd62ed3e146101f2578063fca3b5aa14610205576100f5565b806340c10f19146101925780635c11d62f146101a757806370a08231146101bc57806376c71ca1146101cf576100f5565b806318160ddd116100d357806318160ddd1461014d57806323b872dd1461016257806330b36cef14610175578063313ce5671461017d576100f5565b806306fdde03146100fa5780630754617214610118578063095ea7b31461012d575b600080fd5b610102610218565b60405161010f9190610eed565b60405180910390f35b61012061023d565b60405161010f9190610eb6565b61014061013b366004610b61565b61024c565b60405161010f9190610edf565b61015561030b565b60405161010f9190610f8e565b610140610170366004610b14565b610311565b61015561045a565b610185610460565b60405161010f9190610faa565b6101a56101a0366004610b61565b610465565b005b6101af61065b565b60405161010f9190610f9c565b6101556101ca366004610ab4565b610663565b610185610687565b61010261068c565b6101406101ed366004610b61565b6106ad565b610155610200366004610ada565b6106e9565b6101a5610213366004610ab4565b61071d565b604051806040016040528060098152602001680517569636b737761760bc1b81525081565b6001546001600160a01b031681565b6000806000198314156102625750600019610287565b610284836040518060600160405280602681526020016110c7602691396107b0565b90505b3360008181526003602090815260408083206001600160a01b03891680855292529182902080546001600160601b0319166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102f7908590610fb8565b60405180910390a360019150505b92915050565b60005481565b6001600160a01b03831660009081526003602090815260408083203380855290835281842054825160608101909352602680845291936001600160601b0390911692859261036992889291906110c7908301396107b0565b9050866001600160a01b0316836001600160a01b03161415801561039657506001600160601b0382811614155b156104405760006103c083836040518060600160405280603e815260200161113c603e91396107df565b6001600160a01b038981166000818152600360209081526040808320948a16808452949091529081902080546001600160601b0319166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610436908590610fb8565b60405180910390a3505b61044b87878361081e565b600193505050505b9392505050565b60025481565b601281565b6001546001600160a01b031633146104985760405162461bcd60e51b815260040161048f90610f2e565b60405180910390fd5b6002544210156104ba5760405162461bcd60e51b815260040161048f90610f4e565b6001600160a01b0382166104e05760405162461bcd60e51b815260040161048f90610f0e565b6104ee426301e1338061098a565b6002819055506000610518826040518060600160405280602381526020016110a4602391396107b0565b905061053461052d600054600260ff166109af565b60646109e9565b816001600160601b0316111561055c5760405162461bcd60e51b815260040161048f90610f3e565b610592610574600054836001600160601b031661098a565b6040518060600160405280602881526020016110ed602891396107b0565b6001600160601b0390811660009081556001600160a01b0385168152600460209081526040918290205482516060810190935260268084526105e4949190911692859290919061117a90830139610a2b565b6001600160a01b03841660008181526004602052604080822080546001600160601b0319166001600160601b03959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061064e908590610fb8565b60405180910390a3505050565b6301e1338081565b6001600160a01b03166000908152600460205260409020546001600160601b031690565b600281565b60405180604001604052806005815260200164515549434b60d81b81525081565b6000806106d283604051806060016040528060278152602001611115602791396107b0565b90506106df33858361081e565b5060019392505050565b6001600160a01b0391821660009081526003602090815260408083209390941682529190915220546001600160601b031690565b6001546001600160a01b031633146107475760405162461bcd60e51b815260040161048f90610efe565b6001546040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f691610786916001600160a01b03909116908490610ec4565b60405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081600160601b84106107d75760405162461bcd60e51b815260040161048f9190610eed565b509192915050565b6000836001600160601b0316836001600160601b0316111582906108165760405162461bcd60e51b815260040161048f9190610eed565b505050900390565b6001600160a01b0383166108445760405162461bcd60e51b815260040161048f90610f5e565b6001600160a01b03821661086a5760405162461bcd60e51b815260040161048f90610f7e565b6001600160a01b0383166000908152600460209081526040918290205482516060810190935260378084526108b5936001600160601b0390921692859291906111a0908301396107df565b6001600160a01b03848116600090815260046020908152604080832080546001600160601b0319166001600160601b0396871617905592861682529082902054825160608101909352603180845261091d949190911692859290919061107390830139610a2b565b6001600160a01b038381166000818152600460205260409081902080546001600160601b0319166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061064e908590610fb8565b6000828201838110156104535760405162461bcd60e51b815260040161048f90610f1e565b6000826109be57506000610305565b828202828482816109cb57fe5b04146104535760405162461bcd60e51b815260040161048f90610f6e565b600061045383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a67565b6000838301826001600160601b038087169083161015610a5e5760405162461bcd60e51b815260040161048f9190610eed565b50949350505050565b60008183610a885760405162461bcd60e51b815260040161048f9190610eed565b506000838581610a9457fe5b0495945050505050565b803561030581611052565b803561030581611069565b600060208284031215610ac657600080fd5b6000610ad28484610a9e565b949350505050565b60008060408385031215610aed57600080fd5b6000610af98585610a9e565b9250506020610b0a85828601610a9e565b9150509250929050565b600080600060608486031215610b2957600080fd5b6000610b358686610a9e565b9350506020610b4686828701610a9e565b9250506040610b5786828701610aa9565b9150509250925092565b60008060408385031215610b7457600080fd5b6000610b808585610a9e565b9250506020610b0a85828601610aa9565b610b9a81610fd3565b82525050565b610b9a81610fde565b6000610bb482610fc6565b610bbe8185610fca565b9350610bce818560208601611018565b610bd781611048565b9093019392505050565b6000610bee603f83610fca565b7f517569636b3a3a7365744d696e7465723a206f6e6c7920746865206d696e746581527f722063616e206368616e676520746865206d696e746572206164647265737300602082015260400192915050565b6000610c4d603083610fca565b7f517569636b3a3a6d696e743a2063616e6e6f74207472616e7366657220746f2081526f746865207a65726f206164647265737360801b602082015260400192915050565b6000610c9f601b83610fca565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610cd8602583610fca565b7f517569636b3a3a6d696e743a206f6e6c7920746865206d696e7465722063616e815264081b5a5b9d60da1b602082015260400192915050565b6000610d1f601e83610fca565b7f517569636b3a3a6d696e743a206578636565646564206d696e74206361700000815260200192915050565b6000610d58602483610fca565b7f517569636b3a3a6d696e743a206d696e74696e67206e6f7420616c6c6f776564815263081e595d60e21b602082015260400192915050565b6000610d9e603d83610fca565b7f517569636b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207481527f72616e736665722066726f6d20746865207a65726f2061646472657373000000602082015260400192915050565b6000610dfd602183610fca565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000610e40603b83610fca565b7f517569636b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207481527f72616e7366657220746f20746865207a65726f20616464726573730000000000602082015260400192915050565b610b9a81610fef565b610b9a81610ff2565b610b9a81610ffb565b610b9a8161100d565b602081016103058284610b91565b60408101610ed28285610b91565b6104536020830184610b91565b602081016103058284610ba0565b602080825281016104538184610ba9565b6020808252810161030581610be1565b6020808252810161030581610c40565b6020808252810161030581610c92565b6020808252810161030581610ccb565b6020808252810161030581610d12565b6020808252810161030581610d4b565b6020808252810161030581610d91565b6020808252810161030581610df0565b6020808252810161030581610e33565b602081016103058284610e92565b602081016103058284610e9b565b602081016103058284610ea4565b602081016103058284610ead565b5190565b90815260200190565b600061030582610fe3565b151590565b6001600160a01b031690565b90565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061030582611001565b60005b8381101561103357818101518382015260200161101b565b83811115611042576000848401525b50505050565b601f01601f191690565b61105b81610fd3565b811461106657600080fd5b50565b61105b81610fef56fe517569636b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773517569636b3a3a6d696e743a20616d6f756e7420657863656564732039362062697473517569636b3a3a617070726f76653a20616d6f756e7420657863656564732039362062697473517569636b3a3a6d696e743a20746f74616c537570706c7920657863656564732039362062697473517569636b3a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473517569636b3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365517569636b3a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f7773517569636b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a365627a7a723158206b7f8a0d4b3c42ea835dcdcb5a1ca8851ef9f5f4cfcf50ae62fdf740a9efc7b96c6578706572696d656e74616cf564736f6c63430005110040000000000000000000000000476307dac3fd170166e007fcaa14f0a129721463000000000000000000000000476307dac3fd170166e007fcaa14f0a1297214630000000000000000000000000000000000000000000000000000000066fb3b80