Commit f6c7fa5b authored by clabby's avatar clabby

Fix offset bug when loading `exited` and `exitCode`

parent 98bfbd81
...@@ -31,7 +31,7 @@ var ( ...@@ -31,7 +31,7 @@ var (
// MIPSMetaData contains all meta data concerning the MIPS contract. // MIPSMetaData contains all meta data concerning the MIPS contract.
var MIPSMetaData = &bind.MetaData{ var MIPSMetaData = &bind.MetaData{
ABI: "[{\"inputs\":[{\"internalType\":\"contractIPreimageOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BRK_START\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contractIPreimageOracle\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", ABI: "[{\"inputs\":[{\"internalType\":\"contractIPreimageOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BRK_START\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contractIPreimageOracle\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
Bin: "0x60a060405234801561001057600080fd5b50604051611ed2380380611ed283398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051611e4161009160003960008181608501526116070152611e416000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063155633fe146100465780637dc0d1d01461006b578063f8e0cb96146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d46565b6100d0565b604051908152602001610062565b60006100da611c73565b608081146100e757600080fd5b604051610600146100f757600080fd5b6064861461010457600080fd5b610184841461011257600080fd5b8535608052602086013560a052604086013560e090811c60c09081526044880135821c82526048880135821c61010052604c880135821c610120526050880135821c61014052605488013590911c61016052605887013560f890811c610180526059880135901c6101a052605a870135901c6101c0526102006101e0819052606287019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d3610619565b915050610611565b6101408101805160010167ffffffffffffffff16905260608101516000906102039082610755565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff1682610811565b945050505050610611565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611db2565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611db2565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff16601061090b565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611db2565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f68587848761097e565b975050505050505050610611565b63ffffffff6000602087831610610469576104248861ffff16601061090b565b9095019463fffffffc861661043a816001610755565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b8e565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058a578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b89610811565b9b505050505050505050505050610611565b8063ffffffff16600a03610525576104f3858963ffffffff8a1615611312565b8063ffffffff16600b03610546576104f3858963ffffffff8a161515611312565b8063ffffffff16600c0361055c576104f36113f8565b60108163ffffffff16101580156105795750601c8163ffffffff16105b1561058a576104f38189898861192c565b8863ffffffff1660381480156105a5575063ffffffff861615155b156105da5760018b61016001518763ffffffff16602081106105c9576105c9611db2565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f7576105f784600184611b26565b61060385836001611312565b9b5050505050505050505050505b949350505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019160f890811c91901c855b60208110156106bf57601c860151845260209095019460049093019260010161069b565b506000835283830384a0610711565b600081600181146106e2576003915061070a565b8380156106fa57600181146107035760029250610708565b60009250610708565b600192505b505b5092915050565b61071b82826106ce565b928490039093207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89290921b91909117949350505050565b60008061076183611bca565b9050600384161561077157600080fd5b6020810190358460051c8160005b601b8110156107d75760208501943583821c60011680156107a757600181146107bc576107cd565b600084815260208390526040902093506107cd565b600082815260208590526040902093505b505060010161077f565b5060805191508181146107f257630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b600061081b611c73565b60809050806060015160040163ffffffff16816080015163ffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108fa57806008018261016001518663ffffffff16602081106108e9576108e9611db2565b63ffffffff90921660209290920201525b610902610619565b95945050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b018261096857600061096a565b815b90861663ffffffff16179250505092915050565b6000610988611c73565b608090506000816060015160040163ffffffff16826080015163ffffffff1614610a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f74000000000000000000000000604482015260640161089b565b8663ffffffff1660041480610a2957508663ffffffff166005145b15610aa55760008261016001518663ffffffff1660208110610a4d57610a4d611db2565b602002015190508063ffffffff168563ffffffff16148015610a7557508763ffffffff166004145b80610a9d57508063ffffffff168563ffffffff1614158015610a9d57508763ffffffff166005145b915050610b22565b8663ffffffff16600603610ac25760008460030b13159050610b22565b8663ffffffff16600703610ade5760008460030b139050610b22565b8663ffffffff16600103610b2257601f601087901c166000819003610b075760008560030b1291505b8063ffffffff16600103610b205760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b68576002610b4d8861ffff16601061090b565b63ffffffff90811690911b8201600401166080840152610b7a565b60808301805160040163ffffffff1690525b610b82610619565b98975050505050505050565b6000603f601a86901c16801580610bbd575060088163ffffffff1610158015610bbd5750600f8163ffffffff16105b1561101357603f86168160088114610c045760098114610c0d57600a8114610c1657600b8114610c1f57600c8114610c2857600d8114610c3157600e8114610c3a57610c3f565b60209150610c3f565b60219150610c3f565b602a9150610c3f565b602b9150610c3f565b60249150610c3f565b60259150610c3f565b602691505b508063ffffffff16600003610c665750505063ffffffff8216601f600686901c161b610611565b8063ffffffff16600203610c8c5750505063ffffffff8216601f600686901c161c610611565b8063ffffffff16600303610cc257601f600688901c16610cb863ffffffff8716821c602083900361090b565b9350505050610611565b8063ffffffff16600403610ce45750505063ffffffff8216601f84161b610611565b8063ffffffff16600603610d065750505063ffffffff8216601f84161c610611565b8063ffffffff16600703610d3957610d308663ffffffff168663ffffffff16901c8760200361090b565b92505050610611565b8063ffffffff16600803610d51578592505050610611565b8063ffffffff16600903610d69578592505050610611565b8063ffffffff16600a03610d81578592505050610611565b8063ffffffff16600b03610d99578592505050610611565b8063ffffffff16600c03610db1578592505050610611565b8063ffffffff16600f03610dc9578592505050610611565b8063ffffffff16601003610de1578592505050610611565b8063ffffffff16601103610df9578592505050610611565b8063ffffffff16601203610e11578592505050610611565b8063ffffffff16601303610e29578592505050610611565b8063ffffffff16601803610e41578592505050610611565b8063ffffffff16601903610e59578592505050610611565b8063ffffffff16601a03610e71578592505050610611565b8063ffffffff16601b03610e89578592505050610611565b8063ffffffff16602003610ea257505050828201610611565b8063ffffffff16602103610ebb57505050828201610611565b8063ffffffff16602203610ed457505050818303610611565b8063ffffffff16602303610eed57505050818303610611565b8063ffffffff16602403610f0657505050828216610611565b8063ffffffff16602503610f1f57505050828217610611565b8063ffffffff16602603610f3857505050828218610611565b8063ffffffff16602703610f525750505082821719610611565b8063ffffffff16602a03610f83578460030b8660030b12610f74576000610f77565b60015b60ff1692505050610611565b8063ffffffff16602b03610fab578463ffffffff168663ffffffff1610610f74576000610f77565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e00000000000000000000000000604482015260640161089b565b50610fab565b8063ffffffff16601c0361109757603f8616600281900361103957505050828202610611565b8063ffffffff166020148061105457508063ffffffff166021145b1561100d578063ffffffff1660200361106b579419945b60005b638000000087161561108d576401fffffffe600197881b16960161106e565b9250610611915050565b8063ffffffff16600f036110b957505065ffffffff0000601083901b16610611565b8063ffffffff166020036110ed576101d38560031660080260180363ffffffff168463ffffffff16901c60ff16600861090b565b8063ffffffff16602103611122576101d38560021660080260100363ffffffff168463ffffffff16901c61ffff16601061090b565b8063ffffffff1660220361115157505063ffffffff60086003851602811681811b198416918316901b17610611565b8063ffffffff166023036111685782915050610611565b8063ffffffff1660240361119a578460031660080260180363ffffffff168363ffffffff16901c60ff16915050610611565b8063ffffffff166025036111cd578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050610611565b8063ffffffff166026036111ff57505063ffffffff60086003851602601803811681811c198416918316901c17610611565b8063ffffffff1660280361123557505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17610611565b8063ffffffff1660290361126c57505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17610611565b8063ffffffff16602a0361129b57505063ffffffff60086003851602811681811c198316918416901c17610611565b8063ffffffff16602b036112b25783915050610611565b8063ffffffff16602e036112e457505063ffffffff60086003851602601803811681811b198316918416901b17610611565b8063ffffffff166030036112fb5782915050610611565b8063ffffffff16603803610fab5783915050610611565b600061131c611c73565b506080602063ffffffff86161061138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c6964207265676973746572000000000000000000000000000000000000604482015260640161089b565b63ffffffff8516158015906113a15750825b156113d557838161016001518663ffffffff16602081106113c4576113c4611db2565b63ffffffff90921660209290920201525b60808101805163ffffffff80821660608501526004909101169052610902610619565b6000611402611c73565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa0361147c5781610fff81161561144b57610fff811661100003015b8363ffffffff166000036114725760e08801805163ffffffff838201169091529550611476565b8395505b506118eb565b8563ffffffff16610fcd0361149757634000000094506118eb565b8563ffffffff16611018036114af57600194506118eb565b8563ffffffff16611096036114e457600161012088015260ff83166101008801526114d8610619565b97505050505050505090565b8563ffffffff16610fa30361174e5763ffffffff8316156118eb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff84160161170857600061153f8363fffffffc166001610755565b60208901519091508060001a6001036115ac576115a981600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b90505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa15801561164d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116719190611de1565b91509150600386168060040382811015611689578092505b5081861015611696578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116ed8663fffffffc16600186611b26565b60408b018051820163ffffffff169052975061174992505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff84160161173d578094506118eb565b63ffffffff9450600993505b6118eb565b8563ffffffff16610fa40361183f5763ffffffff831660011480611778575063ffffffff83166002145b80611789575063ffffffff83166004145b15611796578094506118eb565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff84160161173d5760006117d68363fffffffc166001610755565b602089015190915060038416600403838110156117f1578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118eb565b8563ffffffff16610fd7036118eb578163ffffffff166003036118df5763ffffffff83161580611875575063ffffffff83166005145b80611886575063ffffffff83166003145b1561189457600094506118eb565b63ffffffff8316600114806118af575063ffffffff83166002145b806118c0575063ffffffff83166006145b806118d1575063ffffffff83166004145b1561173d57600194506118eb565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114d8610619565b6000611936611c73565b506080600063ffffffff8716601003611954575060c0810151611abd565b8663ffffffff166011036119735763ffffffff861660c0830152611abd565b8663ffffffff1660120361198c575060a0810151611abd565b8663ffffffff166013036119ab5763ffffffff861660a0830152611abd565b8663ffffffff166018036119df5763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611abd565b8663ffffffff16601903611a105763ffffffff86811681871602602081901c821660c08501521660a0830152611abd565b8663ffffffff16601a03611a66578460030b8660030b81611a3357611a33611e05565b0763ffffffff1660c0830152600385810b9087900b81611a5557611a55611e05565b0563ffffffff1660a0830152611abd565b8663ffffffff16601b03611abd578463ffffffff168663ffffffff1681611a8f57611a8f611e05565b0663ffffffff90811660c084015285811690871681611ab057611ab0611e05565b0463ffffffff1660a08301525b63ffffffff841615611af857808261016001518563ffffffff1660208110611ae757611ae7611db2565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b1b610619565b979650505050505050565b6000611b3183611bca565b90506003841615611b4157600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611bbf5760208401933582821c6001168015611b8f5760018114611ba457611bb5565b60008581526020839052604090209450611bb5565b600082815260208690526040902094505b5050600101611b67565b505060805250505050565b60ff811661038002610184810190369061050401811015611c6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f6174610000000000000000000000000000000000000000000000000000000000606482015260840161089b565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cd9611cde565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611d0f57600080fd5b50813567ffffffffffffffff811115611d2757600080fd5b602083019150836020828501011115611d3f57600080fd5b9250929050565b60008060008060408587031215611d5c57600080fd5b843567ffffffffffffffff80821115611d7457600080fd5b611d8088838901611cfd565b90965094506020870135915080821115611d9957600080fd5b50611da687828801611cfd565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611df457600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a", Bin: "0x60a060405234801561001057600080fd5b50604051611ecb380380611ecb83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051611e3a61009160003960008181608501526116000152611e3a6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063155633fe146100465780637dc0d1d01461006b578063f8e0cb96146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d3f565b6100d0565b604051908152602001610062565b60006100da611c6c565b608081146100e757600080fd5b604051610600146100f757600080fd5b6064861461010457600080fd5b610184841461011257600080fd5b8535608052602086013560a052604086013560e090811c60c09081526044880135821c82526048880135821c61010052604c880135821c610120526050880135821c61014052605488013590911c61016052605887013560f890811c610180526059880135901c6101a052605a870135901c6101c0526102006101e0819052606287019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d3610619565b915050610611565b6101408101805160010167ffffffffffffffff1690526060810151600090610203908261074e565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff168261080a565b945050505050610611565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611dab565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611dab565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff166010610904565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611dab565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f685878487610977565b975050505050505050610611565b63ffffffff6000602087831610610469576104248861ffff166010610904565b9095019463fffffffc861661043a81600161074e565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b87565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058a578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b8961080a565b9b505050505050505050505050610611565b8063ffffffff16600a03610525576104f3858963ffffffff8a161561130b565b8063ffffffff16600b03610546576104f3858963ffffffff8a16151561130b565b8063ffffffff16600c0361055c576104f36113f1565b60108163ffffffff16101580156105795750601c8163ffffffff16105b1561058a576104f381898988611925565b8863ffffffff1660381480156105a5575063ffffffff861615155b156105da5760018b61016001518763ffffffff16602081106105c9576105c9611dab565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f7576105f784600184611b1f565b6106038583600161130b565b9b5050505050505050505050505b949350505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b60208110156106b857601c8601518452602090950194600490930192600101610694565b506000835283830384a061070a565b600081600181146106db5760039150610703565b8380156106f357600181146106fc5760029250610701565b60009250610701565b600192505b505b5092915050565b61071482826106c7565b928490039093207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89290921b91909117949350505050565b60008061075a83611bc3565b9050600384161561076a57600080fd5b6020810190358460051c8160005b601b8110156107d05760208501943583821c60011680156107a057600181146107b5576107c6565b600084815260208390526040902093506107c6565b600082815260208590526040902093505b5050600101610778565b5060805191508181146107eb57630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b6000610814611c6c565b60809050806060015160040163ffffffff16816080015163ffffffff161461089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108f357806008018261016001518663ffffffff16602081106108e2576108e2611dab565b63ffffffff90921660209290920201525b6108fb610619565b95945050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b0182610961576000610963565b815b90861663ffffffff16179250505092915050565b6000610981611c6c565b608090506000816060015160040163ffffffff16826080015163ffffffff1614610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f740000000000000000000000006044820152606401610894565b8663ffffffff1660041480610a2257508663ffffffff166005145b15610a9e5760008261016001518663ffffffff1660208110610a4657610a46611dab565b602002015190508063ffffffff168563ffffffff16148015610a6e57508763ffffffff166004145b80610a9657508063ffffffff168563ffffffff1614158015610a9657508763ffffffff166005145b915050610b1b565b8663ffffffff16600603610abb5760008460030b13159050610b1b565b8663ffffffff16600703610ad75760008460030b139050610b1b565b8663ffffffff16600103610b1b57601f601087901c166000819003610b005760008560030b1291505b8063ffffffff16600103610b195760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b61576002610b468861ffff166010610904565b63ffffffff90811690911b8201600401166080840152610b73565b60808301805160040163ffffffff1690525b610b7b610619565b98975050505050505050565b6000603f601a86901c16801580610bb6575060088163ffffffff1610158015610bb65750600f8163ffffffff16105b1561100c57603f86168160088114610bfd5760098114610c0657600a8114610c0f57600b8114610c1857600c8114610c2157600d8114610c2a57600e8114610c3357610c38565b60209150610c38565b60219150610c38565b602a9150610c38565b602b9150610c38565b60249150610c38565b60259150610c38565b602691505b508063ffffffff16600003610c5f5750505063ffffffff8216601f600686901c161b610611565b8063ffffffff16600203610c855750505063ffffffff8216601f600686901c161c610611565b8063ffffffff16600303610cbb57601f600688901c16610cb163ffffffff8716821c6020839003610904565b9350505050610611565b8063ffffffff16600403610cdd5750505063ffffffff8216601f84161b610611565b8063ffffffff16600603610cff5750505063ffffffff8216601f84161c610611565b8063ffffffff16600703610d3257610d298663ffffffff168663ffffffff16901c87602003610904565b92505050610611565b8063ffffffff16600803610d4a578592505050610611565b8063ffffffff16600903610d62578592505050610611565b8063ffffffff16600a03610d7a578592505050610611565b8063ffffffff16600b03610d92578592505050610611565b8063ffffffff16600c03610daa578592505050610611565b8063ffffffff16600f03610dc2578592505050610611565b8063ffffffff16601003610dda578592505050610611565b8063ffffffff16601103610df2578592505050610611565b8063ffffffff16601203610e0a578592505050610611565b8063ffffffff16601303610e22578592505050610611565b8063ffffffff16601803610e3a578592505050610611565b8063ffffffff16601903610e52578592505050610611565b8063ffffffff16601a03610e6a578592505050610611565b8063ffffffff16601b03610e82578592505050610611565b8063ffffffff16602003610e9b57505050828201610611565b8063ffffffff16602103610eb457505050828201610611565b8063ffffffff16602203610ecd57505050818303610611565b8063ffffffff16602303610ee657505050818303610611565b8063ffffffff16602403610eff57505050828216610611565b8063ffffffff16602503610f1857505050828217610611565b8063ffffffff16602603610f3157505050828218610611565b8063ffffffff16602703610f4b5750505082821719610611565b8063ffffffff16602a03610f7c578460030b8660030b12610f6d576000610f70565b60015b60ff1692505050610611565b8063ffffffff16602b03610fa4578463ffffffff168663ffffffff1610610f6d576000610f70565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e000000000000000000000000006044820152606401610894565b50610fa4565b8063ffffffff16601c0361109057603f8616600281900361103257505050828202610611565b8063ffffffff166020148061104d57508063ffffffff166021145b15611006578063ffffffff16602003611064579419945b60005b6380000000871615611086576401fffffffe600197881b169601611067565b9250610611915050565b8063ffffffff16600f036110b257505065ffffffff0000601083901b16610611565b8063ffffffff166020036110e6576101d38560031660080260180363ffffffff168463ffffffff16901c60ff166008610904565b8063ffffffff1660210361111b576101d38560021660080260100363ffffffff168463ffffffff16901c61ffff166010610904565b8063ffffffff1660220361114a57505063ffffffff60086003851602811681811b198416918316901b17610611565b8063ffffffff166023036111615782915050610611565b8063ffffffff16602403611193578460031660080260180363ffffffff168363ffffffff16901c60ff16915050610611565b8063ffffffff166025036111c6578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050610611565b8063ffffffff166026036111f857505063ffffffff60086003851602601803811681811c198416918316901c17610611565b8063ffffffff1660280361122e57505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17610611565b8063ffffffff1660290361126557505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17610611565b8063ffffffff16602a0361129457505063ffffffff60086003851602811681811c198316918416901c17610611565b8063ffffffff16602b036112ab5783915050610611565b8063ffffffff16602e036112dd57505063ffffffff60086003851602601803811681811b198316918416901b17610611565b8063ffffffff166030036112f45782915050610611565b8063ffffffff16603803610fa45783915050610611565b6000611315611c6c565b506080602063ffffffff861610611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c69642072656769737465720000000000000000000000000000000000006044820152606401610894565b63ffffffff85161580159061139a5750825b156113ce57838161016001518663ffffffff16602081106113bd576113bd611dab565b63ffffffff90921660209290920201525b60808101805163ffffffff808216606085015260049091011690526108fb610619565b60006113fb611c6c565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa036114755781610fff81161561144457610fff811661100003015b8363ffffffff1660000361146b5760e08801805163ffffffff83820116909152955061146f565b8395505b506118e4565b8563ffffffff16610fcd0361149057634000000094506118e4565b8563ffffffff16611018036114a857600194506118e4565b8563ffffffff16611096036114dd57600161012088015260ff83166101008801526114d1610619565b97505050505050505090565b8563ffffffff16610fa3036117475763ffffffff8316156118e4577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016117015760006115388363fffffffc16600161074e565b60208901519091508060001a6001036115a5576115a281600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b90505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190611dda565b91509150600386168060040382811015611682578092505b508186101561168f578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116e68663fffffffc16600186611b1f565b60408b018051820163ffffffff169052975061174292505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff841601611736578094506118e4565b63ffffffff9450600993505b6118e4565b8563ffffffff16610fa4036118385763ffffffff831660011480611771575063ffffffff83166002145b80611782575063ffffffff83166004145b1561178f578094506118e4565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8416016117365760006117cf8363fffffffc16600161074e565b602089015190915060038416600403838110156117ea578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118e4565b8563ffffffff16610fd7036118e4578163ffffffff166003036118d85763ffffffff8316158061186e575063ffffffff83166005145b8061187f575063ffffffff83166003145b1561188d57600094506118e4565b63ffffffff8316600114806118a8575063ffffffff83166002145b806118b9575063ffffffff83166006145b806118ca575063ffffffff83166004145b1561173657600194506118e4565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114d1610619565b600061192f611c6c565b506080600063ffffffff871660100361194d575060c0810151611ab6565b8663ffffffff1660110361196c5763ffffffff861660c0830152611ab6565b8663ffffffff16601203611985575060a0810151611ab6565b8663ffffffff166013036119a45763ffffffff861660a0830152611ab6565b8663ffffffff166018036119d85763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611ab6565b8663ffffffff16601903611a095763ffffffff86811681871602602081901c821660c08501521660a0830152611ab6565b8663ffffffff16601a03611a5f578460030b8660030b81611a2c57611a2c611dfe565b0763ffffffff1660c0830152600385810b9087900b81611a4e57611a4e611dfe565b0563ffffffff1660a0830152611ab6565b8663ffffffff16601b03611ab6578463ffffffff168663ffffffff1681611a8857611a88611dfe565b0663ffffffff90811660c084015285811690871681611aa957611aa9611dfe565b0463ffffffff1660a08301525b63ffffffff841615611af157808261016001518563ffffffff1660208110611ae057611ae0611dab565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b14610619565b979650505050505050565b6000611b2a83611bc3565b90506003841615611b3a57600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611bb85760208401933582821c6001168015611b885760018114611b9d57611bae565b60008581526020839052604090209450611bae565b600082815260208690526040902094505b5050600101611b60565b505060805250505050565b60ff811661038002610184810190369061050401811015611c66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f61746100000000000000000000000000000000000000000000000000000000006064820152608401610894565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cd2611cd7565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611d0857600080fd5b50813567ffffffffffffffff811115611d2057600080fd5b602083019150836020828501011115611d3857600080fd5b9250929050565b60008060008060408587031215611d5557600080fd5b843567ffffffffffffffff80821115611d6d57600080fd5b611d7988838901611cf6565b90965094506020870135915080821115611d9257600080fd5b50611d9f87828801611cf6565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611ded57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a",
} }
// MIPSABI is the input ABI used to generate the binding from. // MIPSABI is the input ABI used to generate the binding from.
......
...@@ -13,9 +13,9 @@ const MIPSStorageLayoutJSON = "{\"storage\":null,\"types\":{}}" ...@@ -13,9 +13,9 @@ const MIPSStorageLayoutJSON = "{\"storage\":null,\"types\":{}}"
var MIPSStorageLayout = new(solc.StorageLayout) var MIPSStorageLayout = new(solc.StorageLayout)
var MIPSDeployedBin = "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063155633fe146100465780637dc0d1d01461006b578063f8e0cb96146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d46565b6100d0565b604051908152602001610062565b60006100da611c73565b608081146100e757600080fd5b604051610600146100f757600080fd5b6064861461010457600080fd5b610184841461011257600080fd5b8535608052602086013560a052604086013560e090811c60c09081526044880135821c82526048880135821c61010052604c880135821c610120526050880135821c61014052605488013590911c61016052605887013560f890811c610180526059880135901c6101a052605a870135901c6101c0526102006101e0819052606287019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d3610619565b915050610611565b6101408101805160010167ffffffffffffffff16905260608101516000906102039082610755565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff1682610811565b945050505050610611565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611db2565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611db2565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff16601061090b565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611db2565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f68587848761097e565b975050505050505050610611565b63ffffffff6000602087831610610469576104248861ffff16601061090b565b9095019463fffffffc861661043a816001610755565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b8e565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058a578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b89610811565b9b505050505050505050505050610611565b8063ffffffff16600a03610525576104f3858963ffffffff8a1615611312565b8063ffffffff16600b03610546576104f3858963ffffffff8a161515611312565b8063ffffffff16600c0361055c576104f36113f8565b60108163ffffffff16101580156105795750601c8163ffffffff16105b1561058a576104f38189898861192c565b8863ffffffff1660381480156105a5575063ffffffff861615155b156105da5760018b61016001518763ffffffff16602081106105c9576105c9611db2565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f7576105f784600184611b26565b61060385836001611312565b9b5050505050505050505050505b949350505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019160f890811c91901c855b60208110156106bf57601c860151845260209095019460049093019260010161069b565b506000835283830384a0610711565b600081600181146106e2576003915061070a565b8380156106fa57600181146107035760029250610708565b60009250610708565b600192505b505b5092915050565b61071b82826106ce565b928490039093207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89290921b91909117949350505050565b60008061076183611bca565b9050600384161561077157600080fd5b6020810190358460051c8160005b601b8110156107d75760208501943583821c60011680156107a757600181146107bc576107cd565b600084815260208390526040902093506107cd565b600082815260208590526040902093505b505060010161077f565b5060805191508181146107f257630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b600061081b611c73565b60809050806060015160040163ffffffff16816080015163ffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108fa57806008018261016001518663ffffffff16602081106108e9576108e9611db2565b63ffffffff90921660209290920201525b610902610619565b95945050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b018261096857600061096a565b815b90861663ffffffff16179250505092915050565b6000610988611c73565b608090506000816060015160040163ffffffff16826080015163ffffffff1614610a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f74000000000000000000000000604482015260640161089b565b8663ffffffff1660041480610a2957508663ffffffff166005145b15610aa55760008261016001518663ffffffff1660208110610a4d57610a4d611db2565b602002015190508063ffffffff168563ffffffff16148015610a7557508763ffffffff166004145b80610a9d57508063ffffffff168563ffffffff1614158015610a9d57508763ffffffff166005145b915050610b22565b8663ffffffff16600603610ac25760008460030b13159050610b22565b8663ffffffff16600703610ade5760008460030b139050610b22565b8663ffffffff16600103610b2257601f601087901c166000819003610b075760008560030b1291505b8063ffffffff16600103610b205760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b68576002610b4d8861ffff16601061090b565b63ffffffff90811690911b8201600401166080840152610b7a565b60808301805160040163ffffffff1690525b610b82610619565b98975050505050505050565b6000603f601a86901c16801580610bbd575060088163ffffffff1610158015610bbd5750600f8163ffffffff16105b1561101357603f86168160088114610c045760098114610c0d57600a8114610c1657600b8114610c1f57600c8114610c2857600d8114610c3157600e8114610c3a57610c3f565b60209150610c3f565b60219150610c3f565b602a9150610c3f565b602b9150610c3f565b60249150610c3f565b60259150610c3f565b602691505b508063ffffffff16600003610c665750505063ffffffff8216601f600686901c161b610611565b8063ffffffff16600203610c8c5750505063ffffffff8216601f600686901c161c610611565b8063ffffffff16600303610cc257601f600688901c16610cb863ffffffff8716821c602083900361090b565b9350505050610611565b8063ffffffff16600403610ce45750505063ffffffff8216601f84161b610611565b8063ffffffff16600603610d065750505063ffffffff8216601f84161c610611565b8063ffffffff16600703610d3957610d308663ffffffff168663ffffffff16901c8760200361090b565b92505050610611565b8063ffffffff16600803610d51578592505050610611565b8063ffffffff16600903610d69578592505050610611565b8063ffffffff16600a03610d81578592505050610611565b8063ffffffff16600b03610d99578592505050610611565b8063ffffffff16600c03610db1578592505050610611565b8063ffffffff16600f03610dc9578592505050610611565b8063ffffffff16601003610de1578592505050610611565b8063ffffffff16601103610df9578592505050610611565b8063ffffffff16601203610e11578592505050610611565b8063ffffffff16601303610e29578592505050610611565b8063ffffffff16601803610e41578592505050610611565b8063ffffffff16601903610e59578592505050610611565b8063ffffffff16601a03610e71578592505050610611565b8063ffffffff16601b03610e89578592505050610611565b8063ffffffff16602003610ea257505050828201610611565b8063ffffffff16602103610ebb57505050828201610611565b8063ffffffff16602203610ed457505050818303610611565b8063ffffffff16602303610eed57505050818303610611565b8063ffffffff16602403610f0657505050828216610611565b8063ffffffff16602503610f1f57505050828217610611565b8063ffffffff16602603610f3857505050828218610611565b8063ffffffff16602703610f525750505082821719610611565b8063ffffffff16602a03610f83578460030b8660030b12610f74576000610f77565b60015b60ff1692505050610611565b8063ffffffff16602b03610fab578463ffffffff168663ffffffff1610610f74576000610f77565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e00000000000000000000000000604482015260640161089b565b50610fab565b8063ffffffff16601c0361109757603f8616600281900361103957505050828202610611565b8063ffffffff166020148061105457508063ffffffff166021145b1561100d578063ffffffff1660200361106b579419945b60005b638000000087161561108d576401fffffffe600197881b16960161106e565b9250610611915050565b8063ffffffff16600f036110b957505065ffffffff0000601083901b16610611565b8063ffffffff166020036110ed576101d38560031660080260180363ffffffff168463ffffffff16901c60ff16600861090b565b8063ffffffff16602103611122576101d38560021660080260100363ffffffff168463ffffffff16901c61ffff16601061090b565b8063ffffffff1660220361115157505063ffffffff60086003851602811681811b198416918316901b17610611565b8063ffffffff166023036111685782915050610611565b8063ffffffff1660240361119a578460031660080260180363ffffffff168363ffffffff16901c60ff16915050610611565b8063ffffffff166025036111cd578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050610611565b8063ffffffff166026036111ff57505063ffffffff60086003851602601803811681811c198416918316901c17610611565b8063ffffffff1660280361123557505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17610611565b8063ffffffff1660290361126c57505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17610611565b8063ffffffff16602a0361129b57505063ffffffff60086003851602811681811c198316918416901c17610611565b8063ffffffff16602b036112b25783915050610611565b8063ffffffff16602e036112e457505063ffffffff60086003851602601803811681811b198316918416901b17610611565b8063ffffffff166030036112fb5782915050610611565b8063ffffffff16603803610fab5783915050610611565b600061131c611c73565b506080602063ffffffff86161061138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c6964207265676973746572000000000000000000000000000000000000604482015260640161089b565b63ffffffff8516158015906113a15750825b156113d557838161016001518663ffffffff16602081106113c4576113c4611db2565b63ffffffff90921660209290920201525b60808101805163ffffffff80821660608501526004909101169052610902610619565b6000611402611c73565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa0361147c5781610fff81161561144b57610fff811661100003015b8363ffffffff166000036114725760e08801805163ffffffff838201169091529550611476565b8395505b506118eb565b8563ffffffff16610fcd0361149757634000000094506118eb565b8563ffffffff16611018036114af57600194506118eb565b8563ffffffff16611096036114e457600161012088015260ff83166101008801526114d8610619565b97505050505050505090565b8563ffffffff16610fa30361174e5763ffffffff8316156118eb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff84160161170857600061153f8363fffffffc166001610755565b60208901519091508060001a6001036115ac576115a981600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b90505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa15801561164d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116719190611de1565b91509150600386168060040382811015611689578092505b5081861015611696578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116ed8663fffffffc16600186611b26565b60408b018051820163ffffffff169052975061174992505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff84160161173d578094506118eb565b63ffffffff9450600993505b6118eb565b8563ffffffff16610fa40361183f5763ffffffff831660011480611778575063ffffffff83166002145b80611789575063ffffffff83166004145b15611796578094506118eb565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff84160161173d5760006117d68363fffffffc166001610755565b602089015190915060038416600403838110156117f1578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118eb565b8563ffffffff16610fd7036118eb578163ffffffff166003036118df5763ffffffff83161580611875575063ffffffff83166005145b80611886575063ffffffff83166003145b1561189457600094506118eb565b63ffffffff8316600114806118af575063ffffffff83166002145b806118c0575063ffffffff83166006145b806118d1575063ffffffff83166004145b1561173d57600194506118eb565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114d8610619565b6000611936611c73565b506080600063ffffffff8716601003611954575060c0810151611abd565b8663ffffffff166011036119735763ffffffff861660c0830152611abd565b8663ffffffff1660120361198c575060a0810151611abd565b8663ffffffff166013036119ab5763ffffffff861660a0830152611abd565b8663ffffffff166018036119df5763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611abd565b8663ffffffff16601903611a105763ffffffff86811681871602602081901c821660c08501521660a0830152611abd565b8663ffffffff16601a03611a66578460030b8660030b81611a3357611a33611e05565b0763ffffffff1660c0830152600385810b9087900b81611a5557611a55611e05565b0563ffffffff1660a0830152611abd565b8663ffffffff16601b03611abd578463ffffffff168663ffffffff1681611a8f57611a8f611e05565b0663ffffffff90811660c084015285811690871681611ab057611ab0611e05565b0463ffffffff1660a08301525b63ffffffff841615611af857808261016001518563ffffffff1660208110611ae757611ae7611db2565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b1b610619565b979650505050505050565b6000611b3183611bca565b90506003841615611b4157600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611bbf5760208401933582821c6001168015611b8f5760018114611ba457611bb5565b60008581526020839052604090209450611bb5565b600082815260208690526040902094505b5050600101611b67565b505060805250505050565b60ff811661038002610184810190369061050401811015611c6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f6174610000000000000000000000000000000000000000000000000000000000606482015260840161089b565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cd9611cde565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611d0f57600080fd5b50813567ffffffffffffffff811115611d2757600080fd5b602083019150836020828501011115611d3f57600080fd5b9250929050565b60008060008060408587031215611d5c57600080fd5b843567ffffffffffffffff80821115611d7457600080fd5b611d8088838901611cfd565b90965094506020870135915080821115611d9957600080fd5b50611da687828801611cfd565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611df457600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a" var MIPSDeployedBin = "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063155633fe146100465780637dc0d1d01461006b578063f8e0cb96146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d3f565b6100d0565b604051908152602001610062565b60006100da611c6c565b608081146100e757600080fd5b604051610600146100f757600080fd5b6064861461010457600080fd5b610184841461011257600080fd5b8535608052602086013560a052604086013560e090811c60c09081526044880135821c82526048880135821c61010052604c880135821c610120526050880135821c61014052605488013590911c61016052605887013560f890811c610180526059880135901c6101a052605a870135901c6101c0526102006101e0819052606287019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d3610619565b915050610611565b6101408101805160010167ffffffffffffffff1690526060810151600090610203908261074e565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff168261080a565b945050505050610611565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611dab565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611dab565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff166010610904565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611dab565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f685878487610977565b975050505050505050610611565b63ffffffff6000602087831610610469576104248861ffff166010610904565b9095019463fffffffc861661043a81600161074e565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b87565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058a578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b8961080a565b9b505050505050505050505050610611565b8063ffffffff16600a03610525576104f3858963ffffffff8a161561130b565b8063ffffffff16600b03610546576104f3858963ffffffff8a16151561130b565b8063ffffffff16600c0361055c576104f36113f1565b60108163ffffffff16101580156105795750601c8163ffffffff16105b1561058a576104f381898988611925565b8863ffffffff1660381480156105a5575063ffffffff861615155b156105da5760018b61016001518763ffffffff16602081106105c9576105c9611dab565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f7576105f784600184611b1f565b6106038583600161130b565b9b5050505050505050505050505b949350505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b60208110156106b857601c8601518452602090950194600490930192600101610694565b506000835283830384a061070a565b600081600181146106db5760039150610703565b8380156106f357600181146106fc5760029250610701565b60009250610701565b600192505b505b5092915050565b61071482826106c7565b928490039093207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89290921b91909117949350505050565b60008061075a83611bc3565b9050600384161561076a57600080fd5b6020810190358460051c8160005b601b8110156107d05760208501943583821c60011680156107a057600181146107b5576107c6565b600084815260208390526040902093506107c6565b600082815260208590526040902093505b5050600101610778565b5060805191508181146107eb57630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b6000610814611c6c565b60809050806060015160040163ffffffff16816080015163ffffffff161461089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108f357806008018261016001518663ffffffff16602081106108e2576108e2611dab565b63ffffffff90921660209290920201525b6108fb610619565b95945050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b0182610961576000610963565b815b90861663ffffffff16179250505092915050565b6000610981611c6c565b608090506000816060015160040163ffffffff16826080015163ffffffff1614610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f740000000000000000000000006044820152606401610894565b8663ffffffff1660041480610a2257508663ffffffff166005145b15610a9e5760008261016001518663ffffffff1660208110610a4657610a46611dab565b602002015190508063ffffffff168563ffffffff16148015610a6e57508763ffffffff166004145b80610a9657508063ffffffff168563ffffffff1614158015610a9657508763ffffffff166005145b915050610b1b565b8663ffffffff16600603610abb5760008460030b13159050610b1b565b8663ffffffff16600703610ad75760008460030b139050610b1b565b8663ffffffff16600103610b1b57601f601087901c166000819003610b005760008560030b1291505b8063ffffffff16600103610b195760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b61576002610b468861ffff166010610904565b63ffffffff90811690911b8201600401166080840152610b73565b60808301805160040163ffffffff1690525b610b7b610619565b98975050505050505050565b6000603f601a86901c16801580610bb6575060088163ffffffff1610158015610bb65750600f8163ffffffff16105b1561100c57603f86168160088114610bfd5760098114610c0657600a8114610c0f57600b8114610c1857600c8114610c2157600d8114610c2a57600e8114610c3357610c38565b60209150610c38565b60219150610c38565b602a9150610c38565b602b9150610c38565b60249150610c38565b60259150610c38565b602691505b508063ffffffff16600003610c5f5750505063ffffffff8216601f600686901c161b610611565b8063ffffffff16600203610c855750505063ffffffff8216601f600686901c161c610611565b8063ffffffff16600303610cbb57601f600688901c16610cb163ffffffff8716821c6020839003610904565b9350505050610611565b8063ffffffff16600403610cdd5750505063ffffffff8216601f84161b610611565b8063ffffffff16600603610cff5750505063ffffffff8216601f84161c610611565b8063ffffffff16600703610d3257610d298663ffffffff168663ffffffff16901c87602003610904565b92505050610611565b8063ffffffff16600803610d4a578592505050610611565b8063ffffffff16600903610d62578592505050610611565b8063ffffffff16600a03610d7a578592505050610611565b8063ffffffff16600b03610d92578592505050610611565b8063ffffffff16600c03610daa578592505050610611565b8063ffffffff16600f03610dc2578592505050610611565b8063ffffffff16601003610dda578592505050610611565b8063ffffffff16601103610df2578592505050610611565b8063ffffffff16601203610e0a578592505050610611565b8063ffffffff16601303610e22578592505050610611565b8063ffffffff16601803610e3a578592505050610611565b8063ffffffff16601903610e52578592505050610611565b8063ffffffff16601a03610e6a578592505050610611565b8063ffffffff16601b03610e82578592505050610611565b8063ffffffff16602003610e9b57505050828201610611565b8063ffffffff16602103610eb457505050828201610611565b8063ffffffff16602203610ecd57505050818303610611565b8063ffffffff16602303610ee657505050818303610611565b8063ffffffff16602403610eff57505050828216610611565b8063ffffffff16602503610f1857505050828217610611565b8063ffffffff16602603610f3157505050828218610611565b8063ffffffff16602703610f4b5750505082821719610611565b8063ffffffff16602a03610f7c578460030b8660030b12610f6d576000610f70565b60015b60ff1692505050610611565b8063ffffffff16602b03610fa4578463ffffffff168663ffffffff1610610f6d576000610f70565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e000000000000000000000000006044820152606401610894565b50610fa4565b8063ffffffff16601c0361109057603f8616600281900361103257505050828202610611565b8063ffffffff166020148061104d57508063ffffffff166021145b15611006578063ffffffff16602003611064579419945b60005b6380000000871615611086576401fffffffe600197881b169601611067565b9250610611915050565b8063ffffffff16600f036110b257505065ffffffff0000601083901b16610611565b8063ffffffff166020036110e6576101d38560031660080260180363ffffffff168463ffffffff16901c60ff166008610904565b8063ffffffff1660210361111b576101d38560021660080260100363ffffffff168463ffffffff16901c61ffff166010610904565b8063ffffffff1660220361114a57505063ffffffff60086003851602811681811b198416918316901b17610611565b8063ffffffff166023036111615782915050610611565b8063ffffffff16602403611193578460031660080260180363ffffffff168363ffffffff16901c60ff16915050610611565b8063ffffffff166025036111c6578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050610611565b8063ffffffff166026036111f857505063ffffffff60086003851602601803811681811c198416918316901c17610611565b8063ffffffff1660280361122e57505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17610611565b8063ffffffff1660290361126557505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17610611565b8063ffffffff16602a0361129457505063ffffffff60086003851602811681811c198316918416901c17610611565b8063ffffffff16602b036112ab5783915050610611565b8063ffffffff16602e036112dd57505063ffffffff60086003851602601803811681811b198316918416901b17610611565b8063ffffffff166030036112f45782915050610611565b8063ffffffff16603803610fa45783915050610611565b6000611315611c6c565b506080602063ffffffff861610611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c69642072656769737465720000000000000000000000000000000000006044820152606401610894565b63ffffffff85161580159061139a5750825b156113ce57838161016001518663ffffffff16602081106113bd576113bd611dab565b63ffffffff90921660209290920201525b60808101805163ffffffff808216606085015260049091011690526108fb610619565b60006113fb611c6c565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa036114755781610fff81161561144457610fff811661100003015b8363ffffffff1660000361146b5760e08801805163ffffffff83820116909152955061146f565b8395505b506118e4565b8563ffffffff16610fcd0361149057634000000094506118e4565b8563ffffffff16611018036114a857600194506118e4565b8563ffffffff16611096036114dd57600161012088015260ff83166101008801526114d1610619565b97505050505050505090565b8563ffffffff16610fa3036117475763ffffffff8316156118e4577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016117015760006115388363fffffffc16600161074e565b60208901519091508060001a6001036115a5576115a281600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b90505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190611dda565b91509150600386168060040382811015611682578092505b508186101561168f578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116e68663fffffffc16600186611b1f565b60408b018051820163ffffffff169052975061174292505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff841601611736578094506118e4565b63ffffffff9450600993505b6118e4565b8563ffffffff16610fa4036118385763ffffffff831660011480611771575063ffffffff83166002145b80611782575063ffffffff83166004145b1561178f578094506118e4565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff8416016117365760006117cf8363fffffffc16600161074e565b602089015190915060038416600403838110156117ea578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118e4565b8563ffffffff16610fd7036118e4578163ffffffff166003036118d85763ffffffff8316158061186e575063ffffffff83166005145b8061187f575063ffffffff83166003145b1561188d57600094506118e4565b63ffffffff8316600114806118a8575063ffffffff83166002145b806118b9575063ffffffff83166006145b806118ca575063ffffffff83166004145b1561173657600194506118e4565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114d1610619565b600061192f611c6c565b506080600063ffffffff871660100361194d575060c0810151611ab6565b8663ffffffff1660110361196c5763ffffffff861660c0830152611ab6565b8663ffffffff16601203611985575060a0810151611ab6565b8663ffffffff166013036119a45763ffffffff861660a0830152611ab6565b8663ffffffff166018036119d85763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611ab6565b8663ffffffff16601903611a095763ffffffff86811681871602602081901c821660c08501521660a0830152611ab6565b8663ffffffff16601a03611a5f578460030b8660030b81611a2c57611a2c611dfe565b0763ffffffff1660c0830152600385810b9087900b81611a4e57611a4e611dfe565b0563ffffffff1660a0830152611ab6565b8663ffffffff16601b03611ab6578463ffffffff168663ffffffff1681611a8857611a88611dfe565b0663ffffffff90811660c084015285811690871681611aa957611aa9611dfe565b0463ffffffff1660a08301525b63ffffffff841615611af157808261016001518563ffffffff1660208110611ae057611ae0611dab565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611b14610619565b979650505050505050565b6000611b2a83611bc3565b90506003841615611b3a57600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611bb85760208401933582821c6001168015611b885760018114611b9d57611bae565b60008581526020839052604090209450611bae565b600082815260208690526040902094505b5050600101611b60565b505060805250505050565b60ff811661038002610184810190369061050401811015611c66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f61746100000000000000000000000000000000000000000000000000000000006064820152608401610894565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cd2611cd7565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611d0857600080fd5b50813567ffffffffffffffff811115611d2057600080fd5b602083019150836020828501011115611d3857600080fd5b9250929050565b60008060008060408587031215611d5557600080fd5b843567ffffffffffffffff80821115611d6d57600080fd5b611d7988838901611cf6565b90965094506020870135915080821115611d9257600080fd5b50611d9f87828801611cf6565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611ded57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a"
var MIPSDeployedSourceMap = "1131:39657:105:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:45;;1745:10;1710:45;;;;;188:10:257;176:23;;;158:42;;146:2;131:18;1710:45:105;;;;;;;;2448:99;;;412:42:257;2534:6:105;400:55:257;382:74;;370:2;355:18;2448:99:105;211:251:257;25668:6339:105;;;;;;:::i;:::-;;:::i;:::-;;;1687:25:257;;;1675:2;1660:18;25668:6339:105;1541:177:257;25668:6339:105;25746:7;25789:18;;:::i;:::-;25936:4;25929:5;25926:15;25916:134;;26030:1;26027;26020:12;25916:134;26086:4;26080:11;26093;26077:28;26067:137;;26184:1;26181;26174:12;26067:137;26252:3;26234:16;26231:25;26221:150;;26351:1;26348;26341:12;26221:150;26415:3;26401:12;26398:21;26388:145;;26513:1;26510;26503:12;26388:145;26793:24;;27137:4;26839:20;27195:2;26897:21;;26793:24;26955:18;26839:20;26897:21;;;26793:24;26770:21;26766:52;;;26955:18;26839:20;;;26897:21;;;26793:24;26766:52;;26839:20;;26897:21;;;26793:24;26766:52;;26955:18;26839:20;26897:21;;;26793:24;26766:52;;26955:18;26839:20;26897:21;;;26793:24;26766:52;;26955:18;26839:20;26897:21;;;26793:24;26766:52;;;26955:18;26839:20;26897:21;;;26793:24;26770:21;26766:52;;;26955:18;26839:20;26897:21;;;26793:24;26766:52;;26955:18;26839:20;26897:21;;;26793:24;26766:52;;26955:18;26839:20;27813:10;26955:18;27803:21;;;26897;;;;27911:1;27896:77;27921:2;27918:1;27915:9;27896:77;;;26793:24;;26770:21;26766:52;26839:20;;27969:1;26897:21;;;;26781:2;26955:18;;;;27939:1;27932:9;27896:77;;;27900:14;;;28051:5;:12;;;28047:71;;;28090:13;:11;:13::i;:::-;28083:20;;;;;28047:71;28132:10;;;:15;;28146:1;28132:15;;;;;28217:8;;;;-1:-1:-1;;28209:20:105;;-1:-1:-1;28209:7:105;:20::i;:::-;28195:34;-1:-1:-1;28259:10:105;28267:2;28259:10;;;;28336:1;28326:11;;;:26;;;28341:6;:11;;28351:1;28341:11;28326:26;28322:310;;;28482:13;28551:1;28529:4;28536:10;28529:17;28528:24;;;;28499:5;:12;;;28514:10;28499:25;28498:54;28482:70;;28577:40;28588:6;:11;;28598:1;28588:11;:20;;28606:2;28588:20;;;28602:1;28588:20;28577:40;;28610:6;28577:10;:40::i;:::-;28570:47;;;;;;;;28322:310;28881:15;;;;28676:9;;;;28813:4;28807:2;28799:10;;;28798:19;;;28881:15;28906:2;28898:10;;;28897:19;28881:36;;;;;;;:::i;:::-;;;;;;-1:-1:-1;28946:5:105;28970:11;;;;;:29;;;28985:6;:14;;28995:4;28985:14;28970:29;28966:832;;;29062:5;:15;;;29078:5;29062:22;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;29125:4:105;29119:2;29111:10;;;29110:19;28966:832;;;29163:4;29154:6;:13;;;29150:648;;;29284:6;:13;;29294:3;29284:13;:30;;;;29301:6;:13;;29311:3;29301:13;29284:30;:47;;;;29318:6;:13;;29328:3;29318:13;29284:47;29280:253;;;29394:4;29401:6;29394:13;29389:18;;29150:648;;29280:253;29493:21;29496:4;29503:6;29496:13;29511:2;29493;:21::i;:::-;29488:26;;29150:648;;;29567:4;29557:6;:14;;;;:32;;;;29575:6;:14;;29585:4;29575:14;29557:32;:50;;;;29593:6;:14;;29603:4;29593:14;29557:50;29553:245;;;29677:5;:15;;;29693:5;29677:22;;;;;;;;;:::i;:::-;;;;;29672:27;;29778:5;29770:13;;29553:245;29827:1;29817:6;:11;;;;:25;;;;;29841:1;29832:6;:10;;;29817:25;29816:42;;;;29847:6;:11;;29857:1;29847:11;29816:42;29812:125;;;29885:37;29898:6;29906:4;29912:5;29919:2;29885:12;:37::i;:::-;29878:44;;;;;;;;;;;29812:125;29970:13;29951:16;30122:4;30112:14;;;;30108:446;;30191:21;30194:4;30201:6;30194:13;30209:2;30191;:21::i;:::-;30185:27;;;;30249:10;30244:15;;30283:16;30244:15;30297:1;30283:7;:16::i;:::-;30277:22;;30331:4;30321:6;:14;;;;:32;;;;;30339:6;:14;;30349:4;30339:14;;30321:32;30317:223;;;30418:4;30406:16;;30520:1;30512:9;;30317:223;30128:426;30108:446;30587:10;30600:26;30608:4;30614:2;30618;30622:3;30600:7;:26::i;:::-;30629:10;30600:39;;;;-1:-1:-1;30725:4:105;30718:11;;;30757;;;:24;;;;;30780:1;30772:4;:9;;;;30757:24;:39;;;;;30792:4;30785;:11;;;30757:39;30753:847;;;30820:4;:9;;30828:1;30820:9;:22;;;;30833:4;:9;;30841:1;30833:9;30820:22;30816:144;;;30904:37;30915:4;:9;;30923:1;30915:9;:21;;30931:5;30915:21;;;30927:1;30915:21;30938:2;30904:10;:37::i;:::-;30897:44;;;;;;;;;;;;;;;30816:144;30982:4;:11;;30990:3;30982:11;30978:121;;31052:28;31061:5;31068:2;31072:7;;;;31052:8;:28::i;30978:121::-;31120:4;:11;;31128:3;31120:11;31116:121;;31190:28;31199:5;31206:2;31210:7;;;;;31190:8;:28::i;31116:121::-;31307:4;:11;;31315:3;31307:11;31303:80;;31349:15;:13;:15::i;31303:80::-;31486:4;31478;:12;;;;:27;;;;;31501:4;31494;:11;;;31478:27;31474:112;;;31536:31;31547:4;31553:2;31557;31561:5;31536:10;:31::i;31474:112::-;31660:6;:14;;31670:4;31660:14;:28;;;;-1:-1:-1;31678:10:105;;;;;31660:28;31656:93;;;31733:1;31708:5;:15;;;31724:5;31708:22;;;;;;;;;:::i;:::-;:26;;;;:22;;;;;;:26;31656:93;31795:9;:26;;31808:13;31795:26;31791:92;;31841:27;31850:9;31861:1;31864:3;31841:8;:27::i;:::-;31964:26;31973:5;31980:3;31985:4;31964:8;:26::i;:::-;31957:33;;;;;;;;;;;;;25668:6339;;;;;;;:::o;3092:2447::-;3639:4;3633:11;;3555:4;3358:31;3347:43;;3418:13;3358:31;3757:2;3457:13;;3347:43;3364:24;3358:31;3457:13;;;3347:43;;;;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3418:13;4194:11;3364:24;3358:31;3457:13;;;3347:43;3418:13;4299:11;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3133:12;;4440:13;;3633:11;;3457:13;;;;4189:3;4185:21;;;;4290;;3133:12;4520:84;4545:2;4542:1;4539:9;4520:84;;;3374:13;3364:24;;3358:31;3347:43;;3378:2;3418:13;;;;4600:1;3457:13;;;;4563:1;4556:9;4520:84;;;4524:14;4667:1;4663:2;4656:13;4762:5;4758:2;4754:14;4747:5;4742:27;4783:500;;;4824:7;4857;4886:1;4881:309;;;;5266:1;5255:12;;4850:419;;4881:309;4917:9;4984:23;;;;5072:1;5067:23;;;;5169:1;5158:12;;4910:262;;4984:23;5004:1;4993:12;;4984:23;;5067;5087:1;5076:12;;4910:262;;4850:419;;4783:500;;;;:::o;:::-;5310:26;5327:8;5319:6;5310:26;:::i;:::-;5435:14;;;;5418:32;;;5496:19;5492:30;5504:3;5474:16;;;;5471:52;;;;;;-1:-1:-1;;;;3092:2447:105:o;21723:1831::-;21796:11;21907:14;21924:24;21936:11;21924;:24::i;:::-;21907:41;;22056:1;22049:5;22045:13;22042:33;;;22071:1;22068;22061:12;22042:33;22204:2;22192:15;;;22145:20;22634:5;22631:1;22627:13;22669:4;22705:1;22690:343;22715:2;22712:1;22709:9;22690:343;;;22838:2;22826:15;;;22775:20;22873:12;;;22887:1;22869:20;22910:42;;;;22978:1;22973:42;;;;22862:153;;22910:42;22368:1;22361:12;;;22401:2;22394:13;;;22446:2;22433:16;;22919:31;;22910:42;;22973;22368:1;22361:12;;;22401:2;22394:13;;;22446:2;22433:16;;22982:31;;22862:153;-1:-1:-1;;22733:1:105;22726:9;22690:343;;;22694:14;23143:4;23137:11;23122:26;;23229:7;23223:4;23220:17;23210:124;;23271:10;23268:1;23261:21;23313:2;23310:1;23303:13;23210:124;-1:-1:-1;;23461:2:105;23450:14;;;;23438:10;23434:31;23431:1;23427:39;23495:16;;;;23513:10;23491:33;;21723:1831;-1:-1:-1;;;21723:1831:105:o;18833:823::-;18902:12;18989:18;;:::i;:::-;19057:4;19048:13;;19109:5;:8;;;19120:1;19109:12;19093:28;;:5;:12;;;:28;;;19089:95;;19141:28;;;;;2114:2:257;19141:28:105;;;2096:21:257;2153:2;2133:18;;;2126:30;2192:20;2172:18;;;2165:48;2230:18;;19141:28:105;;;;;;;;19089:95;19273:8;;;;;19306:12;;;;;19295:23;;;;;;;19332:20;;;;;19273:8;19464:13;;;19460:90;;19525:6;19534:1;19525:10;19497:5;:15;;;19513:8;19497:25;;;;;;;;;:::i;:::-;:38;;;;:25;;;;;;:38;19460:90;19626:13;:11;:13::i;:::-;19619:20;18833:823;-1:-1:-1;;;;;18833:823:105:o;2645:339::-;2706:11;2770:18;;;;2779:8;;;;2770:18;;;;;;2769:25;;;;;2786:1;2833:2;:9;;;2827:16;;;;;2826:22;;2825:32;;;;;;;2887:9;;2886:15;2769:25;2944:21;;2964:1;2944:21;;;2955:6;2944:21;2929:11;;;;;:37;;-1:-1:-1;;;2645:339:105;;;;:::o;13694:2026::-;13791:12;13877:18;;:::i;:::-;13945:4;13936:13;;13977:17;14037:5;:8;;;14048:1;14037:12;14021:28;;:5;:12;;;:28;;;14017:97;;14069:30;;;;;2461:2:257;14069:30:105;;;2443:21:257;2500:2;2480:18;;;2473:30;2539:22;2519:18;;;2512:50;2579:18;;14069:30:105;2259:344:257;14017:97:105;14184:7;:12;;14195:1;14184:12;:28;;;;14200:7;:12;;14211:1;14200:12;14184:28;14180:947;;;14232:9;14244:5;:15;;;14260:6;14244:23;;;;;;;;;:::i;:::-;;;;;14232:35;;14308:2;14301:9;;:3;:9;;;:25;;;;;14314:7;:12;;14325:1;14314:12;14301:25;14300:58;;;;14339:2;14332:9;;:3;:9;;;;:25;;;;;14345:7;:12;;14356:1;14345:12;14332:25;14285:73;;14214:159;14180:947;;;14470:7;:12;;14481:1;14470:12;14466:661;;14531:1;14523:3;14517:15;;;;14502:30;;14466:661;;;14635:7;:12;;14646:1;14635:12;14631:496;;14695:1;14688:3;14682:14;;;14667:29;;14631:496;;;14816:7;:12;;14827:1;14816:12;14812:315;;14904:4;14898:2;14889:11;;;14888:20;14874:10;14931:8;;;14927:84;;14991:1;14984:3;14978:14;;;14963:29;;14927:84;15032:3;:8;;15039:1;15032:8;15028:85;;15093:1;15085:3;15079:15;;;;15064:30;;15028:85;14830:297;14812:315;15203:8;;;;;15281:12;;;;15270:23;;;;;15437:178;;;;15528:1;15502:22;15505:5;15513:6;15505:14;15521:2;15502;:22::i;:::-;:27;;;;;;;15488:42;;15497:1;15488:42;15473:57;:12;;;:57;15437:178;;;15584:12;;;;;15599:1;15584:16;15569:31;;;;15437:178;15690:13;:11;:13::i;:::-;15683:20;13694:2026;-1:-1:-1;;;;;;;;13694:2026:105:o;32053:8733::-;32140:10;32202;32210:2;32202:10;;;;32241:11;;;:44;;;32267:1;32257:6;:11;;;;:27;;;;;32281:3;32272:6;:12;;;32257:27;32237:8490;;;32326:4;32319:11;;32450:6;32510:3;32505:25;;;;32585:3;32580:25;;;;32659:3;32654:25;;;;32734:3;32729:25;;;;32808:3;32803:25;;;;32881:3;32876:25;;;;32955:3;32950:25;;;;32443:532;;32505:25;32524:4;32516:12;;32505:25;;32580;32599:4;32591:12;;32580:25;;32654;32673:4;32665:12;;32654:25;;32729;32748:4;32740:12;;32729:25;;32803;32822:4;32814:12;;32803:25;;32876;32895:4;32887:12;;32876:25;;32950;32969:4;32961:12;;32443:532;;33038:4;:12;;33046:4;33038:12;33034:4023;;-1:-1:-1;;;33089:9:105;33081:26;;33102:4;33097:1;33089:9;;;33088:18;33081:26;33074:33;;33034:4023;33175:4;:12;;33183:4;33175:12;33171:3886;;-1:-1:-1;;;33226:9:105;33218:26;;33239:4;33234:1;33226:9;;;33225:18;33218:26;33211:33;;33171:3886;33312:4;:12;;33320:4;33312:12;33308:3749;;33377:4;33372:1;33364:9;;;33363:18;33410:27;33364:9;33413:11;;;;33426:2;:10;;;33410:2;:27::i;:::-;33403:34;;;;;;;33308:3749;33506:4;:12;;33514:4;33506:12;33502:3555;;-1:-1:-1;;;33549:17:105;;;33561:4;33556:9;;33549:17;33542:24;;33502:3555;33635:4;:11;;33643:3;33635:11;33631:3426;;-1:-1:-1;;;33677:17:105;;;33689:4;33684:9;;33677:17;33670:24;;33631:3426;33763:4;:12;;33771:4;33763:12;33759:3298;;33806:21;33815:2;33809:8;;:2;:8;;;;33824:2;33819;:7;33806:2;:21::i;:::-;33799:28;;;;;;33759:3298;34076:4;:12;;34084:4;34076:12;34072:2985;;34119:2;34112:9;;;;;;34072:2985;34190:4;:12;;34198:4;34190:12;34186:2871;;34233:2;34226:9;;;;;;34186:2871;34304:4;:12;;34312:4;34304:12;34300:2757;;34347:2;34340:9;;;;;;34300:2757;34418:4;:12;;34426:4;34418:12;34414:2643;;34461:2;34454:9;;;;;;34414:2643;34535:4;:12;;34543:4;34535:12;34531:2526;;34578:2;34571:9;;;;;;34531:2526;34695:4;:12;;34703:4;34695:12;34691:2366;;34738:2;34731:9;;;;;;34691:2366;34809:4;:12;;34817:4;34809:12;34805:2252;;34852:2;34845:9;;;;;;34805:2252;34923:4;:12;;34931:4;34923:12;34919:2138;;34966:2;34959:9;;;;;;34919:2138;35037:4;:12;;35045:4;35037:12;35033:2024;;35080:2;35073:9;;;;;;35033:2024;35151:4;:12;;35159:4;35151:12;35147:1910;;35194:2;35187:9;;;;;;35147:1910;35265:4;:12;;35273:4;35265:12;35261:1796;;35308:2;35301:9;;;;;;35261:1796;35380:4;:12;;35388:4;35380:12;35376:1681;;35423:2;35416:9;;;;;;35376:1681;35493:4;:12;;35501:4;35493:12;35489:1568;;35536:2;35529:9;;;;;;35489:1568;35607:4;:12;;35615:4;35607:12;35603:1454;;35650:2;35643:9;;;;;;35603:1454;35799:4;:12;;35807:4;35799:12;35795:1262;;-1:-1:-1;;;35843:7:105;;;35835:16;;35795:1262;35920:4;:12;;35928:4;35920:12;35916:1141;;-1:-1:-1;;;35964:7:105;;;35956:16;;35916:1141;36040:4;:12;;36048:4;36040:12;36036:1021;;-1:-1:-1;;;36084:7:105;;;36076:16;;36036:1021;36161:4;:12;;36169:4;36161:12;36157:900;;-1:-1:-1;;;36205:7:105;;;36197:16;;36157:900;36281:4;:12;;36289:4;36281:12;36277:780;;-1:-1:-1;;;36325:7:105;;;36317:16;;36277:780;36400:4;:12;;36408:4;36400:12;36396:661;;-1:-1:-1;;;36444:7:105;;;36436:16;;36396:661;36520:4;:12;;36528:4;36520:12;36516:541;;-1:-1:-1;;;36564:7:105;;;36556:16;;36516:541;36640:4;:12;;36648:4;36640:12;36636:421;;-1:-1:-1;;;36685:7:105;;;36683:10;36676:17;;36636:421;36762:4;:12;;36770:4;36762:12;36758:299;;36823:2;36805:21;;36811:2;36805:21;;;:29;;36833:1;36805:29;;;36829:1;36805:29;36798:36;;;;;;;;36758:299;36904:4;:12;;36912:4;36904:12;36900:157;;36952:2;36947:7;;:2;:7;;;:15;;36961:1;36947:15;;36900:157;37009:29;;;;;2810:2:257;37009:29:105;;;2792:21:257;2849:2;2829:18;;;2822:30;2888:21;2868:18;;;2861:49;2927:18;;37009:29:105;2608:343:257;36900:157:105;32287:4784;32237:8490;;;37127:6;:14;;37137:4;37127:14;37123:3590;;37186:4;37179:11;;37261:3;37253:11;;;37249:549;;-1:-1:-1;;;37306:21:105;;;37292:36;;37249:549;37413:4;:12;;37421:4;37413:12;:28;;;;37429:4;:12;;37437:4;37429:12;37413:28;37409:389;;;37473:4;:12;;37481:4;37473:12;37469:83;;37522:3;;;37469:83;37577:8;37615:127;37627:10;37622:15;;:20;37615:127;;37707:8;37674:3;37707:8;;;;;37674:3;37615:127;;;37774:1;-1:-1:-1;37767:8:105;;-1:-1:-1;;37767:8:105;37123:3590;37865:6;:14;;37875:4;37865:14;37861:2852;;-1:-1:-1;;37910:8:105;37916:2;37910:8;;;;37903:15;;37861:2852;37985:6;:14;;37995:4;37985:14;37981:2732;;38030:42;38048:2;38053:1;38048:6;38058:1;38047:12;38042:2;:17;38034:26;;:3;:26;;;;38064:4;38033:35;38070:1;38030:2;:42::i;37981:2732::-;38139:6;:14;;38149:4;38139:14;38135:2578;;38184:45;38202:2;38207:1;38202:6;38212:1;38201:12;38196:2;:17;38188:26;;:3;:26;;;;38218:6;38187:37;38226:2;38184;:45::i;38135:2578::-;38297:6;:14;;38307:4;38297:14;38293:2420;;-1:-1:-1;;38348:21:105;38367:1;38362;38357:6;;38356:12;38348:21;;38405:36;;;38476:5;38471:10;;38348:21;;;;;38470:18;38463:25;;38293:2420;38555:6;:14;;38565:4;38555:14;38551:2162;;38600:3;38593:10;;;;;38551:2162;38671:6;:14;;38681:4;38671:14;38667:2046;;38731:2;38736:1;38731:6;38741:1;38730:12;38725:2;:17;38717:26;;:3;:26;;;;38747:4;38716:35;38709:42;;;;;38667:2046;38820:6;:14;;38830:4;38820:14;38816:1897;;38880:2;38885:1;38880:6;38890:1;38879:12;38874:2;:17;38866:26;;:3;:26;;;;38896:6;38865:37;38858:44;;;;;38816:1897;38971:6;:14;;38981:4;38971:14;38967:1746;;-1:-1:-1;;39022:26:105;39046:1;39041;39036:6;;39035:12;39030:2;:17;39022:26;;39084:41;;;39160:5;39155:10;;39022:26;;;;;39154:18;39147:25;;38967:1746;39240:6;:14;;39250:4;39240:14;39236:1477;;-1:-1:-1;;39297:4:105;39291:34;39323:1;39318;39313:6;;39312:12;39307:2;:17;39291:34;;39381:27;;;39361:48;;;39439:10;;39292:9;;;39291:34;;39438:18;39431:25;;39236:1477;39524:6;:14;;39534:4;39524:14;39520:1193;;-1:-1:-1;;39581:6:105;39575:36;39609:1;39604;39599:6;;39598:12;39593:2;:17;39575:36;;39667:29;;;39647:50;;;39727:10;;39576:11;;;39575:36;;39726:18;39719:25;;39520:1193;39813:6;:14;;39823:4;39813:14;39809:904;;-1:-1:-1;;39864:20:105;39882:1;39877;39872:6;;39871:12;39864:20;;39920:36;;;39992:5;39986:11;;39864:20;;;;;39985:19;39978:26;;39809:904;40072:6;:14;;40082:4;40072:14;40068:645;;40117:2;40110:9;;;;;40068:645;40188:6;:14;;40198:4;40188:14;40184:529;;-1:-1:-1;;40239:25:105;40262:1;40257;40252:6;;40251:12;40246:2;:17;40239:25;;40300:41;;;40377:5;40371:11;;40239:25;;;;;40370:19;40363:26;;40184:529;40456:6;:14;;40466:4;40456:14;40452:261;;40501:3;40494:10;;;;;40452:261;40571:6;:14;;40581:4;40571:14;40567:146;;40616:2;40609:9;;;;;19937:782;20023:12;20110:18;;:::i;:::-;-1:-1:-1;20178:4:105;20285:2;20273:14;;;;20265:41;;;;;;;3158:2:257;20265:41:105;;;3140:21:257;3197:2;3177:18;;;3170:30;3236:16;3216:18;;;3209:44;3270:18;;20265:41:105;2956:338:257;20265:41:105;20402:14;;;;;;;:30;;;20420:12;20402:30;20398:102;;;20481:4;20452:5;:15;;;20468:9;20452:26;;;;;;;;;:::i;:::-;:33;;;;:26;;;;;;:33;20398:102;20555:12;;;;;20544:23;;;;:8;;;:23;20611:1;20596:16;;;20581:31;;;20689:13;:11;:13::i;5580:7728::-;5623:12;5709:18;;:::i;:::-;-1:-1:-1;5887:15:105;;:18;;;;5777:4;6047:18;;;;6091;;;;6135;;;;;5777:4;;5867:17;;;;6047:18;6091;6225;;;6239:4;6225:18;6221:6777;;6275:2;6304:4;6299:9;;:14;6295:144;;6415:4;6410:9;;6402:4;:18;6396:24;6295:144;6460:2;:7;;6466:1;6460:7;6456:161;;6496:10;;;;;6528:16;;;;;;;;6496:10;-1:-1:-1;6456:161:105;;;6596:2;6591:7;;6456:161;6245:386;6221:6777;;;6733:10;:18;;6747:4;6733:18;6729:6269;;1745:10;6771:14;;6729:6269;;;6869:10;:18;;6883:4;6869:18;6865:6133;;6912:1;6907:6;;6865:6133;;;7037:10;:18;;7051:4;7037:18;7033:5965;;7090:4;7075:12;;;:19;7112:26;;;:14;;;:26;7163:13;:11;:13::i;:::-;7156:20;;;;;;;;;5580:7728;:::o;7033:5965::-;7302:10;:18;;7316:4;7302:18;7298:5700;;7453:14;;;7449:2708;7298:5700;7449:2708;7623:22;;;;;7619:2538;;7748:10;7761:27;7769:2;7774:10;7769:15;7786:1;7761:7;:27::i;:::-;7872:17;;;;7748:40;;-1:-1:-1;7872:17:105;7850:19;8022:14;8041:1;8016:26;8012:131;;8084:36;8108:11;1277:21:106;1426:15;;;1467:8;1461:4;1454:22;1595:4;1582:18;;1602:19;1578:44;1624:11;1575:61;;1222:430;8084:36:105;8070:50;;8012:131;8229:20;;;;;8196:54;;;;;;;;3472:25:257;;;8196:54:105;3533:23:257;;;3513:18;;;3506:51;8165:11:105;;;;8196:19;:6;:19;;;;3445:18:257;;8196:54:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8164:86;;;;8477:1;8473:2;8469:10;8574:9;8571:1;8567:17;8656:6;8649:5;8646:17;8643:40;;;8676:5;8666:15;;8643:40;;8759:6;8755:2;8752:14;8749:34;;;8779:2;8769:12;;8749:34;8885:3;8880:1;8872:6;8868:14;8863:3;8859:24;8855:34;8848:41;;8985:3;8981:1;8969:9;8960:6;8957:1;8953:14;8949:30;8945:38;8941:48;8934:55;;9140:1;9136;9132;9120:9;9117:1;9113:17;9109:25;9105:33;9101:41;9267:1;9263;9259;9250:6;9238:9;9235:1;9231:17;9227:30;9223:38;9219:46;9215:54;9197:72;;9398:10;9394:15;9388:4;9384:26;9376:34;;9514:3;9506:4;9502:9;9497:3;9493:19;9490:28;9483:35;;;;9660:33;9669:2;9674:10;9669:15;9686:1;9689:3;9660:8;:33::i;:::-;9715:20;;;:38;;;;;;;;;-1:-1:-1;7619:2538:105;;-1:-1:-1;;;7619:2538:105;;9872:18;;;;;9868:289;;10042:2;10037:7;;7298:5700;;9868:289;10096:10;10091:15;;2053:3;10128:10;;9868:289;7298:5700;;;10286:10;:18;;10300:4;10286:18;10282:2716;;10440:15;;;1824:1;10440:15;;:34;;-1:-1:-1;10459:15:105;;;1859:1;10459:15;10440:34;:57;;;-1:-1:-1;10478:19:105;;;1936:1;10478:19;10440:57;10436:1593;;;10526:2;10521:7;;10282:2716;;10436:1593;10652:23;;;;;10648:1381;;10699:10;10712:27;10720:2;10725:10;10720:15;10737:1;10712:7;:27::i;:::-;10815:17;;;;10699:40;;-1:-1:-1;11058:1:105;11050:10;;11152:1;11148:17;11227:13;;;11224:32;;;11249:5;11243:11;;11224:32;11535:14;;;11341:1;11531:22;;;11527:32;;;;11424:26;11448:1;11333:10;;;11428:18;;;11424:26;11523:43;11329:20;;11631:12;11759:17;;;:23;11827:1;11804:20;;;:24;11337:2;-1:-1:-1;11337:2:105;7298:5700;;10282:2716;12231:10;:18;;12245:4;12231:18;12227:771;;12341:2;:7;;12347:1;12341:7;12337:647;;12434:14;;;;;:40;;-1:-1:-1;12452:22:105;;;1978:1;12452:22;12434:40;:62;;;-1:-1:-1;12478:18:105;;;1897:1;12478:18;12434:62;12430:404;;;12529:1;12524:6;;12337:647;;12430:404;12575:15;;;1824:1;12575:15;;:34;;-1:-1:-1;12594:15:105;;;1859:1;12594:15;12575:34;:61;;;-1:-1:-1;12613:23:105;;;2021:1;12613:23;12575:61;:84;;;-1:-1:-1;12640:19:105;;;1936:1;12640:19;12575:84;12571:263;;;12692:1;12687:6;;7298:5700;;12337:647;12885:10;12880:15;;2087:4;12917:11;;12337:647;13073:15;;;;;:23;;;;:18;;;;:23;;;;13110:15;;:23;;;:18;;;;:23;-1:-1:-1;13199:12:105;;;;13188:23;;;:8;;;:23;13255:1;13240:16;13225:31;;;;;13278:13;:11;:13::i;16061:2480::-;16155:12;16241:18;;:::i;:::-;-1:-1:-1;16309:4:105;16341:10;16449:13;;;16458:4;16449:13;16445:1705;;-1:-1:-1;16488:8:105;;;;16445:1705;;;16607:5;:13;;16616:4;16607:13;16603:1547;;16640:14;;;:8;;;:14;16603:1547;;;16770:5;:13;;16779:4;16770:13;16766:1384;;-1:-1:-1;16809:8:105;;;;16766:1384;;;16928:5;:13;;16937:4;16928:13;16924:1226;;16961:14;;;:8;;;:14;16924:1226;;;17102:5;:13;;17111:4;17102:13;17098:1052;;17229:9;17175:17;17155;;;17175;;;;17155:37;17236:2;17229:9;;;;;17211:8;;;:28;17257:22;:8;;;:22;17098:1052;;;17416:5;:13;;17425:4;17416:13;17412:738;;17483:11;17469;;;17483;;;17469:25;17538:2;17531:9;;;;;17513:8;;;:28;17559:22;:8;;;:22;17412:738;;;17740:5;:13;;17749:4;17740:13;17736:414;;17810:3;17791:23;;17797:3;17791:23;;;;;;;:::i;:::-;;17773:42;;:8;;;:42;17851:23;;;;;;;;;;;;;:::i;:::-;;17833:42;;:8;;;:42;17736:414;;;18044:5;:13;;18053:4;18044:13;18040:110;;18094:3;18088:9;;:3;:9;;;;;;;:::i;:::-;;18077:20;;;;:8;;;:20;18126:9;;;;;;;;;;;:::i;:::-;;18115:20;;:8;;;:20;18040:110;18243:14;;;;18239:85;;18306:3;18277:5;:15;;;18293:9;18277:26;;;;;;;;;:::i;:::-;:32;;;;:26;;;;;;:32;18239:85;18378:12;;;;;18367:23;;;;:8;;;:23;18434:1;18419:16;;;18404:31;;;18511:13;:11;:13::i;:::-;18504:20;16061:2480;-1:-1:-1;;;;;;;16061:2480:105:o;23890:1654::-;24066:14;24083:24;24095:11;24083;:24::i;:::-;24066:41;;24215:1;24208:5;24204:13;24201:33;;;24230:1;24227;24220:12;24201:33;24369:2;24563:15;;;24388:2;24377:14;;24365:10;24361:31;24358:1;24354:39;24519:16;;;24304:20;;24504:10;24493:22;;;24489:27;24479:38;24476:60;25005:5;25002:1;24998:13;25076:1;25061:343;25086:2;25083:1;25080:9;25061:343;;;25209:2;25197:15;;;25146:20;25244:12;;;25258:1;25240:20;25281:42;;;;25349:1;25344:42;;;;25233:153;;25281:42;22368:1;22361:12;;;22401:2;22394:13;;;22446:2;22433:16;;25290:31;;25281:42;;25344;22368:1;22361:12;;;22401:2;22394:13;;;22446:2;22433:16;;25353:31;;25233:153;-1:-1:-1;;25104:1:105;25097:9;25061:343;;;-1:-1:-1;;25503:4:105;25496:18;-1:-1:-1;;;;23890:1654:105:o;20923:586::-;21245:20;;;21269:7;21245:32;21238:3;:40;;;21351:14;;21406:17;;21400:24;;;21392:72;;;;;;;4209:2:257;21392:72:105;;;4191:21:257;4248:2;4228:18;;;4221:30;4287:34;4267:18;;;4260:62;4358:5;4338:18;;;4331:33;4381:19;;21392:72:105;4007:399:257;21392:72:105;21478:14;20923:586;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;467:347:257:-;518:8;528:6;582:3;575:4;567:6;563:17;559:27;549:55;;600:1;597;590:12;549:55;-1:-1:-1;623:20:257;;666:18;655:30;;652:50;;;698:1;695;688:12;652:50;735:4;727:6;723:17;711:29;;787:3;780:4;771:6;763;759:19;755:30;752:39;749:59;;;804:1;801;794:12;749:59;467:347;;;;;:::o;819:717::-;909:6;917;925;933;986:2;974:9;965:7;961:23;957:32;954:52;;;1002:1;999;992:12;954:52;1042:9;1029:23;1071:18;1112:2;1104:6;1101:14;1098:34;;;1128:1;1125;1118:12;1098:34;1167:58;1217:7;1208:6;1197:9;1193:22;1167:58;:::i;:::-;1244:8;;-1:-1:-1;1141:84:257;-1:-1:-1;1332:2:257;1317:18;;1304:32;;-1:-1:-1;1348:16:257;;;1345:36;;;1377:1;1374;1367:12;1345:36;;1416:60;1468:7;1457:8;1446:9;1442:24;1416:60;:::i;:::-;819:717;;;;-1:-1:-1;1495:8:257;-1:-1:-1;;;;819:717:257:o;1723:184::-;1775:77;1772:1;1765:88;1872:4;1869:1;1862:15;1896:4;1893:1;1886:15;3568:245;3647:6;3655;3708:2;3696:9;3687:7;3683:23;3679:32;3676:52;;;3724:1;3721;3714:12;3676:52;-1:-1:-1;;3747:16:257;;3803:2;3788:18;;;3782:25;3747:16;;3782:25;;-1:-1:-1;3568:245:257:o;3818:184::-;3870:77;3867:1;3860:88;3967:4;3964:1;3957:15;3991:4;3988:1;3981:15" var MIPSDeployedSourceMap = "1131:39637:105:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:45;;1745:10;1710:45;;;;;188:10:257;176:23;;;158:42;;146:2;131:18;1710:45:105;;;;;;;;2448:99;;;412:42:257;2534:6:105;400:55:257;382:74;;370:2;355:18;2448:99:105;211:251:257;25648:6339:105;;;;;;:::i;:::-;;:::i;:::-;;;1687:25:257;;;1675:2;1660:18;25648:6339:105;1541:177:257;25648:6339:105;25726:7;25769:18;;:::i;:::-;25916:4;25909:5;25906:15;25896:134;;26010:1;26007;26000:12;25896:134;26066:4;26060:11;26073;26057:28;26047:137;;26164:1;26161;26154:12;26047:137;26232:3;26214:16;26211:25;26201:150;;26331:1;26328;26321:12;26201:150;26395:3;26381:12;26378:21;26368:145;;26493:1;26490;26483:12;26368:145;26773:24;;27117:4;26819:20;27175:2;26877:21;;26773:24;26935:18;26819:20;26877:21;;;26773:24;26750:21;26746:52;;;26935:18;26819:20;;;26877:21;;;26773:24;26746:52;;26819:20;;26877:21;;;26773:24;26746:52;;26935:18;26819:20;26877:21;;;26773:24;26746:52;;26935:18;26819:20;26877:21;;;26773:24;26746:52;;26935:18;26819:20;26877:21;;;26773:24;26746:52;;;26935:18;26819:20;26877:21;;;26773:24;26750:21;26746:52;;;26935:18;26819:20;26877:21;;;26773:24;26746:52;;26935:18;26819:20;26877:21;;;26773:24;26746:52;;26935:18;26819:20;27793:10;26935:18;27783:21;;;26877;;;;27891:1;27876:77;27901:2;27898:1;27895:9;27876:77;;;26773:24;;26750:21;26746:52;26819:20;;27949:1;26877:21;;;;26761:2;26935:18;;;;27919:1;27912:9;27876:77;;;27880:14;;;28031:5;:12;;;28027:71;;;28070:13;:11;:13::i;:::-;28063:20;;;;;28027:71;28112:10;;;:15;;28126:1;28112:15;;;;;28197:8;;;;-1:-1:-1;;28189:20:105;;-1:-1:-1;28189:7:105;:20::i;:::-;28175:34;-1:-1:-1;28239:10:105;28247:2;28239:10;;;;28316:1;28306:11;;;:26;;;28321:6;:11;;28331:1;28321:11;28306:26;28302:310;;;28462:13;28531:1;28509:4;28516:10;28509:17;28508:24;;;;28479:5;:12;;;28494:10;28479:25;28478:54;28462:70;;28557:40;28568:6;:11;;28578:1;28568:11;:20;;28586:2;28568:20;;;28582:1;28568:20;28557:40;;28590:6;28557:10;:40::i;:::-;28550:47;;;;;;;;28302:310;28861:15;;;;28656:9;;;;28793:4;28787:2;28779:10;;;28778:19;;;28861:15;28886:2;28878:10;;;28877:19;28861:36;;;;;;;:::i;:::-;;;;;;-1:-1:-1;28926:5:105;28950:11;;;;;:29;;;28965:6;:14;;28975:4;28965:14;28950:29;28946:832;;;29042:5;:15;;;29058:5;29042:22;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;29105:4:105;29099:2;29091:10;;;29090:19;28946:832;;;29143:4;29134:6;:13;;;29130:648;;;29264:6;:13;;29274:3;29264:13;:30;;;;29281:6;:13;;29291:3;29281:13;29264:30;:47;;;;29298:6;:13;;29308:3;29298:13;29264:47;29260:253;;;29374:4;29381:6;29374:13;29369:18;;29130:648;;29260:253;29473:21;29476:4;29483:6;29476:13;29491:2;29473;:21::i;:::-;29468:26;;29130:648;;;29547:4;29537:6;:14;;;;:32;;;;29555:6;:14;;29565:4;29555:14;29537:32;:50;;;;29573:6;:14;;29583:4;29573:14;29537:50;29533:245;;;29657:5;:15;;;29673:5;29657:22;;;;;;;;;:::i;:::-;;;;;29652:27;;29758:5;29750:13;;29533:245;29807:1;29797:6;:11;;;;:25;;;;;29821:1;29812:6;:10;;;29797:25;29796:42;;;;29827:6;:11;;29837:1;29827:11;29796:42;29792:125;;;29865:37;29878:6;29886:4;29892:5;29899:2;29865:12;:37::i;:::-;29858:44;;;;;;;;;;;29792:125;29950:13;29931:16;30102:4;30092:14;;;;30088:446;;30171:21;30174:4;30181:6;30174:13;30189:2;30171;:21::i;:::-;30165:27;;;;30229:10;30224:15;;30263:16;30224:15;30277:1;30263:7;:16::i;:::-;30257:22;;30311:4;30301:6;:14;;;;:32;;;;;30319:6;:14;;30329:4;30319:14;;30301:32;30297:223;;;30398:4;30386:16;;30500:1;30492:9;;30297:223;30108:426;30088:446;30567:10;30580:26;30588:4;30594:2;30598;30602:3;30580:7;:26::i;:::-;30609:10;30580:39;;;;-1:-1:-1;30705:4:105;30698:11;;;30737;;;:24;;;;;30760:1;30752:4;:9;;;;30737:24;:39;;;;;30772:4;30765;:11;;;30737:39;30733:847;;;30800:4;:9;;30808:1;30800:9;:22;;;;30813:4;:9;;30821:1;30813:9;30800:22;30796:144;;;30884:37;30895:4;:9;;30903:1;30895:9;:21;;30911:5;30895:21;;;30907:1;30895:21;30918:2;30884:10;:37::i;:::-;30877:44;;;;;;;;;;;;;;;30796:144;30962:4;:11;;30970:3;30962:11;30958:121;;31032:28;31041:5;31048:2;31052:7;;;;31032:8;:28::i;30958:121::-;31100:4;:11;;31108:3;31100:11;31096:121;;31170:28;31179:5;31186:2;31190:7;;;;;31170:8;:28::i;31096:121::-;31287:4;:11;;31295:3;31287:11;31283:80;;31329:15;:13;:15::i;31283:80::-;31466:4;31458;:12;;;;:27;;;;;31481:4;31474;:11;;;31458:27;31454:112;;;31516:31;31527:4;31533:2;31537;31541:5;31516:10;:31::i;31454:112::-;31640:6;:14;;31650:4;31640:14;:28;;;;-1:-1:-1;31658:10:105;;;;;31640:28;31636:93;;;31713:1;31688:5;:15;;;31704:5;31688:22;;;;;;;;;:::i;:::-;:26;;;;:22;;;;;;:26;31636:93;31775:9;:26;;31788:13;31775:26;31771:92;;31821:27;31830:9;31841:1;31844:3;31821:8;:27::i;:::-;31944:26;31953:5;31960:3;31965:4;31944:8;:26::i;:::-;31937:33;;;;;;;;;;;;;25648:6339;;;;;;;:::o;3092:2427::-;3639:4;3633:11;;3555:4;3358:31;3347:43;;3418:13;3358:31;3757:2;3457:13;;3347:43;3364:24;3358:31;3457:13;;;3347:43;;;;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3418:13;4185:11;3364:24;3358:31;3457:13;;;3347:43;3418:13;4280:11;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3133:12;;4420:13;;3633:11;;3457:13;;;;4185:11;3133:12;4500:84;4525:2;4522:1;4519:9;4500:84;;;3374:13;3364:24;;3358:31;3347:43;;3378:2;3418:13;;;;4580:1;3457:13;;;;4543:1;4536:9;4500:84;;;4504:14;4647:1;4643:2;4636:13;4742:5;4738:2;4734:14;4727:5;4722:27;4763:500;;;4804:7;4837;4866:1;4861:309;;;;5246:1;5235:12;;4830:419;;4861:309;4897:9;4964:23;;;;5052:1;5047:23;;;;5149:1;5138:12;;4890:262;;4964:23;4984:1;4973:12;;4964:23;;5047;5067:1;5056:12;;4890:262;;4830:419;;4763:500;;;;:::o;:::-;5290:26;5307:8;5299:6;5290:26;:::i;:::-;5415:14;;;;5398:32;;;5458:19;5454:30;5490:3;5486:16;;;;5451:52;;;;;3092:2427;-1:-1:-1;;;;3092:2427:105:o;21703:1831::-;21776:11;21887:14;21904:24;21916:11;21904;:24::i;:::-;21887:41;;22036:1;22029:5;22025:13;22022:33;;;22051:1;22048;22041:12;22022:33;22184:2;22172:15;;;22125:20;22614:5;22611:1;22607:13;22649:4;22685:1;22670:343;22695:2;22692:1;22689:9;22670:343;;;22818:2;22806:15;;;22755:20;22853:12;;;22867:1;22849:20;22890:42;;;;22958:1;22953:42;;;;22842:153;;22890:42;22348:1;22341:12;;;22381:2;22374:13;;;22426:2;22413:16;;22899:31;;22890:42;;22953;22348:1;22341:12;;;22381:2;22374:13;;;22426:2;22413:16;;22962:31;;22842:153;-1:-1:-1;;22713:1:105;22706:9;22670:343;;;22674:14;23123:4;23117:11;23102:26;;23209:7;23203:4;23200:17;23190:124;;23251:10;23248:1;23241:21;23293:2;23290:1;23283:13;23190:124;-1:-1:-1;;23441:2:105;23430:14;;;;23418:10;23414:31;23411:1;23407:39;23475:16;;;;23493:10;23471:33;;21703:1831;-1:-1:-1;;;21703:1831:105:o;18813:823::-;18882:12;18969:18;;:::i;:::-;19037:4;19028:13;;19089:5;:8;;;19100:1;19089:12;19073:28;;:5;:12;;;:28;;;19069:95;;19121:28;;;;;2114:2:257;19121:28:105;;;2096:21:257;2153:2;2133:18;;;2126:30;2192:20;2172:18;;;2165:48;2230:18;;19121:28:105;;;;;;;;19069:95;19253:8;;;;;19286:12;;;;;19275:23;;;;;;;19312:20;;;;;19253:8;19444:13;;;19440:90;;19505:6;19514:1;19505:10;19477:5;:15;;;19493:8;19477:25;;;;;;;;;:::i;:::-;:38;;;;:25;;;;;;:38;19440:90;19606:13;:11;:13::i;:::-;19599:20;18813:823;-1:-1:-1;;;;;18813:823:105:o;2645:339::-;2706:11;2770:18;;;;2779:8;;;;2770:18;;;;;;2769:25;;;;;2786:1;2833:2;:9;;;2827:16;;;;;2826:22;;2825:32;;;;;;;2887:9;;2886:15;2769:25;2944:21;;2964:1;2944:21;;;2955:6;2944:21;2929:11;;;;;:37;;-1:-1:-1;;;2645:339:105;;;;:::o;13674:2026::-;13771:12;13857:18;;:::i;:::-;13925:4;13916:13;;13957:17;14017:5;:8;;;14028:1;14017:12;14001:28;;:5;:12;;;:28;;;13997:97;;14049:30;;;;;2461:2:257;14049:30:105;;;2443:21:257;2500:2;2480:18;;;2473:30;2539:22;2519:18;;;2512:50;2579:18;;14049:30:105;2259:344:257;13997:97:105;14164:7;:12;;14175:1;14164:12;:28;;;;14180:7;:12;;14191:1;14180:12;14164:28;14160:947;;;14212:9;14224:5;:15;;;14240:6;14224:23;;;;;;;;;:::i;:::-;;;;;14212:35;;14288:2;14281:9;;:3;:9;;;:25;;;;;14294:7;:12;;14305:1;14294:12;14281:25;14280:58;;;;14319:2;14312:9;;:3;:9;;;;:25;;;;;14325:7;:12;;14336:1;14325:12;14312:25;14265:73;;14194:159;14160:947;;;14450:7;:12;;14461:1;14450:12;14446:661;;14511:1;14503:3;14497:15;;;;14482:30;;14446:661;;;14615:7;:12;;14626:1;14615:12;14611:496;;14675:1;14668:3;14662:14;;;14647:29;;14611:496;;;14796:7;:12;;14807:1;14796:12;14792:315;;14884:4;14878:2;14869:11;;;14868:20;14854:10;14911:8;;;14907:84;;14971:1;14964:3;14958:14;;;14943:29;;14907:84;15012:3;:8;;15019:1;15012:8;15008:85;;15073:1;15065:3;15059:15;;;;15044:30;;15008:85;14810:297;14792:315;15183:8;;;;;15261:12;;;;15250:23;;;;;15417:178;;;;15508:1;15482:22;15485:5;15493:6;15485:14;15501:2;15482;:22::i;:::-;:27;;;;;;;15468:42;;15477:1;15468:42;15453:57;:12;;;:57;15417:178;;;15564:12;;;;;15579:1;15564:16;15549:31;;;;15417:178;15670:13;:11;:13::i;:::-;15663:20;13674:2026;-1:-1:-1;;;;;;;;13674:2026:105:o;32033:8733::-;32120:10;32182;32190:2;32182:10;;;;32221:11;;;:44;;;32247:1;32237:6;:11;;;;:27;;;;;32261:3;32252:6;:12;;;32237:27;32217:8490;;;32306:4;32299:11;;32430:6;32490:3;32485:25;;;;32565:3;32560:25;;;;32639:3;32634:25;;;;32714:3;32709:25;;;;32788:3;32783:25;;;;32861:3;32856:25;;;;32935:3;32930:25;;;;32423:532;;32485:25;32504:4;32496:12;;32485:25;;32560;32579:4;32571:12;;32560:25;;32634;32653:4;32645:12;;32634:25;;32709;32728:4;32720:12;;32709:25;;32783;32802:4;32794:12;;32783:25;;32856;32875:4;32867:12;;32856:25;;32930;32949:4;32941:12;;32423:532;;33018:4;:12;;33026:4;33018:12;33014:4023;;-1:-1:-1;;;33069:9:105;33061:26;;33082:4;33077:1;33069:9;;;33068:18;33061:26;33054:33;;33014:4023;33155:4;:12;;33163:4;33155:12;33151:3886;;-1:-1:-1;;;33206:9:105;33198:26;;33219:4;33214:1;33206:9;;;33205:18;33198:26;33191:33;;33151:3886;33292:4;:12;;33300:4;33292:12;33288:3749;;33357:4;33352:1;33344:9;;;33343:18;33390:27;33344:9;33393:11;;;;33406:2;:10;;;33390:2;:27::i;:::-;33383:34;;;;;;;33288:3749;33486:4;:12;;33494:4;33486:12;33482:3555;;-1:-1:-1;;;33529:17:105;;;33541:4;33536:9;;33529:17;33522:24;;33482:3555;33615:4;:11;;33623:3;33615:11;33611:3426;;-1:-1:-1;;;33657:17:105;;;33669:4;33664:9;;33657:17;33650:24;;33611:3426;33743:4;:12;;33751:4;33743:12;33739:3298;;33786:21;33795:2;33789:8;;:2;:8;;;;33804:2;33799;:7;33786:2;:21::i;:::-;33779:28;;;;;;33739:3298;34056:4;:12;;34064:4;34056:12;34052:2985;;34099:2;34092:9;;;;;;34052:2985;34170:4;:12;;34178:4;34170:12;34166:2871;;34213:2;34206:9;;;;;;34166:2871;34284:4;:12;;34292:4;34284:12;34280:2757;;34327:2;34320:9;;;;;;34280:2757;34398:4;:12;;34406:4;34398:12;34394:2643;;34441:2;34434:9;;;;;;34394:2643;34515:4;:12;;34523:4;34515:12;34511:2526;;34558:2;34551:9;;;;;;34511:2526;34675:4;:12;;34683:4;34675:12;34671:2366;;34718:2;34711:9;;;;;;34671:2366;34789:4;:12;;34797:4;34789:12;34785:2252;;34832:2;34825:9;;;;;;34785:2252;34903:4;:12;;34911:4;34903:12;34899:2138;;34946:2;34939:9;;;;;;34899:2138;35017:4;:12;;35025:4;35017:12;35013:2024;;35060:2;35053:9;;;;;;35013:2024;35131:4;:12;;35139:4;35131:12;35127:1910;;35174:2;35167:9;;;;;;35127:1910;35245:4;:12;;35253:4;35245:12;35241:1796;;35288:2;35281:9;;;;;;35241:1796;35360:4;:12;;35368:4;35360:12;35356:1681;;35403:2;35396:9;;;;;;35356:1681;35473:4;:12;;35481:4;35473:12;35469:1568;;35516:2;35509:9;;;;;;35469:1568;35587:4;:12;;35595:4;35587:12;35583:1454;;35630:2;35623:9;;;;;;35583:1454;35779:4;:12;;35787:4;35779:12;35775:1262;;-1:-1:-1;;;35823:7:105;;;35815:16;;35775:1262;35900:4;:12;;35908:4;35900:12;35896:1141;;-1:-1:-1;;;35944:7:105;;;35936:16;;35896:1141;36020:4;:12;;36028:4;36020:12;36016:1021;;-1:-1:-1;;;36064:7:105;;;36056:16;;36016:1021;36141:4;:12;;36149:4;36141:12;36137:900;;-1:-1:-1;;;36185:7:105;;;36177:16;;36137:900;36261:4;:12;;36269:4;36261:12;36257:780;;-1:-1:-1;;;36305:7:105;;;36297:16;;36257:780;36380:4;:12;;36388:4;36380:12;36376:661;;-1:-1:-1;;;36424:7:105;;;36416:16;;36376:661;36500:4;:12;;36508:4;36500:12;36496:541;;-1:-1:-1;;;36544:7:105;;;36536:16;;36496:541;36620:4;:12;;36628:4;36620:12;36616:421;;-1:-1:-1;;;36665:7:105;;;36663:10;36656:17;;36616:421;36742:4;:12;;36750:4;36742:12;36738:299;;36803:2;36785:21;;36791:2;36785:21;;;:29;;36813:1;36785:29;;;36809:1;36785:29;36778:36;;;;;;;;36738:299;36884:4;:12;;36892:4;36884:12;36880:157;;36932:2;36927:7;;:2;:7;;;:15;;36941:1;36927:15;;36880:157;36989:29;;;;;2810:2:257;36989:29:105;;;2792:21:257;2849:2;2829:18;;;2822:30;2888:21;2868:18;;;2861:49;2927:18;;36989:29:105;2608:343:257;36880:157:105;32267:4784;32217:8490;;;37107:6;:14;;37117:4;37107:14;37103:3590;;37166:4;37159:11;;37241:3;37233:11;;;37229:549;;-1:-1:-1;;;37286:21:105;;;37272:36;;37229:549;37393:4;:12;;37401:4;37393:12;:28;;;;37409:4;:12;;37417:4;37409:12;37393:28;37389:389;;;37453:4;:12;;37461:4;37453:12;37449:83;;37502:3;;;37449:83;37557:8;37595:127;37607:10;37602:15;;:20;37595:127;;37687:8;37654:3;37687:8;;;;;37654:3;37595:127;;;37754:1;-1:-1:-1;37747:8:105;;-1:-1:-1;;37747:8:105;37103:3590;37845:6;:14;;37855:4;37845:14;37841:2852;;-1:-1:-1;;37890:8:105;37896:2;37890:8;;;;37883:15;;37841:2852;37965:6;:14;;37975:4;37965:14;37961:2732;;38010:42;38028:2;38033:1;38028:6;38038:1;38027:12;38022:2;:17;38014:26;;:3;:26;;;;38044:4;38013:35;38050:1;38010:2;:42::i;37961:2732::-;38119:6;:14;;38129:4;38119:14;38115:2578;;38164:45;38182:2;38187:1;38182:6;38192:1;38181:12;38176:2;:17;38168:26;;:3;:26;;;;38198:6;38167:37;38206:2;38164;:45::i;38115:2578::-;38277:6;:14;;38287:4;38277:14;38273:2420;;-1:-1:-1;;38328:21:105;38347:1;38342;38337:6;;38336:12;38328:21;;38385:36;;;38456:5;38451:10;;38328:21;;;;;38450:18;38443:25;;38273:2420;38535:6;:14;;38545:4;38535:14;38531:2162;;38580:3;38573:10;;;;;38531:2162;38651:6;:14;;38661:4;38651:14;38647:2046;;38711:2;38716:1;38711:6;38721:1;38710:12;38705:2;:17;38697:26;;:3;:26;;;;38727:4;38696:35;38689:42;;;;;38647:2046;38800:6;:14;;38810:4;38800:14;38796:1897;;38860:2;38865:1;38860:6;38870:1;38859:12;38854:2;:17;38846:26;;:3;:26;;;;38876:6;38845:37;38838:44;;;;;38796:1897;38951:6;:14;;38961:4;38951:14;38947:1746;;-1:-1:-1;;39002:26:105;39026:1;39021;39016:6;;39015:12;39010:2;:17;39002:26;;39064:41;;;39140:5;39135:10;;39002:26;;;;;39134:18;39127:25;;38947:1746;39220:6;:14;;39230:4;39220:14;39216:1477;;-1:-1:-1;;39277:4:105;39271:34;39303:1;39298;39293:6;;39292:12;39287:2;:17;39271:34;;39361:27;;;39341:48;;;39419:10;;39272:9;;;39271:34;;39418:18;39411:25;;39216:1477;39504:6;:14;;39514:4;39504:14;39500:1193;;-1:-1:-1;;39561:6:105;39555:36;39589:1;39584;39579:6;;39578:12;39573:2;:17;39555:36;;39647:29;;;39627:50;;;39707:10;;39556:11;;;39555:36;;39706:18;39699:25;;39500:1193;39793:6;:14;;39803:4;39793:14;39789:904;;-1:-1:-1;;39844:20:105;39862:1;39857;39852:6;;39851:12;39844:20;;39900:36;;;39972:5;39966:11;;39844:20;;;;;39965:19;39958:26;;39789:904;40052:6;:14;;40062:4;40052:14;40048:645;;40097:2;40090:9;;;;;40048:645;40168:6;:14;;40178:4;40168:14;40164:529;;-1:-1:-1;;40219:25:105;40242:1;40237;40232:6;;40231:12;40226:2;:17;40219:25;;40280:41;;;40357:5;40351:11;;40219:25;;;;;40350:19;40343:26;;40164:529;40436:6;:14;;40446:4;40436:14;40432:261;;40481:3;40474:10;;;;;40432:261;40551:6;:14;;40561:4;40551:14;40547:146;;40596:2;40589:9;;;;;19917:782;20003:12;20090:18;;:::i;:::-;-1:-1:-1;20158:4:105;20265:2;20253:14;;;;20245:41;;;;;;;3158:2:257;20245:41:105;;;3140:21:257;3197:2;3177:18;;;3170:30;3236:16;3216:18;;;3209:44;3270:18;;20245:41:105;2956:338:257;20245:41:105;20382:14;;;;;;;:30;;;20400:12;20382:30;20378:102;;;20461:4;20432:5;:15;;;20448:9;20432:26;;;;;;;;;:::i;:::-;:33;;;;:26;;;;;;:33;20378:102;20535:12;;;;;20524:23;;;;:8;;;:23;20591:1;20576:16;;;20561:31;;;20669:13;:11;:13::i;5560:7728::-;5603:12;5689:18;;:::i;:::-;-1:-1:-1;5867:15:105;;:18;;;;5757:4;6027:18;;;;6071;;;;6115;;;;;5757:4;;5847:17;;;;6027:18;6071;6205;;;6219:4;6205:18;6201:6777;;6255:2;6284:4;6279:9;;:14;6275:144;;6395:4;6390:9;;6382:4;:18;6376:24;6275:144;6440:2;:7;;6446:1;6440:7;6436:161;;6476:10;;;;;6508:16;;;;;;;;6476:10;-1:-1:-1;6436:161:105;;;6576:2;6571:7;;6436:161;6225:386;6201:6777;;;6713:10;:18;;6727:4;6713:18;6709:6269;;1745:10;6751:14;;6709:6269;;;6849:10;:18;;6863:4;6849:18;6845:6133;;6892:1;6887:6;;6845:6133;;;7017:10;:18;;7031:4;7017:18;7013:5965;;7070:4;7055:12;;;:19;7092:26;;;:14;;;:26;7143:13;:11;:13::i;:::-;7136:20;;;;;;;;;5560:7728;:::o;7013:5965::-;7282:10;:18;;7296:4;7282:18;7278:5700;;7433:14;;;7429:2708;7278:5700;7429:2708;7603:22;;;;;7599:2538;;7728:10;7741:27;7749:2;7754:10;7749:15;7766:1;7741:7;:27::i;:::-;7852:17;;;;7728:40;;-1:-1:-1;7852:17:105;7830:19;8002:14;8021:1;7996:26;7992:131;;8064:36;8088:11;1277:21:106;1426:15;;;1467:8;1461:4;1454:22;1595:4;1582:18;;1602:19;1578:44;1624:11;1575:61;;1222:430;8064:36:105;8050:50;;7992:131;8209:20;;;;;8176:54;;;;;;;;3472:25:257;;;8176:54:105;3533:23:257;;;3513:18;;;3506:51;8145:11:105;;;;8176:19;:6;:19;;;;3445:18:257;;8176:54:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8144:86;;;;8457:1;8453:2;8449:10;8554:9;8551:1;8547:17;8636:6;8629:5;8626:17;8623:40;;;8656:5;8646:15;;8623:40;;8739:6;8735:2;8732:14;8729:34;;;8759:2;8749:12;;8729:34;8865:3;8860:1;8852:6;8848:14;8843:3;8839:24;8835:34;8828:41;;8965:3;8961:1;8949:9;8940:6;8937:1;8933:14;8929:30;8925:38;8921:48;8914:55;;9120:1;9116;9112;9100:9;9097:1;9093:17;9089:25;9085:33;9081:41;9247:1;9243;9239;9230:6;9218:9;9215:1;9211:17;9207:30;9203:38;9199:46;9195:54;9177:72;;9378:10;9374:15;9368:4;9364:26;9356:34;;9494:3;9486:4;9482:9;9477:3;9473:19;9470:28;9463:35;;;;9640:33;9649:2;9654:10;9649:15;9666:1;9669:3;9640:8;:33::i;:::-;9695:20;;;:38;;;;;;;;;-1:-1:-1;7599:2538:105;;-1:-1:-1;;;7599:2538:105;;9852:18;;;;;9848:289;;10022:2;10017:7;;7278:5700;;9848:289;10076:10;10071:15;;2053:3;10108:10;;9848:289;7278:5700;;;10266:10;:18;;10280:4;10266:18;10262:2716;;10420:15;;;1824:1;10420:15;;:34;;-1:-1:-1;10439:15:105;;;1859:1;10439:15;10420:34;:57;;;-1:-1:-1;10458:19:105;;;1936:1;10458:19;10420:57;10416:1593;;;10506:2;10501:7;;10262:2716;;10416:1593;10632:23;;;;;10628:1381;;10679:10;10692:27;10700:2;10705:10;10700:15;10717:1;10692:7;:27::i;:::-;10795:17;;;;10679:40;;-1:-1:-1;11038:1:105;11030:10;;11132:1;11128:17;11207:13;;;11204:32;;;11229:5;11223:11;;11204:32;11515:14;;;11321:1;11511:22;;;11507:32;;;;11404:26;11428:1;11313:10;;;11408:18;;;11404:26;11503:43;11309:20;;11611:12;11739:17;;;:23;11807:1;11784:20;;;:24;11317:2;-1:-1:-1;11317:2:105;7278:5700;;10262:2716;12211:10;:18;;12225:4;12211:18;12207:771;;12321:2;:7;;12327:1;12321:7;12317:647;;12414:14;;;;;:40;;-1:-1:-1;12432:22:105;;;1978:1;12432:22;12414:40;:62;;;-1:-1:-1;12458:18:105;;;1897:1;12458:18;12414:62;12410:404;;;12509:1;12504:6;;12317:647;;12410:404;12555:15;;;1824:1;12555:15;;:34;;-1:-1:-1;12574:15:105;;;1859:1;12574:15;12555:34;:61;;;-1:-1:-1;12593:23:105;;;2021:1;12593:23;12555:61;:84;;;-1:-1:-1;12620:19:105;;;1936:1;12620:19;12555:84;12551:263;;;12672:1;12667:6;;7278:5700;;12317:647;12865:10;12860:15;;2087:4;12897:11;;12317:647;13053:15;;;;;:23;;;;:18;;;;:23;;;;13090:15;;:23;;;:18;;;;:23;-1:-1:-1;13179:12:105;;;;13168:23;;;:8;;;:23;13235:1;13220:16;13205:31;;;;;13258:13;:11;:13::i;16041:2480::-;16135:12;16221:18;;:::i;:::-;-1:-1:-1;16289:4:105;16321:10;16429:13;;;16438:4;16429:13;16425:1705;;-1:-1:-1;16468:8:105;;;;16425:1705;;;16587:5;:13;;16596:4;16587:13;16583:1547;;16620:14;;;:8;;;:14;16583:1547;;;16750:5;:13;;16759:4;16750:13;16746:1384;;-1:-1:-1;16789:8:105;;;;16746:1384;;;16908:5;:13;;16917:4;16908:13;16904:1226;;16941:14;;;:8;;;:14;16904:1226;;;17082:5;:13;;17091:4;17082:13;17078:1052;;17209:9;17155:17;17135;;;17155;;;;17135:37;17216:2;17209:9;;;;;17191:8;;;:28;17237:22;:8;;;:22;17078:1052;;;17396:5;:13;;17405:4;17396:13;17392:738;;17463:11;17449;;;17463;;;17449:25;17518:2;17511:9;;;;;17493:8;;;:28;17539:22;:8;;;:22;17392:738;;;17720:5;:13;;17729:4;17720:13;17716:414;;17790:3;17771:23;;17777:3;17771:23;;;;;;;:::i;:::-;;17753:42;;:8;;;:42;17831:23;;;;;;;;;;;;;:::i;:::-;;17813:42;;:8;;;:42;17716:414;;;18024:5;:13;;18033:4;18024:13;18020:110;;18074:3;18068:9;;:3;:9;;;;;;;:::i;:::-;;18057:20;;;;:8;;;:20;18106:9;;;;;;;;;;;:::i;:::-;;18095:20;;:8;;;:20;18020:110;18223:14;;;;18219:85;;18286:3;18257:5;:15;;;18273:9;18257:26;;;;;;;;;:::i;:::-;:32;;;;:26;;;;;;:32;18219:85;18358:12;;;;;18347:23;;;;:8;;;:23;18414:1;18399:16;;;18384:31;;;18491:13;:11;:13::i;:::-;18484:20;16041:2480;-1:-1:-1;;;;;;;16041:2480:105:o;23870:1654::-;24046:14;24063:24;24075:11;24063;:24::i;:::-;24046:41;;24195:1;24188:5;24184:13;24181:33;;;24210:1;24207;24200:12;24181:33;24349:2;24543:15;;;24368:2;24357:14;;24345:10;24341:31;24338:1;24334:39;24499:16;;;24284:20;;24484:10;24473:22;;;24469:27;24459:38;24456:60;24985:5;24982:1;24978:13;25056:1;25041:343;25066:2;25063:1;25060:9;25041:343;;;25189:2;25177:15;;;25126:20;25224:12;;;25238:1;25220:20;25261:42;;;;25329:1;25324:42;;;;25213:153;;25261:42;22348:1;22341:12;;;22381:2;22374:13;;;22426:2;22413:16;;25270:31;;25261:42;;25324;22348:1;22341:12;;;22381:2;22374:13;;;22426:2;22413:16;;25333:31;;25213:153;-1:-1:-1;;25084:1:105;25077:9;25041:343;;;-1:-1:-1;;25483:4:105;25476:18;-1:-1:-1;;;;23870:1654:105:o;20903:586::-;21225:20;;;21249:7;21225:32;21218:3;:40;;;21331:14;;21386:17;;21380:24;;;21372:72;;;;;;;4209:2:257;21372:72:105;;;4191:21:257;4248:2;4228:18;;;4221:30;4287:34;4267:18;;;4260:62;4358:5;4338:18;;;4331:33;4381:19;;21372:72:105;4007:399:257;21372:72:105;21458:14;20903:586;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;467:347:257:-;518:8;528:6;582:3;575:4;567:6;563:17;559:27;549:55;;600:1;597;590:12;549:55;-1:-1:-1;623:20:257;;666:18;655:30;;652:50;;;698:1;695;688:12;652:50;735:4;727:6;723:17;711:29;;787:3;780:4;771:6;763;759:19;755:30;752:39;749:59;;;804:1;801;794:12;749:59;467:347;;;;;:::o;819:717::-;909:6;917;925;933;986:2;974:9;965:7;961:23;957:32;954:52;;;1002:1;999;992:12;954:52;1042:9;1029:23;1071:18;1112:2;1104:6;1101:14;1098:34;;;1128:1;1125;1118:12;1098:34;1167:58;1217:7;1208:6;1197:9;1193:22;1167:58;:::i;:::-;1244:8;;-1:-1:-1;1141:84:257;-1:-1:-1;1332:2:257;1317:18;;1304:32;;-1:-1:-1;1348:16:257;;;1345:36;;;1377:1;1374;1367:12;1345:36;;1416:60;1468:7;1457:8;1446:9;1442:24;1416:60;:::i;:::-;819:717;;;;-1:-1:-1;1495:8:257;-1:-1:-1;;;;819:717:257:o;1723:184::-;1775:77;1772:1;1765:88;1872:4;1869:1;1862:15;1896:4;1893:1;1886:15;3568:245;3647:6;3655;3708:2;3696:9;3687:7;3683:23;3679:32;3676:52;;;3724:1;3721;3714:12;3676:52;-1:-1:-1;;3747:16:257;;3803:2;3788:18;;;3782:25;3747:16;;3782:25;;-1:-1:-1;3568:245:257:o;3818:184::-;3870:77;3867:1;3860:88;3967:4;3964:1;3957:15;3991:4;3988:1;3981:15"
func init() { func init() {
if err := json.Unmarshal([]byte(MIPSStorageLayoutJSON), MIPSStorageLayout); err != nil { if err := json.Unmarshal([]byte(MIPSStorageLayoutJSON), MIPSStorageLayout); err != nil {
......
...@@ -103,9 +103,9 @@ contract MIPS { ...@@ -103,9 +103,9 @@ contract MIPS {
from, to := copyMem(from, to, 4) // lo from, to := copyMem(from, to, 4) // lo
from, to := copyMem(from, to, 4) // hi from, to := copyMem(from, to, 4) // hi
from, to := copyMem(from, to, 4) // heap from, to := copyMem(from, to, 4) // heap
let exitCode := shr(248, mload(from)) let exitCode := mload(from)
from, to := copyMem(from, to, 1) // exitCode from, to := copyMem(from, to, 1) // exitCode
let exited := shr(248, mload(from)) let exited := mload(from)
from, to := copyMem(from, to, 1) // exited from, to := copyMem(from, to, 1) // exited
from, to := copyMem(from, to, 8) // step from, to := copyMem(from, to, 8) // step
from := add(from, 32) // offset to registers from := add(from, 32) // offset to registers
...@@ -137,7 +137,7 @@ contract MIPS { ...@@ -137,7 +137,7 @@ contract MIPS {
// Compute the hash of the resulting MIPS state // Compute the hash of the resulting MIPS state
out_ := keccak256(start, sub(to, start)) out_ := keccak256(start, sub(to, start))
out_ := or(shl(248, status), and(not(shl(248, 0xff)), out_)) out_ := or(and(not(shl(248, 0xFF)), out_), shl(248, status))
} }
} }
......
...@@ -1558,7 +1558,7 @@ contract MIPS_Test is CommonTest { ...@@ -1558,7 +1558,7 @@ contract MIPS_Test is CommonTest {
/// 1. Exited with success (Invalid) /// 1. Exited with success (Invalid)
/// 2. Exited with failure (Panic) /// 2. Exited with failure (Panic)
/// 3. Unfinished /// 3. Unfinished
function vmStatus(MIPS.State memory state) internal pure returns (uint8 out_) { function vmStatus(MIPS.State memory state) internal pure returns (uint256 out_) {
if (state.exited) { if (state.exited) {
if (state.exitCode == 0) { if (state.exitCode == 0) {
return 0; return 0;
...@@ -1574,7 +1574,7 @@ contract MIPS_Test is CommonTest { ...@@ -1574,7 +1574,7 @@ contract MIPS_Test is CommonTest {
function outputState(MIPS.State memory state) internal pure returns (bytes32 out_) { function outputState(MIPS.State memory state) internal pure returns (bytes32 out_) {
bytes memory enc = encodeState(state); bytes memory enc = encodeState(state);
uint8 status = vmStatus(state); uint256 status = vmStatus(state);
assembly { assembly {
out_ := keccak256(add(enc, 0x20), 226) out_ := keccak256(add(enc, 0x20), 226)
out_ := or(and(not(shl(248, 0xFF)), out_), shl(248, status)) out_ := or(and(not(shl(248, 0xFF)), out_), shl(248, status))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment