diff --git a/tests/meta/v10.hex b/tests/meta/v10.hex
new file mode 100644
--- /dev/null
+++ b/tests/meta/v10.hex
@@ -0,0 +1,1 @@
+0x6d6574610a6c1853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101011c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e01242866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f64650410636f64651c5665633c75383e04682053657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e041d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e04a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737304304469737061746368496e666f049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f045420416e2065787472696e736963206661696c65642e00143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c5370656356657273696f6e4e6f74416c6c6f776564546f4465637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c496d706c56657273696f6e4e6f74416c6c6f776564546f44656372656173650849012054686520696d706c656d656e746174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c537065634f72496d706c56657273696f6e4e656564546f496e637265617365083501205468652073706563696669636174696f6e206f722074686520696d706c656d656e746174696f6e2076657273696f6e206e65656420746f20696e637265617365206265747765656e20746865942063757272656e742072756e74696d6520616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e1c5574696c697479011c5574696c69747904244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0114146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e00ec20546869732077696c6c206578656375746520756e74696c20746865206669727374206f6e65206661696c7320616e64207468656e2073746f702e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e002c2023203c7765696768743ea4202d205468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602e34202d204f6e65206576656e742e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e1861735f7375620814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1ce02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e70202d2054686520776569676874206f6620746865206063616c6c602e302023203c2f7765696768743e2061735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3ea4590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e40617070726f76655f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d80590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d5859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e302023203c2f7765696768743e0118404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734c2077656c6c20617320746865206572726f722e384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e2c4e65774d756c746973696708244163636f756e744964244163636f756e7449640849012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e20466972737420706172616d20697320746865206163636f756e74207468617420697320617070726f76696e672c80207365636f6e6420697320746865206d756c7469736967206163636f756e742e404d756c7469736967417070726f76616c0c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640859012041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e404d756c7469736967457865637574656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e744964384469737061746368526573756c74082d012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e444d756c746973696743616e63656c6c65640c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640831012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e20466972737420706172616d20697320746865206163636f756e742074686174206973ac2063616e63656c6c696e672c20746869726420697320746865206d756c7469736967206163636f756e742e00001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e00750120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e00650120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665720114284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7408244163636f756e7449641c42616c616e6365045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f74202877686f2c20667265652c207265736572766564292e1c4465706f73697408244163636f756e7449641c42616c616e636504dc20536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e001c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449643856616c696461746f72507265667301040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2903040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e03040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f7250726566732ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1c45012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279206569746865722074686520726f6f74206f726967696e206f7270207468652060543a3a536c61736843616e63656c4f726967696e602e05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e18e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e002c2023203c7765696768743ef0202d2054696d6520636f6d706c65786974793a204f2831292e20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e28344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002051c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002051c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e0c30496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e2444656d6f6372616379012444656d6f6372616379403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e24507265696d616765730001011c543a3a48617368d4285665633c75383e2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d62657229000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e6465789c5265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173683e00040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e34446973706174636851756575650100bc5665633c28543a3a426c6f636b4e756d6265722c20543a3a486173682c205265666572656e64756d496e646578293e0400044101205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e2053746f726564206f72646572656420627920626c6f636b206e756d6265722e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01541c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f4207468652070726f706f73616c3b206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e64657804a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300040101205665746f20616e6420626c61636b6c697374207468652070726f706f73616c20686173682e204d7573742062652066726f6d20526f6f74206f726967696e2e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0845012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265b420696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e34726561705f707265696d616765043470726f706f73616c5f686173681c543a3a4861736814f42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e01402050726f706f736564082450726f70496e6465781c42616c616e636504c02041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e04dc2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404602041207265666572656e64756d2068617320626567756e2e18506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f74506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c6564043c5265666572656e64756d496e64657804842041207265666572656e64756d20686173206265656e2063616e63656c6c65642e204578656375746564083c5265666572656e64756d496e64657810626f6f6c047420412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408244163636f756e744964244163636f756e74496404e020416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404244163636f756e74496404e820416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572049820416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504e020412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636504150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964045d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c6563746564206279207468652072656170657220286c617374206974656d292e1c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e582056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f74206578697374204e6f7450726f78790430204e6f7420612070726f787920426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c20747769636530416c726561647950726f7879044020416c726561647920612070726f78792857726f6e6750726f787904302057726f6e672070726f7879304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e74144561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e671c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642148546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642124456c656374696f6e73014050687261676d656e456c656374696f6e181c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742d69642e20412063757272656e74206d656d626572206f7220612072756e6e65722063616e3101206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379002451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722075702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64842020206f726967696e2069732072656d6f76656420617320612072756e6e65722e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a02041206d656d626572206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d6265721080130300003830556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e34496e76616c69644f726967696e04c8204f726967696e206973206e6f7420612063616e6469646174652c206d656d626572206f7220612072756e6e65722075702e244e6f744d656d6265720438204e6f742061206d656d6265722e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0114286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e286368616e67655f6b6579040c6e657730543a3a4163636f756e7449640cd82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e00102c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e20547265617375727901205472656173757279143450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001051c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01203470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173d420605469705265706f72744465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e9c202d20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e64202d204f6e652062616c616e6365206f7065726174696f6e2e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e24202d20604f2854296064202d204f6e652062616c616e6365206f7065726174696f6e2ec4202d2054776f2073746f726167652072656d6f76616c7320286f6e6520726561642c20636f64656320604f28542960292e34202d204f6e65206576656e742e302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c75653042616c616e63654f663c543e4cf4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e4101202d20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e2060546020697345012020206e61747572616c6c79206361707065642061732061206d656d62657273686970207365742c20605260206973206c696d69746564207468726f756768207472616e73616374696f6e2d73697a652e0d01202d2054776f2073746f7261676520696e73657274696f6e732028636f6465637320604f285229602c20604f28542960292c206f6e65207265616420604f283129602e34202d204f6e65206576656e742e302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c75653042616c616e63654f663c543e4cb4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743e24202d20604f285429600101202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28542960292c206f6e652073746f72616765207265616420604f283129602e4c202d20557020746f206f6e65206576656e742e302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368386020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743e24202d20604f28542960e4202d204f6e652073746f726167652072657472696576616c2028636f64656320604f285429602920616e642074776f2072656d6f76616c732e88202d20557020746f2074687265652062616c616e6365206f7065726174696f6e732e302023203c2f7765696768743e012c2050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504b420412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e184e657754697004104861736804982041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e6704104861736804dc2041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504882041207469702073756767657374696f6e20686173206265656e20636c6f7365642e3054697052657472616374656404104861736804942041207469702073756767657374696f6e20686173206265656e207265747261637465642e203050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e5c5469705265706f72744465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e2070496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e24436f6e7472616374730120436f6e74726163741c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365046901205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060696e7374616e7469617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c75333210080000000851012053697a65206f66206120636f6e7472616374206174207468652074696d65206f6620696e7374616e746961696f6e2e205468697320697320612073696d706c652077617920746f20656e737572652074686174a420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4000407a10f35a00000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e4000008a5d7845630100000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e400080a1a76b4a3500000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000084101205468652066656520726571756972656420746f20696e7374616e7469617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e48496e7374616e7469617465426173654665650c47617320e80300000000000008390120546865206261736520666565206368617267656420666f7220696e7374616e74696174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e1858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e7420496d4f6e6c696e650120496d4f6e6c696e651020476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000204964656e7469747901105375646f10284964656e746974794f6600010130543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e00040004210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e1c53757065724f6600010130543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010130543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29004400000000000000000000000000000000000cb820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e012c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605265676973747261724f726967696e60206f722060526f6f74602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743ee4202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f482d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e0501202d20604f2858202b2052296020776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e646564292e88202d204174206d6f73742074776f2062616c616e6365206f7065726174696f6e732eac202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e40902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c202d206073756273603a20546865206964656e746974792773207375622d6163636f756e74732e002c2023203c7765696768743eec202d20604f285329602077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f73742074776f2062616c616e6365206f7065726174696f6e732e4101202d204174206d6f7374204f2832202a2053202b2031292073746f72616765206d75746174696f6e733b20636f64656320636f6d706c657869747920604f2831202a2053202b2053202a20312960293b582020206f6e652073746f726167652d6578697374732e302023203c2f7765696768743e38636c6561725f6964656e74697479003c390120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e7420616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65a42053656c663a3a72656769737472617273287265675f696e646578292e75776e72617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e301d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496430c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647330ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e011c2c4964656e7469747953657404244163636f756e74496404f02041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e636504d02041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408244163636f756e7449641c42616c616e636504c82041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e64657804a02041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e646578048c2041206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e64657804982041206a756467656d656e742077617320676976656e2062792061207265676973747261722e3852656769737472617241646465640438526567697374726172496e646578045c204120726567697374726172207761732061646465642e002c48546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e1c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010130543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010130543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010130543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010130543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010130543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e756c6c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e013c1c466f756e64656404244163636f756e74496404b82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665723c20697320746865207365636f6e642e14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64f0207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404244163636f756e74496404090120412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404b020412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e74496404f820412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c207468657420626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c048c20412073757370656e646564206d656d62657220686173206265656e206a75646765644843616e64696461746553757370656e64656404244163636f756e744964047c20412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404702041206d656d62657220686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404742041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c0204120766f746520686173206265656e20706c61636564202863616e6469646174652c20766f7465722c20766f74652930446566656e646572566f746508244163636f756e74496410626f6f6c04f0204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d6265722028766f7465722c20766f746529344e65774d61784d656d62657273040c75333204902041206e6577206d6178206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964045820536f636965747920697320756e666f756e6465642e184043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010130543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e245265636f766572656400010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000c98205468652066696e616c206c697374206f66207265636f7665726564206163636f756e74732e00f8204d61702066726f6d20746865207265636f7665726564206163636f756e7420746f2074686520757365722077686f2063616e206163636573732069742e01203061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e70202d2054686520776569676874206f6620746865206063616c6c602e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f766572790054b82052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404c82041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e74445265636f76657279496e6974696174656408244163636f756e744964244163636f756e7449640405012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206163636f756e745f31206279206163636f756e745f323c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e7449640441012041207265636f766572792070726f6365737320666f72206163636f756e745f31206279206163636f756e745f3220686173206265656e20766f756368656420666f72206279206163636f756e745f33385265636f76657279436c6f73656408244163636f756e744964244163636f756e74496404f82041207265636f766572792070726f6365737320666f72206163636f756e745f31206279206163636f756e745f3220686173206265656e20636c6f736564404163636f756e745265636f766572656408244163636f756e744964244163636f756e74496404dc204163636f756e745f3120686173206265656e207375636365737366756c6c79207265636f7665726564206279206163636f756e745f323c5265636f7665727952656d6f76656404244163636f756e74496404cc2041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e740000
diff --git a/tests/meta/v10.json b/tests/meta/v10.json
new file mode 100644
--- /dev/null
+++ b/tests/meta/v10.json
@@ -0,0 +1,7821 @@
+{
+  "magicNumber": 1635018093,
+  "metadata": {
+    "v10": {
+      "modules": [
+        {
+          "name": "System",
+          "storage": {
+            "prefix": "System",
+            "items": [
+              {
+                "name": "AccountNonce",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Index",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Extrinsics nonce for accounts."
+                ]
+              },
+              {
+                "name": "ExtrinsicCount",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total extrinsics count for the current block."
+                ]
+              },
+              {
+                "name": "AllExtrinsicsWeight",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Weight"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total weight for all extrinsics put together, for the current block."
+                ]
+              },
+              {
+                "name": "AllExtrinsicsLen",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total length (in bytes) for all extrinsics put together, for the current block."
+                ]
+              },
+              {
+                "name": "BlockHash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "BlockNumber",
+                    "value": "Hash",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Map of block numbers to block hashes."
+                ]
+              },
+              {
+                "name": "ExtrinsicData",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "u32",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Extrinsics data for the current block (maps an extrinsic's index to its data)."
+                ]
+              },
+              {
+                "name": "Number",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The current block number being processed. Set by `execute_block`."
+                ]
+              },
+              {
+                "name": "ParentHash",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Hash of the previous block."
+                ]
+              },
+              {
+                "name": "ExtrinsicsRoot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Extrinsics root of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Digest",
+                "modifier": "Default",
+                "type": {
+                  "plain": "DigestOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Digest of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Events",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<EventRecord>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Events deposited for the current block."
+                ]
+              },
+              {
+                "name": "EventCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EventIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of events in the `Events<T>` list."
+                ]
+              },
+              {
+                "name": "EventTopics",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Vec<(BlockNumber,EventIndex)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mapping between a topic (represented by T::Hash) and a vector of indexes",
+                  " of events in the `<Events<T>>` list.",
+                  "",
+                  " All topic vectors have deterministic storage locations depending on the topic. This",
+                  " allows light-clients to leverage the changes trie storage tracking mechanism and",
+                  " in case of changes fetch the list of events of interest.",
+                  "",
+                  " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
+                  " the `EventIndex` then in case if the topic has the same contents on the next block",
+                  " no notification will be triggered thus the event might be lost."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "fill_block",
+              "args": [],
+              "docs": [
+                " A big dispatch that will disallow any other transaction to be included."
+              ]
+            },
+            {
+              "name": "remark",
+              "args": [
+                {
+                  "name": "_remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Make some on-chain remark."
+              ]
+            },
+            {
+              "name": "set_heap_pages",
+              "args": [
+                {
+                  "name": "pages",
+                  "type": "u64"
+                }
+              ],
+              "docs": [
+                " Set the number of pages in the WebAssembly environment's heap."
+              ]
+            },
+            {
+              "name": "set_code",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code."
+              ]
+            },
+            {
+              "name": "set_code_without_checks",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code without doing any checks of the given `code`."
+              ]
+            },
+            {
+              "name": "set_changes_trie_config",
+              "args": [
+                {
+                  "name": "changes_trie_config",
+                  "type": "Option<ChangesTrieConfiguration>"
+                }
+              ],
+              "docs": [
+                " Set the new changes trie configuration."
+              ]
+            },
+            {
+              "name": "set_storage",
+              "args": [
+                {
+                  "name": "items",
+                  "type": "Vec<KeyValue>"
+                }
+              ],
+              "docs": [
+                " Set some items of storage."
+              ]
+            },
+            {
+              "name": "kill_storage",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Vec<Key>"
+                }
+              ],
+              "docs": [
+                " Kill some items from storage."
+              ]
+            },
+            {
+              "name": "kill_prefix",
+              "args": [
+                {
+                  "name": "prefix",
+                  "type": "Key"
+                }
+              ],
+              "docs": [
+                " Kill all storage items with a key that starts with the given prefix."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ExtrinsicSuccess",
+              "args": [
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic completed successfully."
+              ]
+            },
+            {
+              "name": "ExtrinsicFailed",
+              "args": [
+                "DispatchError",
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic failed."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidSpecName",
+              "docs": [
+                " The name of specification does not match between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "SpecVersionNotAllowedToDecrease",
+              "docs": [
+                " The specification version is not allowed to decrease between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "ImplVersionNotAllowedToDecrease",
+              "docs": [
+                " The implementation version is not allowed to decrease between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "SpecOrImplVersionNeedToIncrease",
+              "docs": [
+                " The specification or the implementation version need to increase between the",
+                " current runtime and the new runtime."
+              ]
+            },
+            {
+              "name": "FailedToExtractRuntimeVersion",
+              "docs": [
+                " Failed to extract the runtime version from the new runtime.",
+                "",
+                " Either calling `Core_version` or decoding `RuntimeVersion` failed."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Utility",
+          "storage": {
+            "prefix": "Utility",
+            "items": [
+              {
+                "name": "Multisigs",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "[u8;32]",
+                    "value": "Multisig",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of open multisig operations."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "batch",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Send a batch of dispatch calls.",
+                "",
+                " This will execute until the first one fails and then stop.",
+                "",
+                " May be called from any origin.",
+                "",
+                " - `calls`: The calls to be dispatched from the same origin.",
+                "",
+                " # <weight>",
+                " - The sum of the weights of the `calls`.",
+                " - One event.",
+                " # </weight>",
+                "",
+                " This will return `Ok` in all circumstances. To determine the success of the batch, an",
+                " event is deposited. If a call failed and the batch was interrupted, then the",
+                " `BatchInterrupted` event is deposited, along with the number of successful calls made",
+                " and the error of the failed call. If all were successful, then the `BatchCompleted`",
+                " event is deposited."
+              ]
+            },
+            {
+              "name": "as_sub",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "u16"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through an indexed pseudonym of the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - The weight of the `call`.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " If there are enough, then dispatch the call.",
+                "",
+                " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call`: The call to be executed.",
+                "",
+                " NOTE: Unless this is the final approval, you will generally want to use",
+                " `approve_as_multi` instead, since it only requires a hash of the call.",
+                "",
+                " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise",
+                " on success, result is `Ok` and the result from the interior call, if it was executed,",
+                " may be found in the deposited `MultisigExecuted` event.",
+                "",
+                " # <weight>",
+                " - `O(S + Z + Call)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - The weight of the `call`.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `MultisigDepositBase + threshold * MultisigDepositFactor`.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " NOTE: If this is the final approval, you will want to use `as_multi` instead.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `MultisigDepositBase + threshold * MultisigDepositFactor`.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "timepoint",
+                  "type": "Timepoint"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                }
+              ],
+              "docs": [
+                " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously",
+                " for this operation will be unreserved on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `timepoint`: The timepoint (block number and transaction index) of the first approval",
+                " transaction for this dispatch.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - One event.",
+                " - I/O: 1 read `O(S)`, one remove.",
+                " - Storage: removes one item.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BatchInterrupted",
+              "args": [
+                "u32",
+                "DispatchError"
+              ],
+              "docs": [
+                " Batch of dispatches did not complete fully. Index of first failing dispatch given, as",
+                " well as the error."
+              ]
+            },
+            {
+              "name": "BatchCompleted",
+              "args": [],
+              "docs": [
+                " Batch of dispatches completed fully with no error."
+              ]
+            },
+            {
+              "name": "NewMultisig",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A new multisig operation has begun. First param is the account that is approving,",
+                " second is the multisig account."
+              ]
+            },
+            {
+              "name": "MultisigApproval",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId"
+              ],
+              "docs": [
+                " A multisig operation has been approved by someone. First param is the account that is",
+                " approving, third is the multisig account."
+              ]
+            },
+            {
+              "name": "MultisigExecuted",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A multisig operation has been executed. First param is the account that is",
+                " approving, third is the multisig account."
+              ]
+            },
+            {
+              "name": "MultisigCancelled",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId"
+              ],
+              "docs": [
+                " A multisig operation has been cancelled. First param is the account that is",
+                " cancelling, third is the multisig account."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Babe",
+          "storage": {
+            "prefix": "Babe",
+            "items": [
+              {
+                "name": "EpochIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current epoch index."
+                ]
+              },
+              {
+                "name": "Authorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current epoch authorities."
+                ]
+              },
+              {
+                "name": "GenesisSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The slot at which the first epoch actually started. This is 0",
+                  " until the first block of the chain."
+                ]
+              },
+              {
+                "name": "CurrentSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current slot number."
+                ]
+              },
+              {
+                "name": "Randomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "[u8;32]"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The epoch randomness for the *current* epoch.",
+                  "",
+                  " # Security",
+                  "",
+                  " This MUST NOT be used for gambling, as it can be influenced by a",
+                  " malicious validator in the short term. It MAY be used in many",
+                  " cryptographic protocols, however, so long as one remembers that this",
+                  " (like everything else on-chain) it is public. For example, it can be",
+                  " used where a number is needed that cannot have been chosen by an",
+                  " adversary, for purposes such as public-coin zero-knowledge proofs."
+                ]
+              },
+              {
+                "name": "NextRandomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "[u8;32]"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Next epoch randomness."
+                ]
+              },
+              {
+                "name": "SegmentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Randomness under construction.",
+                  "",
+                  " We make a tradeoff between storage accesses and list length.",
+                  " We store the under-construction randomness in segments of up to",
+                  " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.",
+                  "",
+                  " Once a segment reaches this length, we begin the next one.",
+                  " We reset all segments and return to `0` at the beginning of every",
+                  " epoch."
+                ]
+              },
+              {
+                "name": "UnderConstruction",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "u32",
+                    "value": "Vec<[u8;32]>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": []
+              },
+              {
+                "name": "Initialized",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "MaybeVrf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Temporary value (cleared at block finalization) which is `Some`",
+                  " if per-block initialization has already been called for current block."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": null,
+          "constants": [
+            {
+              "name": "EpochDuration",
+              "type": "u64",
+              "value": "0xc800000000000000",
+              "docs": [
+                " The number of **slots** that an epoch takes. We couple sessions to",
+                " epochs, i.e. we start a new session once the new epoch begins."
+              ]
+            },
+            {
+              "name": "ExpectedBlockTime",
+              "type": "Moment",
+              "value": "0xb80b000000000000",
+              "docs": [
+                " The expected average block time at which BABE should be creating",
+                " blocks. Since BABE is probabilistic it is not trivial to figure out",
+                " what the expected average block time should be based on the slot",
+                " duration and the security parameter `c` (where `1 - c` represents",
+                " the probability of a slot being empty)."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Timestamp",
+          "storage": {
+            "prefix": "Timestamp",
+            "items": [
+              {
+                "name": "Now",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Moment"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current time for the current block."
+                ]
+              },
+              {
+                "name": "DidUpdate",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Did the timestamp get updated in this block?"
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set",
+              "args": [
+                {
+                  "name": "now",
+                  "type": "Compact<Moment>"
+                }
+              ],
+              "docs": [
+                " Set the current time.",
+                "",
+                " This call should be invoked exactly once per block. It will panic at the finalization",
+                " phase, if this call hasn't been invoked by that time.",
+                "",
+                " The timestamp should be greater than the previous one by the amount specified by",
+                " `MinimumPeriod`.",
+                "",
+                " The dispatch origin for this call must be `Inherent`."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "MinimumPeriod",
+              "type": "Moment",
+              "value": "0xdc05000000000000",
+              "docs": [
+                " The minimum period between blocks. Beware that this is different to the *expected* period",
+                " that the block production apparatus provides. Your chosen consensus system will generally",
+                " work with this to determine a sensible block time. e.g. For Aura, it will be double this",
+                " period on default settings."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Authorship",
+          "storage": {
+            "prefix": "Authorship",
+            "items": [
+              {
+                "name": "Uncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<UncleEntryItem>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Uncles"
+                ]
+              },
+              {
+                "name": "Author",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Author of current block."
+                ]
+              },
+              {
+                "name": "DidSetUncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Whether uncles were already set in this block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_uncles",
+              "args": [
+                {
+                  "name": "new_uncles",
+                  "type": "Vec<Header>"
+                }
+              ],
+              "docs": [
+                " Provide a set of uncles."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidUncleParent",
+              "docs": [
+                " The uncle parent not in the chain."
+              ]
+            },
+            {
+              "name": "UnclesAlreadySet",
+              "docs": [
+                " Uncles already set in the block."
+              ]
+            },
+            {
+              "name": "TooManyUncles",
+              "docs": [
+                " Too many uncles."
+              ]
+            },
+            {
+              "name": "GenesisUncle",
+              "docs": [
+                " The uncle is genesis."
+              ]
+            },
+            {
+              "name": "TooHighUncle",
+              "docs": [
+                " The uncle is too high in chain."
+              ]
+            },
+            {
+              "name": "UncleAlreadyIncluded",
+              "docs": [
+                " The uncle is already included."
+              ]
+            },
+            {
+              "name": "OldUncle",
+              "docs": [
+                " The uncle isn't recent enough to be included."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Indices",
+          "storage": {
+            "prefix": "Indices",
+            "items": [
+              {
+                "name": "NextEnumSet",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AccountIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next free enumeration set."
+                ]
+              },
+              {
+                "name": "EnumSet",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountIndex",
+                    "value": "Vec<AccountId>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The enumeration sets."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": [
+            {
+              "name": "NewAccountIndex",
+              "args": [
+                "AccountId",
+                "AccountIndex"
+              ],
+              "docs": [
+                " A new account index was assigned.",
+                "",
+                " This event is not triggered when an existing index is reassigned",
+                " to another `AccountId`."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Balances",
+          "storage": {
+            "prefix": "Balances",
+            "items": [
+              {
+                "name": "TotalIssuance",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Balance"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total units issued in the system."
+                ]
+              },
+              {
+                "name": "Vesting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "VestingSchedule",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information regarding the vesting of a given account."
+                ]
+              },
+              {
+                "name": "FreeBalance",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Balance",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The 'free' balance of a given account.",
+                  "",
+                  " This is the only balance that matters in terms of most operations on tokens. It",
+                  " alone is used to determine the balance when in the contract execution environment. When this",
+                  " balance falls below the value of `ExistentialDeposit`, then the 'current account' is",
+                  " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback",
+                  " is invoked, giving a chance to external modules to clean up data associated with",
+                  " the deleted account.",
+                  "",
+                  " `frame_system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets",
+                  " collapsed to zero if it ever becomes less than `ExistentialDeposit`."
+                ]
+              },
+              {
+                "name": "ReservedBalance",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Balance",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of the balance of a given account that is externally reserved; this can still get",
+                  " slashed, but gets slashed last of all.",
+                  "",
+                  " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens",
+                  " that are still 'owned' by the account holder, but which are suspendable.",
+                  "",
+                  " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'",
+                  " is deleted: specifically, `ReservedBalance`.",
+                  "",
+                  " `frame_system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets",
+                  " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Vec<BalanceLock>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any liquidity locks on some account balances."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Transfer some liquid free balance to another account.",
+                "",
+                " `transfer` will set the `FreeBalance` of the sender and receiver.",
+                " It will decrease the total issuance of the system by the `TransferFee`.",
+                " If the sender's account is below the existential deposit as a result",
+                " of the transfer, the account will be reaped.",
+                "",
+                " The dispatch origin for this call must be `Signed` by the transactor.",
+                "",
+                " # <weight>",
+                " - Dependent on arguments but not critical, given proper implementations for",
+                "   input config types. See related functions below.",
+                " - It contains a limited number of reads and writes internally and no complex computation.",
+                "",
+                " Related functions:",
+                "",
+                "   - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
+                "   - Transferring balances to accounts that did not exist before will cause",
+                "      `T::OnNewAccount::on_new_account` to be called.",
+                "   - Removing enough funds from an account will trigger",
+                "     `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.",
+                "   - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
+                "     check that the transfer will not kill the origin account.",
+                "",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_balance",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "new_free",
+                  "type": "Compact<Balance>"
+                },
+                {
+                  "name": "new_reserved",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Set the balances of a given account.",
+                "",
+                " This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
+                " also decrease the total issuance of the system (`TotalIssuance`).",
+                " If the new free or reserved balance is below the existential deposit,",
+                " it will reset the account nonce (`frame_system::AccountNonce`).",
+                "",
+                " The dispatch origin for this call is `root`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments.",
+                " - Contains a limited number of reads and writes.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Exactly as `transfer`, except the origin must be root and the source account may be",
+                " specified."
+              ]
+            },
+            {
+              "name": "transfer_keep_alive",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Same as the [`transfer`] call, but with a check that the transfer will not kill the",
+                " origin account.",
+                "",
+                " 99% of the time you want [`transfer`] instead.",
+                "",
+                " [`transfer`]: struct.Module.html#method.transfer"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewAccount",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A new account was created."
+              ]
+            },
+            {
+              "name": "ReapedAccount",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account was reaped."
+              ]
+            },
+            {
+              "name": "Transfer",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " Transfer succeeded (from, to, value, fees)."
+              ]
+            },
+            {
+              "name": "BalanceSet",
+              "args": [
+                "AccountId",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " A balance was set by root (who, free, reserved)."
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some amount was deposited (e.g. for transaction fees)."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ExistentialDeposit",
+              "type": "Balance",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The minimum amount required to keep an account open."
+              ]
+            },
+            {
+              "name": "TransferFee",
+              "type": "Balance",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to make a transfer."
+              ]
+            },
+            {
+              "name": "CreationFee",
+              "type": "Balance",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to create an account."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "VestingBalance",
+              "docs": [
+                " Vesting balance too high to send value"
+              ]
+            },
+            {
+              "name": "LiquidityRestrictions",
+              "docs": [
+                " Account liquidity restrictions prevent withdrawal"
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " Got an overflow after adding"
+              ]
+            },
+            {
+              "name": "InsufficientBalance",
+              "docs": [
+                " Balance too low to send value"
+              ]
+            },
+            {
+              "name": "ExistentialDeposit",
+              "docs": [
+                " Value too low to create account due to existential deposit"
+              ]
+            },
+            {
+              "name": "KeepAlive",
+              "docs": [
+                " Transfer/payment would kill account"
+              ]
+            },
+            {
+              "name": "ExistingVestingSchedule",
+              "docs": [
+                " A vesting schedule already exists for this account"
+              ]
+            },
+            {
+              "name": "DeadAccount",
+              "docs": [
+                " Beneficiary account must pre-exist"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "TransactionPayment",
+          "storage": {
+            "prefix": "Balances",
+            "items": [
+              {
+                "name": "NextFeeMultiplier",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Multiplier"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": []
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [
+            {
+              "name": "TransactionBaseFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the base."
+              ]
+            },
+            {
+              "name": "TransactionByteFee",
+              "type": "BalanceOf",
+              "value": "0x00e40b54020000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the per-byte portion."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Staking",
+          "storage": {
+            "prefix": "Staking",
+            "items": [
+              {
+                "name": "ValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ideal number of staking participants."
+                ]
+              },
+              {
+                "name": "MinimumValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x04000000",
+                "docs": [
+                  " Minimum number of staking participants before emergency conditions are imposed."
+                ]
+              },
+              {
+                "name": "Invulnerables",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're",
+                  " easy to initialize and the performance hit is minimal (we expect no more than four",
+                  " invulnerables) and restricted to testnets."
+                ]
+              },
+              {
+                "name": "Bonded",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all locked \"stash\" accounts to the controller account."
+                ]
+              },
+              {
+                "name": "Ledger",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "StakingLedger",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
+                ]
+              },
+              {
+                "name": "Payee",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "RewardDestination",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Where the reward payment should be made. Keyed by stash."
+                ]
+              },
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from (wannabe) validator stash key to the preferences of that validator."
+                ]
+              },
+              {
+                "name": "Nominators",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Nominations",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from nominator stash key to the set of stash keys of all validators to nominate.",
+                  "",
+                  " NOTE: is private so that we can ensure upgraded before all typical accesses.",
+                  " Direct storage APIs can still bypass this protection."
+                ]
+              },
+              {
+                "name": "Stakers",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Exposure",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Nominators for a particular account that is in action right now. You can't iterate",
+                  " through validators here, but you can find them in the Session module.",
+                  "",
+                  " This is keyed by the stash account."
+                ]
+              },
+              {
+                "name": "CurrentElected",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The currently elected validator set keyed by stash account ID."
+                ]
+              },
+              {
+                "name": "CurrentEra",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The current era index."
+                ]
+              },
+              {
+                "name": "CurrentEraStart",
+                "modifier": "Default",
+                "type": {
+                  "plain": "MomentOf"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The start of the current era."
+                ]
+              },
+              {
+                "name": "CurrentEraStartSessionIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The session index at which the current era started."
+                ]
+              },
+              {
+                "name": "CurrentEraPointsEarned",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EraPoints"
+                },
+                "fallback": "0x0000000000",
+                "docs": [
+                  " Rewards for the current era. Using indices of current elected set."
+                ]
+              },
+              {
+                "name": "SlotStake",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of balance actively at stake for each validator slot, currently.",
+                  "",
+                  " This is used to derive rewards and punishments."
+                ]
+              },
+              {
+                "name": "ForceEra",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Forcing"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the next session change will be a new era regardless of index."
+                ]
+              },
+              {
+                "name": "SlashRewardFraction",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Perbill"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The percentage of the slash that is distributed to reporters.",
+                  "",
+                  " The rest of the slashed value is handled by the `Slash`."
+                ]
+              },
+              {
+                "name": "CanceledSlashPayout",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of currency given to reporters of a slash event which was",
+                  " canceled by extraordinary circumstances (e.g. governance)."
+                ]
+              },
+              {
+                "name": "UnappliedSlashes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "EraIndex",
+                    "value": "Vec<UnappliedSlash>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All unapplied slashes that are queued for later."
+                ]
+              },
+              {
+                "name": "BondedEras",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(EraIndex,SessionIndex)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from still-bonded eras to the first session index of that era."
+                ]
+              },
+              {
+                "name": "ValidatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "(Perbill,BalanceOf)",
+                    "key2Hasher": "Twox128"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on validators, mapped by era to the highest slash proportion",
+                  " and slash value of the era."
+                ]
+              },
+              {
+                "name": "NominatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "BalanceOf",
+                    "key2Hasher": "Twox128"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on nominators, mapped by era to the highest slash value of the era."
+                ]
+              },
+              {
+                "name": "SlashingSpans",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "SlashingSpans",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Slashing spans for stash accounts."
+                ]
+              },
+              {
+                "name": "SpanSlash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "(AccountId,SpanIndex)",
+                    "value": "SpanRecord",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Records information about the maximum slash of a stash within a slashing span,",
+                  " as well as how much reward has been paid out."
+                ]
+              },
+              {
+                "name": "EarliestUnappliedSlash",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The earliest era for which we have a pending, unapplied slash."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The version of storage for upgrade."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bond",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " Take the origin account as a stash and lock up `value` of its balance. `controller` will",
+                " be the account that controls it.",
+                "",
+                " `value` must be more than the `minimum_balance` specified by `T::Currency`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash account.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Moderate complexity.",
+                " - O(1).",
+                " - Three extra DB entries.",
+                "",
+                " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless",
+                " the `origin` falls below _existential deposit_ and gets removed as dust.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "bond_extra",
+              "args": [
+                {
+                  "name": "max_additional",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Add some extra amount that have appeared in the stash `free_balance` into the balance up",
+                " for staking.",
+                "",
+                " Use this if there are additional funds in your stash account that you wish to bond.",
+                " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount",
+                " that can be added.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - O(1).",
+                " - One DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Schedule a portion of the stash to be unlocked ready for transfer out after the bond",
+                " period ends. If this leaves an amount actively bonded less than",
+                " T::Currency::minimum_balance(), then it is increased to the full amount.",
+                "",
+                " Once the unlock period is done, you can call `withdraw_unbonded` to actually move",
+                " the funds out of management ready for transfer.",
+                "",
+                " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)",
+                " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need",
+                " to be called first to remove some of the chunks (if possible).",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " See also [`Call::withdraw_unbonded`].",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Limited but potentially exploitable complexity.",
+                " - Contains a limited number of reads.",
+                " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)",
+                "   will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.",
+                "   The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.",
+                " - One DB entry.",
+                " </weight>"
+              ]
+            },
+            {
+              "name": "withdraw_unbonded",
+              "args": [],
+              "docs": [
+                " Remove any unlocked chunks from the `unlocking` queue from our management.",
+                "",
+                " This essentially frees up that balance to be used by the stash account to do",
+                " whatever it wants.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " See also [`Call::unbond`].",
+                "",
+                " # <weight>",
+                " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.",
+                "  It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is",
+                "  indirectly user-controlled. See [`unbond`] for more detail.",
+                " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "validate",
+              "args": [
+                {
+                  "name": "prefs",
+                  "type": "ValidatorPrefs"
+                }
+              ],
+              "docs": [
+                " Declare the desire to validate for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "nominate",
+              "args": [
+                {
+                  "name": "targets",
+                  "type": "Vec<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Declare the desire to nominate `targets` for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - The transaction's complexity is proportional to the size of `targets`,",
+                " which is capped at `MAX_NOMINATIONS`.",
+                " - Both the reads and writes follow a similar pattern.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "chill",
+              "args": [],
+              "docs": [
+                " Declare no desire to either validate or nominate.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains one read.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_payee",
+              "args": [
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " (Re-)set the payment target for a controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_controller",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " (Re-)set the controller of a stash.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_validator_count",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " The ideal number of validators."
+              ]
+            },
+            {
+              "name": "force_no_eras",
+              "args": [],
+              "docs": [
+                " Force there to be no new eras indefinitely.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of the next session. After this, it will be",
+                " reset to normal (non-forced) behaviour.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_invulnerables",
+              "args": [
+                {
+                  "name": "validators",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the validators who cannot be slashed (if any)."
+              ]
+            },
+            {
+              "name": "force_unstake",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Force a current staker to become completely unstaked, immediately."
+              ]
+            },
+            {
+              "name": "force_new_era_always",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of sessions indefinitely.",
+                "",
+                " # <weight>",
+                " - One storage write",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_deferred_slash",
+              "args": [
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                },
+                {
+                  "name": "slash_indices",
+                  "type": "Vec<u32>"
+                }
+              ],
+              "docs": [
+                " Cancel enactment of a deferred slash. Can be called by either the root origin or",
+                " the `T::SlashCancelOrigin`.",
+                " passing the era and indices of the slashes for that era to kill.",
+                "",
+                " # <weight>",
+                " - One storage write.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "rebond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Rebond a portion of the stash scheduled to be unlocked.",
+                "",
+                " # <weight>",
+                " - Time complexity: O(1). Bounded by `MAX_UNLOCKING_CHUNKS`.",
+                " - Storage changes: Can't increase storage, only decrease it.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Reward",
+              "args": [
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " All validators have been rewarded by the first balance; the second is the remainder",
+                " from the maximum amount of reward."
+              ]
+            },
+            {
+              "name": "Slash",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " One validator (and its nominators) has been slashed by the given amount."
+              ]
+            },
+            {
+              "name": "OldSlashingReportDiscarded",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " An old slashing report from a prior era was discarded because it could",
+                " not be processed."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SessionsPerEra",
+              "type": "SessionIndex",
+              "value": "0x06000000",
+              "docs": [
+                " Number of sessions per era."
+              ]
+            },
+            {
+              "name": "BondingDuration",
+              "type": "EraIndex",
+              "value": "0xa0020000",
+              "docs": [
+                " Number of eras that staked funds must remain bonded for."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotController",
+              "docs": [
+                " Not a controller account."
+              ]
+            },
+            {
+              "name": "NotStash",
+              "docs": [
+                " Not a stash account."
+              ]
+            },
+            {
+              "name": "AlreadyBonded",
+              "docs": [
+                " Stash is already bonded."
+              ]
+            },
+            {
+              "name": "AlreadyPaired",
+              "docs": [
+                " Controller is already paired."
+              ]
+            },
+            {
+              "name": "EmptyTargets",
+              "docs": [
+                " Targets cannot be empty."
+              ]
+            },
+            {
+              "name": "DuplicateIndex",
+              "docs": [
+                " Duplicate index."
+              ]
+            },
+            {
+              "name": "InvalidSlashIndex",
+              "docs": [
+                " Slash record index out of bounds."
+              ]
+            },
+            {
+              "name": "InsufficientValue",
+              "docs": [
+                " Can not bond with value less than minimum balance."
+              ]
+            },
+            {
+              "name": "NoMoreChunks",
+              "docs": [
+                " Can not schedule more unlock chunks."
+              ]
+            },
+            {
+              "name": "NoUnlockChunk",
+              "docs": [
+                " Can not rebond without unlocking chunks."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Session",
+          "storage": {
+            "prefix": "Session",
+            "items": [
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ValidatorId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of validators."
+                ]
+              },
+              {
+                "name": "CurrentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Current index of the session."
+                ]
+              },
+              {
+                "name": "QueuedChanged",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the underlying economic identities or weighting behind the validators",
+                  " has changed in the queued validator set."
+                ]
+              },
+              {
+                "name": "QueuedKeys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(ValidatorId,Keys)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The queued keys for the next session. When the next session begins, these keys",
+                  " will be used to determine the validator's session keys."
+                ]
+              },
+              {
+                "name": "DisabledValidators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<u32>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Indices of disabled validators.",
+                  "",
+                  " The set is cleared when `on_session_ending` returns a new set of identities."
+                ]
+              },
+              {
+                "name": "NextKeys",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "Bytes",
+                    "key2": "ValidatorId",
+                    "value": "Keys",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The next session keys for a validator.",
+                  "",
+                  " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
+                  " the trie. Having all data in the same branch should prevent slowing down other queries."
+                ]
+              },
+              {
+                "name": "KeyOwner",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "Bytes",
+                    "key2": "(KeyTypeId,Bytes)",
+                    "value": "ValidatorId",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The owner of a key. The second key is the `KeyTypeId` + the encoded key.",
+                  "",
+                  " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
+                  " the trie. Having all data in the same branch should prevent slowing down other queries."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_keys",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Keys"
+                },
+                {
+                  "name": "proof",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Sets the session key(s) of the function caller to `key`.",
+                " Allows an account to set its session key prior to becoming a validator.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - O(log n) in number of accounts.",
+                " - One extra DB entry.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewSession",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " New session has happened. Note that the argument is the session index, not the block",
+                " number as the type might suggest."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "DEDUP_KEY_PREFIX",
+              "type": "Bytes",
+              "value": "0x343a73657373696f6e3a6b657973",
+              "docs": [
+                " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch",
+                " of the trie."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidProof",
+              "docs": [
+                " Invalid ownership proof."
+              ]
+            },
+            {
+              "name": "NoAssociatedValidatorId",
+              "docs": [
+                " No associated validator ID for account."
+              ]
+            },
+            {
+              "name": "DuplicatedKey",
+              "docs": [
+                " Registered duplicate key."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Democracy",
+          "storage": {
+            "prefix": "Democracy",
+            "items": [
+              {
+                "name": "PublicPropCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "PropIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of (public) proposals that have been made so far."
+                ]
+              },
+              {
+                "name": "PublicProps",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(PropIndex,Hash,AccountId)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The public proposals. Unsorted. The second item is the proposal's hash."
+                ]
+              },
+              {
+                "name": "Preimages",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "(Bytes,AccountId,BalanceOf,BlockNumber)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map of hashes to the proposal preimage, along with who registered it and their deposit.",
+                  " The block number is the block at which it was deposited."
+                ]
+              },
+              {
+                "name": "DepositOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "PropIndex",
+                    "value": "(BalanceOf,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Those who have locked a deposit."
+                ]
+              },
+              {
+                "name": "ReferendumCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next free referendum index, aka the number of referenda started so far."
+                ]
+              },
+              {
+                "name": "LowestUnbaked",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The lowest referendum index representing an unbaked referendum. Equal to",
+                  " `ReferendumCount` if there isn't a unbaked referendum."
+                ]
+              },
+              {
+                "name": "ReferendumInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ReferendumIndex",
+                    "value": "ReferendumInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information concerning any given referendum."
+                ]
+              },
+              {
+                "name": "DispatchQueue",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(BlockNumber,Hash,ReferendumIndex)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Queue of successful referenda to be dispatched. Stored ordered by block number."
+                ]
+              },
+              {
+                "name": "VotersFor",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ReferendumIndex",
+                    "value": "Vec<AccountId>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Get the voters for the current proposal."
+                ]
+              },
+              {
+                "name": "VoteOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "(ReferendumIndex,AccountId)",
+                    "value": "Vote",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Get the vote in a given referendum of a particular voter. The result is meaningful only",
+                  " if `voters_for` includes the voter when called with the referendum (you'll get the",
+                  " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can",
+                  " also check for simple existence with `VoteOf::exists` first."
+                ]
+              },
+              {
+                "name": "Proxy",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Who is able to vote for whom. Value is the fund-holding account, key is the",
+                  " vote-transaction-sending account."
+                ]
+              },
+              {
+                "name": "Delegations",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "(AccountId,Conviction)",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Get the account (and lock periods) to which another account is delegating vote."
+                ]
+              },
+              {
+                "name": "LastTabledWasExternal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the last referendum tabled was submitted externally. False if it was a public",
+                  " proposal."
+                ]
+              },
+              {
+                "name": "NextExternal",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(Hash,VoteThreshold)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The referendum to be tabled whenever it would be valid to table an external proposal.",
+                  " This happens when a referendum needs to be tabled and one of two conditions are met:",
+                  " - `LastTabledWasExternal` is `false`; or",
+                  " - `PublicProps` is empty."
+                ]
+              },
+              {
+                "name": "Blacklist",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "(BlockNumber,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A record of who vetoed what. Maps proposal hash to a possible existent block number",
+                  " (until when it may not be resubmitted) and who vetoed it."
+                ]
+              },
+              {
+                "name": "Cancellations",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Record of all proposals that have been subject to emergency cancellation."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Propose a sensitive action to be taken.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Two DB changes, one DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "second",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Compact<PropIndex>"
+                }
+              ],
+              "docs": [
+                " Propose a sensitive action to be taken.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                },
+                {
+                  "name": "vote",
+                  "type": "Vote"
+                }
+              ],
+              "docs": [
+                " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;",
+                " otherwise it is a vote to keep the status quo.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One DB change, one DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "proxy_vote",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                },
+                {
+                  "name": "vote",
+                  "type": "Vote"
+                }
+              ],
+              "docs": [
+                " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact",
+                " the proposal; otherwise it is a vote to keep the status quo.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One DB change, one DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "emergency_cancel",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
+                " referendum."
+              ]
+            },
+            {
+              "name": "external_propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a referendum to be tabled once it is legal to schedule an external",
+                " referendum."
+              ]
+            },
+            {
+              "name": "external_propose_majority",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
+                " an external referendum.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call."
+              ]
+            },
+            {
+              "name": "external_propose_default",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
+                " schedule an external referendum.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call."
+              ]
+            },
+            {
+              "name": "fast_track",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "voting_period",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Schedule the currently externally-proposed majority-carries referendum to be tabled",
+                " immediately. If there is no externally-proposed referendum currently, or if there is one",
+                " but it is not a majority-carries referendum then it fails.",
+                "",
+                " - `proposal_hash`: The hash of the current external proposal.",
+                " - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
+                "   `EmergencyVotingPeriod` if too low.",
+                " - `delay`: The number of block after voting has ended in approval and this should be",
+                "   enacted. This doesn't have a minimum amount."
+              ]
+            },
+            {
+              "name": "veto_external",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Veto and blacklist the external proposal hash."
+              ]
+            },
+            {
+              "name": "cancel_referendum",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Remove a referendum."
+              ]
+            },
+            {
+              "name": "cancel_queued",
+              "args": [
+                {
+                  "name": "which",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a proposal queued for enactment."
+              ]
+            },
+            {
+              "name": "set_proxy",
+              "args": [
+                {
+                  "name": "proxy",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Specify a proxy. Called by the stash.",
+                "",
+                " # <weight>",
+                " - One extra DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "resign_proxy",
+              "args": [],
+              "docs": [
+                " Clear the proxy. Called by the proxy.",
+                "",
+                " # <weight>",
+                " - One DB clear.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxy",
+              "args": [
+                {
+                  "name": "proxy",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Clear the proxy. Called by the stash.",
+                "",
+                " # <weight>",
+                " - One DB clear.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "delegate",
+              "args": [
+                {
+                  "name": "to",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "conviction",
+                  "type": "Conviction"
+                }
+              ],
+              "docs": [
+                " Delegate vote.",
+                "",
+                " # <weight>",
+                " - One extra DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "undelegate",
+              "args": [],
+              "docs": [
+                " Undelegate vote.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_public_proposals",
+              "args": [],
+              "docs": [
+                " Veto and blacklist the proposal hash. Must be from Root origin."
+              ]
+            },
+            {
+              "name": "note_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This doesn't require the proposal to be",
+                " in the dispatch queue but does require a deposit, returned once enacted."
+              ]
+            },
+            {
+              "name": "note_imminent_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This requires the proposal to be",
+                " in the dispatch queue. No deposit is needed."
+              ]
+            },
+            {
+              "name": "reap_preimage",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Remove an expired proposal preimage and collect the deposit.",
+                "",
+                " This will only work after `VotingPeriod` blocks from the time that the preimage was",
+                " noted, if it's the same account doing it. If it's a different account, then it'll only",
+                " work an additional `EnactmentPeriod` later."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "PropIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A motion has been proposed by a public account."
+              ]
+            },
+            {
+              "name": "Tabled",
+              "args": [
+                "PropIndex",
+                "Balance",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A public proposal has been tabled for referendum vote."
+              ]
+            },
+            {
+              "name": "ExternalTabled",
+              "args": [],
+              "docs": [
+                " An external proposal has been tabled."
+              ]
+            },
+            {
+              "name": "Started",
+              "args": [
+                "ReferendumIndex",
+                "VoteThreshold"
+              ],
+              "docs": [
+                " A referendum has begun."
+              ]
+            },
+            {
+              "name": "Passed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been approved by referendum."
+              ]
+            },
+            {
+              "name": "NotPassed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been rejected by referendum."
+              ]
+            },
+            {
+              "name": "Cancelled",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A referendum has been cancelled."
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "ReferendumIndex",
+                "bool"
+              ],
+              "docs": [
+                " A proposal has been enacted."
+              ]
+            },
+            {
+              "name": "Delegated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An account has delegated their vote to another account."
+              ]
+            },
+            {
+              "name": "Undelegated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An account has cancelled a previous delegation operation."
+              ]
+            },
+            {
+              "name": "Vetoed",
+              "args": [
+                "AccountId",
+                "Hash",
+                "BlockNumber"
+              ],
+              "docs": [
+                " An external proposal has been vetoed."
+              ]
+            },
+            {
+              "name": "PreimageNoted",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal's preimage was noted, and the deposit taken."
+              ]
+            },
+            {
+              "name": "PreimageUsed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal preimage was removed and used (the deposit was returned)."
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was invalid."
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was missing."
+              ]
+            },
+            {
+              "name": "PreimageReaped",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A registered preimage was removed and the deposit collected by the reaper (last item)."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "EnactmentPeriod",
+              "type": "BlockNumber",
+              "value": "0x002f0d00",
+              "docs": [
+                " The minimum period of locking and the period between a proposal being approved and enacted.",
+                "",
+                " It should generally be a little more than the unstake period to ensure that",
+                " voting stakers have an opportunity to remove themselves from the system in the case where",
+                " they are on the losing side of a vote."
+              ]
+            },
+            {
+              "name": "LaunchPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) new public referenda are launched."
+              ]
+            },
+            {
+              "name": "VotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) to check for new votes."
+              ]
+            },
+            {
+              "name": "MinimumDeposit",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount to be used as a deposit for a public referendum proposal."
+              ]
+            },
+            {
+              "name": "EmergencyVotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x80510100",
+              "docs": [
+                " Minimum voting period allowed for an emergency referendum."
+              ]
+            },
+            {
+              "name": "CooloffPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " Period in blocks where an external proposal may not be re-submitted after being vetoed."
+              ]
+            },
+            {
+              "name": "PreimageByteDeposit",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount of balance that must be deposited per byte of preimage stored."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "ValueLow",
+              "docs": [
+                " Value too low"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal does not exist"
+              ]
+            },
+            {
+              "name": "NotProxy",
+              "docs": [
+                " Not a proxy"
+              ]
+            },
+            {
+              "name": "BadIndex",
+              "docs": [
+                " Unknown index"
+              ]
+            },
+            {
+              "name": "AlreadyCanceled",
+              "docs": [
+                " Cannot cancel the same proposal twice"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Proposal already made"
+              ]
+            },
+            {
+              "name": "ProposalBlacklisted",
+              "docs": [
+                " Proposal still blacklisted"
+              ]
+            },
+            {
+              "name": "NotSimpleMajority",
+              "docs": [
+                " Next external proposal not simple majority"
+              ]
+            },
+            {
+              "name": "InvalidHash",
+              "docs": [
+                " Invalid hash"
+              ]
+            },
+            {
+              "name": "NoProposal",
+              "docs": [
+                " No external proposal"
+              ]
+            },
+            {
+              "name": "AlreadyVetoed",
+              "docs": [
+                " Identity may not veto a proposal twice"
+              ]
+            },
+            {
+              "name": "AlreadyProxy",
+              "docs": [
+                " Already a proxy"
+              ]
+            },
+            {
+              "name": "WrongProxy",
+              "docs": [
+                " Wrong proxy"
+              ]
+            },
+            {
+              "name": "NotDelegated",
+              "docs": [
+                " Not delegated"
+              ]
+            },
+            {
+              "name": "DuplicatePreimage",
+              "docs": [
+                " Preimage already noted"
+              ]
+            },
+            {
+              "name": "NotImminent",
+              "docs": [
+                " Not imminent"
+              ]
+            },
+            {
+              "name": "Early",
+              "docs": [
+                " Too early"
+              ]
+            },
+            {
+              "name": "Imminent",
+              "docs": [
+                " Imminent"
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "docs": [
+                " Preimage not found"
+              ]
+            },
+            {
+              "name": "ReferendumInvalid",
+              "docs": [
+                " Vote given for invalid referendum"
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "docs": [
+                " Invalid preimage"
+              ]
+            },
+            {
+              "name": "NoneWaiting",
+              "docs": [
+                " No proposals waiting"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Council",
+          "storage": {
+            "prefix": "Instance1Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership manually to `new_members`. Be nice to the chain and",
+                " provide it pre-sorted.",
+                "",
+                " Requires root origin."
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective."
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage reads and writes.",
+                " - Argument `threshold` has bearing on weight.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage read and writes.",
+                " - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A motion was executed; `bool` is true if returned without error."
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A single member did some action; `bool` is true if returned without error."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "TechnicalCommittee",
+          "storage": {
+            "prefix": "Instance2Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership manually to `new_members`. Be nice to the chain and",
+                " provide it pre-sorted.",
+                "",
+                " Requires root origin."
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective."
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage reads and writes.",
+                " - Argument `threshold` has bearing on weight.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage read and writes.",
+                " - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A motion was executed; `bool` is true if returned without error."
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A single member did some action; `bool` is true if returned without error."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Elections",
+          "storage": {
+            "prefix": "PhragmenElection",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current elected membership. Sorted based on account id."
+                ]
+              },
+              {
+                "name": "RunnersUp",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current runners_up. Sorted based on low to high merit (worse to best runner)."
+                ]
+              },
+              {
+                "name": "ElectionRounds",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The total number of vote rounds that have happened, excluding the upcoming one."
+                ]
+              },
+              {
+                "name": "VotesOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Vec<AccountId>",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes of a particular voter, with the round index of the votes."
+                ]
+              },
+              {
+                "name": "StakeOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " Locked stake of a voter."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The present candidate list. Sorted based on account-id. A current member or a runner can",
+                  " never enter this vector and is always implicitly assumed to be a candidate."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "votes",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Vote for a set of candidates for the upcoming round of election.",
+                "",
+                " The `votes` should:",
+                "   - not be empty.",
+                "   - be less than the number of candidates.",
+                "",
+                " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.",
+                " It is the responsibility of the caller to not place all of their balance into the lock",
+                " and keep some for further transactions.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(1)",
+                " Writes: O(V) given `V` votes. V is bounded by 16.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_voter",
+              "args": [],
+              "docs": [
+                " Remove `origin` as a voter. This removes the lock and returns the bond.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(1)",
+                " Writes: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "report_defunct_voter",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Report `target` for being an defunct voter. In case of a valid report, the reporter is",
+                " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and",
+                " their bond is slashed.",
+                "",
+                " A defunct voter is defined to be:",
+                "   - a voter whose current submitted votes are all invalid. i.e. all of them are no",
+                "     longer a candidate nor an active member.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(NLogM) given M current candidates and N votes for `target`.",
+                " Writes: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "submit_candidacy",
+              "args": [],
+              "docs": [
+                " Submit oneself for candidacy.",
+                "",
+                " A candidate will either:",
+                "   - Lose at the end of the term and forfeit their deposit.",
+                "   - Win and become a member. Members will eventually get their stash back.",
+                "   - Become a runner-up. Runners-ups are reserved members in case one gets forcefully",
+                "     removed.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(LogN) Given N candidates.",
+                " Writes: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "renounce_candidacy",
+              "args": [],
+              "docs": [
+                " Renounce one's intention to be a candidate for the next election round. 3 potential",
+                " outcomes exist:",
+                " - `origin` is a candidate and not elected in any set. In this case, the bond is",
+                "   unreserved, returned and origin is removed as a candidate.",
+                " - `origin` is a current runner up. In this case, the bond is unreserved, returned and",
+                "   origin is removed as a runner.",
+                " - `origin` is a current member. In this case, the bond is unreserved and origin is",
+                "   removed as a member, consequently not being a candidate for the next round anymore.",
+                "   Similar to [`remove_voter`], if replacement runners exists, they are immediately used."
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove a particular member from the set. This is effective immediately and the bond of",
+                " the outgoing member is slashed.",
+                "",
+                " If a runner-up is available, then the best runner-up will be removed and replaces the",
+                " outgoing member. Otherwise, a new phragmen round is started.",
+                "",
+                " Note that this does not affect the designated block number of the next election.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(do_phragmen)",
+                " Writes: O(do_phragmen)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewTerm",
+              "args": [
+                "Vec<(AccountId,Balance)>"
+              ],
+              "docs": [
+                " A new term with new members. This indicates that enough candidates existed, not that",
+                " enough have has been elected. The inner value must be examined for this purpose."
+              ]
+            },
+            {
+              "name": "EmptyTerm",
+              "args": [],
+              "docs": [
+                " No (or not enough) candidates existed for this round."
+              ]
+            },
+            {
+              "name": "MemberKicked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A member has been removed. This should always be followed by either `NewTerm` ot",
+                " `EmptyTerm`."
+              ]
+            },
+            {
+              "name": "MemberRenounced",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A member has renounced their candidacy."
+              ]
+            },
+            {
+              "name": "VoterReported",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A voter (first element) was reported (byt the second element) with the the report being",
+                " successful or not (third element)."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "CandidacyBond",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": []
+            },
+            {
+              "name": "VotingBond",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": []
+            },
+            {
+              "name": "DesiredMembers",
+              "type": "u32",
+              "value": "0x0d000000",
+              "docs": []
+            },
+            {
+              "name": "DesiredRunnersUp",
+              "type": "u32",
+              "value": "0x07000000",
+              "docs": []
+            },
+            {
+              "name": "TermDuration",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": []
+            }
+          ],
+          "errors": [
+            {
+              "name": "UnableToVote",
+              "docs": [
+                " Cannot vote when no candidates or members exist."
+              ]
+            },
+            {
+              "name": "NoVotes",
+              "docs": [
+                " Must vote for at least one candidate."
+              ]
+            },
+            {
+              "name": "TooManyVotes",
+              "docs": [
+                " Cannot vote more than candidates."
+              ]
+            },
+            {
+              "name": "MaximumVotesExceeded",
+              "docs": [
+                " Cannot vote more than maximum allowed."
+              ]
+            },
+            {
+              "name": "LowBalance",
+              "docs": [
+                " Cannot vote with stake less than minimum balance."
+              ]
+            },
+            {
+              "name": "UnableToPayBond",
+              "docs": [
+                " Voter can not pay voting bond."
+              ]
+            },
+            {
+              "name": "MustBeVoter",
+              "docs": [
+                " Must be a voter."
+              ]
+            },
+            {
+              "name": "ReportSelf",
+              "docs": [
+                " Cannot report self."
+              ]
+            },
+            {
+              "name": "DuplicatedCandidate",
+              "docs": [
+                " Duplicated candidate submission."
+              ]
+            },
+            {
+              "name": "MemberSubmit",
+              "docs": [
+                " Member cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "RunnerSubmit",
+              "docs": [
+                " Runner cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "InsufficientCandidateFunds",
+              "docs": [
+                " Candidate does not have enough funds."
+              ]
+            },
+            {
+              "name": "InvalidOrigin",
+              "docs": [
+                " Origin is not a candidate, member or a runner up."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " Not a member."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "TechnicalMembership",
+          "storage": {
+            "prefix": "Instance1Membership",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current membership, stored as an ordered Vec."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a member `who` to the set.",
+                "",
+                " May only be called from `AddOrigin` or root."
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Remove a member `who` from the set.",
+                "",
+                " May only be called from `RemoveOrigin` or root."
+              ]
+            },
+            {
+              "name": "swap_member",
+              "args": [
+                {
+                  "name": "remove",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "add",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out one member `remove` for another `add`.",
+                "",
+                " May only be called from `SwapOrigin` or root."
+              ]
+            },
+            {
+              "name": "reset_members",
+              "args": [
+                {
+                  "name": "members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Change the membership to a new set, disregarding the existing membership. Be nice and",
+                " pass `members` pre-sorted.",
+                "",
+                " May only be called from `ResetOrigin` or root."
+              ]
+            },
+            {
+              "name": "change_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out the sending member for some other key `new`.",
+                "",
+                " May only be called from `Signed` origin of a current member."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "MemberAdded",
+              "args": [],
+              "docs": [
+                " The given member was added; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MemberRemoved",
+              "args": [],
+              "docs": [
+                " The given member was removed; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersSwapped",
+              "args": [],
+              "docs": [
+                " Two members were swapped; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersReset",
+              "args": [],
+              "docs": [
+                " The membership was reset; see the transaction for who the new set is."
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [],
+              "docs": [
+                " One of the members' keys changed."
+              ]
+            },
+            {
+              "name": "Dummy",
+              "args": [
+                "PhantomData"
+              ],
+              "docs": [
+                " Phantom member, never used."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "FinalityTracker",
+          "storage": null,
+          "calls": [
+            {
+              "name": "final_hint",
+              "args": [
+                {
+                  "name": "hint",
+                  "type": "Compact<BlockNumber>"
+                }
+              ],
+              "docs": [
+                " Hint that the author of this block thinks the best finalized",
+                " block is the given number."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "WindowSize",
+              "type": "BlockNumber",
+              "value": "0x65000000",
+              "docs": [
+                " The number of recent samples to keep from this chain. Default is 101."
+              ]
+            },
+            {
+              "name": "ReportLatency",
+              "type": "BlockNumber",
+              "value": "0xe8030000",
+              "docs": [
+                " The delay after which point things become suspicious. Default is 1000."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "AlreadyUpdated",
+              "docs": [
+                " Final hint must be updated only once in the block"
+              ]
+            },
+            {
+              "name": "BadHint",
+              "docs": [
+                " Finalized height above block number"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Grandpa",
+          "storage": {
+            "prefix": "GrandpaFinality",
+            "items": [
+              {
+                "name": "Authorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AuthorityList"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " DEPRECATED",
+                  "",
+                  " This used to store the current authority set, which has been migrated to the well-known",
+                  " GRANDPA_AUTHORITES_KEY unhashed key."
+                ]
+              },
+              {
+                "name": "State",
+                "modifier": "Default",
+                "type": {
+                  "plain": "StoredState"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " State of the current authority set."
+                ]
+              },
+              {
+                "name": "PendingChange",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "StoredPendingChange"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending change: (signaled at, scheduled change)."
+                ]
+              },
+              {
+                "name": "NextForced",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " next block number where we can force a change."
+                ]
+              },
+              {
+                "name": "Stalled",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(BlockNumber,BlockNumber)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " `true` if we are currently stalled."
+                ]
+              },
+              {
+                "name": "CurrentSetId",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SetId"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The number of changes (both in terms of keys and underlying economic responsibilities)",
+                  " in the \"set\" of Grandpa validators from genesis."
+                ]
+              },
+              {
+                "name": "SetIdSession",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "SetId",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_misbehavior",
+              "args": [
+                {
+                  "name": "_report",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Report some misbehavior."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewAuthorities",
+              "args": [
+                "AuthorityList"
+              ],
+              "docs": [
+                " New authority set has been applied."
+              ]
+            },
+            {
+              "name": "Paused",
+              "args": [],
+              "docs": [
+                " Current authority set has been paused."
+              ]
+            },
+            {
+              "name": "Resumed",
+              "args": [],
+              "docs": [
+                " Current authority set has been resumed."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "PauseFailed",
+              "docs": [
+                " Attempt to signal GRANDPA pause when the authority set isn't live",
+                " (either paused or already pending pause)."
+              ]
+            },
+            {
+              "name": "ResumeFailed",
+              "docs": [
+                " Attempt to signal GRANDPA resume when the authority set isn't paused",
+                " (either live or already pending resume)."
+              ]
+            },
+            {
+              "name": "ChangePending",
+              "docs": [
+                " Attempt to signal GRANDPA change with one already pending."
+              ]
+            },
+            {
+              "name": "TooSoon",
+              "docs": [
+                " Cannot signal forced change so soon after last."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Treasury",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ProposalIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Number of proposals that have been made."
+                ]
+              },
+              {
+                "name": "Proposals",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ProposalIndex",
+                    "value": "TreasuryProposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposals that have been made."
+                ]
+              },
+              {
+                "name": "Approvals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ProposalIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposal indices that have been approved but not yet awarded."
+                ]
+              },
+              {
+                "name": "Tips",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Hash",
+                    "value": "OpenTip",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Tips that are not yet completed. Keyed by the hash of `(reason, who)` from the value.",
+                  " This has the insecure enumerable hash function since the key itself is already",
+                  " guaranteed to be a secure hash."
+                ]
+              },
+              {
+                "name": "Reasons",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Hash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Simple preimage lookup from the reason's hash to the original data. Again, has an",
+                  " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose_spend",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Put forward a suggestion for spending. A deposit proportional to the value",
+                " is reserved and slashed if the proposal is rejected. It is returned once the",
+                " proposal is awarded.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change, one extra DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Reject a proposed spend. The original deposit will be slashed.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB clear.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
+                " and the original deposit will be returned.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "report_awesome",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Report something `reason` that deserves a tip and claim any eventual the finder's fee.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
+                " `TipReportDepositPerByte` for each byte in `reason`.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R)` where `R` length of `reason`.",
+                " - One balance operation.",
+                " - One storage mutation (codec `O(R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "retract_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.",
+                "",
+                " If successful, the original deposit will be unreserved.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`",
+                " must have been reported by the signing account through `report_awesome` (and not",
+                " through `tip_new`).",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " Emits `TipRetracted` if successful.",
+                "",
+                " # <weight>",
+                " - `O(T)`",
+                " - One balance operation.",
+                " - Two storage removals (one read, codec `O(T)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip_new",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " Give a tip for something new; no finder's fee will be taken.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + T)` where `R` length of `reason`, `T` is the number of tippers. `T` is",
+                "   naturally capped as a membership set, `R` is limited through transaction-size.",
+                " - Two storage insertions (codecs `O(R)`, `O(T)`), one read `O(1)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " Declare a tip value for an already-open tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the hash of the original tip `reason` and the beneficiary",
+                "   account ID.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period",
+                " has started.",
+                "",
+                " # <weight>",
+                " - `O(T)`",
+                " - One storage mutation (codec `O(T)`), one storage read `O(1)`.",
+                " - Up to one event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Close and payout a tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " The tip identified by `hash` must have finished its countdown period.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " # <weight>",
+                " - `O(T)`",
+                " - One storage retrieval (codec `O(T)`) and two removals.",
+                " - Up to three balance operations.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "ProposalIndex"
+              ],
+              "docs": [
+                " New proposal."
+              ]
+            },
+            {
+              "name": "Spending",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " We have ended a spend period and will now allocate funds."
+              ]
+            },
+            {
+              "name": "Awarded",
+              "args": [
+                "ProposalIndex",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " Some funds have been allocated."
+              ]
+            },
+            {
+              "name": "Rejected",
+              "args": [
+                "ProposalIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal was rejected; funds were slashed."
+              ]
+            },
+            {
+              "name": "Burnt",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some of our funds have been burnt."
+              ]
+            },
+            {
+              "name": "Rollover",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Spending has finished; this is the amount that rolls over until next spend."
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds have been deposited."
+              ]
+            },
+            {
+              "name": "NewTip",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A new tip suggestion has been opened."
+              ]
+            },
+            {
+              "name": "TipClosing",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has reached threshold and is closing."
+              ]
+            },
+            {
+              "name": "TipClosed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A tip suggestion has been closed."
+              ]
+            },
+            {
+              "name": "TipRetracted",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has been retracted."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProposalBond",
+              "type": "Permill",
+              "value": "0x50c30000",
+              "docs": [
+                " Fraction of a proposal's value that should be bonded in order to place the proposal.",
+                " An accepted proposal gets these back. A rejected proposal does not."
+              ]
+            },
+            {
+              "name": "ProposalBondMinimum",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Minimum amount of funds that should be placed in a deposit for making a proposal."
+              ]
+            },
+            {
+              "name": "SpendPeriod",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " Period between successive spends."
+              ]
+            },
+            {
+              "name": "Burn",
+              "type": "Permill",
+              "value": "0x20a10700",
+              "docs": [
+                " Percentage of spare funds (if any) that are burnt per spend period."
+              ]
+            },
+            {
+              "name": "TipCountdown",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " The period for which a tip remains open after is has achieved threshold tippers."
+              ]
+            },
+            {
+              "name": "TipFindersFee",
+              "type": "Percent",
+              "value": "0x14",
+              "docs": [
+                " The amount of the final tip which goes to the original reporter of the tip."
+              ]
+            },
+            {
+              "name": "TipReportDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The amount held on deposit for placing a tip report."
+              ]
+            },
+            {
+              "name": "TipReportDepositPerByte",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount held on deposit per byte within the tip report reason."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InsufficientProposersBalance",
+              "docs": [
+                " Proposer's balance is too low."
+              ]
+            },
+            {
+              "name": "InvalidProposalIndex",
+              "docs": [
+                " No proposal at that index."
+              ]
+            },
+            {
+              "name": "ReasonTooBig",
+              "docs": [
+                " The reason given is just too big."
+              ]
+            },
+            {
+              "name": "AlreadyKnown",
+              "docs": [
+                " The tip was already found/started."
+              ]
+            },
+            {
+              "name": "UnknownTip",
+              "docs": [
+                " The tip hash is unknown."
+              ]
+            },
+            {
+              "name": "NotFinder",
+              "docs": [
+                " The account attempting to retract the tip is not the finder of the tip."
+              ]
+            },
+            {
+              "name": "StillOpen",
+              "docs": [
+                " The tip cannot be claimed/closed because there are not enough tippers yet."
+              ]
+            },
+            {
+              "name": "Premature",
+              "docs": [
+                " The tip cannot be claimed/closed because it's still in the countdown period."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Contracts",
+          "storage": {
+            "prefix": "Contract",
+            "items": [
+              {
+                "name": "GasSpent",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Gas"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Gas spent so far in this block."
+                ]
+              },
+              {
+                "name": "CurrentSchedule",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Schedule"
+                },
+                "fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000",
+                "docs": [
+                  " Current cost schedule for contracts."
+                ]
+              },
+              {
+                "name": "PristineCode",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "CodeHash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from an original code hash to the original code, untouched by instrumentation."
+                ]
+              },
+              {
+                "name": "CodeStorage",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "CodeHash",
+                    "value": "PrefabWasmModule",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping between an original code hash and instrumented wasm code, ready for execution."
+                ]
+              },
+              {
+                "name": "AccountCounter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The subtrie counter."
+                ]
+              },
+              {
+                "name": "ContractInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "ContractInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The code associated with a given account."
+                ]
+              },
+              {
+                "name": "GasPrice",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x01000000000000000000000000000000",
+                "docs": [
+                  " The price of one unit of gas."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "update_schedule",
+              "args": [
+                {
+                  "name": "schedule",
+                  "type": "Schedule"
+                }
+              ],
+              "docs": [
+                " Updates the schedule for metering contracts.",
+                "",
+                " The schedule must have a greater version than the stored schedule."
+              ]
+            },
+            {
+              "name": "put_code",
+              "args": [
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.",
+                " You can instantiate contracts only with stored code."
+              ]
+            },
+            {
+              "name": "call",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Makes a call to an account, optionally transferring some balance.",
+                "",
+                " * If the account is a smart-contract account, the associated code will be",
+                " executed and any value will be transferred.",
+                " * If the account is a regular account, any value will be transferred.",
+                " * If no account exists and the call value is not less than `existential_deposit`,",
+                " a regular account will be created and any value will be transferred."
+              ]
+            },
+            {
+              "name": "instantiate",
+              "args": [
+                {
+                  "name": "endowment",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "code_hash",
+                  "type": "CodeHash"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.",
+                "",
+                " Instantiation is executed as follows:",
+                "",
+                " - The destination address is computed based on the sender and hash of the code.",
+                " - The smart-contract account is created at the computed address.",
+                " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned",
+                "   after the execution is saved as the `code` of the account. That code will be invoked",
+                "   upon any call received by this account.",
+                " - The contract is initialized."
+              ]
+            },
+            {
+              "name": "claim_surcharge",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "aux_sender",
+                  "type": "Option<AccountId>"
+                }
+              ],
+              "docs": [
+                " Allows block producers to claim a small reward for evicting a contract. If a block producer",
+                " fails to do so, a regular users will be allowed to claim the reward.",
+                "",
+                " If contract is not evicted as a result of this call, no actions are taken and",
+                " the sender is not eligible for the reward."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Transfer",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`."
+              ]
+            },
+            {
+              "name": "Instantiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Contract deployed by address at the specified address."
+              ]
+            },
+            {
+              "name": "CodeStored",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " Code with the specified hash has been stored."
+              ]
+            },
+            {
+              "name": "ScheduleUpdated",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " Triggered when the current schedule is updated."
+              ]
+            },
+            {
+              "name": "Dispatched",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A call was dispatched from the given account. The bool signals whether it was",
+                " successful execution or not."
+              ]
+            },
+            {
+              "name": "Contract",
+              "args": [
+                "AccountId",
+                "Bytes"
+              ],
+              "docs": [
+                " An event from contract of account."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SignedClaimHandicap",
+              "type": "BlockNumber",
+              "value": "0x02000000",
+              "docs": [
+                " Number of block delay an extrinsic claim surcharge has.",
+                "",
+                " When claim surcharge is called by an extrinsic the rent is checked",
+                " for current_block - delay"
+              ]
+            },
+            {
+              "name": "TombstoneDeposit",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The minimum amount required to generate a tombstone."
+              ]
+            },
+            {
+              "name": "StorageSizeOffset",
+              "type": "u32",
+              "value": "0x08000000",
+              "docs": [
+                " Size of a contract at the time of instantiaion. This is a simple way to ensure that",
+                " empty contracts eventually gets deleted."
+              ]
+            },
+            {
+              "name": "RentByteFee",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Price of a byte of storage per one block interval. Should be greater than 0."
+              ]
+            },
+            {
+              "name": "RentDepositOffset",
+              "type": "BalanceOf",
+              "value": "0x00008a5d784563010000000000000000",
+              "docs": [
+                " The amount of funds a contract should deposit in order to offset",
+                " the cost of one byte.",
+                "",
+                " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,",
+                " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.",
+                " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,",
+                " then it would pay 500 BU/day."
+              ]
+            },
+            {
+              "name": "SurchargeReward",
+              "type": "BalanceOf",
+              "value": "0x0080a1a76b4a35000000000000000000",
+              "docs": [
+                " Reward that is received by the party whose touch has led",
+                " to removal of a contract."
+              ]
+            },
+            {
+              "name": "TransferFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to make a transfer."
+              ]
+            },
+            {
+              "name": "CreationFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to create an account."
+              ]
+            },
+            {
+              "name": "TransactionBaseFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the base."
+              ]
+            },
+            {
+              "name": "TransactionByteFee",
+              "type": "BalanceOf",
+              "value": "0x00e40b54020000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the per-byte portion."
+              ]
+            },
+            {
+              "name": "ContractFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to instantiate a contract instance. A reasonable default value",
+                " is 21."
+              ]
+            },
+            {
+              "name": "CallBaseFee",
+              "type": "Gas",
+              "value": "0xe803000000000000",
+              "docs": [
+                " The base fee charged for calling into a contract. A reasonable default",
+                " value is 135."
+              ]
+            },
+            {
+              "name": "InstantiateBaseFee",
+              "type": "Gas",
+              "value": "0xe803000000000000",
+              "docs": [
+                " The base fee charged for instantiating a contract. A reasonable default value",
+                " is 175."
+              ]
+            },
+            {
+              "name": "MaxDepth",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum nesting level of a call/instantiate stack. A reasonable default",
+                " value is 100."
+              ]
+            },
+            {
+              "name": "MaxValueSize",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " The maximum size of a storage value in bytes. A reasonable default is 16 KiB."
+              ]
+            },
+            {
+              "name": "BlockGasLimit",
+              "type": "Gas",
+              "value": "0x8096980000000000",
+              "docs": [
+                " The maximum amount of gas that could be expended per block. A reasonable",
+                " default value is 10_000_000."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidScheduleVersion",
+              "docs": [
+                " A new schedule must have a greater version than the current one."
+              ]
+            },
+            {
+              "name": "InvalidSurchargeClaim",
+              "docs": [
+                " An origin must be signed or inherent and auxiliary sender only provided on inherent."
+              ]
+            },
+            {
+              "name": "InvalidSourceContract",
+              "docs": [
+                " Cannot restore from nonexisting or tombstone contract."
+              ]
+            },
+            {
+              "name": "InvalidDestinationContract",
+              "docs": [
+                " Cannot restore to nonexisting or alive contract."
+              ]
+            },
+            {
+              "name": "InvalidTombstone",
+              "docs": [
+                " Tombstones don't match."
+              ]
+            },
+            {
+              "name": "InvalidContractOrigin",
+              "docs": [
+                " An origin TrieId written in the current block."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Sudo",
+          "storage": {
+            "prefix": "Sudo",
+            "items": [
+              {
+                "name": "Key",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The `AccountId` of the sudo key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "sudo",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Unknown weight of derivative `proposal` execution.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_as",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Signed` origin from",
+                " a given account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Unknown weight of derivative `proposal` execution.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Sudid",
+              "args": [
+                "bool"
+              ],
+              "docs": [
+                " A sudo just took place."
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The sudoer just switched identity; the old key is supplied."
+              ]
+            },
+            {
+              "name": "SudoAsDone",
+              "args": [
+                "bool"
+              ],
+              "docs": [
+                " A sudo just took place."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "RequireSudo",
+              "docs": [
+                " Sender must be the Sudo account"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "ImOnline",
+          "storage": {
+            "prefix": "ImOnline",
+            "items": [
+              {
+                "name": "GossipAt",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The block number when we should gossip."
+                ]
+              },
+              {
+                "name": "Keys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AuthorityId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of keys that may issue a heartbeat."
+                ]
+              },
+              {
+                "name": "ReceivedHeartbeats",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "SessionIndex",
+                    "key2": "AuthIndex",
+                    "value": "Bytes",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " For each session index, we keep a mapping of `AuthIndex`",
+                  " to `offchain::OpaqueNetworkState`."
+                ]
+              },
+              {
+                "name": "AuthoredBlocks",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "SessionIndex",
+                    "key2": "ValidatorId",
+                    "value": "u32",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " For each session index, we keep a mapping of `T::ValidatorId` to the",
+                  " number of blocks authored by the given authority."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "heartbeat",
+              "args": [
+                {
+                  "name": "heartbeat",
+                  "type": "Heartbeat"
+                },
+                {
+                  "name": "_signature",
+                  "type": "Signature"
+                }
+              ],
+              "docs": []
+            }
+          ],
+          "events": [
+            {
+              "name": "HeartbeatReceived",
+              "args": [
+                "AuthorityId"
+              ],
+              "docs": [
+                " A new heartbeat was received from `AuthorityId`"
+              ]
+            },
+            {
+              "name": "AllGood",
+              "args": [],
+              "docs": [
+                " At the end of the session, no offence was committed."
+              ]
+            },
+            {
+              "name": "SomeOffline",
+              "args": [
+                "Vec<IdentificationTuple>"
+              ],
+              "docs": [
+                " At the end of the session, at least once validator was found to be offline."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidKey",
+              "docs": [
+                " Non existent public key."
+              ]
+            },
+            {
+              "name": "DuplicatedHeartbeat",
+              "docs": [
+                " Duplicated heartbeat."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "AuthorityDiscovery",
+          "storage": null,
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Offences",
+          "storage": {
+            "prefix": "Offences",
+            "items": [
+              {
+                "name": "Reports",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ReportIdOf",
+                    "value": "OffenceDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The primary structure that holds all offence records keyed by report identifiers."
+                ]
+              },
+              {
+                "name": "ConcurrentReportsIndex",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "Kind",
+                    "key2": "OpaqueTimeSlot",
+                    "value": "Vec<ReportIdOf>",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A vector of reports of the same kind that happened at the same time slot."
+                ]
+              },
+              {
+                "name": "ReportsByKindIndex",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Kind",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Enumerates all reports of a kind along with the time they happened.",
+                  "",
+                  " All reports are sorted by the time of offence.",
+                  "",
+                  " Note that the actual type of this mapping is `Vec<u8>`, this is because values of",
+                  " different types are not supported at the moment so we are doing the manual serialization."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": [
+            {
+              "name": "Offence",
+              "args": [
+                "Kind",
+                "OpaqueTimeSlot"
+              ],
+              "docs": [
+                " There is an offence reported of the given `kind` happened at the `session_index` and",
+                " (kind-specific) time slot. This event is not deposited for duplicate slashes."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "RandomnessCollectiveFlip",
+          "storage": {
+            "prefix": "RandomnessCollectiveFlip",
+            "items": [
+              {
+                "name": "RandomMaterial",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Series of block headers from the last 81 blocks that acts as random seed material. This",
+                  " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of",
+                  " the oldest hash."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Identity",
+          "storage": {
+            "prefix": "Sudo",
+            "items": [
+              {
+                "name": "IdentityOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Registration",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information that is pertinent to identify the entity behind an account."
+                ]
+              },
+              {
+                "name": "SuperOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "(AccountId,Data)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The super-identity of an alternative \"sub\" identity together with its name, within that",
+                  " context. If the account is not some other account's sub-identity, then just `None`."
+                ]
+              },
+              {
+                "name": "SubsOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " Alternative \"sub\" identities of this account.",
+                  "",
+                  " The first item is the deposit, the second is a vector of the accounts."
+                ]
+              },
+              {
+                "name": "Registrars",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Option<RegistrarInfo>>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of registrars. Not expected to get very big as can only be added through a",
+                  " special origin (likely a council motion).",
+                  "",
+                  " The index into this can be cast to `RegistrarIndex` to get a valid value."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_registrar",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a registrar to the system.",
+                "",
+                " The dispatch origin for this call must be `RegistrarOrigin` or `Root`.",
+                "",
+                " - `account`: the account of the registrar.",
+                "",
+                " Emits `RegistrarAdded` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R)` where `R` registrar-count (governance-bounded).",
+                " - One storage mutation (codec `O(R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_identity",
+              "args": [
+                {
+                  "name": "info",
+                  "type": "IdentityInfo"
+                }
+              ],
+              "docs": [
+                " Set an account's identity information and reserve the appropriate deposit.",
+                "",
+                " If the account already has identity information, the deposit is taken as part payment",
+                " for the new deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " - `info`: The identity information.",
+                "",
+                " Emits `IdentitySet` if successful.",
+                "",
+                " # <weight>",
+                " - `O(X + R)` where `X` additional-field-count (deposit-bounded).",
+                " - At most two balance operations.",
+                " - One storage mutation (codec `O(X + R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_subs",
+              "args": [
+                {
+                  "name": "subs",
+                  "type": "Vec<(AccountId,Data)>"
+                }
+              ],
+              "docs": [
+                " Set the sub-accounts of the sender.",
+                "",
+                " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned",
+                " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " - `subs`: The identity's sub-accounts.",
+                "",
+                " # <weight>",
+                " - `O(S)` where `S` subs-count (hard- and deposit-bounded).",
+                " - At most two balance operations.",
+                " - At most O(2 * S + 1) storage mutations; codec complexity `O(1 * S + S * 1)`);",
+                "   one storage-exists.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_identity",
+              "args": [],
+              "docs": [
+                " Clear an account's identity info and all sub-account and return all deposits.",
+                "",
+                " Payment: All reserved balances on the account are returned.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " Emits `IdentityCleared` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`.",
+                " - One balance-reserve operation.",
+                " - `S + 2` storage deletions.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "request_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "max_fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Request a judgement from a registrar.",
+                "",
+                " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement",
+                " given.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is requested.",
+                " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:",
+                "",
+                " ```nocompile",
+                " Self::registrars(reg_index).uwnrap().fee",
+                " ```",
+                "",
+                " Emits `JudgementRequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_request",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "RegistrarIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a previous request.",
+                "",
+                " Payment: A previously reserved deposit is returned on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is no longer requested.",
+                "",
+                " Emits `JudgementUnrequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - One storage mutation `O(R + X)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fee",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Set the fee required for a judgement to be requested from a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fee`: the new fee.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_account_id",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Change the account associated with a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `new`: the new account ID.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fields",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fields",
+                  "type": "IdentityFields"
+                }
+              ],
+              "docs": [
+                " Set the field information for a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fields`: the fields that the registrar concerns themselves with.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "provide_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "judgement",
+                  "type": "IdentityJudgement"
+                }
+              ],
+              "docs": [
+                " Provide a judgement for an account's identity.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `reg_index`.",
+                "",
+                " - `reg_index`: the index of the registrar whose judgement is being made.",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.",
+                "",
+                " Emits `JudgementGiven` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-transfer operation.",
+                " - Up to one account-lookup operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_identity",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove an account's identity and sub-account information and slash the deposits.",
+                "",
+                " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by",
+                " `Slash`. Verification request deposits are not returned; they should be cancelled",
+                " manually using `cancel_request`.",
+                "",
+                " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
+                "",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                "",
+                " Emits `IdentityKilled` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`.",
+                " - One balance-reserve operation.",
+                " - `S + 2` storage mutations.",
+                " - One event.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "IdentitySet",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A name was set or reset (which will remove all judgements)."
+              ]
+            },
+            {
+              "name": "IdentityCleared",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was cleared, and the given balance returned."
+              ]
+            },
+            {
+              "name": "IdentityKilled",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was removed and the given balance slashed."
+              ]
+            },
+            {
+              "name": "JudgementRequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was asked from a registrar."
+              ]
+            },
+            {
+              "name": "JudgementUnrequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement request was retracted."
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was given by a registrar."
+              ]
+            },
+            {
+              "name": "RegistrarAdded",
+              "args": [
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A registrar was added."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "TooManySubAccounts",
+              "docs": [
+                " Too many subs-accounts."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Account isn't found."
+              ]
+            },
+            {
+              "name": "NotNamed",
+              "docs": [
+                " Account isn't named."
+              ]
+            },
+            {
+              "name": "EmptyIndex",
+              "docs": [
+                " Empty index."
+              ]
+            },
+            {
+              "name": "FeeChanged",
+              "docs": [
+                " Fee is changed."
+              ]
+            },
+            {
+              "name": "NoIdentity",
+              "docs": [
+                " No identity found."
+              ]
+            },
+            {
+              "name": "StickyJudgement",
+              "docs": [
+                " Sticky judgement."
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "docs": [
+                " Judgement given."
+              ]
+            },
+            {
+              "name": "InvalidJudgement",
+              "docs": [
+                " Invalid judgement."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " The index is invalid."
+              ]
+            },
+            {
+              "name": "InvalidTarget",
+              "docs": [
+                " The target is invalid."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Society",
+          "storage": {
+            "prefix": "Society",
+            "items": [
+              {
+                "name": "Founder",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The first member."
+                ]
+              },
+              {
+                "name": "Rules",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A hash of the rules of this society concerning membership. Can only be set once and",
+                  " only by the founder."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of candidates; bidders that are attempting to become members."
+                ]
+              },
+              {
+                "name": "SuspendedCandidates",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,BidKind)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended candidates."
+                ]
+              },
+              {
+                "name": "Pot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " Amount of our account balance that is specifically for the next round's bid(s)."
+                ]
+              },
+              {
+                "name": "Head",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The most primary from the most recently approved members."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of members, ordered."
+                ]
+              },
+              {
+                "name": "SuspendedMembers",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended members."
+                ]
+              },
+              {
+                "name": "Bids",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current bids, stored ordered by the value of the bid."
+                ]
+              },
+              {
+                "name": "Vouching",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "VouchingStatus",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Members currently vouching or banned from vouching again"
+                ]
+              },
+              {
+                "name": "Payouts",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Vec<(BlockNumber,BalanceOf)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending payouts; ordered by block number, with the amount that should be paid out."
+                ]
+              },
+              {
+                "name": "Strikes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "StrikeCount",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ongoing number of losing votes cast by the member."
+                ]
+              },
+              {
+                "name": "Votes",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "SocietyVote",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Double map from Candidate -> Voter -> (Maybe) Vote."
+                ]
+              },
+              {
+                "name": "Defender",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The defending member currently being challenged."
+                ]
+              },
+              {
+                "name": "DefenderVotes",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "SocietyVote",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes for the defender."
+                ]
+              },
+              {
+                "name": "MaxMembers",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The max number of members for the society at one time."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bid",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " A user outside of the society can make a bid for entry.",
+                "",
+                " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned",
+                " when the bid becomes a member, or if the bid calls `unbid`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `value`: A one time payment the bid would like to receive when joining the society.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)",
+                " - Storage Reads:",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " \t- One storage read to retrieve all members. O(M)",
+                " - Storage Writes:",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for new bid.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbid",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " A bidder can remove their bid for entry into society.",
+                " By doing so, they will have their candidate deposit returned or",
+                " they will unvouch their voucher.",
+                "",
+                " Payment: The bid deposit is unreserved if the user made a bid.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a bidder.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), X (balance unreserve)",
+                " - One storage read and write to retrieve and update the bids. O(B)",
+                " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "tip",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " As a member, vouch for someone to join society by placing a bid on their behalf.",
+                "",
+                " There is no deposit required to vouch for a new bid, but a member can only vouch for",
+                " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by",
+                " the suspension judgement origin, the member will be banned from vouching again.",
+                "",
+                " As a vouching member, you can claim a tip if the candidate is accepted. This tip will",
+                " be paid as a portion of the reward the member will receive for joining the society.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `who`: The user who you would like to vouch for.",
+                " - `value`: The total reward to be paid between you and the candidate if they become",
+                " a member in the society.",
+                " - `tip`: Your cut of the total `value` payout when the candidate is inducted into",
+                " the society. Tips larger than `value` will be saturated upon payout.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members)",
+                " - Storage Reads:",
+                " \t- One storage read to retrieve all members. O(M)",
+                " \t- One storage read to check member is not already vouching. O(1)",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " - Storage Writes:",
+                " \t- One storage write to insert vouching status to the member. O(1)",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(log M) search to check sender is a member.",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for vouch.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unvouch",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " As a vouching member, unvouch a bid. This only works while vouched user is",
+                " only a bidder (and not a candidate).",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a vouching member.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids)",
+                " - One storage read O(1) to check the signer is a vouching member.",
+                " - One storage mutate to retrieve and update the bids. O(B)",
+                " - One vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "candidate",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on a candidate.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `candidate`: The candidate that the member would like to bid on.",
+                " - `approve`: A boolean which says if the candidate should be",
+                "              approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " Key: C (len of candidates), M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One account lookup.",
+                " - One storage read O(C) and O(C) search to check that user is a candidate.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM + C)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "defender_vote",
+              "args": [
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on the defender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `approve`: A boolean which says if the candidate should be",
+                " approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " - Key: M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "payout",
+              "args": [],
+              "docs": [
+                " Transfer the first matured payout for the sender and remove it from the records.",
+                "",
+                " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.",
+                "",
+                " Payment: The member will receive a payment equal to their first matured",
+                " payout to their free balance.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member with",
+                " payouts remaining.",
+                "",
+                " # <weight>",
+                " Key: M (len of members), P (number of payouts for a particular member)",
+                " - One storage read O(M) and O(log M) search to check signer is a member.",
+                " - One storage read O(P) to get all payouts for a member.",
+                " - One storage read O(1) to get the current block number.",
+                " - One currency transfer call. O(X)",
+                " - One storage write or removal to update the member's payouts. O(P)",
+                "",
+                " Total Complexity: O(M + logM + P + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "found",
+              "args": [
+                {
+                  "name": "founder",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "max_members",
+                  "type": "u32"
+                },
+                {
+                  "name": "rules",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Found the society.",
+                "",
+                " This is done as a discrete action in order to allow for the",
+                " module to be included into a running chain and can only be done once.",
+                "",
+                " The dispatch origin for this call must be from the _FounderSetOrigin_.",
+                "",
+                " Parameters:",
+                " - `founder` - The first member and head of the newly founded society.",
+                " - `max_members` - The initial max number of members for the society.",
+                " - `rules` - The rules of this society concerning membership.",
+                "",
+                " # <weight>",
+                " - Two storage mutates to set `Head` and `Founder`. O(1)",
+                " - One storage write to add the first member to society. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unfound",
+              "args": [],
+              "docs": [
+                " Anull the founding of the society.",
+                "",
+                " The dispatch origin for this call must be Signed, and the signing account must be both",
+                " the `Founder` and the `Head`. This implies that it may only be done when there is one",
+                " member.",
+                "",
+                " # <weight>",
+                " - Two storage reads O(1).",
+                " - Four storage removals O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "forgive",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Allow suspension judgement origin to make judgement on a suspended member.",
+                "",
+                " If a suspended member is forgiven, we simply add them back as a member, not affecting",
+                " any of the existing storage items for that member.",
+                "",
+                " If a suspended member is rejected, remove all associated storage items, including",
+                " their payouts, and remove any vouched bids they currently have.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended member to be judged.",
+                " - `forgive` - A boolean representing whether the suspension judgement origin",
+                "               forgives (`true`) or rejects (`false`) a suspended member.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members)",
+                " - One storage read to check `who` is a suspended member. O(1)",
+                " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.",
+                " - Up to 3 storage removals O(1) to clean up a removed member.",
+                " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal. O(1)",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_candidate",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "judgement",
+                  "type": "SocietyJudgement"
+                }
+              ],
+              "docs": [
+                " Allow suspended judgement origin to make judgement on a suspended candidate.",
+                "",
+                " If the judgement is `Approve`, we add them to society as a member with the appropriate",
+                " payment for joining society.",
+                "",
+                " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back",
+                " to the society treasury, or we ban the voucher from vouching again.",
+                "",
+                " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go",
+                " through the induction process again.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended candidate to be judged.",
+                " - `judgement` - `Approve`, `Reject`, or `Rebid`.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members), X (balance action)",
+                " - One storage read to check `who` is a suspended candidate.",
+                " - One storage removal of the suspended candidate.",
+                " - Approve Logic",
+                " \t- One storage read to get the available pot to pay users with. O(1)",
+                " \t- One storage write to update the available pot. O(1)",
+                " \t- One storage read to get the current block number. O(1)",
+                " \t- One storage read to get all members. O(M)",
+                " \t- Up to one unreserve currency action.",
+                " \t- Up to two new storage writes to payouts.",
+                " \t- Up to one storage write with O(log M) binary search to add a member to society.",
+                " - Reject Logic",
+                " \t- Up to one repatriate reserved currency action. O(X)",
+                " \t- Up to one storage write to ban the vouching member from vouching again.",
+                " - Rebid Logic",
+                " \t- Storage mutate with O(log B) binary search to place the user back into bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal.",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_max_members",
+              "args": [
+                {
+                  "name": "max",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Allows root origin to change the maximum number of members in society.",
+                " Max membership count must be greater than 1.",
+                "",
+                " The dispatch origin for this call must be from _ROOT_.",
+                "",
+                " Parameters:",
+                " - `max` - The maximum number of members for the society.",
+                "",
+                " # <weight>",
+                " - One storage write to update the max. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Founded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The society is founded by the given identity."
+              ]
+            },
+            {
+              "name": "Bid",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A membership bid just happened. The given account is the candidate's ID and their offer",
+                " is the second."
+              ]
+            },
+            {
+              "name": "Vouch",
+              "args": [
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A membership bid just happened by vouching. The given account is the candidate's ID and",
+                " their offer is the second. The vouching party is the third."
+              ]
+            },
+            {
+              "name": "AutoUnbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A candidate was dropped (due to an excess of bids in the system)."
+              ]
+            },
+            {
+              "name": "Unbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A candidate was dropped (by their request)."
+              ]
+            },
+            {
+              "name": "Unvouch",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A candidate was dropped (by request of who vouched for them)."
+              ]
+            },
+            {
+              "name": "Inducted",
+              "args": [
+                "AccountId",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A group of candidates have been inducted. The batch's primary is the first value, the",
+                " batch in full is the second."
+              ]
+            },
+            {
+              "name": "SuspendedMemberJudgement",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A suspended member has been judged"
+              ]
+            },
+            {
+              "name": "CandidateSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A candidate has been suspended"
+              ]
+            },
+            {
+              "name": "MemberSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A member has been suspended"
+              ]
+            },
+            {
+              "name": "Challenged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A member has been challenged"
+              ]
+            },
+            {
+              "name": "Vote",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed (candidate, voter, vote)"
+              ]
+            },
+            {
+              "name": "DefenderVote",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed for a defending member (voter, vote)"
+              ]
+            },
+            {
+              "name": "NewMaxMembers",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " A new max member count has been set"
+              ]
+            },
+            {
+              "name": "Unfounded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Society is unfounded."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "CandidateDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The minimum amount of a deposit required for a bid to be made."
+              ]
+            },
+            {
+              "name": "WrongSideDeduction",
+              "type": "BalanceOf",
+              "value": "0x0080f420e6b500000000000000000000",
+              "docs": [
+                " The amount of the unpaid reward that gets deducted in the case that either a skeptic",
+                " doesn't vote or someone votes in the wrong way."
+              ]
+            },
+            {
+              "name": "MaxStrikes",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)",
+                " before they become suspended."
+              ]
+            },
+            {
+              "name": "PeriodSpend",
+              "type": "BalanceOf",
+              "value": "0x0000c52ebca2b1000000000000000000",
+              "docs": [
+                " The amount of incentive paid within each period. Doesn't include VoterTip."
+              ]
+            },
+            {
+              "name": "RotationPeriod",
+              "type": "BlockNumber",
+              "value": "0x00770100",
+              "docs": [
+                " The number of blocks between candidate/membership rotation periods."
+              ]
+            },
+            {
+              "name": "ChallengePeriod",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": [
+                " The number of blocks between membership challenges."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "BadPosition",
+              "docs": [
+                " An incorrect position was provided."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " User is not a member."
+              ]
+            },
+            {
+              "name": "AlreadyMember",
+              "docs": [
+                " User is already a member."
+              ]
+            },
+            {
+              "name": "Suspended",
+              "docs": [
+                " User is suspended."
+              ]
+            },
+            {
+              "name": "NotSuspended",
+              "docs": [
+                " User is not suspended."
+              ]
+            },
+            {
+              "name": "NoPayout",
+              "docs": [
+                " Nothing to payout."
+              ]
+            },
+            {
+              "name": "AlreadyFounded",
+              "docs": [
+                " Society already founded."
+              ]
+            },
+            {
+              "name": "InsufficientPot",
+              "docs": [
+                " Not enough in pot to accept candidate."
+              ]
+            },
+            {
+              "name": "AlreadyVouching",
+              "docs": [
+                " Member is already vouching or banned from vouching again."
+              ]
+            },
+            {
+              "name": "NotVouching",
+              "docs": [
+                " Member is not vouching."
+              ]
+            },
+            {
+              "name": "Head",
+              "docs": [
+                " Cannot remove the head of the chain."
+              ]
+            },
+            {
+              "name": "Founder",
+              "docs": [
+                " Cannot remove the founder."
+              ]
+            },
+            {
+              "name": "AlreadyBid",
+              "docs": [
+                " User has already made a bid."
+              ]
+            },
+            {
+              "name": "AlreadyCandidate",
+              "docs": [
+                " User is already a candidate."
+              ]
+            },
+            {
+              "name": "NotCandidate",
+              "docs": [
+                " User is not a candidate."
+              ]
+            },
+            {
+              "name": "MaxMembers",
+              "docs": [
+                " Too many members in the society."
+              ]
+            },
+            {
+              "name": "NotFounder",
+              "docs": [
+                " The caller is not the founder."
+              ]
+            },
+            {
+              "name": "NotHead",
+              "docs": [
+                " The caller is not the head."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Recovery",
+          "storage": {
+            "prefix": "Recovery",
+            "items": [
+              {
+                "name": "Recoverable",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "RecoveryConfig",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of recoverable accounts and their recovery configuration."
+                ]
+              },
+              {
+                "name": "ActiveRecoveries",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "ActiveRecovery",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Active recovery attempts.",
+                  "",
+                  " First account is the account to be recovered, and the second account",
+                  " is the user trying to recover the account."
+                ]
+              },
+              {
+                "name": "Recovered",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The final list of recovered accounts.",
+                  "",
+                  " Map from the recovered account to the user who can access it."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "as_recovered",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through a recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and registered to",
+                " be able to make calls on behalf of the recovered account.",
+                "",
+                " Parameters:",
+                " - `account`: The recovered account you want to make a call on-behalf-of.",
+                " - `call`: The call you want to make with the recovered account.",
+                "",
+                " # <weight>",
+                " - The weight of the `call`.",
+                " - One storage lookup to check account is recovered by `who`. O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_recovered",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow ROOT to bypass the recovery process and set an a rescuer account",
+                " for a lost account directly.",
+                "",
+                " The dispatch origin for this call must be _ROOT_.",
+                "",
+                " Parameters:",
+                " - `lost`: The \"lost account\" to be recovered.",
+                " - `rescuer`: The \"rescuer account\" which can call as the lost account.",
+                "",
+                " # <weight>",
+                " - One storage write O(1)",
+                " - One event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "create_recovery",
+              "args": [
+                {
+                  "name": "friends",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "delay_period",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Create a recovery configuration for your account. This makes your account recoverable.",
+                "",
+                " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance",
+                " will be reserved for storing the recovery configuration. This deposit is returned",
+                " in full when the user calls `remove_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `friends`: A list of friends you trust to vouch for recovery attempts.",
+                "   Should be ordered and contain no duplicate values.",
+                " - `threshold`: The number of friends that must vouch for a recovery attempt",
+                "   before the account can be recovered. Should be less than or equal to",
+                "   the length of the list of friends.",
+                " - `delay_period`: The number of blocks after a recovery attempt is initialized",
+                "   that needs to pass before the account can be recovered.",
+                "",
+                " # <weight>",
+                " - Key: F (len of friends)",
+                " - One storage read to check that account is not already recoverable. O(1).",
+                " - A check that the friends list is sorted and unique. O(F)",
+                " - One currency reserve operation. O(X)",
+                " - One storage write. O(1). Codec O(F).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "initiate_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Initiate the process for recovering a recoverable account.",
+                "",
+                " Payment: `RecoveryDeposit` balance will be reserved for initiating the",
+                " recovery process. This deposit will always be repatriated to the account",
+                " trying to be recovered. See `close_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to recover. This account",
+                "   needs to be recoverable (i.e. have a recovery configuration).",
+                "",
+                " # <weight>",
+                " - One storage read to check that account is recoverable. O(F)",
+                " - One storage read to check that this recovery process hasn't already started. O(1)",
+                " - One currency reserve operation. O(X)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch_recovery",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a \"friend\" of a recoverable account to vouch for an active recovery",
+                " process for that account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"friend\"",
+                " for the recoverable account.",
+                "",
+                " Parameters:",
+                " - `lost`: The lost account that you want to recover.",
+                " - `rescuer`: The account trying to rescue the lost account that you",
+                "   want to vouch for.",
+                "",
+                " The combination of these two parameters must point to an active recovery",
+                " process.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One binary search to confirm caller is a friend. O(logF)",
+                " - One binary search to confirm caller has not already vouched. O(logV)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + logF + V + logV)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "claim_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a successful rescuer to claim their recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"",
+                " who has successfully completed the account recovery process: collected",
+                " `threshold` or more vouches, waited `delay_period` blocks since initiation.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to claim has been successfully",
+                "   recovered by you.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + V)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_recovery",
+              "args": [
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " As the controller of a recoverable account, close an active recovery",
+                " process for your account.",
+                "",
+                " Payment: By calling this function, the recoverable account will receive",
+                " the recovery deposit `RecoveryDeposit` placed by the rescuer.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account with an active recovery process for it.",
+                "",
+                " Parameters:",
+                " - `rescuer`: The account trying to rescue this recoverable account.",
+                "",
+                " # <weight>",
+                " Key: V (len of vouching friends)",
+                " - One storage read/remove to get the active recovery process. O(1), Codec O(V)",
+                " - One balance call to repatriate reserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(V + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_recovery",
+              "args": [],
+              "docs": [
+                " Remove the recovery process for your account.",
+                "",
+                " NOTE: The user must make sure to call `close_recovery` on all active",
+                " recovery attempts before calling this function else it will fail.",
+                "",
+                " Payment: By calling this function the recoverable account will unreserve",
+                " their recovery configuration deposit.",
+                " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account (i.e. has a recovery configuration).",
+                "",
+                " # <weight>",
+                " Key: F (len of friends)",
+                " - One storage read to get the prefix iterator for active recoveries. O(1)",
+                " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)",
+                " - One balance call to unreserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "RecoveryCreated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been set up for an account"
+              ]
+            },
+            {
+              "name": "RecoveryInitiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been initiated for account_1 by account_2"
+              ]
+            },
+            {
+              "name": "RecoveryVouched",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for account_1 by account_2 has been vouched for by account_3"
+              ]
+            },
+            {
+              "name": "RecoveryClosed",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for account_1 by account_2 has been closed"
+              ]
+            },
+            {
+              "name": "AccountRecovered",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Account_1 has been successfully recovered by account_2"
+              ]
+            },
+            {
+              "name": "RecoveryRemoved",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been removed for an account"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        }
+      ]
+    }
+  }
+}
diff --git a/tests/meta/v11.hex b/tests/meta/v11.hex
new file mode 100644
--- /dev/null
+++ b/tests/meta/v11.hex
@@ -0,0 +1,1 @@
+0x6d6574610b801853797374656d011853797374656d3c1c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e00150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010064776569676874733a3a45787472696e7369637357656967687440000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e1c6c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960e0202d2042617365205765696768743a20302e36363520c2b5732c20696e646570656e64656e74206f662072656d61726b206c656e6774682e50202d204e6f204442206f7065726174696f6e732e302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e1c7375696369646500286501204b696c6c207468652073656e64696e67206163636f756e742c20617373756d696e6720746865726520617265206e6f207265666572656e636573206f75747374616e64696e6720616e642074686520636f6d706f7369746590206461746120697320657175616c20746f206974732064656661756c742076616c75652e002c2023203c7765696768743e24202d20604f283129607c202d20312073746f72616765207265616420616e642064656c6574696f6e2e54202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a20382e36323620c2b5731101204e6f2044422052656164206f72205772697465206f7065726174696f6e7320626563617573652063616c6c657220697320616c726561647920696e206f7665726c6179302023203c2f7765696768743e01144045787472696e7369635375636365737304304469737061746368496e666f04b020416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205b696e666f5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f048c20416e2065787472696e736963206661696c65642e205b6572726f722c20696e666f5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e74496404742041206e6577205b6163636f756e745d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046420416e205b6163636f756e745d20776173207265617065642e1838426c6f636b48617368436f756e7438543a3a426c6f636b4e756d626572106009000004d820546865206d6178696d756d206e756d626572206f6620626c6f636b7320746f20616c6c6f7720696e206d6f7274616c20657261732e484d6178696d756d426c6f636b576569676874185765696768742000204aa9d1010000047c20546865206d6178696d756d20776569676874206f66206120626c6f636b2e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e50426c6f636b457865637574696f6e576569676874185765696768742000f2052a0100000004510120546865206261736520776569676874206f6620657865637574696e67206120626c6f636b2c20696e646570656e64656e74206f6620746865207472616e73616374696f6e7320696e2074686520626c6f636b2e4c45787472696e736963426173655765696768741857656967687420405973070000000004790120546865206261736520776569676874206f6620616e2045787472696e73696320696e2074686520626c6f636b2c20696e646570656e64656e74206f6620746865206f662065787472696e736963206265696e672065786563757465642e484d6178696d756d426c6f636b4c656e6774680c753332100000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e1c5574696c697479000108146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e50802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c820627970617373696e6720606672616d655f73797374656d3a3a54726169743a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e90202d2042617365207765696768743a2031342e3339202b202e393837202a206320c2b573b8202d20506c7573207468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602ec4202d20506c7573206f6e65206164646974696f6e616c206576656e742e202872657065617420726561642f777269746529302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173882077656c6c20617320746865206572726f722e205b696e6465782c206572726f725d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e000010426162650110426162652c2845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e3c4e65787445706f6368436f6e6669670000504e657874436f6e66696744657363726970746f7204000498204e6578742065706f636820636f6e66696775726174696f6e2c206966206368616e6765642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e01084c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e00083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743ed0202d20604f285429602077686572652060546020636f6d706c6578697479206f6620606f6e5f74696d657374616d705f73657460a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029b4202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f7365746020604f285429602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e6465784c9c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032382e363920c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785461012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2033332e373420c2b57334202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784c98204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032352e353320c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c58590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032362e383320c2b57334202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657848690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2033302e383620c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804ac2041206163636f756e7420696e646578207761732061737369676e65642e205b77686f2c20696e6465785d28496e646578467265656404304163636f756e74496e64657804e02041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205b696e6465785d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640421012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205b77686f2c20696e6465785d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e002042616c616e636573012042616c616e6365731034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e20746865206361736520746861742074686973206d6f64756c65206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e6365041d0120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205b6163636f756e742c20667265655f62616c616e63655d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cc820726573756c74696e6720696e20616e206f75747269676874206c6f73732e205b6163636f756e742c2062616c616e63655d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e63650498205472616e73666572207375636365656465642e205b66726f6d2c20746f2c2076616c75655d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f742e205b77686f2c20667265652c2072657365727665645d1c4465706f73697408244163636f756e7449641c42616c616e636504190120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205b77686f2c206465706f7369745d20526573657276656408244163636f756e7449641c42616c616e636504190120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205b77686f2c2076616c75655d28556e726573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205b77686f2c2076616c75655d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea0205b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e001c5374616b696e67011c5374616b696e678c30486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f72507265667300040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e00b820546865206163746976652065726120697320746865206572612063757272656e746c792072657761726465642e2d012056616c696461746f7220736574206f66207468697320657261206d75737420626520657175616c20746f206053657373696f6e496e746572666163653a3a76616c696461746f7273602e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400043101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f7250726566730504001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e48536e617073686f7456616c696461746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f662076616c696461746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e48536e617073686f744e6f6d696e61746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f66206e6f6d696e61746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e34517565756564456c65637465640000a8456c656374696f6e526573756c743c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e04000c650120546865206e6578742076616c696461746f72207365742e2041742074686520656e64206f6620616e206572612c206966207468697320697320617661696c61626c652028706f74656e7469616c6c792066726f6d20746865610120726573756c74206f6620616e206f6666636861696e20776f726b6572292c20697420697320696d6d6564696174656c7920757365642e204f74686572776973652c20746865206f6e2d636861696e20656c656374696f6e342069732065786563757465642e2c51756575656453636f7265000034456c656374696f6e53636f7265040004b0205468652073636f7265206f66207468652063757272656e74205b60517565756564456c6563746564605d2e44457261456c656374696f6e537461747573010078456c656374696f6e5374617475733c543a3a426c6f636b4e756d6265723e040008490120466c616720746f20636f6e74726f6c2074686520657865637574696f6e206f6620746865206f6666636861696e20656c656374696f6e2e205768656e20604f70656e285f29602c207765206163636570746c20736f6c7574696f6e7320746f206265207375626d69747465642e54497343757272656e7453657373696f6e46696e616c010010626f6f6c0400084d012054727565206966207468652063757272656e74202a2a706c616e6e65642a2a2073657373696f6e2069732066696e616c2e204e6f74652074686174207468697320646f6573206e6f742074616b65206572615820666f7263696e6720696e746f206163636f756e742e3853746f7261676556657273696f6e01002052656c6561736573040310cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076332e302e3020666f72206e6577206e6574776f726b732e016010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2036372e383720c2b5732c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2035342e383820c2b5732c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2035302e333420c2b5732c204442205765696768743a2901202d20526561643a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657228203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c753332782d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f7665342042617365205765696768743a74205570646174653a2035302e3532202b202e303238202a205320c2b5732501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657270204b696c6c3a2037392e3431202b20322e333636202a205320c2b5738501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e204163636f756e745d2c204c6f636b73b101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205b4f726967696e204163636f756e745d2c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2031372e313320c2b5732c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d842042617365205765696768743a2032322e3334202b202e3336202a204e20c2b57384207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d5c2042617365205765696768743a2031362e353320c2b5732c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2031312e333320c2b57334202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2032352e323220c2b5732c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5735c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e20ac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5737020526561642f57726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e7420d4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5737020526561642f57726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e64202d2042617365205765696768743a20312e38353720c2b57348202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e64202d2042617365205765696768743a20312e39353920c2b57344202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e24cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f28562990202d2042617365205765696768743a20322e323038202b202e303036202a205620c2b5735c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533322c0d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f7665648c2042617365205765696768743a2035332e3037202b20322e333635202a205320c2b573b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e60202d2042617365205765696768743a20322e303520c2b57348202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e38982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e74202d20426173653a2035383730202b2033342e3631202a205320c2b57368202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657864110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f7229342042617365205765696768743a0101202d205265776172642044657374696e6174696f6e205374616b65643a20313130202b2035342e32202a204e20c2b57320284d656469616e20536c6f706573294101202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a20313230202b2034312e3935202a204e20c2b57320284d656469616e20536c6f706573292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d7329302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e3ce0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d98202d2042617365205765696768743a2033342e353120c2b573202a202e303438204c20c2b57334202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d203374202d2042617365205765696768743a2032392e3133202a204520c2b57334202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533324039012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e6365206973207a65726f2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65c020616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c6566742e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e8c2042617365205765696768743a2037352e3934202b20322e333936202a205320c2b5732c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e607375626d69745f656c656374696f6e5f736f6c7574696f6e141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a65bce4205375626d697420616e20656c656374696f6e20726573756c7420746f2074686520636861696e2e2049662074686520736f6c7574696f6e3a003420312e2069732076616c69642e150120322e206861732061206265747465722073636f7265207468616e206120706f74656e7469616c6c79206578697374696e6720736f6c7574696f6e206f6e20636861696e2e0084207468656e2c2069742077696c6c206265205f7075745f206f6e20636861696e2e00ac204120736f6c7574696f6e20636f6e7369737473206f662074776f20706965636573206f6620646174613a00f420312e206077696e6e657273603a206120666c617420766563746f72206f6620616c6c207468652077696e6e657273206f662074686520726f756e642e510120322e206061737369676e6d656e7473603a2074686520636f6d706163742076657273696f6e206f6620616e2061737369676e6d656e7420766563746f72207468617420656e636f6465732074686520656467653020202020776569676874732e00210120426f7468206f66207768696368206d617920626520636f6d7075746564207573696e67205f70687261676d656e5f2c206f7220616e79206f7468657220616c676f726974686d2e00a8204164646974696f6e616c6c792c20746865207375626d6974746572206d7573742070726f766964653a00c8202d20546865206073636f7265602074686174207468657920636c61696d20746865697220736f6c7574696f6e206861732e004d0120426f74682076616c696461746f727320616e64206e6f6d696e61746f72732077696c6c20626520726570726573656e74656420627920696e646963657320696e2074686520736f6c7574696f6e2e205468651d0120696e64696365732073686f756c6420726573706563742074686520636f72726573706f6e64696e6720747970657320285b6056616c696461746f72496e646578605d20616e643101205b604e6f6d696e61746f72496e646578605d292e204d6f72656f7665722c20746865792073686f756c642062652076616c6964207768656e207573656420746f20696e64657820696e746f5101205b60536e617073686f7456616c696461746f7273605d20616e64205b60536e617073686f744e6f6d696e61746f7273605d2e20416e7920696e76616c696420696e6465782077696c6c20636175736520746865610120736f6c7574696f6e20746f2062652072656a65637465642e2054686573652074776f2073746f72616765206974656d73206172652073657420647572696e672074686520656c656374696f6e2077696e646f7720616e6498206d6179206265207573656420746f2064657465726d696e652074686520696e64696365732e0060204120736f6c7574696f6e2069732076616c69642069663a00e420302e204974206973207375626d6974746564207768656e205b60457261456c656374696f6e537461747573605d20697320604f70656e602ef820312e2049747320636c61696d65642073636f726520697320657175616c20746f207468652073636f726520636f6d7075746564206f6e2d636861696e2eac20322e2050726573656e74732074686520636f7272656374206e756d626572206f662077696e6e6572732e550120332e20416c6c20696e6465786573206d7573742062652076616c7565206163636f7264696e6720746f2074686520736e617073686f7420766563746f72732e20416c6c20656467652076616c756573206d7573745d0120202020616c736f20626520636f727265637420616e642073686f756c64206e6f74206f766572666c6f7720746865206772616e756c6172697479206f662074686520726174696f20747970652028692e652e2032353640202020206f722062696c6c696f6e292e0d0120342e20466f72206561636820656467652c20616c6c2074617267657473206172652061637475616c6c79206e6f6d696e617465642062792074686520766f7465722e6c20352e2048617320636f72726563742073656c662d766f7465732e00c0204120736f6c7574696f6e732073636f726520697320636f6e736973746564206f66203320706172616d65746572733a00650120312e20606d696e207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d6178696d697a65642e650120322e206073756d207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d696e696d697a65642e410120332e206073756d207b20737570706f72742e746f74616c5e32207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c642062659c202020206d696e696d697a65642028746f20656e73757265206c6573732076617269616e636529002c2023203c7765696768743e7020536565206063726174653a3a77656967687460206d6f64756c652e302023203c2f7765696768743e847375626d69745f656c656374696f6e5f736f6c7574696f6e5f756e7369676e6564141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a6524c020556e7369676e65642076657273696f6e206f6620607375626d69745f656c656374696f6e5f736f6c7574696f6e602e005d01204e6f746520746861742074686973206d757374207061737320746865205b6056616c6964617465556e7369676e6564605d20636865636b207768696368206f6e6c7920616c6c6f7773207472616e73616374696f6e7361012066726f6d20746865206c6f63616c206e6f646520746f20626520696e636c756465642e20496e206f7468657220776f7264732c206f6e6c792074686520626c6f636b20617574686f722063616e20696e636c756465206168207472616e73616374696f6e20696e2074686520626c6f636b2e002c2023203c7765696768743e7020536565206063726174653a3a77656967687460206d6f64756c652e302023203c2f7765696768743e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea4205b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725d1852657761726408244163636f756e7449641c42616c616e636504f420546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205b73746173682c20616d6f756e745d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e50205b76616c696461746f722c20616d6f756e745d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6488206e6f742062652070726f6365737365642e205b73657373696f6e5f696e6465785d3c5374616b696e67456c656374696f6e043c456c656374696f6e436f6d7075746504ec2041206e657720736574206f66207374616b6572732077617320656c656374656420776974682074686520676976656e205b636f6d707574655d2e38536f6c7574696f6e53746f726564043c456c656374696f6e436f6d707574650411012041206e657720736f6c7574696f6e20666f7220746865207570636f6d696e6720656c656374696f6e20686173206265656e2073746f7265642e205b636f6d707574655d18426f6e64656408244163636f756e7449641c42616c616e636510cc20416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205b73746173682c20616d6f756e745d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504d420416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205b73746173682c20616d6f756e745d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560a82066726f6d2074686520756e6c6f636b696e672071756575652e205b73746173682c20616d6f756e745d1c3853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e44456c656374696f6e4c6f6f6b616865616438543a3a426c6f636b4e756d62657210320000001c710120546865206e756d626572206f6620626c6f636b73206265666f72652074686520656e64206f6620746865206572612066726f6d20776869636820656c656374696f6e207375626d697373696f6e732061726520616c6c6f7765642e006d012053657474696e67207468697320746f207a65726f2077696c6c2064697361626c6520746865206f6666636861696e20636f6d7075746520616e64206f6e6c79206f6e2d636861696e207365712d70687261676d656e2077696c6c2420626520757365642e007501205468697320697320626f756e646564206279206265696e672077697468696e20746865206c6173742073657373696f6e2e2048656e63652c2073657474696e6720697420746f20612076616c7565206d6f7265207468616e207468659c206c656e677468206f6620612073657373696f6e2077696c6c20626520706f696e746c6573732e344d6178497465726174696f6e730c753332100a0000000c2901204d6178696d756d206e756d626572206f662062616c616e63696e6720697465726174696f6e7320746f2072756e20696e20746865206f6666636861696e207375626d697373696f6e2e00ec2049662073657420746f20302c2062616c616e63655f736f6c7574696f6e2077696c6c206e6f7420626520657865637574656420617420616c6c2e504d696e536f6c7574696f6e53636f726542756d701c50657262696c6c1020a1070004610120546865207468726573686f6c64206f6620696d70726f76656d656e7420746861742073686f756c642062652070726f766964656420666f722061206e657720736f6c7574696f6e20746f2062652061636365707465642e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332104000000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e7c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e7c4f6666636861696e456c656374696f6e4561726c795375626d697373696f6e04e420546865207375626d697474656420726573756c74206973207265636569766564206f7574206f6620746865206f70656e2077696e646f772e784f6666636861696e456c656374696f6e5765616b5375626d697373696f6e04010120546865207375626d697474656420726573756c74206973206e6f7420617320676f6f6420617320746865206f6e652073746f726564206f6e20636861696e2e4c536e617073686f74556e617661696c61626c6504d02054686520736e617073686f742064617461206f66207468652063757272656e742077696e646f77206973206d697373696e672e804f6666636861696e456c656374696f6e426f67757357696e6e6572436f756e7404b020496e636f7272656374206e756d626572206f662077696e6e65727320776572652070726573656e7465642e6c4f6666636861696e456c656374696f6e426f67757357696e6e6572086101204f6e65206f6620746865207375626d69747465642077696e6e657273206973206e6f7420616e206163746976652063616e646964617465206f6e20636861696e2028696e646578206973206f7574206f662072616e67653820696e20736e617073686f74292e704f6666636861696e456c656374696f6e426f677573436f6d70616374085d01204572726f72207768696c65206275696c64696e67207468652061737369676e6d656e7420747970652066726f6d2074686520636f6d706163742e20546869732063616e2068617070656e20696620616e20696e646578a820697320696e76616c69642c206f72206966207468652077656967687473205f6f766572666c6f775f2e784f6666636861696e456c656374696f6e426f6775734e6f6d696e61746f72041501204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f7273206973206e6f7420616e20616374697665206e6f6d696e61746f72206f6e20636861696e2e7c4f6666636861696e456c656374696f6e426f6775734e6f6d696e6174696f6e044d01204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e206564676520746f20776869636820746865792068617665206e6f7420766f746564206f6e20636861696e2e844f6666636861696e456c656374696f6e536c61736865644e6f6d696e6174696f6e086101204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e2065646765207768696368206973207375626d6974746564206265666f726520746865206c617374206e6f6e2d7a65726f5420736c617368206f6620746865207461726765742e744f6666636861696e456c656374696f6e426f67757353656c66566f746504250120412073656c6620766f7465206d757374206f6e6c79206265206f726967696e617465642066726f6d20612076616c696461746f7220746f204f4e4c59207468656d73656c7665732e644f6666636861696e456c656374696f6e426f6775734564676504450120546865207375626d697474656420726573756c742068617320756e6b6e6f776e206564676573207468617420617265206e6f7420616d6f6e67207468652070726573656e7465642077696e6e6572732e684f6666636861696e456c656374696f6e426f67757353636f72650419012054686520636c61696d65642073636f726520646f6573206e6f74206d61746368207769746820746865206f6e6520636f6d70757465642066726f6d2074686520646174612e844f6666636861696e456c656374696f6e426f677573456c656374696f6e53697a6504782054686520656c656374696f6e2073697a6520697320696e76616c69642e3843616c6c4e6f74416c6c6f776564044901205468652063616c6c206973206e6f7420616c6c6f7765642061742074686520676976656e2074696d652064756520746f207265737472696374696f6e73206f6620656c656374696f6e20706572696f642e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085d01204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205b73657373696f6e5f696e6465785d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001030496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e015c1c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e3ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960b4202d2044622072656164733a20605075626c696350726f70436f756e74602c20605075626c696350726f707360ec202d204462207772697465733a20605075626c696350726f70436f756e74602c20605075626c696350726f7073602c20604465706f7369744f6660302023203c2f7765696768743e187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e38b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002c2023203c7765696768743e3901202d20436f6d706c65786974793a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e60202d2044622072656164733a20604465706f7369744f666064202d204462207772697465733a20604465706f7369744f6660302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e38350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002c2023203c7765696768743e4901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2ea42020207765696768742069732063686172676564206173206966206d6178696d756d20766f7465732ef4202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f66602c206062616c616e636573206c6f636b7360f8202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f66602c206062616c616e636573206c6f636b7360302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578305101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e58202d20436f6d706c65786974793a20604f283129602ec0202d2044622072656164733a20605265666572656e64756d496e666f4f66602c206043616e63656c6c6174696f6e7360c4202d204462207772697465733a20605265666572656e64756d496e666f4f66602c206043616e63656c6c6174696f6e7360302023203c2f7765696768743e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368343101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e002c2023203c7765696768743e2d01202d20436f6d706c657869747920604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756da0202d2044622072656164733a20604e65787445787465726e616c602c2060426c61636b6c6973746070202d204462207772697465733a20604e65787445787465726e616c60302023203c2f7765696768743e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368385901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f283129606c202d2044622077726974653a20604e65787445787465726e616c60302023203c2f7765696768743e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368384901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f283129606c202d2044622077726974653a20604e65787445787465726e616c60302023203c2f7765696768743e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572505101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960b8202d2044622072656164733a20604e65787445787465726e616c602c20605265666572656e64756d436f756e74600d01202d204462207772697465733a20604e65787445787465726e616c602c20605265666572656e64756d436f756e74602c20605265666572656e64756d496e666f4f666060202d2042617365205765696768743a2033302e3120c2b573302023203c2f7765696768743e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736838bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e002c2023203c7765696768743e1901202d20436f6d706c65786974793a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604501202020506572666f726d7320612062696e61727920736561726368206f6e20606578697374696e675f7665746f657273602077686963682073686f756c64206e6f742062652076657279206c617267652ea0202d2044622072656164733a20604e65787445787465726e616c602c2060426c61636b6c69737460a4202d204462207772697465733a20604e65787445787465726e616c602c2060426c61636b6c69737460302023203c2f7765696768743e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e28542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e58202d20436f6d706c65786974793a20604f283129602e80202d204462207772697465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465782ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e3501202d20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602ec8202d2044622072656164733a20607363686564756c6572206c6f6f6b7570602c207363686564756c6572206167656e646160cc202d204462207772697465733a20607363686564756c6572206c6f6f6b7570602c207363686564756c6572206167656e646160302023203c2f7765696768743e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e683d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e002c2023203c7765696768743e5901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732ec4202d2044622072656164733a20332a60566f74696e674f66602c20606f726967696e206163636f756e74206c6f636b7360c8202d204462207772697465733a20332a60566f74696e674f66602c20606f726967696e206163636f756e74206c6f636b7360a4202d2044622072656164732070657220766f7465733a20605265666572656e64756d496e666f4f6660a8202d204462207772697465732070657220766f7465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e28756e64656c65676174650048d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e002c2023203c7765696768743e5901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e64202d2044622072656164733a20322a60566f74696e674f666068202d204462207772697465733a20322a60566f74696e674f6660a4202d2044622072656164732070657220766f7465733a20605265666572656e64756d496e666f4f6660a8202d204462207772697465732070657220766f7465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300207420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e002c2023203c7765696768743e28202d20604f283129602e6c202d204462207772697465733a20605075626c696350726f707360302023203c2f7765696768743e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e002c2023203c7765696768743e6901202d20436f6d706c65786974793a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e60202d2044622072656164733a2060507265696d616765736064202d204462207772697465733a2060507265696d6167657360302023203c2f7765696768743e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e4045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e002c2023203c7765696768743e6901202d20436f6d706c65786974793a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e60202d2044622072656164733a2060507265696d616765736064202d204462207772697465733a2060507265696d6167657360302023203c2f7765696768743e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e4cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e002c2023203c7765696768743ed0202d20436f6d706c65786974793a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2ebc202d2044622072656164733a2060507265696d61676573602c2070726f7669646572206163636f756e742064617461bc202d204462207772697465733a2060507265696d61676573602070726f7669646572206163636f756e742064617461302023203c2f7765696768743e18756e6c6f636b041874617267657430543a3a4163636f756e7449642ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e002c2023203c7765696768743ed4202d20436f6d706c657869747920604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742eec202d2044622072656164733a2060566f74696e674f66602c206062616c616e636573206c6f636b73602c2060746172676574206163636f756e7460f0202d204462207772697465733a2060566f74696e674f66602c206062616c616e636573206c6f636b73602c2060746172676574206163636f756e7460302023203c2f7765696768743e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465787c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e002c2023203c7765696768743e4101202d20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652eac202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660b0202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660302023203c2f7765696768743e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465784c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e002c2023203c7765696768743e4101202d20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652eac202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660b0202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660302023203c2f7765696768743e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e01442050726f706f736564082450726f70496e6465781c42616c616e63650429012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205b70726f706f73616c5f696e6465782c206465706f7369745d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e0475012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404bc2041207265666572656e64756d2068617320626567756e2e205b7265665f696e6465782c207468726573686f6c645d18506173736564043c5265666572656e64756d496e64657804e020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205b7265665f696e6465785d244e6f74506173736564043c5265666572656e64756d496e64657804e020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205b7265665f696e6465785d2443616e63656c6c6564043c5265666572656e64756d496e64657804b42041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205b7265665f696e6465785d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c020412070726f706f73616c20686173206265656e20656e61637465642e205b7265665f696e6465782c2069735f6f6b5d2444656c65676174656408244163636f756e744964244163636f756e74496404190120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205b77686f2c207461726765745d2c556e64656c65676174656404244163636f756e74496404f020416e205b6163636f756e745d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204090120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205b77686f2c2070726f706f73616c5f686173682c20756e74696c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504590120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205b70726f706f73616c5f686173682c2077686f2c206465706f7369745d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e8c205b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e64657804790120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e205b70726f706f73616c5f686173682c207265665f696e6465785d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e64657804790120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e205b70726f706f73616c5f686173682c207265665f696e6465785d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eac205b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725d20556e6c6f636b656404244163636f756e74496404b420416e205b6163636f756e745d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000004b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e842056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e204f766572666c6f7704a420416e20756e657870656374656420696e7465676572206f766572666c6f77206f636375727265642e24556e646572666c6f7704a820416e20756e657870656374656420696e746567657220756e646572666c6f77206f636375727265642e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e7449640400085d0120546865206d656d6265722077686f2070726f7669646573207468652064656661756c7420766f746520666f7220616e79206f74686572206d656d62657273207468617420646f206e6f7420766f7465206265666f7265e4207468652074696d656f75742e204966204e6f6e652c207468656e206e6f206d656d6265722068617320746861742070726976696c6567652e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed0205b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea4205b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e64205b70726f706f73616c5f686173682c207965732c206e6f5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e7449640400085d0120546865206d656d6265722077686f2070726f7669646573207468652064656661756c7420766f746520666f7220616e79206f74686572206d656d62657273207468617420646f206e6f7420766f7465206265666f7265e4207468652074696d656f75742e204966204e6f6e652c207468656e206e6f206d656d6265722068617320746861742070726976696c6567652e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed0205b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea4205b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e64205b70726f706f73616c5f686173682c207965732c206e6f5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e24456c656374696f6e73014050687261676d656e456c656374696f6e141c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29004400000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c02054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682843616e646964617465730100445665633c543a3a4163636f756e7449643e0400085901205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742d69642e20412063757272656e74206d656d626572206f722072756e6e65722d757041012063616e206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e645d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0055012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e74206973282072657365727665642e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e5c2042617365207765696768743a2034372e393320c2b573342053746174652072656164733ad820092d2043616e646964617465732e6c656e2829202b204d656d626572732e6c656e2829202b2052756e6e65727355702e6c656e28295420092d20566f74696e67202869735f766f74657229d420092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202b20746f74616c5f62616c616e6365295d38205374617465207772697465733a2820092d20566f74696e672020092d204c6f636b1d0120092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202d2d206f6e6c79207768656e206372656174696e672061206e657720766f746572295d302023203c2f7765696768743e3072656d6f76655f766f746572003421012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e582042617365207765696768743a2033362e3820c2b573a820416c6c207374617465206163636573732069732066726f6d20646f5f72656d6f76655f766f7465722e342053746174652072656164733a2820092d20566f74696e675820092d205b4163636f756e74446174612877686f295d38205374617465207772697465733a2820092d20566f74696e672420092d204c6f636b735820092d205b4163636f756e74446174612877686f295d302023203c2f7765696768743e507265706f72745f646566756e63745f766f746572041c646566756e6374c4446566756e6374566f7465723c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e6c5d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6ff020202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d626572206f7220612072756e6e65722d75702e0000690120546865206f726967696e206d7573742070726f7669646520746865206e756d626572206f662063757272656e742063616e6469646174657320616e6420766f746573206f6620746865207265706f7274656420746172676574c020666f722074686520707572706f7365206f66206163637572617465207765696768742063616c63756c6174696f6e2e002c2023203c7765696768743eb4204e6f204261736520776569676874206261736564206f6e206d696e2073717561726520616e616c797369732ea420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20312e37353520c2b5739020436f6d706c6578697479206f6620766f74655f636f756e743a2031382e353120c2b573342053746174652072656164733a542020092d20566f74696e67287265706f7274657229502020092d2043616e6469646174652e6c656e28294c2020092d20566f74696e672854617267657429d82020092d2043616e646964617465732c204d656d626572732c2052756e6e6572735570202869735f646566756e63745f766f7465722938205374617465207772697465733a7020092d204c6f636b287265706f72746572207c7c2074617267657429dc20092d205b4163636f756e7442616c616e6365287265706f72746572295d202b204163636f756e7442616c616e636528746172676574297820092d20566f74696e67287265706f72746572207c7c20746172676574295901204e6f74653a207468652064622061636365737320697320776f7273652077697468207265737065637420746f2064622c207768696368206973207768656e20746865207265706f727420697320636f72726563742e302023203c2f7765696768743e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e5478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e60204261736520776569676874203d2033332e333320c2b573a420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e33373520c2b573342053746174652072656164733a5020092d2043616e646964617465732e6c656e28293820092d2043616e646964617465732c20092d204d656d626572733420092d2052756e6e65727355706420092d205b4163636f756e7442616c616e63652877686f295d38205374617465207772697465733a6420092d205b4163636f756e7442616c616e63652877686f295d3820092d2043616e64696461746573302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e679851012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e24203c7765696768743e7820496620612063616e6469646174652069732072656e6f756e63696e673a60200942617365207765696768743a2031372e323820c2b573a82009436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e32333520c2b57338200953746174652072656164733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d3c20095374617465207772697465733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d64204966206d656d6265722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d642049662072756e6e65722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d000d0120576569676874206e6f74653a205468652063616c6c20696e746f206368616e67654d656d62657273206e65656420746f206265206163636f756e74656420666f722e28203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c485d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e6820496620776520686176652061207265706c6163656d656e743a6820092d2042617365207765696768743a2035302e393320c2b5734020092d2053746174652072656164733a502009092d2052756e6e65727355702e6c656e2829cc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572294420092d205374617465207772697465733acc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d62657229650120456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e642077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1061012041206e6577207465726d2077697468205b6e65775f6d656d626572735d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e20746865590120656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f726101207468697320707572706f73652e204120604e65775465726d285b5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e6420736c617368656420616e645901206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f20626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc420604e65775465726d285b5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e304d656d6265724b69636b656404244163636f756e744964084d012041205b6d656d6265725d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a82041205b6d656d6265725d206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c080901204120766f74657220776173207265706f7274656420776974682074686520746865207265706f7274206265696e67207375636365737366756c206f72206e6f742e6c205b766f7465722c207265706f727465722c20737563636573735d183443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d626572108013030000204d6f64756c654964384c6f636b4964656e74696669657220706872656c656374004430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e54496e76616c696443616e646964617465436f756e7404e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d0204e657720617574686f726974792073657420686173206265656e206170706c6965642e205b617574686f726974795f7365745d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e20547265617375727901205472656173757279143450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01203470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173d420605469705265706f72744465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27c4202d20446252656164733a2060526561736f6e73602c206054697073602c206077686f206163636f756e742064617461609c202d2044625772697465733a206054697073602c206077686f206163636f756e74206461746160302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c75653042616c616e63654f663c543e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c75653042616c616e63654f663c543e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e012c2050726f706f736564043450726f706f73616c496e646578047c204e65772070726f706f73616c2e205b70726f706f73616c5f696e6465785d205370656e64696e67041c42616c616e6365043501205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205b6275646765745f72656d61696e696e675d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e74496404150120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795d2052656a6563746564083450726f706f73616c496e6465781c42616c616e6365041d0120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205b70726f706f73616c5f696e6465782c20736c61736865645d144275726e74041c42616c616e636504a820536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205b6275726e5d20526f6c6c6f766572041c42616c616e6365047d01205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e205b6275646765745f72656d61696e696e675d1c4465706f736974041c42616c616e636504a820536f6d652066756e64732068617665206265656e206465706f73697465642e205b6465706f7369745d184e657754697004104861736804c42041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205b7469705f686173685d28546970436c6f73696e670410486173680409012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205b7469705f686173685d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504e82041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205b7469705f686173682c2077686f2c207061796f75745d3054697052657472616374656404104861736804c02041207469702073756767657374696f6e20686173206265656e207265747261637465642e205b7469705f686173685d243050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e5c5469705265706f72744465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e204d6f64756c654964204d6f64756c6549642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e2070496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e24436f6e7472616374730124436f6e747261637473143c43757272656e745363686564756c650100205363686564756c6535020000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a1070000000000e0f7050400000000e024370500000000e0f705040000000020a107000000000020a107000000000080f0fa020000000000e1f505000000000400000000000100100000000040000000200000000000080004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f64650410636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e011830496e7374616e74696174656408244163636f756e744964244163636f756e74496404250120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205b6f776e65722c20636f6e74726163745d1c4576696374656408244163636f756e74496410626f6f6c1ce420436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e58205b636f6e74726163742c20746f6d6273746f6e655d042024202320506172616d73000d01202d2060636f6e7472616374603a20604163636f756e744964603a20546865206163636f756e74204944206f6620746865206576696374656420636f6e74726163742e3501202d2060746f6d6273746f6e65603a2060626f6f6c603a205472756520696620746865206576696374656420636f6e7472616374206c65667420626568696e64206120746f6d6273746f6e652e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524c020526573746f726174696f6e20666f72206120636f6e747261637420686173206265656e207375636365737366756c2ea4205b646f6e6f722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655d042024202320506172616d7300f4202d2060646f6e6f72603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e7472616374ec202d206064657374603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72656420636f6e7472616374e8202d2060636f64655f68617368603a206048617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163741901202d206072656e745f616c6c6f77616e63653a206042616c616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e747261637428436f646553746f72656404104861736808b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e30205b636f64655f686173685d3c5363686564756c6555706461746564040c75333204c820547269676765726564207768656e207468652063757272656e74205b7363686564756c655d20697320757064617465642e44436f6e7472616374457865637574696f6e08244163636f756e7449641c5665633c75383e08090120416e206576656e74206465706f73697465642075706f6e20657865637574696f6e206f66206120636f6e74726163742066726f6d20746865206163636f756e742e40205b6163636f756e742c20646174615d204c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000a0acb903000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c753332100800000018710120412073697a65206f666673657420666f7220616e20636f6e74726163742e2041206a7573742063726561746564206163636f756e74207769746820756e746f75636865642073746f726167652077696c6c20686176652074686174e0206d756368206f662073746f726167652066726f6d20746865207065727370656374697665206f66207468652073746174652072656e742e006101205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465646501206279206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f2073617665182072656e742e2c52656e74427974654665653042616c616e63654f663c543e4000286bee000000000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e400010a5d4e800000000000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e4858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e2c4e6f7443616c6c61626c650831012054686520636f6e74726163742074686174207761732063616c6c656420697320656974686572206e6f20636f6e747261637420617420616c6c20286120706c61696e206163636f756e74294c206f72206973206120746f6d6273746f6e652e30436f6465546f6f4c617267650455012054686520636f646520737570706c69656420746f20607075745f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468652063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c7404842041207375646f206a75737420746f6f6b20706c6163652e205b726573756c745d284b65794368616e67656404244163636f756e74496404f820546865205b7375646f65725d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04842041207375646f206a75737420746f6f6b20706c6163652e205b726573756c745d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e7420496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000001831012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e2063757272656e742073657373696f6e2e0011012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c64d02066616c6c20726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e010120546865206964656120697320746f206669727374207761697420666f72207468652076616c696461746f727320746f2070726f64756365206120626c6f636b390120696e207468652063757272656e742073657373696f6e2c20736f20746861742074686520686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e64657838543a3a56616c696461746f7249640c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265282c2023203c7765696768743e2101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020616e642045206973206c656e677468206f66b4202020604865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f6164647265737360008c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f72697479496404fc2041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205b617574686f726974795f69645d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0435012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205b6f66666c696e655d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e636573101c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e4044656665727265644f6666656e6365730100645665633c44656665727265644f6666656e63654f663c543e3e0400086501204465666572726564207265706f72747320746861742068617665206265656e2072656a656374656420627920746865206f6666656e63652068616e646c657220616e64206e65656420746f206265207375626d6974746564442061742061206c617465722074696d652e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e63650c104b696e64384f706171756554696d65536c6f7410626f6f6c10550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e644d0120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e206c6173741d0120656c656d656e7420696e64696361746573206f6620746865206f6666656e636520776173206170706c69656420287472756529206f7220717565756564202866616c736529206c205b6b696e642c2074696d65736c6f742c206170706c6965645d2e000028486973746f726963616c00000000006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640409012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205b77686f5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e6365040d012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205b77686f2c206465706f7369745d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e63650405012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205b77686f2c206465706f7369745d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e64657804fc2041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205b77686f2c207265676973747261725f696e6465785d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804e82041206a756467656d656e74207265717565737420776173207265747261637465642e205b77686f2c207265676973747261725f696e6465785d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780401012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205b7461726765742c207265676973747261725f696e6465785d3852656769737472617241646465640438526567697374726172496e64657804a4204120726567697374726172207761732061646465642e205b7265676973747261725f696e6465785d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e6365044d012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205b7375622c206d61696e2c206465706f7369745d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e54205b7375622c206d61696e2c206465706f7369745d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652101206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205b7375622c206d61696e2c206465706f7369745d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e1c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e02054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205b666f756e6465725d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729420697320746865207365636f6e642e205b63616e6469646174655f69642c206f666665725d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647101207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205b63616e6469646174655f69642c206f666665722c20766f756368696e675d244175746f556e62696404244163636f756e7449640411012041205b63616e6469646174655d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404b82041205b63616e6469646174655d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640401012041205b63616e6469646174655d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865cc20626174636820696e2066756c6c20697320746865207365636f6e642e205b7072696d6172792c2063616e646964617465735d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04c820412073757370656e646564206d656d62657220686173206265656e206a75646765642e205b77686f2c206a75646765645d4843616e64696461746553757370656e64656404244163636f756e74496404842041205b63616e6469646174655d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404782041205b6d656d6265725d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e744964047c2041205b6d656d6265725d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c0204120766f746520686173206265656e20706c61636564205b63616e6469646174652c20766f7465722c20766f74655d30446566656e646572566f746508244163636f756e74496410626f6f6c04f0204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205b766f7465722c20766f74655d344e65774d61784d656d62657273040c75333204982041206e6577205b6d61785d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048020536f636965747920697320756e666f756e6465642e205b666f756e6465725d1c4465706f736974041c42616c616e636504f020536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205b76616c75655d1c4043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e204d6f64756c654964204d6f64756c6549642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404d42041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205b6163636f756e745d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e40205b6c6f73742c20726573637565725d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e60205b6c6f73742c20726573637565722c2073656e6465725d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e40205b6c6f73742c20726573637565725d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e40205b6c6f73742c20726573637565725d3c5265636f7665727952656d6f76656404244163636f756e74496404d82041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205b6163636f756e745d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000004550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000469012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc601000000000000000000041d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f736564204f766572666c6f77049c2054686572652077617320616e206f766572666c6f7720696e20612063616c63756c6174696f6e30416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f766572791c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740044bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d34202d2042656e63686d61726b3aec20202020202d20556e6c6f636b65643a2034382e3736202b202e303438202a206c20c2b57320286d696e2073717561726520616e616c7973697329e420202020202d204c6f636b65643a2034342e3433202b202e323834202a206c20c2b57320286d696e2073717561726520616e616c7973697329ad01202d205573696e6720353020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e7434202d2042656e63686d61726b3ae820202020202d20556e6c6f636b65643a2034342e33202b202e323934202a206c20c2b57320286d696e2073717561726520616e616c7973697329e420202020202d204c6f636b65643a2034382e3136202b202e313033202a206c20c2b57320286d696e2073717561726520616e616c7973697329ad01202d205573696e6720353020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e486820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745de0202d2042656e63686d61726b3a203130302e33202b202e333635202a206c20c2b57320286d696e2073717561726520616e616c7973697329b101202d205573696e672031303020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e4c6420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74e0202d2042656e63686d61726b3a203130302e33202b202e333635202a206c20c2b57320286d696e2073717561726520616e616c7973697329b101202d205573696e672031303020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e205468651d012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e2050205b6163636f756e742c20756e7665737465645d4056657374696e67436f6d706c6574656404244163636f756e74496404150120416e205b6163636f756e745d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff28623000000000000000000041d0120546865206d696e696d756d20616d6f756e7420746f206265207472616e7366657272656420746f206372656174652061206e65772076657374696e67207363686564756c652e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d6265726d015665633c4f7074696f6e3c5363686564756c65643c3c542061732054726169743e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c753332048c205363686564756c656420736f6d65207461736b2e205b7768656e2c20696e6465785d2043616e63656c6564082c426c6f636b4e756d6265720c75333204882043616e63656c656420736f6d65207461736b2e205b7768656e2c20696e6465785d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404a4204469737061746368656420736f6d65207461736b2e205b7461736b2c2069642c20726573756c745d000c404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c384661696c6564546f43616e63656c0488204661696c656420746f2063616e63656c2061207363686564756c65642063616c6c5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e7449644501285665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449643d01285665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722c490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404e420412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205b726573756c745d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e610120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804490120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205b7265616c2c2070726f78792c2063616c6c5f686173685d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000004110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000004bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e284d617850726f786965730c75313608200004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c7533321020000000047820604d617850656e64696e6760206d6574616461746120736861646f772e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000004ac2060416e6e6f756e63656d656e744465706f7369744261736560206d6574616461746120736861646f772e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000004b42060416e6e6f756e63656d656e744465706f736974466163746f7260206d6574616461746120736861646f772e1c1c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e44550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d2042617365205765696768743a2033332e3732202b20302e303032202a205a20c2b57348202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874cc590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743ae020202020202d204372656174653a2020202020202020202034312e3839202b20302e313138202a2053202b202e303032202a205a20c2b573e020202020202d2043726561746520772f2053746f72653a2035332e3537202b20302e313139202a2053202b202e303033202a205a20c2b573e020202020202d20417070726f76653a20202020202020202033312e3339202b20302e313336202a2053202b202e303032202a205a20c2b573e020202020202d20436f6d706c6574653a202020202020202033392e3934202b20302e323620202a2053202b202e303032202a205a20c2b57334202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f776569676874185765696768749c590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a8020202020202d204372656174653a2034342e3731202b20302e303838202a20538420202020202d20417070726f76653a2033312e3438202b20302e313136202a205334202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6c59012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d84202d2042617365205765696768743a2033362e3037202b20302e313234202a205334202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c486173680415012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368047d012041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e205b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740451012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680459012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d0038404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e30576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74
diff --git a/tests/meta/v11.json b/tests/meta/v11.json
new file mode 100644
--- /dev/null
+++ b/tests/meta/v11.json
@@ -0,0 +1,11686 @@
+{
+  "magicNumber": 1635018093,
+  "metadata": {
+    "v11": {
+      "modules": [
+        {
+          "name": "System",
+          "storage": {
+            "prefix": "System",
+            "items": [
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The full account information for a particular account ID."
+                ]
+              },
+              {
+                "name": "ExtrinsicCount",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total extrinsics count for the current block."
+                ]
+              },
+              {
+                "name": "BlockWeight",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ExtrinsicsWeight"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The current weight for the block."
+                ]
+              },
+              {
+                "name": "AllExtrinsicsLen",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total length (in bytes) for all extrinsics put together, for the current block."
+                ]
+              },
+              {
+                "name": "BlockHash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BlockNumber",
+                    "value": "Hash",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Map of block numbers to block hashes."
+                ]
+              },
+              {
+                "name": "ExtrinsicData",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Extrinsics data for the current block (maps an extrinsic's index to its data)."
+                ]
+              },
+              {
+                "name": "Number",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The current block number being processed. Set by `execute_block`."
+                ]
+              },
+              {
+                "name": "ParentHash",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Hash of the previous block."
+                ]
+              },
+              {
+                "name": "ExtrinsicsRoot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Extrinsics root of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Digest",
+                "modifier": "Default",
+                "type": {
+                  "plain": "DigestOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Digest of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Events",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<EventRecord>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Events deposited for the current block."
+                ]
+              },
+              {
+                "name": "EventCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EventIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of events in the `Events<T>` list."
+                ]
+              },
+              {
+                "name": "EventTopics",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "Hash",
+                    "value": "Vec<(BlockNumber,EventIndex)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mapping between a topic (represented by T::Hash) and a vector of indexes",
+                  " of events in the `<Events<T>>` list.",
+                  "",
+                  " All topic vectors have deterministic storage locations depending on the topic. This",
+                  " allows light-clients to leverage the changes trie storage tracking mechanism and",
+                  " in case of changes fetch the list of events of interest.",
+                  "",
+                  " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
+                  " the `EventIndex` then in case if the topic has the same contents on the next block",
+                  " no notification will be triggered thus the event might be lost."
+                ]
+              },
+              {
+                "name": "LastRuntimeUpgrade",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "LastRuntimeUpgradeInfo"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."
+                ]
+              },
+              {
+                "name": "ExecutionPhase",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Phase"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The execution phase of the block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "fill_block",
+              "args": [
+                {
+                  "name": "_ratio",
+                  "type": "Perbill"
+                }
+              ],
+              "docs": [
+                " A dispatch that will fill the block weight up to the given ratio."
+              ]
+            },
+            {
+              "name": "remark",
+              "args": [
+                {
+                  "name": "_remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Make some on-chain remark.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - Base Weight: 0.665 µs, independent of remark length.",
+                " - No DB operations.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_heap_pages",
+              "args": [
+                {
+                  "name": "pages",
+                  "type": "u64"
+                }
+              ],
+              "docs": [
+                " Set the number of pages in the WebAssembly environment's heap.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - 1 storage write.",
+                " - Base Weight: 1.405 µs",
+                " - 1 write to HEAP_PAGES",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_code",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code.",
+                "",
+                " # <weight>",
+                " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`",
+                " - 1 storage write (codec `O(C)`).",
+                " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).",
+                " - 1 event.",
+                " The weight of this function is dependent on the runtime, but generally this is very expensive.",
+                " We will treat this as a full block.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_code_without_checks",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code without doing any checks of the given `code`.",
+                "",
+                " # <weight>",
+                " - `O(C)` where `C` length of `code`",
+                " - 1 storage write (codec `O(C)`).",
+                " - 1 event.",
+                " The weight of this function is dependent on the runtime. We will treat this as a full block.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_changes_trie_config",
+              "args": [
+                {
+                  "name": "changes_trie_config",
+                  "type": "Option<ChangesTrieConfiguration>"
+                }
+              ],
+              "docs": [
+                " Set the new changes trie configuration.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - 1 storage write or delete (codec `O(1)`).",
+                " - 1 call to `deposit_log`: Uses `append` API, so O(1)",
+                " - Base Weight: 7.218 µs",
+                " - DB Weight:",
+                "     - Writes: Changes Trie, System Digest",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_storage",
+              "args": [
+                {
+                  "name": "items",
+                  "type": "Vec<KeyValue>"
+                }
+              ],
+              "docs": [
+                " Set some items of storage.",
+                "",
+                " # <weight>",
+                " - `O(I)` where `I` length of `items`",
+                " - `I` storage writes (`O(1)`).",
+                " - Base Weight: 0.568 * i µs",
+                " - Writes: Number of items",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_storage",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Vec<Key>"
+                }
+              ],
+              "docs": [
+                " Kill some items from storage.",
+                "",
+                " # <weight>",
+                " - `O(IK)` where `I` length of `keys` and `K` length of one key",
+                " - `I` storage deletions.",
+                " - Base Weight: .378 * i µs",
+                " - Writes: Number of items",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_prefix",
+              "args": [
+                {
+                  "name": "prefix",
+                  "type": "Key"
+                },
+                {
+                  "name": "_subkeys",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Kill all storage items with a key that starts with the given prefix.",
+                "",
+                " **NOTE:** We rely on the Root origin to provide us the number of subkeys under",
+                " the prefix we are removing to accurately calculate the weight of this function.",
+                "",
+                " # <weight>",
+                " - `O(P)` where `P` amount of keys with prefix `prefix`",
+                " - `P` storage deletions.",
+                " - Base Weight: 0.834 * P µs",
+                " - Writes: Number of subkeys + 1",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "suicide",
+              "args": [],
+              "docs": [
+                " Kill the sending account, assuming there are no references outstanding and the composite",
+                " data is equal to its default value.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - 1 storage read and deletion.",
+                " --------------------",
+                " Base Weight: 8.626 µs",
+                " No DB Read or Write operations because caller is already in overlay",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ExtrinsicSuccess",
+              "args": [
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic completed successfully. [info]"
+              ]
+            },
+            {
+              "name": "ExtrinsicFailed",
+              "args": [
+                "DispatchError",
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic failed. [error, info]"
+              ]
+            },
+            {
+              "name": "CodeUpdated",
+              "args": [],
+              "docs": [
+                " `:code` was updated."
+              ]
+            },
+            {
+              "name": "NewAccount",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A new [account] was created."
+              ]
+            },
+            {
+              "name": "KilledAccount",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An [account] was reaped."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "BlockHashCount",
+              "type": "BlockNumber",
+              "value": "0x60090000",
+              "docs": [
+                " The maximum number of blocks to allow in mortal eras."
+              ]
+            },
+            {
+              "name": "MaximumBlockWeight",
+              "type": "Weight",
+              "value": "0x00204aa9d1010000",
+              "docs": [
+                " The maximum weight of a block."
+              ]
+            },
+            {
+              "name": "DbWeight",
+              "type": "RuntimeDbWeight",
+              "value": "0x40787d010000000000e1f50500000000",
+              "docs": [
+                " The weight of runtime database operations the runtime can invoke."
+              ]
+            },
+            {
+              "name": "BlockExecutionWeight",
+              "type": "Weight",
+              "value": "0x00f2052a01000000",
+              "docs": [
+                " The base weight of executing a block, independent of the transactions in the block."
+              ]
+            },
+            {
+              "name": "ExtrinsicBaseWeight",
+              "type": "Weight",
+              "value": "0x4059730700000000",
+              "docs": [
+                " The base weight of an Extrinsic in the block, independent of the of extrinsic being executed."
+              ]
+            },
+            {
+              "name": "MaximumBlockLength",
+              "type": "u32",
+              "value": "0x00005000",
+              "docs": [
+                " The maximum length of a block (in bytes)."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidSpecName",
+              "docs": [
+                " The name of specification does not match between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "SpecVersionNeedsToIncrease",
+              "docs": [
+                " The specification version is not allowed to decrease between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "FailedToExtractRuntimeVersion",
+              "docs": [
+                " Failed to extract the runtime version from the new runtime.",
+                "",
+                " Either calling `Core_version` or decoding `RuntimeVersion` failed."
+              ]
+            },
+            {
+              "name": "NonDefaultComposite",
+              "docs": [
+                " Suicide called when the account has non-default composite data."
+              ]
+            },
+            {
+              "name": "NonZeroRefCount",
+              "docs": [
+                " There is a non-zero reference count preventing the account from being purged."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Utility",
+          "storage": null,
+          "calls": [
+            {
+              "name": "batch",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Send a batch of dispatch calls.",
+                "",
+                " May be called from any origin.",
+                "",
+                " - `calls`: The calls to be dispatched from the same origin.",
+                "",
+                " If origin is root then call are dispatch without checking origin filter. (This includes",
+                " bypassing `frame_system::Trait::BaseCallFilter`).",
+                "",
+                " # <weight>",
+                " - Base weight: 14.39 + .987 * c µs",
+                " - Plus the sum of the weights of the `calls`.",
+                " - Plus one additional event. (repeat read/write)",
+                " # </weight>",
+                "",
+                " This will return `Ok` in all circumstances. To determine the success of the batch, an",
+                " event is deposited. If a call failed and the batch was interrupted, then the",
+                " `BatchInterrupted` event is deposited, along with the number of successful calls made",
+                " and the error of the failed call. If all were successful, then the `BatchCompleted`",
+                " event is deposited."
+              ]
+            },
+            {
+              "name": "as_derivative",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "u16"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through an indexed pseudonym of the sender.",
+                "",
+                " Filter from origin are passed along. The call will be dispatched with an origin which",
+                " use the same filter as the origin of this call.",
+                "",
+                " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.",
+                " because you expect `proxy` to have been used prior in the call stack and you do not want",
+                " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`",
+                " in the Multisig pallet instead.",
+                "",
+                " NOTE: Prior to version *12, this was called `as_limited_sub`.",
+                "",
+                " The dispatch origin for this call must be _Signed_."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BatchInterrupted",
+              "args": [
+                "u32",
+                "DispatchError"
+              ],
+              "docs": [
+                " Batch of dispatches did not complete fully. Index of first failing dispatch given, as",
+                " well as the error. [index, error]"
+              ]
+            },
+            {
+              "name": "BatchCompleted",
+              "args": [],
+              "docs": [
+                " Batch of dispatches completed fully with no error."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Babe",
+          "storage": {
+            "prefix": "Babe",
+            "items": [
+              {
+                "name": "EpochIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current epoch index."
+                ]
+              },
+              {
+                "name": "Authorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current epoch authorities."
+                ]
+              },
+              {
+                "name": "GenesisSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The slot at which the first epoch actually started. This is 0",
+                  " until the first block of the chain."
+                ]
+              },
+              {
+                "name": "CurrentSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current slot number."
+                ]
+              },
+              {
+                "name": "Randomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Randomness"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The epoch randomness for the *current* epoch.",
+                  "",
+                  " # Security",
+                  "",
+                  " This MUST NOT be used for gambling, as it can be influenced by a",
+                  " malicious validator in the short term. It MAY be used in many",
+                  " cryptographic protocols, however, so long as one remembers that this",
+                  " (like everything else on-chain) it is public. For example, it can be",
+                  " used where a number is needed that cannot have been chosen by an",
+                  " adversary, for purposes such as public-coin zero-knowledge proofs."
+                ]
+              },
+              {
+                "name": "NextEpochConfig",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "NextConfigDescriptor"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Next epoch configuration, if changed."
+                ]
+              },
+              {
+                "name": "NextRandomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Randomness"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Next epoch randomness."
+                ]
+              },
+              {
+                "name": "SegmentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Randomness under construction.",
+                  "",
+                  " We make a tradeoff between storage accesses and list length.",
+                  " We store the under-construction randomness in segments of up to",
+                  " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.",
+                  "",
+                  " Once a segment reaches this length, we begin the next one.",
+                  " We reset all segments and return to `0` at the beginning of every",
+                  " epoch."
+                ]
+              },
+              {
+                "name": "UnderConstruction",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "Vec<Randomness>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."
+                ]
+              },
+              {
+                "name": "Initialized",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "MaybeRandomness"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Temporary value (cleared at block finalization) which is `Some`",
+                  " if per-block initialization has already been called for current block."
+                ]
+              },
+              {
+                "name": "Lateness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " How late the current block is compared to its parent.",
+                  "",
+                  " This entry is populated as part of block execution and is cleaned up",
+                  " on block finalization. Querying this storage entry outside of block",
+                  " execution context should always yield zero."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_equivocation",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "BabeEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report authority equivocation/misbehavior. This method will verify",
+                " the equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence will",
+                " be reported."
+              ]
+            },
+            {
+              "name": "report_equivocation_unsigned",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "BabeEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report authority equivocation/misbehavior. This method will verify",
+                " the equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence will",
+                " be reported.",
+                " This extrinsic must be called unsigned and it is expected that only",
+                " block authors will call it (validated in `ValidateUnsigned`), as such",
+                " if the block author is defined it will be defined as the equivocation",
+                " reporter."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "EpochDuration",
+              "type": "u64",
+              "value": "0xc800000000000000",
+              "docs": [
+                " The number of **slots** that an epoch takes. We couple sessions to",
+                " epochs, i.e. we start a new session once the new epoch begins."
+              ]
+            },
+            {
+              "name": "ExpectedBlockTime",
+              "type": "Moment",
+              "value": "0xb80b000000000000",
+              "docs": [
+                " The expected average block time at which BABE should be creating",
+                " blocks. Since BABE is probabilistic it is not trivial to figure out",
+                " what the expected average block time should be based on the slot",
+                " duration and the security parameter `c` (where `1 - c` represents",
+                " the probability of a slot being empty)."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Timestamp",
+          "storage": {
+            "prefix": "Timestamp",
+            "items": [
+              {
+                "name": "Now",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Moment"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current time for the current block."
+                ]
+              },
+              {
+                "name": "DidUpdate",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Did the timestamp get updated in this block?"
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set",
+              "args": [
+                {
+                  "name": "now",
+                  "type": "Compact<Moment>"
+                }
+              ],
+              "docs": [
+                " Set the current time.",
+                "",
+                " This call should be invoked exactly once per block. It will panic at the finalization",
+                " phase, if this call hasn't been invoked by that time.",
+                "",
+                " The timestamp should be greater than the previous one by the amount specified by",
+                " `MinimumPeriod`.",
+                "",
+                " The dispatch origin for this call must be `Inherent`.",
+                "",
+                " # <weight>",
+                " - `O(T)` where `T` complexity of `on_timestamp_set`",
+                " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)",
+                " - 1 event handler `on_timestamp_set` `O(T)`.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "MinimumPeriod",
+              "type": "Moment",
+              "value": "0xdc05000000000000",
+              "docs": [
+                " The minimum period between blocks. Beware that this is different to the *expected* period",
+                " that the block production apparatus provides. Your chosen consensus system will generally",
+                " work with this to determine a sensible block time. e.g. For Aura, it will be double this",
+                " period on default settings."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Authorship",
+          "storage": {
+            "prefix": "Authorship",
+            "items": [
+              {
+                "name": "Uncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<UncleEntryItem>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Uncles"
+                ]
+              },
+              {
+                "name": "Author",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Author of current block."
+                ]
+              },
+              {
+                "name": "DidSetUncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Whether uncles were already set in this block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_uncles",
+              "args": [
+                {
+                  "name": "new_uncles",
+                  "type": "Vec<Header>"
+                }
+              ],
+              "docs": [
+                " Provide a set of uncles."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidUncleParent",
+              "docs": [
+                " The uncle parent not in the chain."
+              ]
+            },
+            {
+              "name": "UnclesAlreadySet",
+              "docs": [
+                " Uncles already set in the block."
+              ]
+            },
+            {
+              "name": "TooManyUncles",
+              "docs": [
+                " Too many uncles."
+              ]
+            },
+            {
+              "name": "GenesisUncle",
+              "docs": [
+                " The uncle is genesis."
+              ]
+            },
+            {
+              "name": "TooHighUncle",
+              "docs": [
+                " The uncle is too high in chain."
+              ]
+            },
+            {
+              "name": "UncleAlreadyIncluded",
+              "docs": [
+                " The uncle is already included."
+              ]
+            },
+            {
+              "name": "OldUncle",
+              "docs": [
+                " The uncle isn't recent enough to be included."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Indices",
+          "storage": {
+            "prefix": "Indices",
+            "items": [
+              {
+                "name": "Accounts",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountIndex",
+                    "value": "(AccountId,BalanceOf,bool)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The lookup from index to account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "claim",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Assign an previously unassigned index.",
+                "",
+                " Payment: `Deposit` is reserved from the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `index`: the index to be claimed. This must not be in use.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - Base Weight: 28.69 µs",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Assign an index already owned by the sender to another account. The balance reservation",
+                " is effectively transferred to the new account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `index`: the index to be re-assigned. This must be owned by the sender.",
+                " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One transfer operation.",
+                " - One event.",
+                " -------------------",
+                " - Base Weight: 33.74 µs",
+                " - DB Weight:",
+                "    - Reads: Indices Accounts, System Account (recipient)",
+                "    - Writes: Indices Accounts, System Account (recipient)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "free",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Free up an index owned by the sender.",
+                "",
+                " Payment: Any previous deposit placed for the index is unreserved in the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must own the index.",
+                "",
+                " - `index`: the index to be freed. This must be owned by the sender.",
+                "",
+                " Emits `IndexFreed` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - Base Weight: 25.53 µs",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                },
+                {
+                  "name": "freeze",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Force an index to an account. This doesn't require a deposit. If the index is already",
+                " held, then any deposit is reimbursed to its current owner.",
+                "",
+                " The dispatch origin for this call must be _Root_.",
+                "",
+                " - `index`: the index to be (re-)assigned.",
+                " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
+                " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - Up to one reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - Base Weight: 26.83 µs",
+                " - DB Weight:",
+                "    - Reads: Indices Accounts, System Account (original owner)",
+                "    - Writes: Indices Accounts, System Account (original owner)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "freeze",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Freeze an index so it will always point to the sender account. This consumes the deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must have a",
+                " non-frozen account `index`.",
+                "",
+                " - `index`: the index to be frozen in place.",
+                "",
+                " Emits `IndexFrozen` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - Up to one slash operation.",
+                " - One event.",
+                " -------------------",
+                " - Base Weight: 30.86 µs",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "IndexAssigned",
+              "args": [
+                "AccountId",
+                "AccountIndex"
+              ],
+              "docs": [
+                " A account index was assigned. [who, index]"
+              ]
+            },
+            {
+              "name": "IndexFreed",
+              "args": [
+                "AccountIndex"
+              ],
+              "docs": [
+                " A account index has been freed up (unassigned). [index]"
+              ]
+            },
+            {
+              "name": "IndexFrozen",
+              "args": [
+                "AccountIndex",
+                "AccountId"
+              ],
+              "docs": [
+                " A account index has been frozen to its current account ID. [who, index]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "Deposit",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The deposit needed for reserving an index."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Balances",
+          "storage": {
+            "prefix": "Balances",
+            "items": [
+              {
+                "name": "TotalIssuance",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Balance"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total units issued in the system."
+                ]
+              },
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountData",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The balance of an account.",
+                  "",
+                  " NOTE: This is only used in the case that this module is used to store balances."
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "Vec<BalanceLock>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any liquidity locks on some account balances.",
+                  " NOTE: Should only be accessed when setting, changing and freeing a lock."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " This is set to v2.0.0 for new networks."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Transfer some liquid free balance to another account.",
+                "",
+                " `transfer` will set the `FreeBalance` of the sender and receiver.",
+                " It will decrease the total issuance of the system by the `TransferFee`.",
+                " If the sender's account is below the existential deposit as a result",
+                " of the transfer, the account will be reaped.",
+                "",
+                " The dispatch origin for this call must be `Signed` by the transactor.",
+                "",
+                " # <weight>",
+                " - Dependent on arguments but not critical, given proper implementations for",
+                "   input config types. See related functions below.",
+                " - It contains a limited number of reads and writes internally and no complex computation.",
+                "",
+                " Related functions:",
+                "",
+                "   - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
+                "   - Transferring balances to accounts that did not exist before will cause",
+                "      `T::OnNewAccount::on_new_account` to be called.",
+                "   - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.",
+                "   - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
+                "     check that the transfer will not kill the origin account.",
+                " ---------------------------------",
+                " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)",
+                " - DB Weight: 1 Read and 1 Write to destination account",
+                " - Origin account is already in memory, so no DB operations for them.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_balance",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "new_free",
+                  "type": "Compact<Balance>"
+                },
+                {
+                  "name": "new_reserved",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Set the balances of a given account.",
+                "",
+                " This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
+                " also decrease the total issuance of the system (`TotalIssuance`).",
+                " If the new free or reserved balance is below the existential deposit,",
+                " it will reset the account nonce (`frame_system::AccountNonce`).",
+                "",
+                " The dispatch origin for this call is `root`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments.",
+                " - Contains a limited number of reads and writes.",
+                " ---------------------",
+                " - Base Weight:",
+                "     - Creating: 27.56 µs",
+                "     - Killing: 35.11 µs",
+                " - DB Weight: 1 Read, 1 Write to `who`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Exactly as `transfer`, except the origin must be root and the source account may be",
+                " specified.",
+                " # <weight>",
+                " - Same as transfer, but additional read and write because the source account is",
+                "   not assumed to be in the overlay.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "transfer_keep_alive",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Same as the [`transfer`] call, but with a check that the transfer will not kill the",
+                " origin account.",
+                "",
+                " 99% of the time you want [`transfer`] instead.",
+                "",
+                " [`transfer`]: struct.Module.html#method.transfer",
+                " # <weight>",
+                " - Cheaper than transfer because account cannot be killed.",
+                " - Base Weight: 51.4 µs",
+                " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)",
+                " #</weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Endowed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account was created with some free balance. [account, free_balance]"
+              ]
+            },
+            {
+              "name": "DustLost",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account was removed whose balance was non-zero but below ExistentialDeposit,",
+                " resulting in an outright loss. [account, balance]"
+              ]
+            },
+            {
+              "name": "Transfer",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Transfer succeeded. [from, to, value]"
+              ]
+            },
+            {
+              "name": "BalanceSet",
+              "args": [
+                "AccountId",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " A balance was set by root. [who, free, reserved]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some amount was deposited (e.g. for transaction fees). [who, deposit]"
+              ]
+            },
+            {
+              "name": "Reserved",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some balance was reserved (moved from free to reserved). [who, value]"
+              ]
+            },
+            {
+              "name": "Unreserved",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some balance was unreserved (moved from reserved to free). [who, value]"
+              ]
+            },
+            {
+              "name": "ReserveRepatriated",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance",
+                "BalanceStatus"
+              ],
+              "docs": [
+                " Some balance was moved from the reserve of the first account to the second account.",
+                " Final argument indicates the destination balance type.",
+                " [from, to, balance, destination_status]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ExistentialDeposit",
+              "type": "Balance",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The minimum amount required to keep an account open."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "VestingBalance",
+              "docs": [
+                " Vesting balance too high to send value"
+              ]
+            },
+            {
+              "name": "LiquidityRestrictions",
+              "docs": [
+                " Account liquidity restrictions prevent withdrawal"
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " Got an overflow after adding"
+              ]
+            },
+            {
+              "name": "InsufficientBalance",
+              "docs": [
+                " Balance too low to send value"
+              ]
+            },
+            {
+              "name": "ExistentialDeposit",
+              "docs": [
+                " Value too low to create account due to existential deposit"
+              ]
+            },
+            {
+              "name": "KeepAlive",
+              "docs": [
+                " Transfer/payment would kill account"
+              ]
+            },
+            {
+              "name": "ExistingVestingSchedule",
+              "docs": [
+                " A vesting schedule already exists for this account"
+              ]
+            },
+            {
+              "name": "DeadAccount",
+              "docs": [
+                " Beneficiary account must pre-exist"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "TransactionPayment",
+          "storage": {
+            "prefix": "TransactionPayment",
+            "items": [
+              {
+                "name": "NextFeeMultiplier",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Multiplier"
+                },
+                "fallback": "0x000064a7b3b6e00d0000000000000000",
+                "docs": []
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": []
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [
+            {
+              "name": "TransactionByteFee",
+              "type": "BalanceOf",
+              "value": "0x00e40b54020000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the per-byte portion."
+              ]
+            },
+            {
+              "name": "WeightToFee",
+              "type": "Vec<WeightToFeeCoefficient>",
+              "value": "0x0401000000000000000000000000000000000000000001",
+              "docs": [
+                " The polynomial that is applied in order to derive fee from weight."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Staking",
+          "storage": {
+            "prefix": "Staking",
+            "items": [
+              {
+                "name": "HistoryDepth",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x54000000",
+                "docs": [
+                  " Number of eras to keep in history.",
+                  "",
+                  " Information is kept for eras in `[current_era - history_depth; current_era]`.",
+                  "",
+                  " Must be more than the number of eras delayed by session otherwise. I.e. active era must",
+                  " always be in history. I.e. `active_era > current_era - history_depth` must be",
+                  " guaranteed."
+                ]
+              },
+              {
+                "name": "ValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ideal number of staking participants."
+                ]
+              },
+              {
+                "name": "MinimumValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Minimum number of staking participants before emergency conditions are imposed."
+                ]
+              },
+              {
+                "name": "Invulnerables",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're",
+                  " easy to initialize and the performance hit is minimal (we expect no more than four",
+                  " invulnerables) and restricted to testnets."
+                ]
+              },
+              {
+                "name": "Bonded",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all locked \"stash\" accounts to the controller account."
+                ]
+              },
+              {
+                "name": "Ledger",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "StakingLedger",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
+                ]
+              },
+              {
+                "name": "Payee",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "RewardDestination",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Where the reward payment should be made. Keyed by stash."
+                ]
+              },
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from (wannabe) validator stash key to the preferences of that validator."
+                ]
+              },
+              {
+                "name": "Nominators",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Nominations",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from nominator stash key to the set of stash keys of all validators to nominate."
+                ]
+              },
+              {
+                "name": "CurrentEra",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current era index.",
+                  "",
+                  " This is the latest planned era, depending on how the Session pallet queues the validator",
+                  " set, it might be active or not."
+                ]
+              },
+              {
+                "name": "ActiveEra",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ActiveEraInfo"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The active era information, it holds index and start.",
+                  "",
+                  " The active era is the era currently rewarded.",
+                  " Validator set of this era must be equal to `SessionInterface::validators`."
+                ]
+              },
+              {
+                "name": "ErasStartSessionIndex",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The session index at which the era start for the last `HISTORY_DEPTH` eras."
+                ]
+              },
+              {
+                "name": "ErasStakers",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "Exposure",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Exposure of validator at era.",
+                  "",
+                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras.",
+                  " If stakers hasn't been set or has been removed then empty exposure is returned."
+                ]
+              },
+              {
+                "name": "ErasStakersClipped",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "Exposure",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Clipped Exposure of validator at era.",
+                  "",
+                  " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the",
+                  " `T::MaxNominatorRewardedPerValidator` biggest stakers.",
+                  " (Note: the field `total` and `own` of the exposure remains unchanged).",
+                  " This is used to limit the i/o cost for the nominator payout.",
+                  "",
+                  " This is keyed fist by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras.",
+                  " If stakers hasn't been set or has been removed then empty exposure is returned."
+                ]
+              },
+              {
+                "name": "ErasValidatorPrefs",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Similar to `ErasStakers`, this holds the preferences of validators.",
+                  "",
+                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras."
+                ]
+              },
+              {
+                "name": "ErasValidatorReward",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The total validator era payout for the last `HISTORY_DEPTH` eras.",
+                  "",
+                  " Eras that haven't finished yet or has been removed doesn't have reward."
+                ]
+              },
+              {
+                "name": "ErasRewardPoints",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "EraRewardPoints",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000",
+                "docs": [
+                  " Rewards for the last `HISTORY_DEPTH` eras.",
+                  " If reward hasn't been set or has been removed then 0 reward is returned."
+                ]
+              },
+              {
+                "name": "ErasTotalStake",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total amount staked for the last `HISTORY_DEPTH` eras.",
+                  " If total hasn't been set or has been removed then 0 stake is returned."
+                ]
+              },
+              {
+                "name": "ForceEra",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Forcing"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mode of era forcing."
+                ]
+              },
+              {
+                "name": "SlashRewardFraction",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Perbill"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The percentage of the slash that is distributed to reporters.",
+                  "",
+                  " The rest of the slashed value is handled by the `Slash`."
+                ]
+              },
+              {
+                "name": "CanceledSlashPayout",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of currency given to reporters of a slash event which was",
+                  " canceled by extraordinary circumstances (e.g. governance)."
+                ]
+              },
+              {
+                "name": "UnappliedSlashes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "Vec<UnappliedSlash>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All unapplied slashes that are queued for later."
+                ]
+              },
+              {
+                "name": "BondedEras",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(EraIndex,SessionIndex)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from still-bonded eras to the first session index of that era.",
+                  "",
+                  " Must contains information for eras for the range:",
+                  " `[active_era - bounding_duration; active_era]`"
+                ]
+              },
+              {
+                "name": "ValidatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "(Perbill,BalanceOf)",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on validators, mapped by era to the highest slash proportion",
+                  " and slash value of the era."
+                ]
+              },
+              {
+                "name": "NominatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "BalanceOf",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on nominators, mapped by era to the highest slash value of the era."
+                ]
+              },
+              {
+                "name": "SlashingSpans",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "SlashingSpans",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Slashing spans for stash accounts."
+                ]
+              },
+              {
+                "name": "SpanSlash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "(AccountId,SpanIndex)",
+                    "value": "SpanRecord",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Records information about the maximum slash of a stash within a slashing span,",
+                  " as well as how much reward has been paid out."
+                ]
+              },
+              {
+                "name": "EarliestUnappliedSlash",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The earliest era for which we have a pending, unapplied slash."
+                ]
+              },
+              {
+                "name": "SnapshotValidators",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Snapshot of validators at the beginning of the current election window. This should only",
+                  " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`."
+                ]
+              },
+              {
+                "name": "SnapshotNominators",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Snapshot of nominators at the beginning of the current election window. This should only",
+                  " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`."
+                ]
+              },
+              {
+                "name": "QueuedElected",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ElectionResult"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The next validator set. At the end of an era, if this is available (potentially from the",
+                  " result of an offchain worker), it is immediately used. Otherwise, the on-chain election",
+                  " is executed."
+                ]
+              },
+              {
+                "name": "QueuedScore",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ElectionScore"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The score of the current [`QueuedElected`]."
+                ]
+              },
+              {
+                "name": "EraElectionStatus",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ElectionStatus"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Flag to control the execution of the offchain election. When `Open(_)`, we accept",
+                  " solutions to be submitted."
+                ]
+              },
+              {
+                "name": "IsCurrentSessionFinal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the current **planned** session is final. Note that this does not take era",
+                  " forcing into account."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x03",
+                "docs": [
+                  " True if network has been upgraded to this version.",
+                  " Storage version of the pallet.",
+                  "",
+                  " This is set to v3.0.0 for new networks."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bond",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " Take the origin account as a stash and lock up `value` of its balance. `controller` will",
+                " be the account that controls it.",
+                "",
+                " `value` must be more than the `minimum_balance` specified by `T::Currency`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash account.",
+                "",
+                " Emits `Bonded`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Moderate complexity.",
+                " - O(1).",
+                " - Three extra DB entries.",
+                "",
+                " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned",
+                " unless the `origin` falls below _existential deposit_ and gets removed as dust.",
+                " ------------------",
+                " Base Weight: 67.87 µs",
+                " DB Weight:",
+                " - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks",
+                " - Write: Bonded, Payee, [Origin Account], Locks, Ledger",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "bond_extra",
+              "args": [
+                {
+                  "name": "max_additional",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Add some extra amount that have appeared in the stash `free_balance` into the balance up",
+                " for staking.",
+                "",
+                " Use this if there are additional funds in your stash account that you wish to bond.",
+                " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount",
+                " that can be added.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller and",
+                " it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " Emits `Bonded`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - O(1).",
+                " - One DB entry.",
+                " ------------",
+                " Base Weight: 54.88 µs",
+                " DB Weight:",
+                " - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks",
+                " - Write: [Origin Account], Locks, Ledger",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Schedule a portion of the stash to be unlocked ready for transfer out after the bond",
+                " period ends. If this leaves an amount actively bonded less than",
+                " T::Currency::minimum_balance(), then it is increased to the full amount.",
+                "",
+                " Once the unlock period is done, you can call `withdraw_unbonded` to actually move",
+                " the funds out of management ready for transfer.",
+                "",
+                " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)",
+                " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need",
+                " to be called first to remove some of the chunks (if possible).",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " Emits `Unbonded`.",
+                "",
+                " See also [`Call::withdraw_unbonded`].",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Limited but potentially exploitable complexity.",
+                " - Contains a limited number of reads.",
+                " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)",
+                "   will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.",
+                "   The only way to clean the aforementioned storage item is also user-controlled via",
+                "   `withdraw_unbonded`.",
+                " - One DB entry.",
+                " ----------",
+                " Base Weight: 50.34 µs",
+                " DB Weight:",
+                " - Read: Era Election Status, Ledger, Current Era, Locks, [Origin Account]",
+                " - Write: [Origin Account], Locks, Ledger",
+                " </weight>"
+              ]
+            },
+            {
+              "name": "withdraw_unbonded",
+              "args": [
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Remove any unlocked chunks from the `unlocking` queue from our management.",
+                "",
+                " This essentially frees up that balance to be used by the stash account to do",
+                " whatever it wants.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " Emits `Withdrawn`.",
+                "",
+                " See also [`Call::unbond`].",
+                "",
+                " # <weight>",
+                " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.",
+                "  It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is",
+                "  indirectly user-controlled. See [`unbond`] for more detail.",
+                " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.",
+                " - Writes are limited to the `origin` account key.",
+                " ---------------",
+                " Complexity O(S) where S is the number of slashing spans to remove",
+                " Base Weight:",
+                " Update: 50.52 + .028 * S µs",
+                " - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]",
+                " - Writes: [Origin Account], Locks, Ledger",
+                " Kill: 79.41 + 2.366 * S µs",
+                " - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin Account], Locks",
+                " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, [Origin Account], Locks",
+                " - Writes Each: SpanSlash * S",
+                " NOTE: Weight annotation is the kill scenario, we refund otherwise.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "validate",
+              "args": [
+                {
+                  "name": "prefs",
+                  "type": "ValidatorPrefs"
+                }
+              ],
+              "docs": [
+                " Declare the desire to validate for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " -----------",
+                " Base Weight: 17.13 µs",
+                " DB Weight:",
+                " - Read: Era Election Status, Ledger",
+                " - Write: Nominators, Validators",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "nominate",
+              "args": [
+                {
+                  "name": "targets",
+                  "type": "Vec<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Declare the desire to nominate `targets` for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era. This can only be called when",
+                " [`EraElectionStatus`] is `Closed`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - The transaction's complexity is proportional to the size of `targets` (N)",
+                " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).",
+                " - Both the reads and writes follow a similar pattern.",
+                " ---------",
+                " Base Weight: 22.34 + .36 * N µs",
+                " where N is the number of targets",
+                " DB Weight:",
+                " - Reads: Era Election Status, Ledger, Current Era",
+                " - Writes: Validators, Nominators",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "chill",
+              "args": [],
+              "docs": [
+                " Declare no desire to either validate or nominate.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains one read.",
+                " - Writes are limited to the `origin` account key.",
+                " --------",
+                " Base Weight: 16.53 µs",
+                " DB Weight:",
+                " - Read: EraElectionStatus, Ledger",
+                " - Write: Validators, Nominators",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_payee",
+              "args": [
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " (Re-)set the payment target for a controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " ---------",
+                " - Base Weight: 11.33 µs",
+                " - DB Weight:",
+                "     - Read: Ledger",
+                "     - Write: Payee",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_controller",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " (Re-)set the controller of a stash.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " ----------",
+                " Base Weight: 25.22 µs",
+                " DB Weight:",
+                " - Read: Bonded, Ledger New Controller, Ledger Old Controller",
+                " - Write: Bonded, Ledger New Controller, Ledger Old Controller",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_validator_count",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Sets the ideal number of validators.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Base Weight: 1.717 µs",
+                " Write: Validator Count",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "increase_validator_count",
+              "args": [
+                {
+                  "name": "additional",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Increments the ideal number of validators.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Base Weight: 1.717 µs",
+                " Read/Write: Validator Count",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "scale_validator_count",
+              "args": [
+                {
+                  "name": "factor",
+                  "type": "Percent"
+                }
+              ],
+              "docs": [
+                " Scale up the ideal number of validators by a factor.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Base Weight: 1.717 µs",
+                " Read/Write: Validator Count",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_no_eras",
+              "args": [],
+              "docs": [
+                " Force there to be no new eras indefinitely.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " - Base Weight: 1.857 µs",
+                " - Write: ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of the next session. After this, it will be",
+                " reset to normal (non-forced) behaviour.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " - Base Weight: 1.959 µs",
+                " - Write ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_invulnerables",
+              "args": [
+                {
+                  "name": "validators",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the validators who cannot be slashed (if any).",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - O(V)",
+                " - Base Weight: 2.208 + .006 * V µs",
+                " - Write: Invulnerables",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_unstake",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Force a current staker to become completely unstaked, immediately.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " O(S) where S is the number of slashing spans to be removed",
+                " Base Weight: 53.07 + 2.365 * S µs",
+                " Reads: Bonded, Slashing Spans, Account, Locks",
+                " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks",
+                " Writes Each: SpanSlash * S",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era_always",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of sessions indefinitely.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - Base Weight: 2.05 µs",
+                " - Write: ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_deferred_slash",
+              "args": [
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                },
+                {
+                  "name": "slash_indices",
+                  "type": "Vec<u32>"
+                }
+              ],
+              "docs": [
+                " Cancel enactment of a deferred slash.",
+                "",
+                " Can be called by the `T::SlashCancelOrigin`.",
+                "",
+                " Parameters: era and indices of the slashes for that era to kill.",
+                "",
+                " # <weight>",
+                " Complexity: O(U + S)",
+                " with U unapplied slashes weighted with U=1000",
+                " and S is the number of slash indices to be canceled.",
+                " - Base: 5870 + 34.61 * S µs",
+                " - Read: Unapplied Slashes",
+                " - Write: Unapplied Slashes",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "payout_stakers",
+              "args": [
+                {
+                  "name": "validator_stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                }
+              ],
+              "docs": [
+                " Pay out all the stakers behind a single validator for a single era.",
+                "",
+                " - `validator_stash` is the stash account of the validator. Their nominators, up to",
+                "   `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.",
+                " - `era` may be any era between `[current_era - history_depth; current_era]`.",
+                "",
+                " The origin of this call must be _Signed_. Any account can call this function, even if",
+                " it is not one of the stakers.",
+                "",
+                " This can only be called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Time complexity: at most O(MaxNominatorRewardedPerValidator).",
+                " - Contains a limited number of reads and writes.",
+                " -----------",
+                " N is the Number of payouts for the validator (including the validator)",
+                " Base Weight:",
+                " - Reward Destination Staked: 110 + 54.2 * N µs (Median Slopes)",
+                " - Reward Destination Controller (Creating): 120 + 41.95 * N µs (Median Slopes)",
+                " DB Weight:",
+                " - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,",
+                "         ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)",
+                " - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)",
+                " - Write Each: System Account, Locks, Ledger (3 items)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "rebond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Rebond a portion of the stash scheduled to be unlocked.",
+                "",
+                " The dispatch origin must be signed by the controller, and it can be only called when",
+                " [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Time complexity: O(L), where L is unlocking chunks",
+                " - Bounded by `MAX_UNLOCKING_CHUNKS`.",
+                " - Storage changes: Can't increase storage, only decrease it.",
+                " ---------------",
+                " - Base Weight: 34.51 µs * .048 L µs",
+                " - DB Weight:",
+                "     - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]",
+                "     - Writes: [Origin Account], Locks, Ledger",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_history_depth",
+              "args": [
+                {
+                  "name": "new_history_depth",
+                  "type": "Compact<EraIndex>"
+                },
+                {
+                  "name": "_era_items_deleted",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Set `HistoryDepth` value. This function will delete any history information",
+                " when `HistoryDepth` is reduced.",
+                "",
+                " Parameters:",
+                " - `new_history_depth`: The new history depth you would like to set.",
+                " - `era_items_deleted`: The number of items that will be deleted by this dispatch.",
+                "    This should report all the storage items that will be deleted by clearing old",
+                "    era history. Needed to report an accurate weight for the dispatch. Trusted by",
+                "    `Root` to report an accurate number.",
+                "",
+                " Origin must be root.",
+                "",
+                " # <weight>",
+                " - E: Number of history depths removed, i.e. 10 -> 7 = 3",
+                " - Base Weight: 29.13 * E µs",
+                " - DB Weight:",
+                "     - Reads: Current Era, History Depth",
+                "     - Writes: History Depth",
+                "     - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs",
+                "     - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reap_stash",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Remove all data structure concerning a staker/stash once its balance is zero.",
+                " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone",
+                " and the target `stash` must have no funds left.",
+                "",
+                " This can be called from any origin.",
+                "",
+                " - `stash`: The stash account to reap. Its balance must be zero.",
+                "",
+                " # <weight>",
+                " Complexity: O(S) where S is the number of slashing spans on the account.",
+                " Base Weight: 75.94 + 2.396 * S µs",
+                " DB Weight:",
+                " - Reads: Stash Account, Bonded, Slashing Spans, Locks",
+                " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks",
+                " - Writes Each: SpanSlash * S",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "submit_election_solution",
+              "args": [
+                {
+                  "name": "winners",
+                  "type": "Vec<ValidatorIndex>"
+                },
+                {
+                  "name": "compact",
+                  "type": "CompactAssignments"
+                },
+                {
+                  "name": "score",
+                  "type": "ElectionScore"
+                },
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                },
+                {
+                  "name": "size",
+                  "type": "ElectionSize"
+                }
+              ],
+              "docs": [
+                " Submit an election result to the chain. If the solution:",
+                "",
+                " 1. is valid.",
+                " 2. has a better score than a potentially existing solution on chain.",
+                "",
+                " then, it will be _put_ on chain.",
+                "",
+                " A solution consists of two pieces of data:",
+                "",
+                " 1. `winners`: a flat vector of all the winners of the round.",
+                " 2. `assignments`: the compact version of an assignment vector that encodes the edge",
+                "    weights.",
+                "",
+                " Both of which may be computed using _phragmen_, or any other algorithm.",
+                "",
+                " Additionally, the submitter must provide:",
+                "",
+                " - The `score` that they claim their solution has.",
+                "",
+                " Both validators and nominators will be represented by indices in the solution. The",
+                " indices should respect the corresponding types ([`ValidatorIndex`] and",
+                " [`NominatorIndex`]). Moreover, they should be valid when used to index into",
+                " [`SnapshotValidators`] and [`SnapshotNominators`]. Any invalid index will cause the",
+                " solution to be rejected. These two storage items are set during the election window and",
+                " may be used to determine the indices.",
+                "",
+                " A solution is valid if:",
+                "",
+                " 0. It is submitted when [`EraElectionStatus`] is `Open`.",
+                " 1. Its claimed score is equal to the score computed on-chain.",
+                " 2. Presents the correct number of winners.",
+                " 3. All indexes must be value according to the snapshot vectors. All edge values must",
+                "    also be correct and should not overflow the granularity of the ratio type (i.e. 256",
+                "    or billion).",
+                " 4. For each edge, all targets are actually nominated by the voter.",
+                " 5. Has correct self-votes.",
+                "",
+                " A solutions score is consisted of 3 parameters:",
+                "",
+                " 1. `min { support.total }` for each support of a winner. This value should be maximized.",
+                " 2. `sum { support.total }` for each support of a winner. This value should be minimized.",
+                " 3. `sum { support.total^2 }` for each support of a winner. This value should be",
+                "    minimized (to ensure less variance)",
+                "",
+                " # <weight>",
+                " See `crate::weight` module.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "submit_election_solution_unsigned",
+              "args": [
+                {
+                  "name": "winners",
+                  "type": "Vec<ValidatorIndex>"
+                },
+                {
+                  "name": "compact",
+                  "type": "CompactAssignments"
+                },
+                {
+                  "name": "score",
+                  "type": "ElectionScore"
+                },
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                },
+                {
+                  "name": "size",
+                  "type": "ElectionSize"
+                }
+              ],
+              "docs": [
+                " Unsigned version of `submit_election_solution`.",
+                "",
+                " Note that this must pass the [`ValidateUnsigned`] check which only allows transactions",
+                " from the local node to be included. In other words, only the block author can include a",
+                " transaction in the block.",
+                "",
+                " # <weight>",
+                " See `crate::weight` module.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "EraPayout",
+              "args": [
+                "EraIndex",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " The era payout has been set; the first balance is the validator-payout; the second is",
+                " the remainder from the maximum amount of reward.",
+                " [era_index, validator_payout, remainder]"
+              ]
+            },
+            {
+              "name": "Reward",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " The staker has been rewarded by this amount. [stash, amount]"
+              ]
+            },
+            {
+              "name": "Slash",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " One validator (and its nominators) has been slashed by the given amount.",
+                " [validator, amount]"
+              ]
+            },
+            {
+              "name": "OldSlashingReportDiscarded",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " An old slashing report from a prior era was discarded because it could",
+                " not be processed. [session_index]"
+              ]
+            },
+            {
+              "name": "StakingElection",
+              "args": [
+                "ElectionCompute"
+              ],
+              "docs": [
+                " A new set of stakers was elected with the given [compute]."
+              ]
+            },
+            {
+              "name": "SolutionStored",
+              "args": [
+                "ElectionCompute"
+              ],
+              "docs": [
+                " A new solution for the upcoming election has been stored. [compute]"
+              ]
+            },
+            {
+              "name": "Bonded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has bonded this amount. [stash, amount]",
+                "",
+                " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,",
+                " it will not be emitted for staking rewards when they are added to stake."
+              ]
+            },
+            {
+              "name": "Unbonded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has unbonded this amount. [stash, amount]"
+              ]
+            },
+            {
+              "name": "Withdrawn",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`",
+                " from the unlocking queue. [stash, amount]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SessionsPerEra",
+              "type": "SessionIndex",
+              "value": "0x06000000",
+              "docs": [
+                " Number of sessions per era."
+              ]
+            },
+            {
+              "name": "BondingDuration",
+              "type": "EraIndex",
+              "value": "0xa0020000",
+              "docs": [
+                " Number of eras that staked funds must remain bonded for."
+              ]
+            },
+            {
+              "name": "SlashDeferDuration",
+              "type": "EraIndex",
+              "value": "0xa8000000",
+              "docs": [
+                " Number of eras that slashes are deferred by, after computation.",
+                "",
+                " This should be less than the bonding duration.",
+                " Set to 0 if slashes should be applied immediately, without opportunity for",
+                " intervention."
+              ]
+            },
+            {
+              "name": "ElectionLookahead",
+              "type": "BlockNumber",
+              "value": "0x32000000",
+              "docs": [
+                " The number of blocks before the end of the era from which election submissions are allowed.",
+                "",
+                " Setting this to zero will disable the offchain compute and only on-chain seq-phragmen will",
+                " be used.",
+                "",
+                " This is bounded by being within the last session. Hence, setting it to a value more than the",
+                " length of a session will be pointless."
+              ]
+            },
+            {
+              "name": "MaxIterations",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " Maximum number of balancing iterations to run in the offchain submission.",
+                "",
+                " If set to 0, balance_solution will not be executed at all."
+              ]
+            },
+            {
+              "name": "MinSolutionScoreBump",
+              "type": "Perbill",
+              "value": "0x20a10700",
+              "docs": [
+                " The threshold of improvement that should be provided for a new solution to be accepted."
+              ]
+            },
+            {
+              "name": "MaxNominatorRewardedPerValidator",
+              "type": "u32",
+              "value": "0x40000000",
+              "docs": [
+                " The maximum number of nominators rewarded for each validator.",
+                "",
+                " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim",
+                " their reward. This used to limit the i/o cost for the nominator payout."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotController",
+              "docs": [
+                " Not a controller account."
+              ]
+            },
+            {
+              "name": "NotStash",
+              "docs": [
+                " Not a stash account."
+              ]
+            },
+            {
+              "name": "AlreadyBonded",
+              "docs": [
+                " Stash is already bonded."
+              ]
+            },
+            {
+              "name": "AlreadyPaired",
+              "docs": [
+                " Controller is already paired."
+              ]
+            },
+            {
+              "name": "EmptyTargets",
+              "docs": [
+                " Targets cannot be empty."
+              ]
+            },
+            {
+              "name": "DuplicateIndex",
+              "docs": [
+                " Duplicate index."
+              ]
+            },
+            {
+              "name": "InvalidSlashIndex",
+              "docs": [
+                " Slash record index out of bounds."
+              ]
+            },
+            {
+              "name": "InsufficientValue",
+              "docs": [
+                " Can not bond with value less than minimum balance."
+              ]
+            },
+            {
+              "name": "NoMoreChunks",
+              "docs": [
+                " Can not schedule more unlock chunks."
+              ]
+            },
+            {
+              "name": "NoUnlockChunk",
+              "docs": [
+                " Can not rebond without unlocking chunks."
+              ]
+            },
+            {
+              "name": "FundedTarget",
+              "docs": [
+                " Attempting to target a stash that still has funds."
+              ]
+            },
+            {
+              "name": "InvalidEraToReward",
+              "docs": [
+                " Invalid era to reward."
+              ]
+            },
+            {
+              "name": "InvalidNumberOfNominations",
+              "docs": [
+                " Invalid number of nominations."
+              ]
+            },
+            {
+              "name": "NotSortedAndUnique",
+              "docs": [
+                " Items are not sorted and unique."
+              ]
+            },
+            {
+              "name": "AlreadyClaimed",
+              "docs": [
+                " Rewards for this era have already been claimed for this validator."
+              ]
+            },
+            {
+              "name": "OffchainElectionEarlySubmission",
+              "docs": [
+                " The submitted result is received out of the open window."
+              ]
+            },
+            {
+              "name": "OffchainElectionWeakSubmission",
+              "docs": [
+                " The submitted result is not as good as the one stored on chain."
+              ]
+            },
+            {
+              "name": "SnapshotUnavailable",
+              "docs": [
+                " The snapshot data of the current window is missing."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusWinnerCount",
+              "docs": [
+                " Incorrect number of winners were presented."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusWinner",
+              "docs": [
+                " One of the submitted winners is not an active candidate on chain (index is out of range",
+                " in snapshot)."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusCompact",
+              "docs": [
+                " Error while building the assignment type from the compact. This can happen if an index",
+                " is invalid, or if the weights _overflow_."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusNominator",
+              "docs": [
+                " One of the submitted nominators is not an active nominator on chain."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusNomination",
+              "docs": [
+                " One of the submitted nominators has an edge to which they have not voted on chain."
+              ]
+            },
+            {
+              "name": "OffchainElectionSlashedNomination",
+              "docs": [
+                " One of the submitted nominators has an edge which is submitted before the last non-zero",
+                " slash of the target."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusSelfVote",
+              "docs": [
+                " A self vote must only be originated from a validator to ONLY themselves."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusEdge",
+              "docs": [
+                " The submitted result has unknown edges that are not among the presented winners."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusScore",
+              "docs": [
+                " The claimed score does not match with the one computed from the data."
+              ]
+            },
+            {
+              "name": "OffchainElectionBogusElectionSize",
+              "docs": [
+                " The election size is invalid."
+              ]
+            },
+            {
+              "name": "CallNotAllowed",
+              "docs": [
+                " The call is not allowed at the given time due to restrictions of election period."
+              ]
+            },
+            {
+              "name": "IncorrectHistoryDepth",
+              "docs": [
+                " Incorrect previous history depth input provided."
+              ]
+            },
+            {
+              "name": "IncorrectSlashingSpans",
+              "docs": [
+                " Incorrect number of slashing spans provided."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Session",
+          "storage": {
+            "prefix": "Session",
+            "items": [
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ValidatorId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of validators."
+                ]
+              },
+              {
+                "name": "CurrentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Current index of the session."
+                ]
+              },
+              {
+                "name": "QueuedChanged",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the underlying economic identities or weighting behind the validators",
+                  " has changed in the queued validator set."
+                ]
+              },
+              {
+                "name": "QueuedKeys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(ValidatorId,Keys)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The queued keys for the next session. When the next session begins, these keys",
+                  " will be used to determine the validator's session keys."
+                ]
+              },
+              {
+                "name": "DisabledValidators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<u32>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Indices of disabled validators.",
+                  "",
+                  " The set is cleared when `on_session_ending` returns a new set of identities."
+                ]
+              },
+              {
+                "name": "NextKeys",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ValidatorId",
+                    "value": "Keys",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The next session keys for a validator."
+                ]
+              },
+              {
+                "name": "KeyOwner",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "(KeyTypeId,Bytes)",
+                    "value": "ValidatorId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The owner of a key. The key is the `KeyTypeId` + the encoded key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_keys",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Keys"
+                },
+                {
+                  "name": "proof",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Sets the session key(s) of the function caller to `keys`.",
+                " Allows an account to set its session key prior to becoming a validator.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                "   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
+                " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`",
+                " - DbWrites: `origin account`, `NextKeys`",
+                " - DbReads per key id: `KeyOwner`",
+                " - DbWrites per key id: `KeyOwner`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "purge_keys",
+              "args": [],
+              "docs": [
+                " Removes any session key(s) of the function caller.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)` in number of key types.",
+                "   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
+                " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`",
+                " - DbWrites: `NextKeys`, `origin account`",
+                " - DbWrites per key id: `KeyOwnder`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewSession",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " New session has happened. Note that the argument is the [session_index], not the block",
+                " number as the type might suggest."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidProof",
+              "docs": [
+                " Invalid ownership proof."
+              ]
+            },
+            {
+              "name": "NoAssociatedValidatorId",
+              "docs": [
+                " No associated validator ID for account."
+              ]
+            },
+            {
+              "name": "DuplicatedKey",
+              "docs": [
+                " Registered duplicate key."
+              ]
+            },
+            {
+              "name": "NoKeys",
+              "docs": [
+                " No keys are associated with this account."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Democracy",
+          "storage": {
+            "prefix": "Democracy",
+            "items": [
+              {
+                "name": "PublicPropCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "PropIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of (public) proposals that have been made so far."
+                ]
+              },
+              {
+                "name": "PublicProps",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(PropIndex,Hash,AccountId)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The public proposals. Unsorted. The second item is the proposal's hash."
+                ]
+              },
+              {
+                "name": "DepositOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "PropIndex",
+                    "value": "(Vec<AccountId>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Those who have locked a deposit.",
+                  "",
+                  " TWOX-NOTE: Safe, as increasing integer keys are safe."
+                ]
+              },
+              {
+                "name": "Preimages",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "PreimageStatus",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map of hashes to the proposal preimage, along with who registered it and their deposit.",
+                  " The block number is the block at which it was deposited."
+                ]
+              },
+              {
+                "name": "ReferendumCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next free referendum index, aka the number of referenda started so far."
+                ]
+              },
+              {
+                "name": "LowestUnbaked",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The lowest referendum index representing an unbaked referendum. Equal to",
+                  " `ReferendumCount` if there isn't a unbaked referendum."
+                ]
+              },
+              {
+                "name": "ReferendumInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ReferendumIndex",
+                    "value": "ReferendumInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information concerning any given referendum.",
+                  "",
+                  " TWOX-NOTE: SAFE as indexes are not under an attacker’s control."
+                ]
+              },
+              {
+                "name": "VotingOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Voting",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " All votes for a particular voter. We store the balance for the number of votes that we",
+                  " have recorded. The second item is the total amount of delegations, that will be added.",
+                  "",
+                  " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway."
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "BlockNumber",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Accounts for which there are locks in action which may be removed at some point in the",
+                  " future. The value is the block number at which the lock expires and may be removed.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "LastTabledWasExternal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the last referendum tabled was submitted externally. False if it was a public",
+                  " proposal."
+                ]
+              },
+              {
+                "name": "NextExternal",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(Hash,VoteThreshold)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The referendum to be tabled whenever it would be valid to table an external proposal.",
+                  " This happens when a referendum needs to be tabled and one of two conditions are met:",
+                  " - `LastTabledWasExternal` is `false`; or",
+                  " - `PublicProps` is empty."
+                ]
+              },
+              {
+                "name": "Blacklist",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "(BlockNumber,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A record of who vetoed what. Maps proposal hash to a possible existent block number",
+                  " (until when it may not be resubmitted) and who vetoed it."
+                ]
+              },
+              {
+                "name": "Cancellations",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Record of all proposals that have been subject to emergency cancellation."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " New networks start with last version."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Propose a sensitive action to be taken.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the sender must",
+                " have funds to cover the deposit.",
+                "",
+                " - `proposal_hash`: The hash of the proposal preimage.",
+                " - `value`: The amount of deposit (must be at least `MinimumDeposit`).",
+                "",
+                " Emits `Proposed`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                " - Db reads: `PublicPropCount`, `PublicProps`",
+                " - Db writes: `PublicPropCount`, `PublicProps`, `DepositOf`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "second",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Compact<PropIndex>"
+                },
+                {
+                  "name": "seconds_upper_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Signals agreement with a particular proposal.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the sender",
+                " must have funds to cover the deposit, equal to the original deposit.",
+                "",
+                " - `proposal`: The index of the proposal to second.",
+                " - `seconds_upper_bound`: an upper bound on the current number of seconds on this",
+                "   proposal. Extrinsic is weighted according to this value with no refund.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(S)` where S is the number of seconds a proposal already has.",
+                " - Db reads: `DepositOf`",
+                " - Db writes: `DepositOf`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                },
+                {
+                  "name": "vote",
+                  "type": "AccountVote"
+                }
+              ],
+              "docs": [
+                " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;",
+                " otherwise it is a vote to keep the status quo.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `ref_index`: The index of the referendum to vote for.",
+                " - `vote`: The vote configuration.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R)` where R is the number of referendums the voter has voted on.",
+                "   weight is charged as if maximum votes.",
+                " - Db reads: `ReferendumInfoOf`, `VotingOf`, `balances locks`",
+                " - Db writes: `ReferendumInfoOf`, `VotingOf`, `balances locks`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "emergency_cancel",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
+                " referendum.",
+                "",
+                " The dispatch origin of this call must be `CancellationOrigin`.",
+                "",
+                " -`ref_index`: The index of the referendum to cancel.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`.",
+                " - Db reads: `ReferendumInfoOf`, `Cancellations`",
+                " - Db writes: `ReferendumInfoOf`, `Cancellations`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "external_propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a referendum to be tabled once it is legal to schedule an external",
+                " referendum.",
+                "",
+                " The dispatch origin of this call must be `ExternalOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " # <weight>",
+                " - Complexity `O(V)` with V number of vetoers in the blacklist of proposal.",
+                "   Decoding vec of length V. Charged as maximum",
+                " - Db reads: `NextExternal`, `Blacklist`",
+                " - Db writes: `NextExternal`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "external_propose_majority",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
+                " an external referendum.",
+                "",
+                " The dispatch of this call must be `ExternalMajorityOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                " - Db write: `NextExternal`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "external_propose_default",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
+                " schedule an external referendum.",
+                "",
+                " The dispatch of this call must be `ExternalDefaultOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                " - Db write: `NextExternal`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "fast_track",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "voting_period",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Schedule the currently externally-proposed majority-carries referendum to be tabled",
+                " immediately. If there is no externally-proposed referendum currently, or if there is one",
+                " but it is not a majority-carries referendum then it fails.",
+                "",
+                " The dispatch of this call must be `FastTrackOrigin`.",
+                "",
+                " - `proposal_hash`: The hash of the current external proposal.",
+                " - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
+                "   `FastTrackVotingPeriod` if too low.",
+                " - `delay`: The number of block after voting has ended in approval and this should be",
+                "   enacted. This doesn't have a minimum amount.",
+                "",
+                " Emits `Started`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                " - Db reads: `NextExternal`, `ReferendumCount`",
+                " - Db writes: `NextExternal`, `ReferendumCount`, `ReferendumInfoOf`",
+                " - Base Weight: 30.1 µs",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "veto_external",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Veto and blacklist the external proposal hash.",
+                "",
+                " The dispatch origin of this call must be `VetoOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.",
+                "",
+                " Emits `Vetoed`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(V + log(V))` where V is number of `existing vetoers`",
+                "   Performs a binary search on `existing_vetoers` which should not be very large.",
+                " - Db reads: `NextExternal`, `Blacklist`",
+                " - Db writes: `NextExternal`, `Blacklist`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_referendum",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Remove a referendum.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " - `ref_index`: The index of the referendum to cancel.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`.",
+                " - Db writes: `ReferendumInfoOf`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_queued",
+              "args": [
+                {
+                  "name": "which",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a proposal queued for enactment.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " - `which`: The index of the referendum to cancel.",
+                "",
+                " # <weight>",
+                " - `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`.",
+                " - Db reads: `scheduler lookup`, scheduler agenda`",
+                " - Db writes: `scheduler lookup`, scheduler agenda`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "delegate",
+              "args": [
+                {
+                  "name": "to",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "conviction",
+                  "type": "Conviction"
+                },
+                {
+                  "name": "balance",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " Delegate the voting power (with some given conviction) of the sending account.",
+                "",
+                " The balance delegated is locked for as long as it's delegated, and thereafter for the",
+                " time appropriate for the conviction's lock period.",
+                "",
+                " The dispatch origin of this call must be _Signed_, and the signing account must either:",
+                "   - be delegating already; or",
+                "   - have no voting activity (if there is, then it will need to be removed/consolidated",
+                "     through `reap_vote` or `unvote`).",
+                "",
+                " - `to`: The account whose voting the `target` account's voting power will follow.",
+                " - `conviction`: The conviction that will be attached to the delegated votes. When the",
+                "   account is undelegated, the funds will be locked for the corresponding period.",
+                " - `balance`: The amount of the account's balance to be used in delegating. This must",
+                "   not be more than the account's current balance.",
+                "",
+                " Emits `Delegated`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R)` where R is the number of referendums the voter delegating to has",
+                "   voted on. Weight is charged as if maximum votes.",
+                " - Db reads: 3*`VotingOf`, `origin account locks`",
+                " - Db writes: 3*`VotingOf`, `origin account locks`",
+                " - Db reads per votes: `ReferendumInfoOf`",
+                " - Db writes per votes: `ReferendumInfoOf`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "undelegate",
+              "args": [],
+              "docs": [
+                " Undelegate the voting power of the sending account.",
+                "",
+                " Tokens may be unlocked following once an amount of time consistent with the lock period",
+                " of the conviction with which the delegation was issued.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the signing account must be",
+                " currently delegating.",
+                "",
+                " Emits `Undelegated`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R)` where R is the number of referendums the voter delegating to has",
+                "   voted on. Weight is charged as if maximum votes.",
+                " - Db reads: 2*`VotingOf`",
+                " - Db writes: 2*`VotingOf`",
+                " - Db reads per votes: `ReferendumInfoOf`",
+                " - Db writes per votes: `ReferendumInfoOf`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_public_proposals",
+              "args": [],
+              "docs": [
+                " Clears all public proposals.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - Db writes: `PublicProps`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "note_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This doesn't require the proposal to be",
+                " in the dispatch queue but does require a deposit, returned once enacted.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `encoded_proposal`: The preimage of a proposal.",
+                "",
+                " Emits `PreimageNoted`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).",
+                " - Db reads: `Preimages`",
+                " - Db writes: `Preimages`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "note_preimage_operational",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Same as `note_preimage` but origin is `OperationalPreimageOrigin`."
+              ]
+            },
+            {
+              "name": "note_imminent_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This requires the proposal to be",
+                " in the dispatch queue. No deposit is needed. When this call is successful, i.e.",
+                " the preimage has not been uploaded before and matches some imminent proposal,",
+                " no fee is paid.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `encoded_proposal`: The preimage of a proposal.",
+                "",
+                " Emits `PreimageNoted`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).",
+                " - Db reads: `Preimages`",
+                " - Db writes: `Preimages`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "note_imminent_preimage_operational",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`."
+              ]
+            },
+            {
+              "name": "reap_preimage",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "proposal_len_upper_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Remove an expired proposal preimage and collect the deposit.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `proposal_hash`: The preimage hash of a proposal.",
+                " - `proposal_length_upper_bound`: an upper bound on length of the proposal.",
+                "   Extrinsic is weighted according to this value with no refund.",
+                "",
+                " This will only work after `VotingPeriod` blocks from the time that the preimage was",
+                " noted, if it's the same account doing it. If it's a different account, then it'll only",
+                " work an additional `EnactmentPeriod` later.",
+                "",
+                " Emits `PreimageReaped`.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(D)` where D is length of proposal.",
+                " - Db reads: `Preimages`, provider account data",
+                " - Db writes: `Preimages` provider account data",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unlock",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Unlock tokens that have an expired lock.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `target`: The account to remove the lock on.",
+                "",
+                " # <weight>",
+                " - Complexity `O(R)` with R number of vote of target.",
+                " - Db reads: `VotingOf`, `balances locks`, `target account`",
+                " - Db writes: `VotingOf`, `balances locks`, `target account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_vote",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Remove a vote for a referendum.",
+                "",
+                " If:",
+                " - the referendum was cancelled, or",
+                " - the referendum is ongoing, or",
+                " - the referendum has ended such that",
+                "   - the vote of the account was in opposition to the result; or",
+                "   - there was no conviction to the account's vote; or",
+                "   - the account made a split vote",
+                " ...then the vote is removed cleanly and a following call to `unlock` may result in more",
+                " funds being available.",
+                "",
+                " If, however, the referendum has ended and:",
+                " - it finished corresponding to the vote of the account, and",
+                " - the account made a standard vote with conviction, and",
+                " - the lock period of the conviction is not over",
+                " ...then the lock will be aggregated into the overall account's lock, which may involve",
+                " *overlocking* (where the two locks are combined into a single lock that is the maximum",
+                " of both the amount locked and the time is it locked for).",
+                "",
+                " The dispatch origin of this call must be _Signed_, and the signer must have a vote",
+                " registered for referendum `index`.",
+                "",
+                " - `index`: The index of referendum of the vote to be removed.",
+                "",
+                " # <weight>",
+                " - `O(R + log R)` where R is the number of referenda that `target` has voted on.",
+                "   Weight is calculated for the maximum number of vote.",
+                " - Db reads: `ReferendumInfoOf`, `VotingOf`",
+                " - Db writes: `ReferendumInfoOf`, `VotingOf`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_other_vote",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Remove a vote for a referendum.",
+                "",
+                " If the `target` is equal to the signer, then this function is exactly equivalent to",
+                " `remove_vote`. If not equal to the signer, then the vote must have expired,",
+                " either because the referendum was cancelled, because the voter lost the referendum or",
+                " because the conviction period is over.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `target`: The account of the vote to be removed; this account must have voted for",
+                "   referendum `index`.",
+                " - `index`: The index of referendum of the vote to be removed.",
+                "",
+                " # <weight>",
+                " - `O(R + log R)` where R is the number of referenda that `target` has voted on.",
+                "   Weight is calculated for the maximum number of vote.",
+                " - Db reads: `ReferendumInfoOf`, `VotingOf`",
+                " - Db writes: `ReferendumInfoOf`, `VotingOf`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "enact_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Enact a proposal from a referendum. For now we just make the weight be the maximum."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "PropIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A motion has been proposed by a public account. [proposal_index, deposit]"
+              ]
+            },
+            {
+              "name": "Tabled",
+              "args": [
+                "PropIndex",
+                "Balance",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A public proposal has been tabled for referendum vote. [proposal_index, deposit, depositors]"
+              ]
+            },
+            {
+              "name": "ExternalTabled",
+              "args": [],
+              "docs": [
+                " An external proposal has been tabled."
+              ]
+            },
+            {
+              "name": "Started",
+              "args": [
+                "ReferendumIndex",
+                "VoteThreshold"
+              ],
+              "docs": [
+                " A referendum has begun. [ref_index, threshold]"
+              ]
+            },
+            {
+              "name": "Passed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been approved by referendum. [ref_index]"
+              ]
+            },
+            {
+              "name": "NotPassed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been rejected by referendum. [ref_index]"
+              ]
+            },
+            {
+              "name": "Cancelled",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A referendum has been cancelled. [ref_index]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "ReferendumIndex",
+                "bool"
+              ],
+              "docs": [
+                " A proposal has been enacted. [ref_index, is_ok]"
+              ]
+            },
+            {
+              "name": "Delegated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An account has delegated their vote to another account. [who, target]"
+              ]
+            },
+            {
+              "name": "Undelegated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An [account] has cancelled a previous delegation operation."
+              ]
+            },
+            {
+              "name": "Vetoed",
+              "args": [
+                "AccountId",
+                "Hash",
+                "BlockNumber"
+              ],
+              "docs": [
+                " An external proposal has been vetoed. [who, proposal_hash, until]"
+              ]
+            },
+            {
+              "name": "PreimageNoted",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal's preimage was noted, and the deposit taken. [proposal_hash, who, deposit]"
+              ]
+            },
+            {
+              "name": "PreimageUsed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal preimage was removed and used (the deposit was returned).",
+                " [proposal_hash, provider, deposit]"
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was invalid. [proposal_hash, ref_index]"
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was missing. [proposal_hash, ref_index]"
+              ]
+            },
+            {
+              "name": "PreimageReaped",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A registered preimage was removed and the deposit collected by the reaper.",
+                " [proposal_hash, provider, deposit, reaper]"
+              ]
+            },
+            {
+              "name": "Unlocked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An [account] has been unlocked successfully."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "EnactmentPeriod",
+              "type": "BlockNumber",
+              "value": "0x002f0d00",
+              "docs": [
+                " The minimum period of locking and the period between a proposal being approved and enacted.",
+                "",
+                " It should generally be a little more than the unstake period to ensure that",
+                " voting stakers have an opportunity to remove themselves from the system in the case where",
+                " they are on the losing side of a vote."
+              ]
+            },
+            {
+              "name": "LaunchPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) new public referenda are launched."
+              ]
+            },
+            {
+              "name": "VotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) to check for new votes."
+              ]
+            },
+            {
+              "name": "MinimumDeposit",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount to be used as a deposit for a public referendum proposal."
+              ]
+            },
+            {
+              "name": "FastTrackVotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x80510100",
+              "docs": [
+                " Minimum voting period allowed for an emergency referendum."
+              ]
+            },
+            {
+              "name": "CooloffPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " Period in blocks where an external proposal may not be re-submitted after being vetoed."
+              ]
+            },
+            {
+              "name": "PreimageByteDeposit",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount of balance that must be deposited per byte of preimage stored."
+              ]
+            },
+            {
+              "name": "MaxVotes",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of votes for an account."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "ValueLow",
+              "docs": [
+                " Value too low"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal does not exist"
+              ]
+            },
+            {
+              "name": "BadIndex",
+              "docs": [
+                " Unknown index"
+              ]
+            },
+            {
+              "name": "AlreadyCanceled",
+              "docs": [
+                " Cannot cancel the same proposal twice"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Proposal already made"
+              ]
+            },
+            {
+              "name": "ProposalBlacklisted",
+              "docs": [
+                " Proposal still blacklisted"
+              ]
+            },
+            {
+              "name": "NotSimpleMajority",
+              "docs": [
+                " Next external proposal not simple majority"
+              ]
+            },
+            {
+              "name": "InvalidHash",
+              "docs": [
+                " Invalid hash"
+              ]
+            },
+            {
+              "name": "NoProposal",
+              "docs": [
+                " No external proposal"
+              ]
+            },
+            {
+              "name": "AlreadyVetoed",
+              "docs": [
+                " Identity may not veto a proposal twice"
+              ]
+            },
+            {
+              "name": "NotDelegated",
+              "docs": [
+                " Not delegated"
+              ]
+            },
+            {
+              "name": "DuplicatePreimage",
+              "docs": [
+                " Preimage already noted"
+              ]
+            },
+            {
+              "name": "NotImminent",
+              "docs": [
+                " Not imminent"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " Too early"
+              ]
+            },
+            {
+              "name": "Imminent",
+              "docs": [
+                " Imminent"
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "docs": [
+                " Preimage not found"
+              ]
+            },
+            {
+              "name": "ReferendumInvalid",
+              "docs": [
+                " Vote given for invalid referendum"
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "docs": [
+                " Invalid preimage"
+              ]
+            },
+            {
+              "name": "NoneWaiting",
+              "docs": [
+                " No proposals waiting"
+              ]
+            },
+            {
+              "name": "NotLocked",
+              "docs": [
+                " The target account does not have a lock."
+              ]
+            },
+            {
+              "name": "NotExpired",
+              "docs": [
+                " The lock on the account to be unlocked has not yet expired."
+              ]
+            },
+            {
+              "name": "NotVoter",
+              "docs": [
+                " The given account did not vote on the referendum."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " The actor has no permission to conduct the action."
+              ]
+            },
+            {
+              "name": "AlreadyDelegating",
+              "docs": [
+                " The account is already delegating."
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " An unexpected integer overflow occurred."
+              ]
+            },
+            {
+              "name": "Underflow",
+              "docs": [
+                " An unexpected integer underflow occurred."
+              ]
+            },
+            {
+              "name": "InsufficientFunds",
+              "docs": [
+                " Too high a balance was provided that the account cannot afford."
+              ]
+            },
+            {
+              "name": "NotDelegating",
+              "docs": [
+                " The account is not currently delegating."
+              ]
+            },
+            {
+              "name": "VotesExist",
+              "docs": [
+                " The account currently has votes attached to it and the operation cannot succeed until",
+                " these are removed, either through `unvote` or `reap_vote`."
+              ]
+            },
+            {
+              "name": "InstantNotAllowed",
+              "docs": [
+                " The instant referendum origin is currently disallowed."
+              ]
+            },
+            {
+              "name": "Nonsense",
+              "docs": [
+                " Delegation to oneself makes no sense."
+              ]
+            },
+            {
+              "name": "WrongUpperBound",
+              "docs": [
+                " Invalid upper bound."
+              ]
+            },
+            {
+              "name": "MaxVotesReached",
+              "docs": [
+                " Maximum number of votes reached."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Council",
+          "storage": {
+            "prefix": "Instance1Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The member who provides the default vote for any other members that do not vote before",
+                  " the timeout. If None, then no member has that privilege."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "prime",
+                  "type": "Option<AccountId>"
+                },
+                {
+                  "name": "old_count",
+                  "type": "MemberCount"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership.",
+                "",
+                " - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
+                " - `prime`: The prime member whose vote sets the default.",
+                " - `old_count`: The upper bound for the previous number of members in storage.",
+                "                Used for weight estimation.",
+                "",
+                " Requires root origin.",
+                "",
+                " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
+                "       the weight estimations rely on it to estimate dispatchable weight.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(MP + N)` where:",
+                "   - `M` old-members-count (code- and governance-bounded)",
+                "   - `N` new-members-count (code- and governance-bounded)",
+                "   - `P` proposals-count (code-bounded)",
+                " - DB:",
+                "   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
+                "   - 1 storage read (codec `O(P)`) for reading the proposals",
+                "   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
+                "   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
+                " - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Add a new proposal to either be voted on or executed directly.",
+                "",
+                " Requires the sender to be member.",
+                "",
+                " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
+                " or put up for voting.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1)` or `O(B + M + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - branching is influenced by `threshold` where:",
+                "     - `P1` is proposal execution complexity (`threshold < 2`)",
+                "     - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
+                " - DB:",
+                "   - 1 storage read `is_member` (codec `O(M)`)",
+                "   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
+                "   - DB accesses influenced by `threshold`:",
+                "     - EITHER storage accesses done by `proposal` (`threshold < 2`)",
+                "     - OR proposal insertion (`threshold <= 2`)",
+                "       - 1 storage mutation `Proposals` (codec `O(P2)`)",
+                "       - 1 storage mutation `ProposalCount` (codec `O(1)`)",
+                "       - 1 storage write `ProposalOf` (codec `O(B)`)",
+                "       - 1 storage write `Voting` (codec `O(M)`)",
+                "   - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Add an aye or nay vote for the sender to the given proposal.",
+                "",
+                " Requires the sender to be a member.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M)` where `M` is members-count (code- and governance-bounded)",
+                " - DB:",
+                "   - 1 storage read `Members` (codec `O(M)`)",
+                "   - 1 storage mutation `Voting` (codec `O(M)`)",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "proposal_weight_bound",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Close a vote that is either approved, disapproved or whose voting period has ended.",
+                "",
+                " May be called by any signed account in order to finish voting and close the proposal.",
+                "",
+                " If called before the end of the voting period it will only close the vote if it is",
+                " has enough votes to be approved or disapproved.",
+                "",
+                " If called after the end of the voting period abstentions are counted as rejections",
+                " unless there is a prime member set and the prime member cast an approval.",
+                "",
+                " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
+                " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
+                "                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1 + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - `P1` is the complexity of `proposal` preimage.",
+                "   - `P2` is proposal-count (code-bounded)",
+                " - DB:",
+                "  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
+                "  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
+                "  - any mutations done while executing `proposal` (`P1`)",
+                " - up to 3 events",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "disapprove_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
+                "",
+                " Must be called by the Root origin.",
+                "",
+                " Parameters:",
+                " * `proposal_hash`: The hash of the proposal that should be disapproved.",
+                "",
+                " # <weight>",
+                " Complexity: O(P) where P is the number of max proposals",
+                " DB Weight:",
+                " * Reads: Proposals",
+                " * Writes: Voting, Proposals, ProposalOf",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`).",
+                " [account, proposal_index, proposal_hash, threshold]"
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`).",
+                " [account, proposal_hash, voted, yes, no]"
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold.",
+                " [proposal_hash]"
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold.",
+                " [proposal_hash]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A motion was executed; result will be `Ok` if it returned without error.",
+                " [proposal_hash, result]"
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A single member did some action; result will be `Ok` if it returned without error.",
+                " [proposal_hash, result]"
+              ]
+            },
+            {
+              "name": "Closed",
+              "args": [
+                "Hash",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A proposal was closed because its threshold was reached or after its duration was up.",
+                " [proposal_hash, yes, no]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " The close call was made too early, before the end of the voting."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " There can only be a maximum of `MaxProposals` active proposals."
+              ]
+            },
+            {
+              "name": "WrongProposalWeight",
+              "docs": [
+                " The given weight bound for the proposal was too low."
+              ]
+            },
+            {
+              "name": "WrongProposalLength",
+              "docs": [
+                " The given length bound for the proposal was too low."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "TechnicalCommittee",
+          "storage": {
+            "prefix": "Instance2Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The member who provides the default vote for any other members that do not vote before",
+                  " the timeout. If None, then no member has that privilege."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "prime",
+                  "type": "Option<AccountId>"
+                },
+                {
+                  "name": "old_count",
+                  "type": "MemberCount"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership.",
+                "",
+                " - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
+                " - `prime`: The prime member whose vote sets the default.",
+                " - `old_count`: The upper bound for the previous number of members in storage.",
+                "                Used for weight estimation.",
+                "",
+                " Requires root origin.",
+                "",
+                " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
+                "       the weight estimations rely on it to estimate dispatchable weight.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(MP + N)` where:",
+                "   - `M` old-members-count (code- and governance-bounded)",
+                "   - `N` new-members-count (code- and governance-bounded)",
+                "   - `P` proposals-count (code-bounded)",
+                " - DB:",
+                "   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
+                "   - 1 storage read (codec `O(P)`) for reading the proposals",
+                "   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
+                "   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
+                " - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Add a new proposal to either be voted on or executed directly.",
+                "",
+                " Requires the sender to be member.",
+                "",
+                " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
+                " or put up for voting.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1)` or `O(B + M + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - branching is influenced by `threshold` where:",
+                "     - `P1` is proposal execution complexity (`threshold < 2`)",
+                "     - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
+                " - DB:",
+                "   - 1 storage read `is_member` (codec `O(M)`)",
+                "   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
+                "   - DB accesses influenced by `threshold`:",
+                "     - EITHER storage accesses done by `proposal` (`threshold < 2`)",
+                "     - OR proposal insertion (`threshold <= 2`)",
+                "       - 1 storage mutation `Proposals` (codec `O(P2)`)",
+                "       - 1 storage mutation `ProposalCount` (codec `O(1)`)",
+                "       - 1 storage write `ProposalOf` (codec `O(B)`)",
+                "       - 1 storage write `Voting` (codec `O(M)`)",
+                "   - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Add an aye or nay vote for the sender to the given proposal.",
+                "",
+                " Requires the sender to be a member.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M)` where `M` is members-count (code- and governance-bounded)",
+                " - DB:",
+                "   - 1 storage read `Members` (codec `O(M)`)",
+                "   - 1 storage mutation `Voting` (codec `O(M)`)",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "proposal_weight_bound",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Close a vote that is either approved, disapproved or whose voting period has ended.",
+                "",
+                " May be called by any signed account in order to finish voting and close the proposal.",
+                "",
+                " If called before the end of the voting period it will only close the vote if it is",
+                " has enough votes to be approved or disapproved.",
+                "",
+                " If called after the end of the voting period abstentions are counted as rejections",
+                " unless there is a prime member set and the prime member cast an approval.",
+                "",
+                " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
+                " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
+                "                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1 + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - `P1` is the complexity of `proposal` preimage.",
+                "   - `P2` is proposal-count (code-bounded)",
+                " - DB:",
+                "  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
+                "  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
+                "  - any mutations done while executing `proposal` (`P1`)",
+                " - up to 3 events",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "disapprove_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
+                "",
+                " Must be called by the Root origin.",
+                "",
+                " Parameters:",
+                " * `proposal_hash`: The hash of the proposal that should be disapproved.",
+                "",
+                " # <weight>",
+                " Complexity: O(P) where P is the number of max proposals",
+                " DB Weight:",
+                " * Reads: Proposals",
+                " * Writes: Voting, Proposals, ProposalOf",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`).",
+                " [account, proposal_index, proposal_hash, threshold]"
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`).",
+                " [account, proposal_hash, voted, yes, no]"
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold.",
+                " [proposal_hash]"
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold.",
+                " [proposal_hash]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A motion was executed; result will be `Ok` if it returned without error.",
+                " [proposal_hash, result]"
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A single member did some action; result will be `Ok` if it returned without error.",
+                " [proposal_hash, result]"
+              ]
+            },
+            {
+              "name": "Closed",
+              "args": [
+                "Hash",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A proposal was closed because its threshold was reached or after its duration was up.",
+                " [proposal_hash, yes, no]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " The close call was made too early, before the end of the voting."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " There can only be a maximum of `MaxProposals` active proposals."
+              ]
+            },
+            {
+              "name": "WrongProposalWeight",
+              "docs": [
+                " The given weight bound for the proposal was too low."
+              ]
+            },
+            {
+              "name": "WrongProposalLength",
+              "docs": [
+                " The given length bound for the proposal was too low."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Elections",
+          "storage": {
+            "prefix": "PhragmenElection",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current elected membership. Sorted based on account id."
+                ]
+              },
+              {
+                "name": "RunnersUp",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current runners_up. Sorted based on low to high merit (worse to best runner)."
+                ]
+              },
+              {
+                "name": "ElectionRounds",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The total number of vote rounds that have happened, excluding the upcoming one."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " Votes and locked stake of a particular voter.",
+                  "",
+                  " TWOX-NOTE: SAFE as `AccountId` is a crypto hash"
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The present candidate list. Sorted based on account-id. A current member or runner-up",
+                  " can never enter this vector and is always implicitly assumed to be a candidate."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "votes",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Vote for a set of candidates for the upcoming round of election. This can be called to",
+                " set the initial votes, or update already existing votes.",
+                "",
+                " Upon initial voting, `value` units of `who`'s balance is locked and a bond amount is",
+                " reserved.",
+                "",
+                " The `votes` should:",
+                "   - not be empty.",
+                "   - be less than the number of possible candidates. Note that all current members and",
+                "     runners-up are also automatically candidates for the next round.",
+                "",
+                " It is the responsibility of the caller to not place all of their balance into the lock",
+                " and keep some for further transactions.",
+                "",
+                " # <weight>",
+                " Base weight: 47.93 µs",
+                " State reads:",
+                " \t- Candidates.len() + Members.len() + RunnersUp.len()",
+                " \t- Voting (is_voter)",
+                " \t- [AccountBalance(who) (unreserve + total_balance)]",
+                " State writes:",
+                " \t- Voting",
+                " \t- Lock",
+                " \t- [AccountBalance(who) (unreserve -- only when creating a new voter)]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_voter",
+              "args": [],
+              "docs": [
+                " Remove `origin` as a voter. This removes the lock and returns the bond.",
+                "",
+                " # <weight>",
+                " Base weight: 36.8 µs",
+                " All state access is from do_remove_voter.",
+                " State reads:",
+                " \t- Voting",
+                " \t- [AccountData(who)]",
+                " State writes:",
+                " \t- Voting",
+                " \t- Locks",
+                " \t- [AccountData(who)]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "report_defunct_voter",
+              "args": [
+                {
+                  "name": "defunct",
+                  "type": "DefunctVoter"
+                }
+              ],
+              "docs": [
+                " Report `target` for being an defunct voter. In case of a valid report, the reporter is",
+                " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and",
+                " their bond is slashed.",
+                "",
+                " A defunct voter is defined to be:",
+                "   - a voter whose current submitted votes are all invalid. i.e. all of them are no",
+                "     longer a candidate nor an active member or a runner-up.",
+                "",
+                "",
+                " The origin must provide the number of current candidates and votes of the reported target",
+                " for the purpose of accurate weight calculation.",
+                "",
+                " # <weight>",
+                " No Base weight based on min square analysis.",
+                " Complexity of candidate_count: 1.755 µs",
+                " Complexity of vote_count: 18.51 µs",
+                " State reads:",
+                "  \t- Voting(reporter)",
+                "  \t- Candidate.len()",
+                "  \t- Voting(Target)",
+                "  \t- Candidates, Members, RunnersUp (is_defunct_voter)",
+                " State writes:",
+                " \t- Lock(reporter || target)",
+                " \t- [AccountBalance(reporter)] + AccountBalance(target)",
+                " \t- Voting(reporter || target)",
+                " Note: the db access is worse with respect to db, which is when the report is correct.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "submit_candidacy",
+              "args": [
+                {
+                  "name": "candidate_count",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Submit oneself for candidacy.",
+                "",
+                " A candidate will either:",
+                "   - Lose at the end of the term and forfeit their deposit.",
+                "   - Win and become a member. Members will eventually get their stash back.",
+                "   - Become a runner-up. Runners-ups are reserved members in case one gets forcefully",
+                "     removed.",
+                "",
+                " # <weight>",
+                " Base weight = 33.33 µs",
+                " Complexity of candidate_count: 0.375 µs",
+                " State reads:",
+                " \t- Candidates.len()",
+                " \t- Candidates",
+                " \t- Members",
+                " \t- RunnersUp",
+                " \t- [AccountBalance(who)]",
+                " State writes:",
+                " \t- [AccountBalance(who)]",
+                " \t- Candidates",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "renounce_candidacy",
+              "args": [
+                {
+                  "name": "renouncing",
+                  "type": "Renouncing"
+                }
+              ],
+              "docs": [
+                " Renounce one's intention to be a candidate for the next election round. 3 potential",
+                " outcomes exist:",
+                " - `origin` is a candidate and not elected in any set. In this case, the bond is",
+                "   unreserved, returned and origin is removed as a candidate.",
+                " - `origin` is a current runner-up. In this case, the bond is unreserved, returned and",
+                "   origin is removed as a runner-up.",
+                " - `origin` is a current member. In this case, the bond is unreserved and origin is",
+                "   removed as a member, consequently not being a candidate for the next round anymore.",
+                "   Similar to [`remove_voter`], if replacement runners exists, they are immediately used.",
+                " <weight>",
+                " If a candidate is renouncing:",
+                " \tBase weight: 17.28 µs",
+                " \tComplexity of candidate_count: 0.235 µs",
+                " \tState reads:",
+                " \t\t- Candidates",
+                " \t\t- [AccountBalance(who) (unreserve)]",
+                " \tState writes:",
+                " \t\t- Candidates",
+                " \t\t- [AccountBalance(who) (unreserve)]",
+                " If member is renouncing:",
+                " \tBase weight: 46.25 µs",
+                " \tState reads:",
+                " \t\t- Members, RunnersUp (remove_and_replace_member),",
+                " \t\t- [AccountData(who) (unreserve)]",
+                " \tState writes:",
+                " \t\t- Members, RunnersUp (remove_and_replace_member),",
+                " \t\t- [AccountData(who) (unreserve)]",
+                " If runner is renouncing:",
+                " \tBase weight: 46.25 µs",
+                " \tState reads:",
+                " \t\t- RunnersUp (remove_and_replace_member),",
+                " \t\t- [AccountData(who) (unreserve)]",
+                " \tState writes:",
+                " \t\t- RunnersUp (remove_and_replace_member),",
+                " \t\t- [AccountData(who) (unreserve)]",
+                "",
+                " Weight note: The call into changeMembers need to be accounted for.",
+                " </weight>"
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "has_replacement",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Remove a particular member from the set. This is effective immediately and the bond of",
+                " the outgoing member is slashed.",
+                "",
+                " If a runner-up is available, then the best runner-up will be removed and replaces the",
+                " outgoing member. Otherwise, a new phragmen election is started.",
+                "",
+                " Note that this does not affect the designated block number of the next election.",
+                "",
+                " # <weight>",
+                " If we have a replacement:",
+                " \t- Base weight: 50.93 µs",
+                " \t- State reads:",
+                " \t\t- RunnersUp.len()",
+                " \t\t- Members, RunnersUp (remove_and_replace_member)",
+                " \t- State writes:",
+                " \t\t- Members, RunnersUp (remove_and_replace_member)",
+                " Else, since this is a root call and will go into phragmen, we assume full block for now.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewTerm",
+              "args": [
+                "Vec<(AccountId,Balance)>"
+              ],
+              "docs": [
+                " A new term with [new_members]. This indicates that enough candidates existed to run the",
+                " election, not that enough have has been elected. The inner value must be examined for",
+                " this purpose. A `NewTerm([])` indicates that some candidates got their bond slashed and",
+                " none were elected, whilst `EmptyTerm` means that no candidates existed to begin with."
+              ]
+            },
+            {
+              "name": "EmptyTerm",
+              "args": [],
+              "docs": [
+                " No (or not enough) candidates existed for this round. This is different from",
+                " `NewTerm([])`. See the description of `NewTerm`."
+              ]
+            },
+            {
+              "name": "MemberKicked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [member] has been removed. This should always be followed by either `NewTerm` ot",
+                " `EmptyTerm`."
+              ]
+            },
+            {
+              "name": "MemberRenounced",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [member] has renounced their candidacy."
+              ]
+            },
+            {
+              "name": "VoterReported",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A voter was reported with the the report being successful or not.",
+                " [voter, reporter, success]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "CandidacyBond",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": []
+            },
+            {
+              "name": "VotingBond",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": []
+            },
+            {
+              "name": "DesiredMembers",
+              "type": "u32",
+              "value": "0x0d000000",
+              "docs": []
+            },
+            {
+              "name": "DesiredRunnersUp",
+              "type": "u32",
+              "value": "0x07000000",
+              "docs": []
+            },
+            {
+              "name": "TermDuration",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": []
+            },
+            {
+              "name": "ModuleId",
+              "type": "LockIdentifier",
+              "value": "0x706872656c656374",
+              "docs": []
+            }
+          ],
+          "errors": [
+            {
+              "name": "UnableToVote",
+              "docs": [
+                " Cannot vote when no candidates or members exist."
+              ]
+            },
+            {
+              "name": "NoVotes",
+              "docs": [
+                " Must vote for at least one candidate."
+              ]
+            },
+            {
+              "name": "TooManyVotes",
+              "docs": [
+                " Cannot vote more than candidates."
+              ]
+            },
+            {
+              "name": "MaximumVotesExceeded",
+              "docs": [
+                " Cannot vote more than maximum allowed."
+              ]
+            },
+            {
+              "name": "LowBalance",
+              "docs": [
+                " Cannot vote with stake less than minimum balance."
+              ]
+            },
+            {
+              "name": "UnableToPayBond",
+              "docs": [
+                " Voter can not pay voting bond."
+              ]
+            },
+            {
+              "name": "MustBeVoter",
+              "docs": [
+                " Must be a voter."
+              ]
+            },
+            {
+              "name": "ReportSelf",
+              "docs": [
+                " Cannot report self."
+              ]
+            },
+            {
+              "name": "DuplicatedCandidate",
+              "docs": [
+                " Duplicated candidate submission."
+              ]
+            },
+            {
+              "name": "MemberSubmit",
+              "docs": [
+                " Member cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "RunnerSubmit",
+              "docs": [
+                " Runner cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "InsufficientCandidateFunds",
+              "docs": [
+                " Candidate does not have enough funds."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " Not a member."
+              ]
+            },
+            {
+              "name": "InvalidCandidateCount",
+              "docs": [
+                " The provided count of number of candidates is incorrect."
+              ]
+            },
+            {
+              "name": "InvalidVoteCount",
+              "docs": [
+                " The provided count of number of votes is incorrect."
+              ]
+            },
+            {
+              "name": "InvalidRenouncing",
+              "docs": [
+                " The renouncing origin presented a wrong `Renouncing` parameter."
+              ]
+            },
+            {
+              "name": "InvalidReplacement",
+              "docs": [
+                " Prediction regarding replacement after member removal is wrong."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "TechnicalMembership",
+          "storage": {
+            "prefix": "Instance1Membership",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current membership, stored as an ordered Vec."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current prime member, if one exists."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a member `who` to the set.",
+                "",
+                " May only be called from `T::AddOrigin`."
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Remove a member `who` from the set.",
+                "",
+                " May only be called from `T::RemoveOrigin`."
+              ]
+            },
+            {
+              "name": "swap_member",
+              "args": [
+                {
+                  "name": "remove",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "add",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out one member `remove` for another `add`.",
+                "",
+                " May only be called from `T::SwapOrigin`.",
+                "",
+                " Prime membership is *not* passed from `remove` to `add`, if extant."
+              ]
+            },
+            {
+              "name": "reset_members",
+              "args": [
+                {
+                  "name": "members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Change the membership to a new set, disregarding the existing membership. Be nice and",
+                " pass `members` pre-sorted.",
+                "",
+                " May only be called from `T::ResetOrigin`."
+              ]
+            },
+            {
+              "name": "change_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out the sending member for some other key `new`.",
+                "",
+                " May only be called from `Signed` origin of a current member.",
+                "",
+                " Prime membership is passed from the origin account to `new`, if extant."
+              ]
+            },
+            {
+              "name": "set_prime",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Set the prime member. Must be a current member.",
+                "",
+                " May only be called from `T::PrimeOrigin`."
+              ]
+            },
+            {
+              "name": "clear_prime",
+              "args": [],
+              "docs": [
+                " Remove the prime member if it exists.",
+                "",
+                " May only be called from `T::PrimeOrigin`."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "MemberAdded",
+              "args": [],
+              "docs": [
+                " The given member was added; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MemberRemoved",
+              "args": [],
+              "docs": [
+                " The given member was removed; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersSwapped",
+              "args": [],
+              "docs": [
+                " Two members were swapped; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersReset",
+              "args": [],
+              "docs": [
+                " The membership was reset; see the transaction for who the new set is."
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [],
+              "docs": [
+                " One of the members' keys changed."
+              ]
+            },
+            {
+              "name": "Dummy",
+              "args": [
+                "PhantomData"
+              ],
+              "docs": [
+                " Phantom member, never used."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "FinalityTracker",
+          "storage": null,
+          "calls": [
+            {
+              "name": "final_hint",
+              "args": [
+                {
+                  "name": "hint",
+                  "type": "Compact<BlockNumber>"
+                }
+              ],
+              "docs": [
+                " Hint that the author of this block thinks the best finalized",
+                " block is the given number."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "WindowSize",
+              "type": "BlockNumber",
+              "value": "0x65000000",
+              "docs": [
+                " The number of recent samples to keep from this chain. Default is 101."
+              ]
+            },
+            {
+              "name": "ReportLatency",
+              "type": "BlockNumber",
+              "value": "0xe8030000",
+              "docs": [
+                " The delay after which point things become suspicious. Default is 1000."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "AlreadyUpdated",
+              "docs": [
+                " Final hint must be updated only once in the block"
+              ]
+            },
+            {
+              "name": "BadHint",
+              "docs": [
+                " Finalized height above block number"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Grandpa",
+          "storage": {
+            "prefix": "GrandpaFinality",
+            "items": [
+              {
+                "name": "State",
+                "modifier": "Default",
+                "type": {
+                  "plain": "StoredState"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " State of the current authority set."
+                ]
+              },
+              {
+                "name": "PendingChange",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "StoredPendingChange"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending change: (signaled at, scheduled change)."
+                ]
+              },
+              {
+                "name": "NextForced",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " next block number where we can force a change."
+                ]
+              },
+              {
+                "name": "Stalled",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(BlockNumber,BlockNumber)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " `true` if we are currently stalled."
+                ]
+              },
+              {
+                "name": "CurrentSetId",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SetId"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The number of changes (both in terms of keys and underlying economic responsibilities)",
+                  " in the \"set\" of Grandpa validators from genesis."
+                ]
+              },
+              {
+                "name": "SetIdSession",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "SetId",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from grandpa set ID to the index of the *most recent* session for which its",
+                  " members were responsible.",
+                  "",
+                  " TWOX-NOTE: `SetId` is not under user control."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_equivocation",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "GrandpaEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report voter equivocation/misbehavior. This method will verify the",
+                " equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence",
+                " will be reported."
+              ]
+            },
+            {
+              "name": "report_equivocation_unsigned",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "GrandpaEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report voter equivocation/misbehavior. This method will verify the",
+                " equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence",
+                " will be reported.",
+                "",
+                " This extrinsic must be called unsigned and it is expected that only",
+                " block authors will call it (validated in `ValidateUnsigned`), as such",
+                " if the block author is defined it will be defined as the equivocation",
+                " reporter."
+              ]
+            },
+            {
+              "name": "note_stalled",
+              "args": [
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "best_finalized_block_number",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Note that the current authority set of the GRANDPA finality gadget has",
+                " stalled. This will trigger a forced authority set change at the beginning",
+                " of the next session, to be enacted `delay` blocks after that. The delay",
+                " should be high enough to safely assume that the block signalling the",
+                " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters",
+                " will start the new authority set using the given finalized block as base.",
+                " Only callable by root."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewAuthorities",
+              "args": [
+                "AuthorityList"
+              ],
+              "docs": [
+                " New authority set has been applied. [authority_set]"
+              ]
+            },
+            {
+              "name": "Paused",
+              "args": [],
+              "docs": [
+                " Current authority set has been paused."
+              ]
+            },
+            {
+              "name": "Resumed",
+              "args": [],
+              "docs": [
+                " Current authority set has been resumed."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "PauseFailed",
+              "docs": [
+                " Attempt to signal GRANDPA pause when the authority set isn't live",
+                " (either paused or already pending pause)."
+              ]
+            },
+            {
+              "name": "ResumeFailed",
+              "docs": [
+                " Attempt to signal GRANDPA resume when the authority set isn't paused",
+                " (either live or already pending resume)."
+              ]
+            },
+            {
+              "name": "ChangePending",
+              "docs": [
+                " Attempt to signal GRANDPA change with one already pending."
+              ]
+            },
+            {
+              "name": "TooSoon",
+              "docs": [
+                " Cannot signal forced change so soon after last."
+              ]
+            },
+            {
+              "name": "InvalidKeyOwnershipProof",
+              "docs": [
+                " A key ownership proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "InvalidEquivocationProof",
+              "docs": [
+                " An equivocation proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "DuplicateOffenceReport",
+              "docs": [
+                " A given equivocation report is valid but already previously reported."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Treasury",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ProposalIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Number of proposals that have been made."
+                ]
+              },
+              {
+                "name": "Proposals",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ProposalIndex",
+                    "value": "TreasuryProposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposals that have been made."
+                ]
+              },
+              {
+                "name": "Approvals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ProposalIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposal indices that have been approved but not yet awarded."
+                ]
+              },
+              {
+                "name": "Tips",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Hash",
+                    "value": "OpenTip",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Tips that are not yet completed. Keyed by the hash of `(reason, who)` from the value.",
+                  " This has the insecure enumerable hash function since the key itself is already",
+                  " guaranteed to be a secure hash."
+                ]
+              },
+              {
+                "name": "Reasons",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Simple preimage lookup from the reason's hash to the original data. Again, has an",
+                  " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose_spend",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Put forward a suggestion for spending. A deposit proportional to the value",
+                " is reserved and slashed if the proposal is rejected. It is returned once the",
+                " proposal is awarded.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1)",
+                " - DbReads: `ProposalCount`, `origin account`",
+                " - DbWrites: `ProposalCount`, `Proposals`, `origin account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Reject a proposed spend. The original deposit will be slashed.",
+                "",
+                " May only be called from `T::RejectOrigin`.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1)",
+                " - DbReads: `Proposals`, `rejected proposer account`",
+                " - DbWrites: `Proposals`, `rejected proposer account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
+                " and the original deposit will be returned.",
+                "",
+                " May only be called from `T::ApproveOrigin`.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1).",
+                " - DbReads: `Proposals`, `Approvals`",
+                " - DbWrite: `Approvals`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "report_awesome",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Report something `reason` that deserves a tip and claim any eventual the finder's fee.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
+                " `TipReportDepositPerByte` for each byte in `reason`.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R)` where `R` length of `reason`.",
+                "   - encoding and hashing of 'reason'",
+                " - DbReads: `Reasons`, `Tips`, `who account data`",
+                " - DbWrites: `Tips`, `who account data`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "retract_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.",
+                "",
+                " If successful, the original deposit will be unreserved.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`",
+                " must have been reported by the signing account through `report_awesome` (and not",
+                " through `tip_new`).",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " Emits `TipRetracted` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                "   - Depends on the length of `T::Hash` which is fixed.",
+                " - DbReads: `Tips`, `origin account`",
+                " - DbWrites: `Reasons`, `Tips`, `origin account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip_new",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " Give a tip for something new; no finder's fee will be taken.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.",
+                "   - `O(T)`: decoding `Tipper` vec of length `T`",
+                "     `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "     The actual cost depends on the implementation of `T::Tippers`.",
+                "   - `O(R)`: hashing and encoding of reason of length `R`",
+                " - DbReads: `Tippers`, `Reasons`",
+                " - DbWrites: `Reasons`, `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " Declare a tip value for an already-open tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the hash of the original tip `reason` and the beneficiary",
+                "   account ID.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period",
+                " has started.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(T)` where `T` is the number of tippers.",
+                "   decoding `Tipper` vec of length `T`, insert tip and check closing,",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                "",
+                "   Actually weight could be lower as it depends on how many tips are in `OpenTip` but it",
+                "   is weighted as if almost full i.e of length `T-1`.",
+                " - DbReads: `Tippers`, `Tips`",
+                " - DbWrites: `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Close and payout a tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " The tip identified by `hash` must have finished its countdown period.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(T)` where `T` is the number of tippers.",
+                "   decoding `Tipper` vec of length `T`.",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                " - DbReads: `Tips`, `Tippers`, `tip finder`",
+                " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "ProposalIndex"
+              ],
+              "docs": [
+                " New proposal. [proposal_index]"
+              ]
+            },
+            {
+              "name": "Spending",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " We have ended a spend period and will now allocate funds. [budget_remaining]"
+              ]
+            },
+            {
+              "name": "Awarded",
+              "args": [
+                "ProposalIndex",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " Some funds have been allocated. [proposal_index, award, beneficiary]"
+              ]
+            },
+            {
+              "name": "Rejected",
+              "args": [
+                "ProposalIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal was rejected; funds were slashed. [proposal_index, slashed]"
+              ]
+            },
+            {
+              "name": "Burnt",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some of our funds have been burnt. [burn]"
+              ]
+            },
+            {
+              "name": "Rollover",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Spending has finished; this is the amount that rolls over until next spend. [budget_remaining]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds have been deposited. [deposit]"
+              ]
+            },
+            {
+              "name": "NewTip",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A new tip suggestion has been opened. [tip_hash]"
+              ]
+            },
+            {
+              "name": "TipClosing",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has reached threshold and is closing. [tip_hash]"
+              ]
+            },
+            {
+              "name": "TipClosed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A tip suggestion has been closed. [tip_hash, who, payout]"
+              ]
+            },
+            {
+              "name": "TipRetracted",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has been retracted. [tip_hash]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProposalBond",
+              "type": "Permill",
+              "value": "0x50c30000",
+              "docs": [
+                " Fraction of a proposal's value that should be bonded in order to place the proposal.",
+                " An accepted proposal gets these back. A rejected proposal does not."
+              ]
+            },
+            {
+              "name": "ProposalBondMinimum",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Minimum amount of funds that should be placed in a deposit for making a proposal."
+              ]
+            },
+            {
+              "name": "SpendPeriod",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " Period between successive spends."
+              ]
+            },
+            {
+              "name": "Burn",
+              "type": "Permill",
+              "value": "0x20a10700",
+              "docs": [
+                " Percentage of spare funds (if any) that are burnt per spend period."
+              ]
+            },
+            {
+              "name": "TipCountdown",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " The period for which a tip remains open after is has achieved threshold tippers."
+              ]
+            },
+            {
+              "name": "TipFindersFee",
+              "type": "Percent",
+              "value": "0x14",
+              "docs": [
+                " The amount of the final tip which goes to the original reporter of the tip."
+              ]
+            },
+            {
+              "name": "TipReportDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The amount held on deposit for placing a tip report."
+              ]
+            },
+            {
+              "name": "TipReportDepositPerByte",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount held on deposit per byte within the tip report reason."
+              ]
+            },
+            {
+              "name": "ModuleId",
+              "type": "ModuleId",
+              "value": "0x70792f7472737279",
+              "docs": [
+                " The treasury's module id, used for deriving its sovereign account ID."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InsufficientProposersBalance",
+              "docs": [
+                " Proposer's balance is too low."
+              ]
+            },
+            {
+              "name": "InvalidProposalIndex",
+              "docs": [
+                " No proposal at that index."
+              ]
+            },
+            {
+              "name": "ReasonTooBig",
+              "docs": [
+                " The reason given is just too big."
+              ]
+            },
+            {
+              "name": "AlreadyKnown",
+              "docs": [
+                " The tip was already found/started."
+              ]
+            },
+            {
+              "name": "UnknownTip",
+              "docs": [
+                " The tip hash is unknown."
+              ]
+            },
+            {
+              "name": "NotFinder",
+              "docs": [
+                " The account attempting to retract the tip is not the finder of the tip."
+              ]
+            },
+            {
+              "name": "StillOpen",
+              "docs": [
+                " The tip cannot be claimed/closed because there are not enough tippers yet."
+              ]
+            },
+            {
+              "name": "Premature",
+              "docs": [
+                " The tip cannot be claimed/closed because it's still in the countdown period."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Contracts",
+          "storage": {
+            "prefix": "Contracts",
+            "items": [
+              {
+                "name": "CurrentSchedule",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Schedule"
+                },
+                "fallback": "0x0000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a1070000000000e0f7050400000000e024370500000000e0f705040000000020a107000000000020a107000000000080f0fa020000000000e1f5050000000004000000000001001000000000400000002000000000000800",
+                "docs": [
+                  " Current cost schedule for contracts."
+                ]
+              },
+              {
+                "name": "PristineCode",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "CodeHash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from an original code hash to the original code, untouched by instrumentation."
+                ]
+              },
+              {
+                "name": "CodeStorage",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "CodeHash",
+                    "value": "PrefabWasmModule",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping between an original code hash and instrumented wasm code, ready for execution."
+                ]
+              },
+              {
+                "name": "AccountCounter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The subtrie counter."
+                ]
+              },
+              {
+                "name": "ContractInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "ContractInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The code associated with a given account.",
+                  "",
+                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "update_schedule",
+              "args": [
+                {
+                  "name": "schedule",
+                  "type": "Schedule"
+                }
+              ],
+              "docs": [
+                " Updates the schedule for metering contracts.",
+                "",
+                " The schedule must have a greater version than the stored schedule."
+              ]
+            },
+            {
+              "name": "put_code",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.",
+                " You can instantiate contracts only with stored code."
+              ]
+            },
+            {
+              "name": "call",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Makes a call to an account, optionally transferring some balance.",
+                "",
+                " * If the account is a smart-contract account, the associated code will be",
+                " executed and any value will be transferred.",
+                " * If the account is a regular account, any value will be transferred.",
+                " * If no account exists and the call value is not less than `existential_deposit`,",
+                " a regular account will be created and any value will be transferred."
+              ]
+            },
+            {
+              "name": "instantiate",
+              "args": [
+                {
+                  "name": "endowment",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "code_hash",
+                  "type": "CodeHash"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.",
+                "",
+                " Instantiation is executed as follows:",
+                "",
+                " - The destination address is computed based on the sender and hash of the code.",
+                " - The smart-contract account is created at the computed address.",
+                " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned",
+                "   after the execution is saved as the `code` of the account. That code will be invoked",
+                "   upon any call received by this account.",
+                " - The contract is initialized."
+              ]
+            },
+            {
+              "name": "claim_surcharge",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "aux_sender",
+                  "type": "Option<AccountId>"
+                }
+              ],
+              "docs": [
+                " Allows block producers to claim a small reward for evicting a contract. If a block producer",
+                " fails to do so, a regular users will be allowed to claim the reward.",
+                "",
+                " If contract is not evicted as a result of this call, no actions are taken and",
+                " the sender is not eligible for the reward."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Instantiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Contract deployed by address at the specified address. [owner, contract]"
+              ]
+            },
+            {
+              "name": "Evicted",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " Contract has been evicted and is now in tombstone state.",
+                " [contract, tombstone]",
+                " ",
+                " # Params",
+                "",
+                " - `contract`: `AccountId`: The account ID of the evicted contract.",
+                " - `tombstone`: `bool`: True if the evicted contract left behind a tombstone."
+              ]
+            },
+            {
+              "name": "Restored",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Hash",
+                "Balance"
+              ],
+              "docs": [
+                " Restoration for a contract has been successful.",
+                " [donor, dest, code_hash, rent_allowance]",
+                " ",
+                " # Params",
+                "",
+                " - `donor`: `AccountId`: Account ID of the restoring contract",
+                " - `dest`: `AccountId`: Account ID of the restored contract",
+                " - `code_hash`: `Hash`: Code hash of the restored contract",
+                " - `rent_allowance: `Balance`: Rent allowance of the restored contract"
+              ]
+            },
+            {
+              "name": "CodeStored",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " Code with the specified hash has been stored.",
+                " [code_hash]"
+              ]
+            },
+            {
+              "name": "ScheduleUpdated",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " Triggered when the current [schedule] is updated."
+              ]
+            },
+            {
+              "name": "ContractExecution",
+              "args": [
+                "AccountId",
+                "Bytes"
+              ],
+              "docs": [
+                " An event deposited upon execution of a contract from the account.",
+                " [account, data]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SignedClaimHandicap",
+              "type": "BlockNumber",
+              "value": "0x02000000",
+              "docs": [
+                " Number of block delay an extrinsic claim surcharge has.",
+                "",
+                " When claim surcharge is called by an extrinsic the rent is checked",
+                " for current_block - delay"
+              ]
+            },
+            {
+              "name": "TombstoneDeposit",
+              "type": "BalanceOf",
+              "value": "0x00a0acb9030000000000000000000000",
+              "docs": [
+                " The minimum amount required to generate a tombstone."
+              ]
+            },
+            {
+              "name": "StorageSizeOffset",
+              "type": "u32",
+              "value": "0x08000000",
+              "docs": [
+                " A size offset for an contract. A just created account with untouched storage will have that",
+                " much of storage from the perspective of the state rent.",
+                "",
+                " This is a simple way to ensure that contracts with empty storage eventually get deleted",
+                " by making them pay rent. This creates an incentive to remove them early in order to save",
+                " rent."
+              ]
+            },
+            {
+              "name": "RentByteFee",
+              "type": "BalanceOf",
+              "value": "0x00286bee000000000000000000000000",
+              "docs": [
+                " Price of a byte of storage per one block interval. Should be greater than 0."
+              ]
+            },
+            {
+              "name": "RentDepositOffset",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount of funds a contract should deposit in order to offset",
+                " the cost of one byte.",
+                "",
+                " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,",
+                " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.",
+                " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,",
+                " then it would pay 500 BU/day."
+              ]
+            },
+            {
+              "name": "SurchargeReward",
+              "type": "BalanceOf",
+              "value": "0x005cb2ec220000000000000000000000",
+              "docs": [
+                " Reward that is received by the party whose touch has led",
+                " to removal of a contract."
+              ]
+            },
+            {
+              "name": "MaxDepth",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum nesting level of a call/instantiate stack. A reasonable default",
+                " value is 100."
+              ]
+            },
+            {
+              "name": "MaxValueSize",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " The maximum size of a storage value in bytes. A reasonable default is 16 KiB."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidScheduleVersion",
+              "docs": [
+                " A new schedule must have a greater version than the current one."
+              ]
+            },
+            {
+              "name": "InvalidSurchargeClaim",
+              "docs": [
+                " An origin must be signed or inherent and auxiliary sender only provided on inherent."
+              ]
+            },
+            {
+              "name": "InvalidSourceContract",
+              "docs": [
+                " Cannot restore from nonexisting or tombstone contract."
+              ]
+            },
+            {
+              "name": "InvalidDestinationContract",
+              "docs": [
+                " Cannot restore to nonexisting or alive contract."
+              ]
+            },
+            {
+              "name": "InvalidTombstone",
+              "docs": [
+                " Tombstones don't match."
+              ]
+            },
+            {
+              "name": "InvalidContractOrigin",
+              "docs": [
+                " An origin TrieId written in the current block."
+              ]
+            },
+            {
+              "name": "OutOfGas",
+              "docs": [
+                " The executed contract exhausted its gas limit."
+              ]
+            },
+            {
+              "name": "OutputBufferTooSmall",
+              "docs": [
+                " The output buffer supplied to a contract API call was too small."
+              ]
+            },
+            {
+              "name": "BelowSubsistenceThreshold",
+              "docs": [
+                " Performing the requested transfer would have brought the contract below",
+                " the subsistence threshold. No transfer is allowed to do this in order to allow",
+                " for a tombstone to be created. Use `seal_terminate` to remove a contract without",
+                " leaving a tombstone behind."
+              ]
+            },
+            {
+              "name": "NewContractNotFunded",
+              "docs": [
+                " The newly created contract is below the subsistence threshold after executing",
+                " its contructor. No contracts are allowed to exist below that threshold."
+              ]
+            },
+            {
+              "name": "TransferFailed",
+              "docs": [
+                " Performing the requested transfer failed for a reason originating in the",
+                " chosen currency implementation of the runtime. Most probably the balance is",
+                " too low or locks are placed on it."
+              ]
+            },
+            {
+              "name": "MaxCallDepthReached",
+              "docs": [
+                " Performing a call was denied because the calling depth reached the limit",
+                " of what is specified in the schedule."
+              ]
+            },
+            {
+              "name": "NotCallable",
+              "docs": [
+                " The contract that was called is either no contract at all (a plain account)",
+                " or is a tombstone."
+              ]
+            },
+            {
+              "name": "CodeTooLarge",
+              "docs": [
+                " The code supplied to `put_code` exceeds the limit specified in the current schedule."
+              ]
+            },
+            {
+              "name": "CodeNotFound",
+              "docs": [
+                " No code could be found at the supplied code hash."
+              ]
+            },
+            {
+              "name": "OutOfBounds",
+              "docs": [
+                " A buffer outside of sandbox memory was passed to a contract API function."
+              ]
+            },
+            {
+              "name": "DecodingFailed",
+              "docs": [
+                " Input passed to a contract API function failed to decode as expected type."
+              ]
+            },
+            {
+              "name": "ContractTrapped",
+              "docs": [
+                " Contract trapped during execution."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Sudo",
+          "storage": {
+            "prefix": "Sudo",
+            "items": [
+              {
+                "name": "Key",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The `AccountId` of the sudo key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "sudo",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Weight of derivative `call` execution + 10,000.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_unchecked_weight",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                },
+                {
+                  "name": "_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                " This function does not check the weight of the call, and instead allows the",
+                " Sudo user to specify the weight of the call.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - The weight of this call is defined by the caller.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_as",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Signed` origin from",
+                " a given account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Weight of derivative `call` execution + 10,000.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Sudid",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A sudo just took place. [result]"
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The [sudoer] just switched identity; the old key is supplied."
+              ]
+            },
+            {
+              "name": "SudoAsDone",
+              "args": [
+                "bool"
+              ],
+              "docs": [
+                " A sudo just took place. [result]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "RequireSudo",
+              "docs": [
+                " Sender must be the Sudo account"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "ImOnline",
+          "storage": {
+            "prefix": "ImOnline",
+            "items": [
+              {
+                "name": "HeartbeatAfter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The block number after which it's ok to send heartbeats in current session.",
+                  "",
+                  " At the beginning of each session we set this to a value that should",
+                  " fall roughly in the middle of the session duration.",
+                  " The idea is to first wait for the validators to produce a block",
+                  " in the current session, so that the heartbeat later on will not be necessary."
+                ]
+              },
+              {
+                "name": "Keys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AuthorityId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of keys that may issue a heartbeat."
+                ]
+              },
+              {
+                "name": "ReceivedHeartbeats",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "SessionIndex",
+                    "key2": "AuthIndex",
+                    "value": "Bytes",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " For each session index, we keep a mapping of `AuthIndex` to",
+                  " `offchain::OpaqueNetworkState`."
+                ]
+              },
+              {
+                "name": "AuthoredBlocks",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "SessionIndex",
+                    "key2": "ValidatorId",
+                    "value": "u32",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " For each session index, we keep a mapping of `T::ValidatorId` to the",
+                  " number of blocks authored by the given authority."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "heartbeat",
+              "args": [
+                {
+                  "name": "heartbeat",
+                  "type": "Heartbeat"
+                },
+                {
+                  "name": "_signature",
+                  "type": "Signature"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Complexity: `O(K + E)` where K is length of `Keys` and E is length of",
+                "   `Heartbeat.network_state.external_address`",
+                "",
+                "   - `O(K)`: decoding of length `K`",
+                "   - `O(E)`: decoding/encoding of length `E`",
+                " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,",
+                "   `ReceivedHeartbeats`",
+                " - DbWrites: `ReceivedHeartbeats`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "HeartbeatReceived",
+              "args": [
+                "AuthorityId"
+              ],
+              "docs": [
+                " A new heartbeat was received from `AuthorityId` [authority_id]"
+              ]
+            },
+            {
+              "name": "AllGood",
+              "args": [],
+              "docs": [
+                " At the end of the session, no offence was committed."
+              ]
+            },
+            {
+              "name": "SomeOffline",
+              "args": [
+                "Vec<IdentificationTuple>"
+              ],
+              "docs": [
+                " At the end of the session, at least one validator was found to be [offline]."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidKey",
+              "docs": [
+                " Non existent public key."
+              ]
+            },
+            {
+              "name": "DuplicatedHeartbeat",
+              "docs": [
+                " Duplicated heartbeat."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "AuthorityDiscovery",
+          "storage": null,
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Offences",
+          "storage": {
+            "prefix": "Offences",
+            "items": [
+              {
+                "name": "Reports",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ReportIdOf",
+                    "value": "OffenceDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The primary structure that holds all offence records keyed by report identifiers."
+                ]
+              },
+              {
+                "name": "DeferredOffences",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<DeferredOffenceOf>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Deferred reports that have been rejected by the offence handler and need to be submitted",
+                  " at a later time."
+                ]
+              },
+              {
+                "name": "ConcurrentReportsIndex",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "Kind",
+                    "key2": "OpaqueTimeSlot",
+                    "value": "Vec<ReportIdOf>",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A vector of reports of the same kind that happened at the same time slot."
+                ]
+              },
+              {
+                "name": "ReportsByKindIndex",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Kind",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Enumerates all reports of a kind along with the time they happened.",
+                  "",
+                  " All reports are sorted by the time of offence.",
+                  "",
+                  " Note that the actual type of this mapping is `Vec<u8>`, this is because values of",
+                  " different types are not supported at the moment so we are doing the manual serialization."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": [
+            {
+              "name": "Offence",
+              "args": [
+                "Kind",
+                "OpaqueTimeSlot",
+                "bool"
+              ],
+              "docs": [
+                " There is an offence reported of the given `kind` happened at the `session_index` and",
+                " (kind-specific) time slot. This event is not deposited for duplicate slashes. last",
+                " element indicates of the offence was applied (true) or queued (false) ",
+                " [kind, timeslot, applied]."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Historical",
+          "storage": null,
+          "calls": null,
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "RandomnessCollectiveFlip",
+          "storage": {
+            "prefix": "RandomnessCollectiveFlip",
+            "items": [
+              {
+                "name": "RandomMaterial",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Series of block headers from the last 81 blocks that acts as random seed material. This",
+                  " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of",
+                  " the oldest hash."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Identity",
+          "storage": {
+            "prefix": "Identity",
+            "items": [
+              {
+                "name": "IdentityOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Registration",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information that is pertinent to identify the entity behind an account.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "SuperOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "(AccountId,Data)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The super-identity of an alternative \"sub\" identity together with its name, within that",
+                  " context. If the account is not some other account's sub-identity, then just `None`."
+                ]
+              },
+              {
+                "name": "SubsOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " Alternative \"sub\" identities of this account.",
+                  "",
+                  " The first item is the deposit, the second is a vector of the accounts.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "Registrars",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Option<RegistrarInfo>>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of registrars. Not expected to get very big as can only be added through a",
+                  " special origin (likely a council motion).",
+                  "",
+                  " The index into this can be cast to `RegistrarIndex` to get a valid value."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_registrar",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a registrar to the system.",
+                "",
+                " The dispatch origin for this call must be `T::RegistrarOrigin`.",
+                "",
+                " - `account`: the account of the registrar.",
+                "",
+                " Emits `RegistrarAdded` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).",
+                " - One storage mutation (codec `O(R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_identity",
+              "args": [
+                {
+                  "name": "info",
+                  "type": "IdentityInfo"
+                }
+              ],
+              "docs": [
+                " Set an account's identity information and reserve the appropriate deposit.",
+                "",
+                " If the account already has identity information, the deposit is taken as part payment",
+                " for the new deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `info`: The identity information.",
+                "",
+                " Emits `IdentitySet` if successful.",
+                "",
+                " # <weight>",
+                " - `O(X + X' + R)`",
+                "   - where `X` additional-field-count (deposit-bounded and code-bounded)",
+                "   - where `R` judgements-count (registrar-count-bounded)",
+                " - One balance reserve operation.",
+                " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_subs",
+              "args": [
+                {
+                  "name": "subs",
+                  "type": "Vec<(AccountId,Data)>"
+                }
+              ],
+              "docs": [
+                " Set the sub-accounts of the sender.",
+                "",
+                " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned",
+                " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " - `subs`: The identity's (new) sub-accounts.",
+                "",
+                " # <weight>",
+                " - `O(P + S)`",
+                "   - where `P` old-subs-count (hard- and deposit-bounded).",
+                "   - where `S` subs-count (hard- and deposit-bounded).",
+                " - At most one balance operations.",
+                " - DB:",
+                "   - `P + S` storage mutations (codec complexity `O(1)`)",
+                "   - One storage read (codec complexity `O(P)`).",
+                "   - One storage write (codec complexity `O(S)`).",
+                "   - One storage-exists (`IdentityOf::contains_key`).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_identity",
+              "args": [],
+              "docs": [
+                " Clear an account's identity info and all sub-accounts and return all deposits.",
+                "",
+                " Payment: All reserved balances on the account are returned.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " Emits `IdentityCleared` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`",
+                "   - where `R` registrar-count (governance-bounded).",
+                "   - where `S` subs-count (hard- and deposit-bounded).",
+                "   - where `X` additional-field-count (deposit-bounded and code-bounded).",
+                " - One balance-unreserve operation.",
+                " - `2` storage reads and `S + 2` storage deletions.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "request_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "max_fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Request a judgement from a registrar.",
+                "",
+                " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement",
+                " given.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is requested.",
+                " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:",
+                "",
+                " ```nocompile",
+                " Self::registrars().get(reg_index).unwrap().fee",
+                " ```",
+                "",
+                " Emits `JudgementRequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_request",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "RegistrarIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a previous request.",
+                "",
+                " Payment: A previously reserved deposit is returned on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is no longer requested.",
+                "",
+                " Emits `JudgementUnrequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - One storage mutation `O(R + X)`.",
+                " - One event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fee",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Set the fee required for a judgement to be requested from a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fee`: the new fee.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_account_id",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Change the account associated with a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `new`: the new account ID.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fields",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fields",
+                  "type": "IdentityFields"
+                }
+              ],
+              "docs": [
+                " Set the field information for a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fields`: the fields that the registrar concerns themselves with.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "provide_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "judgement",
+                  "type": "IdentityJudgement"
+                }
+              ],
+              "docs": [
+                " Provide a judgement for an account's identity.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `reg_index`.",
+                "",
+                " - `reg_index`: the index of the registrar whose judgement is being made.",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.",
+                "",
+                " Emits `JudgementGiven` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-transfer operation.",
+                " - Up to one account-lookup operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_identity",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove an account's identity and sub-account information and slash the deposits.",
+                "",
+                " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by",
+                " `Slash`. Verification request deposits are not returned; they should be cancelled",
+                " manually using `cancel_request`.",
+                "",
+                " The dispatch origin for this call must match `T::ForceOrigin`.",
+                "",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                "",
+                " Emits `IdentityKilled` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`.",
+                " - One balance-reserve operation.",
+                " - `S + 2` storage mutations.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "add_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "data",
+                  "type": "Data"
+                }
+              ],
+              "docs": [
+                " Add the given account to the sender's subs.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "rename_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "data",
+                  "type": "Data"
+                }
+              ],
+              "docs": [
+                " Alter the associated name of the given sub-account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "remove_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove the given account from the sender's subs.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "quit_sub",
+              "args": [],
+              "docs": [
+                " Remove the sender as a sub-account.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender (*not* the original depositor).",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " super-identity.",
+                "",
+                " NOTE: This should not normally be used, but is provided in the case that the non-",
+                " controller of an account is maliciously registered as a sub-account."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "IdentitySet",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A name was set or reset (which will remove all judgements). [who]"
+              ]
+            },
+            {
+              "name": "IdentityCleared",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was cleared, and the given balance returned. [who, deposit]"
+              ]
+            },
+            {
+              "name": "IdentityKilled",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was removed and the given balance slashed. [who, deposit]"
+              ]
+            },
+            {
+              "name": "JudgementRequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was asked from a registrar. [who, registrar_index]"
+              ]
+            },
+            {
+              "name": "JudgementUnrequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement request was retracted. [who, registrar_index]"
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was given by a registrar. [target, registrar_index]"
+              ]
+            },
+            {
+              "name": "RegistrarAdded",
+              "args": [
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A registrar was added. [registrar_index]"
+              ]
+            },
+            {
+              "name": "SubIdentityAdded",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was added to an identity and the deposit paid. [sub, main, deposit]"
+              ]
+            },
+            {
+              "name": "SubIdentityRemoved",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was removed from an identity and the deposit freed.",
+                " [sub, main, deposit]"
+              ]
+            },
+            {
+              "name": "SubIdentityRevoked",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was cleared, and the given deposit repatriated from the",
+                " main identity account to the sub-identity account. [sub, main, deposit]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "BasicDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The amount held on deposit for a registered identity."
+              ]
+            },
+            {
+              "name": "FieldDeposit",
+              "type": "BalanceOf",
+              "value": "0x00a031a95fe300000000000000000000",
+              "docs": [
+                " The amount held on deposit per additional field for a registered identity."
+              ]
+            },
+            {
+              "name": "SubAccountDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080f420e6b500000000000000000000",
+              "docs": [
+                " The amount held on deposit for a registered subaccount. This should account for the fact",
+                " that one storage item's value will increase by the size of an account ID, and there will be",
+                " another trie item whose value is the size of an account ID plus 32 bytes."
+              ]
+            },
+            {
+              "name": "MaxSubAccounts",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of sub-accounts allowed per identified account."
+              ]
+            },
+            {
+              "name": "MaxAdditionalFields",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O",
+                " required to access an identity, but can be pretty high."
+              ]
+            },
+            {
+              "name": "MaxRegistrars",
+              "type": "u32",
+              "value": "0x14000000",
+              "docs": [
+                " Maxmimum number of registrars allowed in the system. Needed to bound the complexity",
+                " of, e.g., updating judgements."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "TooManySubAccounts",
+              "docs": [
+                " Too many subs-accounts."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Account isn't found."
+              ]
+            },
+            {
+              "name": "NotNamed",
+              "docs": [
+                " Account isn't named."
+              ]
+            },
+            {
+              "name": "EmptyIndex",
+              "docs": [
+                " Empty index."
+              ]
+            },
+            {
+              "name": "FeeChanged",
+              "docs": [
+                " Fee is changed."
+              ]
+            },
+            {
+              "name": "NoIdentity",
+              "docs": [
+                " No identity found."
+              ]
+            },
+            {
+              "name": "StickyJudgement",
+              "docs": [
+                " Sticky judgement."
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "docs": [
+                " Judgement given."
+              ]
+            },
+            {
+              "name": "InvalidJudgement",
+              "docs": [
+                " Invalid judgement."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " The index is invalid."
+              ]
+            },
+            {
+              "name": "InvalidTarget",
+              "docs": [
+                " The target is invalid."
+              ]
+            },
+            {
+              "name": "TooManyFields",
+              "docs": [
+                " Too many additional fields."
+              ]
+            },
+            {
+              "name": "TooManyRegistrars",
+              "docs": [
+                " Maximum amount of registrars reached. Cannot add any more."
+              ]
+            },
+            {
+              "name": "AlreadyClaimed",
+              "docs": [
+                " Account ID is already named."
+              ]
+            },
+            {
+              "name": "NotSub",
+              "docs": [
+                " Sender is not a sub-account."
+              ]
+            },
+            {
+              "name": "NotOwned",
+              "docs": [
+                " Sub-account isn't owned by sender."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Society",
+          "storage": {
+            "prefix": "Society",
+            "items": [
+              {
+                "name": "Founder",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The first member."
+                ]
+              },
+              {
+                "name": "Rules",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A hash of the rules of this society concerning membership. Can only be set once and",
+                  " only by the founder."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of candidates; bidders that are attempting to become members."
+                ]
+              },
+              {
+                "name": "SuspendedCandidates",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,BidKind)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended candidates."
+                ]
+              },
+              {
+                "name": "Pot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " Amount of our account balance that is specifically for the next round's bid(s)."
+                ]
+              },
+              {
+                "name": "Head",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The most primary from the most recently approved members."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of members, ordered."
+                ]
+              },
+              {
+                "name": "SuspendedMembers",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended members."
+                ]
+              },
+              {
+                "name": "Bids",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current bids, stored ordered by the value of the bid."
+                ]
+              },
+              {
+                "name": "Vouching",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "VouchingStatus",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Members currently vouching or banned from vouching again"
+                ]
+              },
+              {
+                "name": "Payouts",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Vec<(BlockNumber,BalanceOf)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending payouts; ordered by block number, with the amount that should be paid out."
+                ]
+              },
+              {
+                "name": "Strikes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "StrikeCount",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ongoing number of losing votes cast by the member."
+                ]
+              },
+              {
+                "name": "Votes",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "SocietyVote",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Double map from Candidate -> Voter -> (Maybe) Vote."
+                ]
+              },
+              {
+                "name": "Defender",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The defending member currently being challenged."
+                ]
+              },
+              {
+                "name": "DefenderVotes",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "SocietyVote",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes for the defender."
+                ]
+              },
+              {
+                "name": "MaxMembers",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The max number of members for the society at one time."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bid",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " A user outside of the society can make a bid for entry.",
+                "",
+                " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned",
+                " when the bid becomes a member, or if the bid calls `unbid`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `value`: A one time payment the bid would like to receive when joining the society.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)",
+                " - Storage Reads:",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " \t- One storage read to retrieve all members. O(M)",
+                " - Storage Writes:",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for new bid.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbid",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " A bidder can remove their bid for entry into society.",
+                " By doing so, they will have their candidate deposit returned or",
+                " they will unvouch their voucher.",
+                "",
+                " Payment: The bid deposit is unreserved if the user made a bid.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a bidder.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), X (balance unreserve)",
+                " - One storage read and write to retrieve and update the bids. O(B)",
+                " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "tip",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " As a member, vouch for someone to join society by placing a bid on their behalf.",
+                "",
+                " There is no deposit required to vouch for a new bid, but a member can only vouch for",
+                " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by",
+                " the suspension judgement origin, the member will be banned from vouching again.",
+                "",
+                " As a vouching member, you can claim a tip if the candidate is accepted. This tip will",
+                " be paid as a portion of the reward the member will receive for joining the society.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `who`: The user who you would like to vouch for.",
+                " - `value`: The total reward to be paid between you and the candidate if they become",
+                " a member in the society.",
+                " - `tip`: Your cut of the total `value` payout when the candidate is inducted into",
+                " the society. Tips larger than `value` will be saturated upon payout.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members)",
+                " - Storage Reads:",
+                " \t- One storage read to retrieve all members. O(M)",
+                " \t- One storage read to check member is not already vouching. O(1)",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " - Storage Writes:",
+                " \t- One storage write to insert vouching status to the member. O(1)",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(log M) search to check sender is a member.",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for vouch.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unvouch",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " As a vouching member, unvouch a bid. This only works while vouched user is",
+                " only a bidder (and not a candidate).",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a vouching member.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids)",
+                " - One storage read O(1) to check the signer is a vouching member.",
+                " - One storage mutate to retrieve and update the bids. O(B)",
+                " - One vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "candidate",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on a candidate.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `candidate`: The candidate that the member would like to bid on.",
+                " - `approve`: A boolean which says if the candidate should be",
+                "              approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " Key: C (len of candidates), M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One account lookup.",
+                " - One storage read O(C) and O(C) search to check that user is a candidate.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM + C)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "defender_vote",
+              "args": [
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on the defender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `approve`: A boolean which says if the candidate should be",
+                " approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " - Key: M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "payout",
+              "args": [],
+              "docs": [
+                " Transfer the first matured payout for the sender and remove it from the records.",
+                "",
+                " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.",
+                "",
+                " Payment: The member will receive a payment equal to their first matured",
+                " payout to their free balance.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member with",
+                " payouts remaining.",
+                "",
+                " # <weight>",
+                " Key: M (len of members), P (number of payouts for a particular member)",
+                " - One storage read O(M) and O(log M) search to check signer is a member.",
+                " - One storage read O(P) to get all payouts for a member.",
+                " - One storage read O(1) to get the current block number.",
+                " - One currency transfer call. O(X)",
+                " - One storage write or removal to update the member's payouts. O(P)",
+                "",
+                " Total Complexity: O(M + logM + P + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "found",
+              "args": [
+                {
+                  "name": "founder",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "max_members",
+                  "type": "u32"
+                },
+                {
+                  "name": "rules",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Found the society.",
+                "",
+                " This is done as a discrete action in order to allow for the",
+                " module to be included into a running chain and can only be done once.",
+                "",
+                " The dispatch origin for this call must be from the _FounderSetOrigin_.",
+                "",
+                " Parameters:",
+                " - `founder` - The first member and head of the newly founded society.",
+                " - `max_members` - The initial max number of members for the society.",
+                " - `rules` - The rules of this society concerning membership.",
+                "",
+                " # <weight>",
+                " - Two storage mutates to set `Head` and `Founder`. O(1)",
+                " - One storage write to add the first member to society. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unfound",
+              "args": [],
+              "docs": [
+                " Annul the founding of the society.",
+                "",
+                " The dispatch origin for this call must be Signed, and the signing account must be both",
+                " the `Founder` and the `Head`. This implies that it may only be done when there is one",
+                " member.",
+                "",
+                " # <weight>",
+                " - Two storage reads O(1).",
+                " - Four storage removals O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "forgive",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Allow suspension judgement origin to make judgement on a suspended member.",
+                "",
+                " If a suspended member is forgiven, we simply add them back as a member, not affecting",
+                " any of the existing storage items for that member.",
+                "",
+                " If a suspended member is rejected, remove all associated storage items, including",
+                " their payouts, and remove any vouched bids they currently have.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended member to be judged.",
+                " - `forgive` - A boolean representing whether the suspension judgement origin",
+                "               forgives (`true`) or rejects (`false`) a suspended member.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members)",
+                " - One storage read to check `who` is a suspended member. O(1)",
+                " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.",
+                " - Up to 3 storage removals O(1) to clean up a removed member.",
+                " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal. O(1)",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_candidate",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "judgement",
+                  "type": "SocietyJudgement"
+                }
+              ],
+              "docs": [
+                " Allow suspended judgement origin to make judgement on a suspended candidate.",
+                "",
+                " If the judgement is `Approve`, we add them to society as a member with the appropriate",
+                " payment for joining society.",
+                "",
+                " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back",
+                " to the society treasury, or we ban the voucher from vouching again.",
+                "",
+                " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go",
+                " through the induction process again.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended candidate to be judged.",
+                " - `judgement` - `Approve`, `Reject`, or `Rebid`.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members), X (balance action)",
+                " - One storage read to check `who` is a suspended candidate.",
+                " - One storage removal of the suspended candidate.",
+                " - Approve Logic",
+                " \t- One storage read to get the available pot to pay users with. O(1)",
+                " \t- One storage write to update the available pot. O(1)",
+                " \t- One storage read to get the current block number. O(1)",
+                " \t- One storage read to get all members. O(M)",
+                " \t- Up to one unreserve currency action.",
+                " \t- Up to two new storage writes to payouts.",
+                " \t- Up to one storage write with O(log M) binary search to add a member to society.",
+                " - Reject Logic",
+                " \t- Up to one repatriate reserved currency action. O(X)",
+                " \t- Up to one storage write to ban the vouching member from vouching again.",
+                " - Rebid Logic",
+                " \t- Storage mutate with O(log B) binary search to place the user back into bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal.",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_max_members",
+              "args": [
+                {
+                  "name": "max",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Allows root origin to change the maximum number of members in society.",
+                " Max membership count must be greater than 1.",
+                "",
+                " The dispatch origin for this call must be from _ROOT_.",
+                "",
+                " Parameters:",
+                " - `max` - The maximum number of members for the society.",
+                "",
+                " # <weight>",
+                " - One storage write to update the max. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Founded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The society is founded by the given identity. [founder]"
+              ]
+            },
+            {
+              "name": "Bid",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A membership bid just happened. The given account is the candidate's ID and their offer",
+                " is the second. [candidate_id, offer]"
+              ]
+            },
+            {
+              "name": "Vouch",
+              "args": [
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A membership bid just happened by vouching. The given account is the candidate's ID and",
+                " their offer is the second. The vouching party is the third. [candidate_id, offer, vouching]"
+              ]
+            },
+            {
+              "name": "AutoUnbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [candidate] was dropped (due to an excess of bids in the system)."
+              ]
+            },
+            {
+              "name": "Unbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [candidate] was dropped (by their request)."
+              ]
+            },
+            {
+              "name": "Unvouch",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [candidate] was dropped (by request of who vouched for them)."
+              ]
+            },
+            {
+              "name": "Inducted",
+              "args": [
+                "AccountId",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A group of candidates have been inducted. The batch's primary is the first value, the",
+                " batch in full is the second. [primary, candidates]"
+              ]
+            },
+            {
+              "name": "SuspendedMemberJudgement",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A suspended member has been judged. [who, judged]"
+              ]
+            },
+            {
+              "name": "CandidateSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [candidate] has been suspended"
+              ]
+            },
+            {
+              "name": "MemberSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [member] has been suspended"
+              ]
+            },
+            {
+              "name": "Challenged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A [member] has been challenged"
+              ]
+            },
+            {
+              "name": "Vote",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed [candidate, voter, vote]"
+              ]
+            },
+            {
+              "name": "DefenderVote",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed for a defending member [voter, vote]"
+              ]
+            },
+            {
+              "name": "NewMaxMembers",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " A new [max] member count has been set"
+              ]
+            },
+            {
+              "name": "Unfounded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Society is unfounded. [founder]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds were deposited into the society account. [value]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "CandidateDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The minimum amount of a deposit required for a bid to be made."
+              ]
+            },
+            {
+              "name": "WrongSideDeduction",
+              "type": "BalanceOf",
+              "value": "0x0080f420e6b500000000000000000000",
+              "docs": [
+                " The amount of the unpaid reward that gets deducted in the case that either a skeptic",
+                " doesn't vote or someone votes in the wrong way."
+              ]
+            },
+            {
+              "name": "MaxStrikes",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)",
+                " before they become suspended."
+              ]
+            },
+            {
+              "name": "PeriodSpend",
+              "type": "BalanceOf",
+              "value": "0x0000c52ebca2b1000000000000000000",
+              "docs": [
+                " The amount of incentive paid within each period. Doesn't include VoterTip."
+              ]
+            },
+            {
+              "name": "RotationPeriod",
+              "type": "BlockNumber",
+              "value": "0x00770100",
+              "docs": [
+                " The number of blocks between candidate/membership rotation periods."
+              ]
+            },
+            {
+              "name": "ChallengePeriod",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": [
+                " The number of blocks between membership challenges."
+              ]
+            },
+            {
+              "name": "ModuleId",
+              "type": "ModuleId",
+              "value": "0x70792f736f636965",
+              "docs": [
+                " The societies's module id"
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "BadPosition",
+              "docs": [
+                " An incorrect position was provided."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " User is not a member."
+              ]
+            },
+            {
+              "name": "AlreadyMember",
+              "docs": [
+                " User is already a member."
+              ]
+            },
+            {
+              "name": "Suspended",
+              "docs": [
+                " User is suspended."
+              ]
+            },
+            {
+              "name": "NotSuspended",
+              "docs": [
+                " User is not suspended."
+              ]
+            },
+            {
+              "name": "NoPayout",
+              "docs": [
+                " Nothing to payout."
+              ]
+            },
+            {
+              "name": "AlreadyFounded",
+              "docs": [
+                " Society already founded."
+              ]
+            },
+            {
+              "name": "InsufficientPot",
+              "docs": [
+                " Not enough in pot to accept candidate."
+              ]
+            },
+            {
+              "name": "AlreadyVouching",
+              "docs": [
+                " Member is already vouching or banned from vouching again."
+              ]
+            },
+            {
+              "name": "NotVouching",
+              "docs": [
+                " Member is not vouching."
+              ]
+            },
+            {
+              "name": "Head",
+              "docs": [
+                " Cannot remove the head of the chain."
+              ]
+            },
+            {
+              "name": "Founder",
+              "docs": [
+                " Cannot remove the founder."
+              ]
+            },
+            {
+              "name": "AlreadyBid",
+              "docs": [
+                " User has already made a bid."
+              ]
+            },
+            {
+              "name": "AlreadyCandidate",
+              "docs": [
+                " User is already a candidate."
+              ]
+            },
+            {
+              "name": "NotCandidate",
+              "docs": [
+                " User is not a candidate."
+              ]
+            },
+            {
+              "name": "MaxMembers",
+              "docs": [
+                " Too many members in the society."
+              ]
+            },
+            {
+              "name": "NotFounder",
+              "docs": [
+                " The caller is not the founder."
+              ]
+            },
+            {
+              "name": "NotHead",
+              "docs": [
+                " The caller is not the head."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Recovery",
+          "storage": {
+            "prefix": "Recovery",
+            "items": [
+              {
+                "name": "Recoverable",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "RecoveryConfig",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of recoverable accounts and their recovery configuration."
+                ]
+              },
+              {
+                "name": "ActiveRecoveries",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "ActiveRecovery",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Active recovery attempts.",
+                  "",
+                  " First account is the account to be recovered, and the second account",
+                  " is the user trying to recover the account."
+                ]
+              },
+              {
+                "name": "Proxy",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The list of allowed proxy accounts.",
+                  "",
+                  " Map from the user who can access it to the recovered account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "as_recovered",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through a recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and registered to",
+                " be able to make calls on behalf of the recovered account.",
+                "",
+                " Parameters:",
+                " - `account`: The recovered account you want to make a call on-behalf-of.",
+                " - `call`: The call you want to make with the recovered account.",
+                "",
+                " # <weight>",
+                " - The weight of the `call` + 10,000.",
+                " - One storage lookup to check account is recovered by `who`. O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_recovered",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow ROOT to bypass the recovery process and set an a rescuer account",
+                " for a lost account directly.",
+                "",
+                " The dispatch origin for this call must be _ROOT_.",
+                "",
+                " Parameters:",
+                " - `lost`: The \"lost account\" to be recovered.",
+                " - `rescuer`: The \"rescuer account\" which can call as the lost account.",
+                "",
+                " # <weight>",
+                " - One storage write O(1)",
+                " - One event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "create_recovery",
+              "args": [
+                {
+                  "name": "friends",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "delay_period",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Create a recovery configuration for your account. This makes your account recoverable.",
+                "",
+                " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance",
+                " will be reserved for storing the recovery configuration. This deposit is returned",
+                " in full when the user calls `remove_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `friends`: A list of friends you trust to vouch for recovery attempts.",
+                "   Should be ordered and contain no duplicate values.",
+                " - `threshold`: The number of friends that must vouch for a recovery attempt",
+                "   before the account can be recovered. Should be less than or equal to",
+                "   the length of the list of friends.",
+                " - `delay_period`: The number of blocks after a recovery attempt is initialized",
+                "   that needs to pass before the account can be recovered.",
+                "",
+                " # <weight>",
+                " - Key: F (len of friends)",
+                " - One storage read to check that account is not already recoverable. O(1).",
+                " - A check that the friends list is sorted and unique. O(F)",
+                " - One currency reserve operation. O(X)",
+                " - One storage write. O(1). Codec O(F).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "initiate_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Initiate the process for recovering a recoverable account.",
+                "",
+                " Payment: `RecoveryDeposit` balance will be reserved for initiating the",
+                " recovery process. This deposit will always be repatriated to the account",
+                " trying to be recovered. See `close_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to recover. This account",
+                "   needs to be recoverable (i.e. have a recovery configuration).",
+                "",
+                " # <weight>",
+                " - One storage read to check that account is recoverable. O(F)",
+                " - One storage read to check that this recovery process hasn't already started. O(1)",
+                " - One currency reserve operation. O(X)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch_recovery",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a \"friend\" of a recoverable account to vouch for an active recovery",
+                " process for that account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"friend\"",
+                " for the recoverable account.",
+                "",
+                " Parameters:",
+                " - `lost`: The lost account that you want to recover.",
+                " - `rescuer`: The account trying to rescue the lost account that you",
+                "   want to vouch for.",
+                "",
+                " The combination of these two parameters must point to an active recovery",
+                " process.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One binary search to confirm caller is a friend. O(logF)",
+                " - One binary search to confirm caller has not already vouched. O(logV)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + logF + V + logV)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "claim_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a successful rescuer to claim their recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"",
+                " who has successfully completed the account recovery process: collected",
+                " `threshold` or more vouches, waited `delay_period` blocks since initiation.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to claim has been successfully",
+                "   recovered by you.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + V)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_recovery",
+              "args": [
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " As the controller of a recoverable account, close an active recovery",
+                " process for your account.",
+                "",
+                " Payment: By calling this function, the recoverable account will receive",
+                " the recovery deposit `RecoveryDeposit` placed by the rescuer.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account with an active recovery process for it.",
+                "",
+                " Parameters:",
+                " - `rescuer`: The account trying to rescue this recoverable account.",
+                "",
+                " # <weight>",
+                " Key: V (len of vouching friends)",
+                " - One storage read/remove to get the active recovery process. O(1), Codec O(V)",
+                " - One balance call to repatriate reserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(V + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_recovery",
+              "args": [],
+              "docs": [
+                " Remove the recovery process for your account. Recovered accounts are still accessible.",
+                "",
+                " NOTE: The user must make sure to call `close_recovery` on all active",
+                " recovery attempts before calling this function else it will fail.",
+                "",
+                " Payment: By calling this function the recoverable account will unreserve",
+                " their recovery configuration deposit.",
+                " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account (i.e. has a recovery configuration).",
+                "",
+                " # <weight>",
+                " Key: F (len of friends)",
+                " - One storage read to get the prefix iterator for active recoveries. O(1)",
+                " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)",
+                " - One balance call to unreserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_recovered",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Cancel the ability to use `as_recovered` for `account`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and registered to",
+                " be able to make calls on behalf of the recovered account.",
+                "",
+                " Parameters:",
+                " - `account`: The recovered account you are able to call on-behalf-of.",
+                "",
+                " # <weight>",
+                " - One storage mutation to check account is recovered by `who`. O(1)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "RecoveryCreated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been set up for an [account]."
+              ]
+            },
+            {
+              "name": "RecoveryInitiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been initiated for lost account by rescuer account.",
+                " [lost, rescuer]"
+              ]
+            },
+            {
+              "name": "RecoveryVouched",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for lost account by rescuer account has been vouched for by sender.",
+                " [lost, rescuer, sender]"
+              ]
+            },
+            {
+              "name": "RecoveryClosed",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for lost account by rescuer account has been closed.",
+                " [lost, rescuer]"
+              ]
+            },
+            {
+              "name": "AccountRecovered",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Lost account has been successfully recovered by rescuer account.",
+                " [lost, rescuer]"
+              ]
+            },
+            {
+              "name": "RecoveryRemoved",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been removed for an [account]."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ConfigDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a recovery configuration."
+              ]
+            },
+            {
+              "name": "FriendDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x00203d88792d00000000000000000000",
+              "docs": [
+                " The amount of currency needed per additional user when creating a recovery configuration."
+              ]
+            },
+            {
+              "name": "MaxFriends",
+              "type": "u16",
+              "value": "0x0900",
+              "docs": [
+                " The maximum amount of friends allowed in a recovery configuration."
+              ]
+            },
+            {
+              "name": "RecoveryDeposit",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for starting a recovery."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotAllowed",
+              "docs": [
+                " User is not allowed to make a call on behalf of this account"
+              ]
+            },
+            {
+              "name": "ZeroThreshold",
+              "docs": [
+                " Threshold must be greater than zero"
+              ]
+            },
+            {
+              "name": "NotEnoughFriends",
+              "docs": [
+                " Friends list must be greater than zero and threshold"
+              ]
+            },
+            {
+              "name": "MaxFriends",
+              "docs": [
+                " Friends list must be less than max friends"
+              ]
+            },
+            {
+              "name": "NotSorted",
+              "docs": [
+                " Friends list must be sorted and free of duplicates"
+              ]
+            },
+            {
+              "name": "NotRecoverable",
+              "docs": [
+                " This account is not set up for recovery"
+              ]
+            },
+            {
+              "name": "AlreadyRecoverable",
+              "docs": [
+                " This account is already set up for recovery"
+              ]
+            },
+            {
+              "name": "AlreadyStarted",
+              "docs": [
+                " A recovery process has already started for this account"
+              ]
+            },
+            {
+              "name": "NotStarted",
+              "docs": [
+                " A recovery process has not started for this rescuer"
+              ]
+            },
+            {
+              "name": "NotFriend",
+              "docs": [
+                " This account is not a friend who can vouch"
+              ]
+            },
+            {
+              "name": "DelayPeriod",
+              "docs": [
+                " The friend must wait until the delay period to vouch for this recovery"
+              ]
+            },
+            {
+              "name": "AlreadyVouched",
+              "docs": [
+                " This user has already vouched for this recovery"
+              ]
+            },
+            {
+              "name": "Threshold",
+              "docs": [
+                " The threshold for recovering this account has not been met"
+              ]
+            },
+            {
+              "name": "StillActive",
+              "docs": [
+                " There are still active recovery attempts that need to be closed"
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " There was an overflow in a calculation"
+              ]
+            },
+            {
+              "name": "AlreadyProxy",
+              "docs": [
+                " This account is already set up for recovery"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Vesting",
+          "storage": {
+            "prefix": "Vesting",
+            "items": [
+              {
+                "name": "Vesting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "VestingInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information regarding the vesting of a given account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vest",
+              "args": [],
+              "docs": [
+                " Unlock any vested funds of the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have funds still",
+                " locked under this module.",
+                "",
+                " Emits either `VestingCompleted` or `VestingUpdated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 2 Reads, 2 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, [Sender Account]",
+                "     - Writes: Vesting Storage, Balances Locks, [Sender Account]",
+                " - Benchmark:",
+                "     - Unlocked: 48.76 + .048 * l µs (min square analysis)",
+                "     - Locked: 44.43 + .284 * l µs (min square analysis)",
+                " - Using 50 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vest_other",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Unlock any vested funds of a `target` account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `target`: The account whose vested funds should be unlocked. Must have funds still",
+                " locked under this module.",
+                "",
+                " Emits either `VestingCompleted` or `VestingUpdated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 3 Reads, 3 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account",
+                " - Benchmark:",
+                "     - Unlocked: 44.3 + .294 * l µs (min square analysis)",
+                "     - Locked: 48.16 + .103 * l µs (min square analysis)",
+                " - Using 50 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vested_transfer",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "schedule",
+                  "type": "VestingInfo"
+                }
+              ],
+              "docs": [
+                " Create a vested transfer.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `target`: The account that should be transferred the vested funds.",
+                " - `amount`: The amount of funds to transfer and will be vested.",
+                " - `schedule`: The vesting schedule attached to the transfer.",
+                "",
+                " Emits `VestingCreated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 3 Reads, 3 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
+                " - Benchmark: 100.3 + .365 * l µs (min square analysis)",
+                " - Using 100 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_vested_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "schedule",
+                  "type": "VestingInfo"
+                }
+              ],
+              "docs": [
+                " Force a vested transfer.",
+                "",
+                " The dispatch origin for this call must be _Root_.",
+                "",
+                " - `source`: The account whose funds should be transferred.",
+                " - `target`: The account that should be transferred the vested funds.",
+                " - `amount`: The amount of funds to transfer and will be vested.",
+                " - `schedule`: The vesting schedule attached to the transfer.",
+                "",
+                " Emits `VestingCreated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 4 Reads, 4 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account, Source Account",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account, Source Account",
+                " - Benchmark: 100.3 + .365 * l µs (min square analysis)",
+                " - Using 100 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "VestingUpdated",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " The amount vested has been updated. This could indicate more funds are available. The",
+                " balance given is the amount which is left unvested (and thus locked). ",
+                " [account, unvested]"
+              ]
+            },
+            {
+              "name": "VestingCompleted",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An [account] has become fully vested. No further vesting can happen."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "MinVestedTransfer",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount to be transferred to create a new vesting schedule."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotVesting",
+              "docs": [
+                " The account given is not vesting."
+              ]
+            },
+            {
+              "name": "ExistingVestingSchedule",
+              "docs": [
+                " An existing vesting schedule already exists for this account that cannot be clobbered."
+              ]
+            },
+            {
+              "name": "AmountLow",
+              "docs": [
+                " Amount being transferred is too low to create a vesting schedule."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Scheduler",
+          "storage": {
+            "prefix": "Scheduler",
+            "items": [
+              {
+                "name": "Agenda",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BlockNumber",
+                    "value": "Vec<Option<Scheduled>>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Items to be executed, indexed by the block number that they should be executed on."
+                ]
+              },
+              {
+                "name": "Lookup",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Bytes",
+                    "value": "TaskAddress",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Lookup from identity to the block number and index of the task."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " New networks start with last version."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "schedule",
+              "args": [
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Anonymously schedule a task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 22.29 + .126 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda",
+                "     - Write: Agenda",
+                " - Will use base weight of 25 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel",
+              "args": [
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "index",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Cancel an anonymously scheduled task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 22.15 + 2.869 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 100 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_named",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Schedule a named task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 29.6 + .159 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda, Lookup",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 35 which should be good for more than 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_named",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Cancel a named scheduled task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 24.91 + 2.907 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda, Lookup",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 100 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_after",
+              "args": [
+                {
+                  "name": "after",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Anonymously schedule a task after a delay.",
+                "",
+                " # <weight>",
+                " Same as [`schedule`].",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_named_after",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "after",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Schedule a named task after a delay.",
+                "",
+                " # <weight>",
+                " Same as [`schedule_named`].",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Scheduled",
+              "args": [
+                "BlockNumber",
+                "u32"
+              ],
+              "docs": [
+                " Scheduled some task. [when, index]"
+              ]
+            },
+            {
+              "name": "Canceled",
+              "args": [
+                "BlockNumber",
+                "u32"
+              ],
+              "docs": [
+                " Canceled some task. [when, index]"
+              ]
+            },
+            {
+              "name": "Dispatched",
+              "args": [
+                "TaskAddress",
+                "Option<Bytes>",
+                "DispatchResult"
+              ],
+              "docs": [
+                " Dispatched some task. [task, id, result]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "FailedToSchedule",
+              "docs": [
+                " Failed to schedule a call"
+              ]
+            },
+            {
+              "name": "FailedToCancel",
+              "docs": [
+                " Failed to cancel a scheduled call"
+              ]
+            },
+            {
+              "name": "TargetBlockNumberInPast",
+              "docs": [
+                " Given target block number is in the past."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Proxy",
+          "storage": {
+            "prefix": "Proxy",
+            "items": [
+              {
+                "name": "Proxies",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(Vec<ProxyDefinition>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " The set of account proxies. Maps the account which has delegated to the accounts",
+                  " which are being delegated to, together with the amount held on deposit."
+                ]
+              },
+              {
+                "name": "Announcements",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(Vec<ProxyAnnouncement>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " The announcements made by the proxy (key)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "proxy",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "force_proxy_type",
+                  "type": "Option<ProxyType>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Dispatch the given `call` from an account that the sender is authorised for through",
+                " `add_proxy`.",
+                "",
+                " Removes any corresponding announcement(s).",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
+                " - `call`: The call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "add_proxy",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Register a proxy account for the sender that is able to make calls on its behalf.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `proxy`: The account that the `caller` would like to make a proxy.",
+                " - `proxy_type`: The permissions allowed for this proxy account.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxy",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Unregister a proxy account for the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `proxy`: The account that the `caller` would like to remove as a proxy.",
+                " - `proxy_type`: The permissions currently enabled for the removed proxy account.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxies",
+              "args": [],
+              "docs": [
+                " Unregister all proxy accounts for the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " WARNING: This may be called on accounts created by `anonymous`, however if done, then",
+                " the unreserved fees will be inaccessible. **All access to this account will be lost.**",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "anonymous",
+              "args": [
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "index",
+                  "type": "u16"
+                }
+              ],
+              "docs": [
+                " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and",
+                " initialize it with a proxy of `proxy_type` for `origin` sender.",
+                "",
+                " Requires a `Signed` origin.",
+                "",
+                " - `proxy_type`: The type of the proxy that the sender will be registered as over the",
+                " new account. This will almost always be the most permissive `ProxyType` possible to",
+                " allow for maximum flexibility.",
+                " - `index`: A disambiguation index, in case this is called multiple times in the same",
+                " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just",
+                " want to use `0`.",
+                " - `delay`: The announcement period required of the initial proxy. Will generally be",
+                " zero.",
+                "",
+                " Fails with `Duplicate` if this has already been called in this transaction, from the",
+                " same sender, with the same parameters.",
+                "",
+                " Fails if there are insufficient funds to pay for deposit.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>",
+                " TODO: Might be over counting 1 read"
+              ]
+            },
+            {
+              "name": "kill_anonymous",
+              "args": [
+                {
+                  "name": "spawner",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "index",
+                  "type": "u16"
+                },
+                {
+                  "name": "height",
+                  "type": "Compact<BlockNumber>"
+                },
+                {
+                  "name": "ext_index",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Removes a previously spawned anonymous proxy.",
+                "",
+                " WARNING: **All access to this account will be lost.** Any funds held in it will be",
+                " inaccessible.",
+                "",
+                " Requires a `Signed` origin, and the sender account must have been created by a call to",
+                " `anonymous` with corresponding parameters.",
+                "",
+                " - `spawner`: The account that originally called `anonymous` to create this account.",
+                " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.",
+                " - `proxy_type`: The proxy type originally passed to `anonymous`.",
+                " - `height`: The height of the chain when the call to `anonymous` was processed.",
+                " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.",
+                "",
+                " Fails with `NoPermission` in case the caller is not a previously created anonymous",
+                " account whose `anonymous` call has corresponding parameters.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "announce",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Publish the hash of a proxy-call that will be made in the future.",
+                "",
+                " This must be called some number of blocks before the corresponding `proxy` is attempted",
+                " if the delay associated with the proxy relationship is greater than zero.",
+                "",
+                " No more than `MaxPending` announcements may be made at any one time.",
+                "",
+                " This will take a deposit of `AnnouncementDepositFactor` as well as",
+                " `AnnouncementDepositBase` if there are no other pending announcements.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a proxy of `real`.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `call_hash`: The hash of the call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_announcement",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Remove a given announcement.",
+                "",
+                " May be called by a proxy account to remove a call they previously announced and return",
+                " the deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `call_hash`: The hash of the call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_announcement",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Remove the given announcement of a delegate.",
+                "",
+                " May be called by a target (proxied) account to remove a call that one of their delegates",
+                " (`delegate`) has announced they want to execute. The deposit is returned.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `delegate`: The account that previously announced the call.",
+                " - `call_hash`: The hash of the call to be made.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "proxy_announced",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "force_proxy_type",
+                  "type": "Option<ProxyType>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Dispatch the given `call` from an account that the sender is authorised for through",
+                " `add_proxy`.",
+                "",
+                " Removes any corresponding announcement(s).",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
+                " - `call`: The call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ProxyExecuted",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A proxy was executed correctly, with the given [result]."
+              ]
+            },
+            {
+              "name": "AnonymousCreated",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "ProxyType",
+                "u16"
+              ],
+              "docs": [
+                " Anonymous account has been created by new proxy with given",
+                " disambiguation index and proxy type. [anonymous, who, proxy_type, disambiguation_index]"
+              ]
+            },
+            {
+              "name": "Announced",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Hash"
+              ],
+              "docs": [
+                " An announcement was placed to make a call in the future. [real, proxy, call_hash]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProxyDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f09e544c3900000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a proxy."
+              ]
+            },
+            {
+              "name": "ProxyDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x0060aa7714b400000000000000000000",
+              "docs": [
+                " The amount of currency needed per proxy added."
+              ]
+            },
+            {
+              "name": "MaxProxies",
+              "type": "u16",
+              "value": "0x2000",
+              "docs": [
+                " The maximum amount of proxies allowed for a single account."
+              ]
+            },
+            {
+              "name": "MaxPending",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " `MaxPending` metadata shadow."
+              ]
+            },
+            {
+              "name": "AnnouncementDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f09e544c3900000000000000000000",
+              "docs": [
+                " `AnnouncementDepositBase` metadata shadow."
+              ]
+            },
+            {
+              "name": "AnnouncementDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x00c054ef286801000000000000000000",
+              "docs": [
+                " `AnnouncementDepositFactor` metadata shadow."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "TooMany",
+              "docs": [
+                " There are too many proxies registered or too many announcements pending."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Proxy registration not found."
+              ]
+            },
+            {
+              "name": "NotProxy",
+              "docs": [
+                " Sender is not a proxy of the account to be proxied."
+              ]
+            },
+            {
+              "name": "Unproxyable",
+              "docs": [
+                " A call which is incompatible with the proxy type's filter was attempted."
+              ]
+            },
+            {
+              "name": "Duplicate",
+              "docs": [
+                " Account is already a proxy."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " Call may not be made by proxy because it may escalate its privileges."
+              ]
+            },
+            {
+              "name": "Unannounced",
+              "docs": [
+                " Announcement, if made at all, was made too recently."
+              ]
+            }
+          ]
+        },
+        {
+          "name": "Multisig",
+          "storage": {
+            "prefix": "Multisig",
+            "items": [
+              {
+                "name": "Multisigs",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "[u8;32]",
+                    "value": "Multisig",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of open multisig operations."
+                ]
+              },
+              {
+                "name": "Calls",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "[u8;32]",
+                    "value": "(OpaqueCall,AccountId,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": []
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "as_multi_threshold_1",
+              "args": [
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Immediately dispatch a multi-signature call using a single approval from the caller.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `other_signatories`: The accounts (other than the sender) who are part of the",
+                " multi-signature, but do not participate in the approval process.",
+                " - `call`: The call to be executed.",
+                "",
+                " Result is equivalent to the dispatched result.",
+                "",
+                " # <weight>",
+                " O(Z + C) where Z is the length of the call and C its execution weight.",
+                " -------------------------------",
+                " - Base Weight: 33.72 + 0.002 * Z µs",
+                " - DB Weight: None",
+                " - Plus Call Weight",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call",
+                  "type": "OpaqueCall"
+                },
+                {
+                  "name": "store_call",
+                  "type": "bool"
+                },
+                {
+                  "name": "max_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " If there are enough, then dispatch the call.",
+                "",
+                " Payment: `DepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `DepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call`: The call to be executed.",
+                "",
+                " NOTE: Unless this is the final approval, you will generally want to use",
+                " `approve_as_multi` instead, since it only requires a hash of the call.",
+                "",
+                " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise",
+                " on success, result is `Ok` and the result from the interior call, if it was executed,",
+                " may be found in the deposited `MultisigExecuted` event.",
+                "",
+                " # <weight>",
+                " - `O(S + Z + Call)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - The weight of the `call`.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `DepositBase + threshold * DepositFactor`.",
+                " -------------------------------",
+                " - Base Weight:",
+                "     - Create:          41.89 + 0.118 * S + .002 * Z µs",
+                "     - Create w/ Store: 53.57 + 0.119 * S + .003 * Z µs",
+                "     - Approve:         31.39 + 0.136 * S + .002 * Z µs",
+                "     - Complete:        39.94 + 0.26  * S + .002 * Z µs",
+                " - DB Weight:",
+                "     - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)",
+                "     - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)",
+                " - Plus Call Weight",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                },
+                {
+                  "name": "max_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " Payment: `DepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `DepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " NOTE: If this is the final approval, you will want to use `as_multi` instead.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `DepositBase + threshold * DepositFactor`.",
+                " ----------------------------------",
+                " - Base Weight:",
+                "     - Create: 44.71 + 0.088 * S",
+                "     - Approve: 31.48 + 0.116 * S",
+                " - DB Weight:",
+                "     - Read: Multisig Storage, [Caller Account]",
+                "     - Write: Multisig Storage, [Caller Account]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "timepoint",
+                  "type": "Timepoint"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                }
+              ],
+              "docs": [
+                " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously",
+                " for this operation will be unreserved on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `timepoint`: The timepoint (block number and transaction index) of the first approval",
+                " transaction for this dispatch.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - One event.",
+                " - I/O: 1 read `O(S)`, one remove.",
+                " - Storage: removes one item.",
+                " ----------------------------------",
+                " - Base Weight: 36.07 + 0.124 * S",
+                " - DB Weight:",
+                "     - Read: Multisig Storage, [Caller Account], Refund Account, Calls",
+                "     - Write: Multisig Storage, [Caller Account], Refund Account, Calls",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewMultisig",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A new multisig operation has begun. [approving, multisig, call_hash]"
+              ]
+            },
+            {
+              "name": "MultisigApproval",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A multisig operation has been approved by someone. [approving, timepoint, multisig, call_hash]"
+              ]
+            },
+            {
+              "name": "MultisigExecuted",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A multisig operation has been executed. [approving, timepoint, multisig, call_hash]"
+              ]
+            },
+            {
+              "name": "MultisigCancelled",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A multisig operation has been cancelled. [cancelling, timepoint, multisig, call_hash]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "MinimumThreshold",
+              "docs": [
+                " Threshold must be 2 or greater."
+              ]
+            },
+            {
+              "name": "AlreadyApproved",
+              "docs": [
+                " Call is already approved by this signatory."
+              ]
+            },
+            {
+              "name": "NoApprovalsNeeded",
+              "docs": [
+                " Call doesn't need any (more) approvals."
+              ]
+            },
+            {
+              "name": "TooFewSignatories",
+              "docs": [
+                " There are too few signatories in the list."
+              ]
+            },
+            {
+              "name": "TooManySignatories",
+              "docs": [
+                " There are too many signatories in the list."
+              ]
+            },
+            {
+              "name": "SignatoriesOutOfOrder",
+              "docs": [
+                " The signatories were provided out of order; they should be ordered."
+              ]
+            },
+            {
+              "name": "SenderInSignatories",
+              "docs": [
+                " The sender was contained in the other signatories; it shouldn't be."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Multisig operation not found when attempting to cancel."
+              ]
+            },
+            {
+              "name": "NotOwner",
+              "docs": [
+                " Only the account that originally created the multisig is able to cancel it."
+              ]
+            },
+            {
+              "name": "NoTimepoint",
+              "docs": [
+                " No timepoint was given, yet the multisig operation is already underway."
+              ]
+            },
+            {
+              "name": "WrongTimepoint",
+              "docs": [
+                " A different timepoint was given to the multisig operation that is underway."
+              ]
+            },
+            {
+              "name": "UnexpectedTimepoint",
+              "docs": [
+                " A timepoint was given, yet no multisig operation is underway."
+              ]
+            },
+            {
+              "name": "WeightTooLow",
+              "docs": [
+                " The maximum weight information provided was too low."
+              ]
+            },
+            {
+              "name": "AlreadyStored",
+              "docs": [
+                " The data to be stored is already stored."
+              ]
+            }
+          ]
+        }
+      ],
+      "extrinsic": {
+        "version": 4,
+        "signedExtensions": [
+          "CheckSpecVersion",
+          "CheckTxVersion",
+          "CheckGenesis",
+          "CheckMortality",
+          "CheckNonce",
+          "CheckWeight",
+          "ChargeTransactionPayment"
+        ]
+      }
+    }
+  }
+}
diff --git a/tests/meta/v12.hex b/tests/meta/v12.hex
new file mode 100644
--- /dev/null
+++ b/tests/meta/v12.hex
@@ -0,0 +1,1 @@
+0x6d6574610c981853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e0503106e6f6465387375627374726174652d6e6f64650a000000090100000100000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a04000000d2bc9897eed08f1502000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b01000000020000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978087538042a14a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e34f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e0000011042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304000c5d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207468617420696e636c756465732074686520565246206f75747075742067656e6572617465645101206174207468697320626c6f636b2e2054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000485012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e2067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c75363420c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e041c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657844690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e052042616c616e636573012042616c616e6365731034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d657869737406485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000768456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173651814526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e01043c7375626d69745f756e7369676e65640820736f6c7574696f6e64526177536f6c7574696f6e3c436f6d706163744f663c543e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e011838536f6c7574696f6e53746f726564043c456c656374696f6e436f6d7075746510b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656404244163636f756e74496404290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656404244163636f756e74496404250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e0c34556e7369676e6564506861736538543a3a426c6f636b4e756d62657210320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210320000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c10a0860100084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e0c6850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e081c5374616b696e67011c5374616b696e677830486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f7250726566730008000004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0031012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6053657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040510cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076362e302e3020666f72206e6577206e6574776f726b732e015c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5465012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d2c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a1d01202d20526561643a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e744572612c204c6f636b732c2042616c616e63654f662053746173682ca4202d2057726974653a204c6f636b732c204c65646765722c2042616c616e63654f662053746173682c28203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533327c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766520205570646174653a2501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657218204b696c6c3a4501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e8c2020204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173685101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732cb02020205b4f726967696e204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173682e74202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d34205765696768743a204f284e2984207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657870110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d73290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e38e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533323c61012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34e42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e490120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e2054686520636f6e74726f6c6c657298206163636f756e742073686f756c6420726570726573656e7420612076616c696461746f722e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d1852657761726408244163636f756e7449641c42616c616e636504fc20546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d3c5374616b696e67456c656374696f6e0004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c753332101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e50344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e091c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578086501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e0a2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001482050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e047d012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c820412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c2069735f6f6b5c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d20556e6c6f636b656404244163636f756e74496404bc20416e205c5b6163636f756e745c5d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000004b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e8c2056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e204f766572666c6f7704a420416e20756e657870656374656420696e7465676572206f766572666c6f77206f636375727265642e24556e646572666c6f7704a820416e20756e657870656374656420696e746567657220756e646572666c6f77206f636375727265642e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e38496e76616c69645769746e6573730490205468652070726f7669646564207769746e65737320646174612069732077726f6e672e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0b1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0c48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0d24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e550120202053696d696c617220746f205b6072656d6f76655f6d656d62657273605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c794d01202020757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e4000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c753332100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e0e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e0f1c4772616e647061013c4772616e64706146696e616c6974791814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e10205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d143050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1124436f6e7472616374730124436f6e747261637473183c43757272656e745363686564756c6501002c5363686564756c653c543e450a000000000004000000000200000001000080000000100000000010000000010000200000001f060000d66a0200dd84030026180000bd1c0000430b000003170000ae2800009c000000dd69010063e00200300700000706000065070000b10500006e180000002800006905000072deae08f0070000dc070000710a00006a080000a507000096070000d1070000770900003e09000075090000d809000082090000bc090000120900003c09000072090000dc090000f7080000e108000062090000162000006b1d00002e2000002c1b0000fe080000000900000f090000a7090000f1090000ba090000bb09000065090000d8b82800000000009e9828000000000016902700000000004c705700000000004cc8270000000000e4bc270000000000e8d1270000000000a0685b0000000000484f2700000000009e7627000000000000f45100000000004cab120000000000184a700000000000140100000000000000cd460000000000fc02000000000000d0b570270000000013200000000000007821da3100000000e0200000000000009a120000000000000482b10900000000e03463000000000038d7900000000000de67d00700000000840900000000000006186e000000000016935d1200000000da02000000000000eaced408000000003a240e0200000000e705000000000000fc41d50a00000000d48e9309000000002d0f0000000000003a4225090000000047020000000000002303000000000000ba7c962300000000a5210000000000006d020000000000005403000000000000e50b00000000000026922400000000006110000000000000a4122600000000001d0d000000000000520e2200000000001a0600000000000020222200000000001a0600000000000044b13c000000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e4c5072656661625761736d4d6f64756c653c543e0004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650100505665633c44656c65746564436f6e74726163743e040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7359012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f696e697469616c697a65602e01143c7570646174655f7363686564756c6504207363686564756c652c5363686564756c653c543e18b4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e003d0120546865207363686564756c6527732076657273696f6e2063616e6e6f74206265206c657373207468616e207468652076657273696f6e206f66207468652073746f726564207363686564756c652e2d012049662061207363686564756c6520646f6573206e6f74206368616e67652074686520696e737472756374696f6e2077656967687473207468652076657273696f6e20646f6573206e6f743901206e65656420746f20626520696e637265617365642e205468657265666f726520776520616c6c6f772073746f72696e672061207363686564756c65207468617420686173207468652073616d656c2076657273696f6e206173207468652073746f726564206f6e652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f64651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10636f64651c5665633c75383e10646174611c5665633c75383e1073616c741c5665633c75383e54350120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e673820736f6d652062616c616e63652e000501205468697320697320746865206f6e6c792066756e6374696f6e20746861742063616e206465706c6f79206e657720636f646520746f2074686520636861696e2e0034202320506172616d6574657273006101202a2060656e646f776d656e74603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e1901202a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722ed0202a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef8202a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3501202a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a007501202d2054686520737570706c6965642060636f64656020697320696e737472756d656e7465642c206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e5d01202d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e4d01202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ed4202d205468652060656e646f776d656e7460206973207472616e7366657272656420746f20746865206e6577206163636f756e742e4501202d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e74696174651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e1073616c741c5665633c75383e14010120496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e00390120546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654d0120636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e61727948206d75737420626520737570706c6965642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e244d0120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b39012070726f6475636572206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e004d0120496e2063617365206f662061207375636365737366756c206576696374696f6e206e6f20666565732061726520636861726765642066726f6d207468652073656e6465722e20486f77657665722c20746865490120726577617264206973206361707065642062792074686520746f74616c20616d6f756e74206f662072656e742074686174207761732070617965642062792074686520636f6e7472616374207768696c65382069742077617320616c6976652e00550120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c205b604572726f723a3a436f6e74726163744e6f74457669637461626c65605dec2069732072657475726e656420616e64207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e012030496e7374616e74696174656408244163636f756e744964244163636f756e74496404390120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205c5b6465706c6f7965722c20636f6e74726163745c5d1c4576696374656404244163636f756e74496404190120436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e205c5b636f6e74726163745c5d285465726d696e6174656408244163636f756e744964244163636f756e74496430e820436f6e747261637420686173206265656e207465726d696e6174656420776974686f7574206c656176696e67206120746f6d6273746f6e652e68205c5b636f6e74726163742c2062656e65666963696172795c5d0024202320506172616d7300c0202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420776173207465726d696e617465642e3101202d206062656e6566696369617279603a20546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e63652e001c2023204e6f7465002d0120546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420776974686f7574206120746f6d6273746f6e6520616e6420656d697474696e67ac2074686973206576656e742069732062792063616c6c696e6720607365616c5f7465726d696e617465602e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524bc20526573746f726174696f6e206f66206120636f6e747261637420686173206265656e207375636365737366756c2eb8205c5b726573746f7265722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655c5d0024202320506172616d7300d0202d2060726573746f726572603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e74726163742ebc202d206064657374603a204163636f756e74204944206f662074686520726573746f72656420636f6e74726163742ecc202d2060636f64655f68617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163742ef4202d206072656e745f616c6c6f77616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e74726163742e28436f646553746f72656404104861736804f020436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e205c5b636f64655f686173685c5d3c5363686564756c6555706461746564040c75333218c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e30205c5b76657273696f6e5c5d0024202320506172616d7300d0202d206076657273696f6e603a205468652076657273696f6e206f6620746865206e65776c7920736574207363686564756c652e3c436f6e7472616374456d697474656408244163636f756e7449641c5665633c75383e20a0204120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e4c205c5b636f6e74726163742c20646174615c5d0024202320506172616d7300cc202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420656d697474656420746865206576656e742e3101202d206064617461603a204461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e7472616374b82020202020202020202020636f6d70696c6174696f6e206973206e656564656420746f206465636f64652069742e2c436f646552656d6f76656404104861736810b0204120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e38205c5b636f64655f686173685c5d00550120546869732068617070656e73207768656e20746865206c61737420636f6e747261637420746861742075736573207468697320636f64652068617368207761732072656d6f766564206f7220657669637465642e304c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000f0e8857a9c0200000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e484465706f736974506572436f6e74726163743042616c616e63654f663c543e4000f0e8857a9c02000000000000000000202101205468652062616c616e636520657665727920636f6e7472616374206e6565647320746f206465706f73697420746f207374617920616c69766520696e646566696e6974656c792e005101205468697320697320646966666572656e742066726f6d20746865205b6053656c663a3a546f6d6273746f6e654465706f736974605d20626563617573652074686973206f6e6c79206e6565647320746f2062654501206465706f7369746564207768696c652074686520636f6e747261637420697320616c6976652e20436f73747320666f72206164646974696f6e616c2073746f726167652061726520616464656420746f402074686973206261736520636f73742e006d01205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465642062797101206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f20736176652072656e742e544465706f73697450657253746f72616765427974653042616c616e63654f663c543e400060defb740500000000000000000000185501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206279746520746f207374617920616c69766520696e646566696e6974656c792e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e544465706f73697450657253746f726167654974656d3042616c616e63654f663c543e4000f0ab75a40d000000000000000000000c5501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206974656d20746f207374617920616c69766520696e646566696e6974656c792e00310120497420776f726b73207468652073616d65206173205b6053656c663a3a4465706f73697450657253746f7261676542797465605d2062757420666f722073746f72616765206974656d732e3052656e744672616374696f6e1c50657262696c6c1085040000140d0120546865206672616374696f6e206f6620746865206465706f73697420746861742073686f756c6420626520757365642061732072656e742070657220626c6f636b2e005101205768656e206120636f6e7472616374206861736e277420656e6f7567682062616c616e6365206465706f736974656420746f207374617920616c69766520696e646566696e6974656c79206974206e65656473450120746f207061792070657220626c6f636b20666f72207468652073746f7261676520697420636f6e73756d65732074686174206973206e6f7420636f766572656420627920746865206465706f7369742e590120546869732064657465726d696e657320686f77206869676820746869732072656e74207061796d656e742069732070657220626c6f636b2061732061206672616374696f6e206f6620746865206465706f7369742e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e204d617844657074680c753332102000000004dc20546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e304d617856616c756553697a650c753332100040000004010120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520616e64206576656e74207061796c6f616420696e2062797465732e4844656c6574696f6e517565756544657074680c75333210f000000004f420546865206d6178696d756d206e756d626572206f6620747269657320746861742063616e2062652071756575656420666f722064656c6574696f6e2e4c44656c6574696f6e5765696768744c696d6974185765696768742000d0ed902e000000044d0120546865206d6178696d756d20616d6f756e74206f662077656967687420746861742063616e20626520636f6e73756d65642070657220626c6f636b20666f72206c617a7920747269652072656d6f76616c2e2c4d6178436f646553697a650c75333210000002000c5d0120546865206d6178696d756d206c656e677468206f66206120636f6e747261637420636f646520696e2062797465732e2054686973206c696d6974206170706c69657320746f2074686520696e737472756d656e74656451012076657273696f6e206f662074686520636f64652e205468657265666f72652060696e7374616e74696174655f776974685f636f6465602063616e206661696c206576656e207768656e20737570706c79696e679c2061207761736d2062696e6172792062656c6f772074686973206d6178696d756d2073697a652e7458496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e2c4e6f7443616c6c61626c650831012054686520636f6e74726163742074686174207761732063616c6c656420697320656974686572206e6f20636f6e747261637420617420616c6c20286120706c61696e206163636f756e74294c206f72206973206120746f6d6273746f6e652e30436f6465546f6f4c617267650841012054686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e20746865482063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c6172676504d0205468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e405265656e7472616e636544656e6965640c41012054686520616374696f6e20706572666f726d6564206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420706572666f726d696e6720697420697320616c72656164793d01206f6e207468652063616c6c20737461636b2e2054686f736520616374696f6e732061726520636f6e74726163742073656c66206465737472756374696f6e20616e6420726573746f726174696f6e40206f66206120746f6d6273746f6e652e40496e707574416c72656164795265616404210120607365616c5f696e70757460207761732063616c6c65642074776963652066726f6d207468652073616d6520636f6e747261637420657865637574696f6e20636f6e746578742e5052616e646f6d5375626a656374546f6f4c6f6e6704dc20546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730421012054686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e3c4475706c6963617465546f706963730431012054686520746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e74736020636f6e7461696e73206174206c65617374206f6e65206475706c69636174652e404e6f436861696e457874656e73696f6e0c49012054686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c7473510120696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e747261637473342069732072656a65637465642e4444656c6574696f6e517565756546756c6c1405012052656d6f76616c206f66206120636f6e7472616374206661696c65642062656361757365207468652064656c6574696f6e2071756575652069732066756c6c2e00550120546869732063616e2068617070656e207768656e206569746865722063616c6c696e67205b6050616c6c65743a3a636c61696d5f737572636861726765605d206f7220607365616c5f7465726d696e617465602e5101205468652071756575652069732066696c6c65642062792064656c6574696e6720636f6e74726163747320616e6420656d7074696564206279206120666978656420616d6f756e74206561636820626c6f636b2e250120547279696e6720616761696e20647572696e6720616e6f7468657220626c6f636b20697320746865206f6e6c792077617920746f207265736f6c766520746869732069737375652e50436f6e74726163744e6f74457669637461626c65102d01204120636f6e747261637420636f756c64206e6f74206265206576696374656420626563617573652069742068617320656e6f7567682062616c616e636520746f207061792072656e742e00250120546869732063616e2062652072657475726e65642066726f6d205b6050616c6c65743a3a636c61696d5f737572636861726765605d20626563617573652074686520746172676574c420636f6e74726163742068617320656e6f7567682062616c616e636520746f2070617920666f72206974732072656e742e4053746f7261676545786861757374656410350120412073746f72616765206d6f64696669636174696f6e20657868617573746564207468652033326269742074797065207468617420686f6c6473207468652073746f726167652073697a652e00350120546869732063616e206569746865722068617070656e207768656e2074686520616363756d756c617465642073746f7261676520696e20627974657320697320746f6f206c61726765206f72ac207768656e206e756d626572206f662073746f72616765206974656d7320697320746f6f206c617267652e444475706c6963617465436f6e747261637404cc204120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e12105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e741320496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e4101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e290101202020616e642045206973206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e1448417574686f72697479446973636f7665727900010000000015204f6666656e63657301204f6666656e636573101c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e4044656665727265644f6666656e6365730100645665633c44656665727265644f6666656e63654f663c543e3e0400086501204465666572726564207265706f72747320746861742068617665206265656e2072656a656374656420627920746865206f6666656e63652068616e646c657220616e64206e65656420746f206265207375626d6974746564442061742061206c617465722074696d652e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e63650c104b696e64384f706171756554696d65536c6f7410626f6f6c10550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e644d0120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e206c617374190120656c656d656e7420696e64696361746573206f6620746865206f6666656e636520776173206170706c69656420287472756529206f7220717565756564202866616c73652974205c5b6b696e642c2074696d65736c6f742c206170706c6965645c5d2e00001628486973746f726963616c0000000000176052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e010000000018204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d204043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e2050616c6c657449642050616c6c657449642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964484d617843616e646964617465496e74616b650c753332100a0000000490204d6178696d756d2063616e64696461746520696e74616b652070657220726f756e642e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000004550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000469012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc601000000000000000000041d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e44284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f736564204f766572666c6f77049c2054686572652077617320616e206f766572666c6f7720696e20612063616c63756c6174696f6e30416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465047c20536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e1b1c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e406820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e2054686519012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e744964041d0120416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d0010404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e7449644501285665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449643d01285665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e690120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00690120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f2061207072652d6578697374696e6761012073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b6520696e746f206163636f756e74c020603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c75313608200004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c39000000000000000000000c310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00690120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c79203136206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b8590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f7765696768741857656967687490590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e4000f01c0adbed0100000000000000000008710120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f2073746f72656c20612064697370617463682063616c6c20666f72206c617465722e344465706f736974466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000455012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e384d61785369676e61746f726965730c75313608640004010120546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420666f72206120676976656e206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e201054697073012054726561737572790810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d1430546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e211841737365747301184173736574731014417373657400010228543a3a41737365744964f8417373657444657461696c733c543a3a42616c616e63652c20543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e00040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7401020228543a3a4173736574496430543a3a4163636f756e74496488417373657442616c616e63653c543a3a42616c616e63652c20543a3a45787472613e02280000000000000000000004e420546865206e756d626572206f6620756e697473206f66206173736574732068656c6420627920616e7920676976656e206163636f756e742e24417070726f76616c7300020228543a3a4173736574496464417070726f76616c4b65793c543a3a4163636f756e7449643eb0417070726f76616c3c543a3a42616c616e63652c204465706f73697442616c616e63654f663c542c20493e3e02040008590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e204d6574616461746101010228543a3a417373657449649441737365744d657461646174613c4465706f73697442616c616e63654f663c542c20493e3e005000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e015c186372656174650c0869644c436f6d706163743c543a3a417373657449643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e636528543a3a42616c616e63654cec2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c02046756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e003020506172616d65746572733a5d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f637265617465100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653469735f73756666696369656e7410626f6f6c2c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e54fc2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e005d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e737d01206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6720607472616e736665725f6f776e657273686970604020616e6420607365745f7465616d602e5901202d20606d61785f7a6f6d62696573603a2054686520746f74616c206e756d626572206f66206163636f756e7473207768696368206d617920686f6c642061737365747320696e207468697320636c61737320796574742068617665206e6f206578697374656e7469616c206465706f7369742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f79080869644c436f6d706163743c543a3a417373657449643e1c7769746e6573733844657374726f795769746e65737338902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00590120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686564206f776e6572206f662074686520617373657420606964602e005101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e671c2061737365742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0078205765696768743a20604f2863202b2070202b206129602077686572653ac4202d206063203d20287769746e6573732e6163636f756e7473202d207769746e6573732e73756666696369656e7473296070202d206073203d207769746e6573732e73756666696369656e74736068202d206061203d207769746e6573732e617070726f76616c7360106d696e740c0869644c436f6d706163743c543a3a417373657449643e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e308c204d696e7420617373657473206f66206120706172746963756c617220636c6173732e003d0120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e1101202d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec8202d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129605901204d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e3c490120526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00dc204261696c732077697468206042616c616e63655a65726f6020696620746865206077686f6020697320616c726561647920646561642e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea4202d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e2d01202d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e00550120456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f77207468653d01206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e003c205765696768743a20604f283129600d01204d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e48d4204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605d01204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b205072696f72202620706f7374207a6f6d6269652d737461747573b8206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662060746172676574602e4c7472616e736665725f6b6565705f616c6976650c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485d01204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605d01204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b205072696f72202620706f7374207a6f6d6269652d737461747573b8206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662060746172676574602e38666f7263655f7472616e73666572100869644c436f6d706163743c543a3a417373657449643e18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e4cb8204d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c202d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e98202d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e5d01202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e645d012060646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d82062656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605d01204d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b205072696f72202620706f7374207a6f6d6269652d737461747573b8206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f66206064657374602e18667265657a65080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528e420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e742e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e8c202d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f283129601074686177080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528d020416c6c6f7720756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e7420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e94202d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f6173736574040869644c436f6d706163743c543a3a417373657449643e24f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296028746861775f6173736574040869644c436f6d706163743c543a3a417373657449643e24c820416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e657273686970080869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652878204368616e676520746865204f776e6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d100869644c436f6d706163743c543a3a417373657449643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530c8204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f28312960307365745f6d65746164617461100869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c73087538407c2053657420746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00dc2046756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a550120604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a820416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c730875382469735f66726f7a656e10626f6f6c38bc20466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e0070204f726967696e206d75737420626520466f7263654f726967696e2e006c20416e79206465706f736974206973206c65667420616c6f6e652e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e005501205765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e0070204f726967696e206d75737420626520466f7263654f726967696e2e006420416e79206465706f7369742069732072657475726e65642e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f61737365745f737461747573200869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e3469735f73756666696369656e7410626f6f6c2469735f66726f7a656e10626f6f6c589c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e5501202d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e7451012076616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f5901206074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e642074687573510120616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e74207374617465242067726f777468292e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c0869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e50310120417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e005c204f726967696e206d757374206265205369676e65642e00510120456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e74590120666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794d0120617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f58206d656574207468652072696768742076616c75652e004901204e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f6648206d616b696e6720746869732063616c6c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e1101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e4d01202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e420616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c080869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004101204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e6430206064656c6567617465602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004d01204f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e6c206163636f756e74206f662074686520617373657420606964602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f28312960447472616e736665725f617070726f766564100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c64657374696e6174696f6e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485101205472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d706172747924206163636f756e742e004d01204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f2074686520207369676e65722e005d012049662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b82072657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e6501202d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64c02066726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e6501202d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb8202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e00a020456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e003c205765696768743a20604f2831296001481c437265617465640c1c41737365744964244163636f756e744964244163636f756e74496404ec20536f6d6520617373657420636c6173732077617320637265617465642e205c5b61737365745f69642c2063726561746f722c206f776e65725c5d184973737565640c1c41737365744964244163636f756e7449641c42616c616e636504ec20536f6d65206173736574732077657265206973737565642e205c5b61737365745f69642c206f776e65722c20746f74616c5f737570706c795c5d2c5472616e73666572726564101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636504f420536f6d65206173736574732077657265207472616e736665727265642e205c5b61737365745f69642c2066726f6d2c20746f2c20616d6f756e745c5d184275726e65640c1c41737365744964244163636f756e7449641c42616c616e636504e420536f6d652061737365747320776572652064657374726f7965642e205c5b61737365745f69642c206f776e65722c2062616c616e63655c5d2c5465616d4368616e676564101c41737365744964244163636f756e744964244163636f756e744964244163636f756e74496404050120546865206d616e6167656d656e74207465616d206368616e676564205c5b61737365745f69642c206973737565722c2061646d696e2c20667265657a65725c5d304f776e65724368616e676564081c41737365744964244163636f756e744964049820546865206f776e6572206368616e676564205c5b61737365745f69642c206f776e65725c5d1846726f7a656e081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f60207761732066726f7a656e2e205c5b61737365745f69642c2077686f5c5d18546861776564081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f6020776173207468617765642e205c5b61737365745f69642c2077686f5c5d2c417373657446726f7a656e041c4173736574496404bc20536f6d65206173736574206061737365745f696460207761732066726f7a656e2e205c5b61737365745f69645c5d2c4173736574546861776564041c4173736574496404bc20536f6d65206173736574206061737365745f69646020776173207468617765642e205c5b61737365745f69645c5d2444657374726f796564041c41737365744964047820416e20617373657420636c617373207761732064657374726f7965642e30466f72636543726561746564081c41737365744964244163636f756e74496404e020536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e205c5b61737365745f69642c206f776e65725c5d2c4d65746164617461536574141c417373657449641c5665633c75383e1c5665633c75383e08753810626f6f6c046101204e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e205c5b61737365745f69642c206e616d652c2073796d626f6c2c20646563696d616c732c2069735f66726f7a656e5c5d3c4d65746164617461436c6561726564041c4173736574496404d4204d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e205c5b61737365745f69645c5d40417070726f7665645472616e73666572101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636508350120284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e9c205c5b61737365745f69642c20736f757263652c2064656c65676174652c20616d6f756e745c5d44417070726f76616c43616e63656c6c65640c1c41737365744964244163636f756e744964244163636f756e74496408f420416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e60205c5b69642c206f776e65722c2064656c65676174655c5d4c5472616e73666572726564417070726f766564141c41737365744964244163636f756e744964244163636f756e744964244163636f756e7449641c42616c616e63650c350120416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e60206279642074686520617070726f766564206064656c6567617465602e94205c5b69642c206f776e65722c2064656c65676174652c2064657374696e6174696f6e5c5d4841737365745374617475734368616e676564041c4173736574496408fc20416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e1c205c5b69645c5d00342842616c616e63654c6f77041901204163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e2c42616c616e63655a65726f04702042616c616e63652073686f756c64206265206e6f6e2d7a65726f2e304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e047820546865206f726967696e206163636f756e742069732066726f7a656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0490204d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e204f766572666c6f7704982041206d696e74206f7065726174696f6e206c65616420746f20616e206f766572666c6f772e284e6f50726f7669646572046501204e6f2070726f7669646572207265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742e2c4261644d65746164617461046020496e76616c6964206d6574616461746120676976656e2e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c644469650439012054686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e220c4d6d72014c4d65726b6c654d6f756e7461696e52616e67650c20526f6f74486173680100583c5420617320436f6e6669673c493e3e3a3a486173688000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301000c75363420000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001060c753634583c5420617320436f6e6669673c493e3e3a3a48617368000400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000231c4c6f7474657279011c4c6f747465727918304c6f7474657279496e64657801000c7533321000000000001c4c6f74746572790000ac4c6f7474657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e747301010530543a3a4163636f756e74496454287533322c205665633c43616c6c496e6465783e29001400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e7401000c7533321000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b6574730001050c75333230543a3a4163636f756e74496400040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100385665633c43616c6c496e6465783e0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e0110286275795f7469636b6574041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c8c204275792061207469636b657420746f20656e74657220746865206c6f74746572792e00050120546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0d0120736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c642420737563636565642e001101204966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c1501207768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75b02073686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c820546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c73041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e181501205365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e00210120546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e29012070726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d420546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279101470726963653042616c616e63654f663c543e186c656e67746838543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721872657065617410626f6f6c28c82053746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e003020506172616d65746572733a00a0202a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e3d01202a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e4901202a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee4202a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174001001012049662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ec020546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e0110384c6f7474657279537461727465640004702041206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640004882041206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208244163636f756e7449641c42616c616e6365046820412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408244163636f756e7449642443616c6c496e64657804682041207469636b657420686173206265656e20626f7567687421082050616c6c657449642050616c6c657449642070792f6c6f74746f00204d617843616c6c730c753332100a0000000020204f766572666c6f77046820416e206f766572666c6f7720686173206f636375727265642e344e6f74436f6e66696775726564048c2041206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f677265737304882041206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e64656404742041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c04ac205468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e6704f420596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c73049420546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564045c204661696c656420746f20656e636f64652063616c6c73241047696c74011047696c74102c5175657565546f74616c730100605665633c287533322c2042616c616e63654f663c543e293e04001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101020c753332a05665633c47696c744269643c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e0004000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c01007841637469766547696c7473546f74616c3c42616c616e63654f663c543e3e9000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e184163746976650001022c416374697665496e646578a50141637469766547696c743c42616c616e63654f663c543e2c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3c0a54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a426c6f636b4e756d6265723e000400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e011024706c6163655f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c753332349420506c61636520612062696420666f7220612067696c7420746f206265206973737565642e004101204f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e003d01202d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069734101207375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265fc20726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e5901202d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c742069735d01206973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed8204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e003820436f6d706c657869746965733ab0202d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c7533321c84205265747261637420612070726576696f75736c7920706c61636564206269642e006101204f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d6163746976652062696470206f662060616d6f756e746020666f7220606475726174696f6e602e00b0202d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ec0202d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574041874617267657450436f6d706163743c5065727175696e74696c6c3e189420536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e0078204f726967696e206d757374206265206041646d696e4f726967696e602e005d01202d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c74734420617420616e79206f6e652074696d652e10746861770414696e64657850436f6d706163743c416374697665496e6465783e1c59012052656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e63652069735d012061646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e84206f662065666665637469766520746f74616c206973737565642066756e64732e006101204f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00bc202d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e011024426964506c616365640c244163636f756e7449643042616c616e63654f663c543e0c753332087c20412062696420776173207375636365737366756c6c7920706c616365642e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d304269645265747261637465640c244163636f756e7449643042616c616e63654f663c543e0c75333208090120412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d2847696c74497373756564102c416374697665496e64657838543a3a426c6f636b4e756d626572244163636f756e7449643042616c616e63654f663c543e0831012041206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e84205c5b20696e6465782c206578706972792c2077686f2c20616d6f756e74205c5d2847696c74546861776564102c416374697665496e646578244163636f756e7449643042616c616e63654f663c543e3042616c616e63654f663c543e088420416e20657870697265642067696c7420686173206265656e207468617765642ed4205c5b20696e6465782c2077686f2c206f726967696e616c5f616d6f756e742c206164646974696f6e616c5f616d6f756e74205c5d1c285175657565436f756e740c753332102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e0c75333210e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e0c75333210f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f6438543a3a426c6f636b4e756d62657210002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a653042616c616e63654f663c543e400000c16ff2862300000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6438543a3a426c6f636b4e756d626572100a00000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b65426964730c753332100a0000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e20404475726174696f6e546f6f536d616c6c04a820546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f42696704f820546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c04e02054686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f770865012054686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e207468726f7567686c207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e045c2047696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572046c204e6f7420746865206f776e6572206f66207468652067696c742e284e6f744578706972656404742047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e6404ac2054686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e25041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74
diff --git a/tests/meta/v12.json b/tests/meta/v12.json
new file mode 100644
--- /dev/null
+++ b/tests/meta/v12.json
@@ -0,0 +1,14399 @@
+{
+  "magicNumber": 1635018093,
+  "metadata": {
+    "v12": {
+      "modules": [
+        {
+          "name": "System",
+          "storage": {
+            "prefix": "System",
+            "items": [
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The full account information for a particular account ID."
+                ]
+              },
+              {
+                "name": "ExtrinsicCount",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total extrinsics count for the current block."
+                ]
+              },
+              {
+                "name": "BlockWeight",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ConsumedWeight"
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The current weight for the block."
+                ]
+              },
+              {
+                "name": "AllExtrinsicsLen",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total length (in bytes) for all extrinsics put together, for the current block."
+                ]
+              },
+              {
+                "name": "BlockHash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BlockNumber",
+                    "value": "Hash",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Map of block numbers to block hashes."
+                ]
+              },
+              {
+                "name": "ExtrinsicData",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Extrinsics data for the current block (maps an extrinsic's index to its data)."
+                ]
+              },
+              {
+                "name": "Number",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The current block number being processed. Set by `execute_block`."
+                ]
+              },
+              {
+                "name": "ParentHash",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Hash of the previous block."
+                ]
+              },
+              {
+                "name": "Digest",
+                "modifier": "Default",
+                "type": {
+                  "plain": "DigestOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Digest of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Events",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<EventRecord>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Events deposited for the current block."
+                ]
+              },
+              {
+                "name": "EventCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EventIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of events in the `Events<T>` list."
+                ]
+              },
+              {
+                "name": "EventTopics",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "Hash",
+                    "value": "Vec<(BlockNumber,EventIndex)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mapping between a topic (represented by T::Hash) and a vector of indexes",
+                  " of events in the `<Events<T>>` list.",
+                  "",
+                  " All topic vectors have deterministic storage locations depending on the topic. This",
+                  " allows light-clients to leverage the changes trie storage tracking mechanism and",
+                  " in case of changes fetch the list of events of interest.",
+                  "",
+                  " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
+                  " the `EventIndex` then in case if the topic has the same contents on the next block",
+                  " no notification will be triggered thus the event might be lost."
+                ]
+              },
+              {
+                "name": "LastRuntimeUpgrade",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "LastRuntimeUpgradeInfo"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."
+                ]
+              },
+              {
+                "name": "UpgradedToU32RefCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."
+                ]
+              },
+              {
+                "name": "UpgradedToTripleRefCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False",
+                  " (default) if not."
+                ]
+              },
+              {
+                "name": "ExecutionPhase",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Phase"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The execution phase of the block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "fill_block",
+              "args": [
+                {
+                  "name": "_ratio",
+                  "type": "Perbill"
+                }
+              ],
+              "docs": [
+                " A dispatch that will fill the block weight up to the given ratio."
+              ]
+            },
+            {
+              "name": "remark",
+              "args": [
+                {
+                  "name": "_remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Make some on-chain remark.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_heap_pages",
+              "args": [
+                {
+                  "name": "pages",
+                  "type": "u64"
+                }
+              ],
+              "docs": [
+                " Set the number of pages in the WebAssembly environment's heap.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - 1 storage write.",
+                " - Base Weight: 1.405 µs",
+                " - 1 write to HEAP_PAGES",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_code",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code.",
+                "",
+                " # <weight>",
+                " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`",
+                " - 1 storage write (codec `O(C)`).",
+                " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).",
+                " - 1 event.",
+                " The weight of this function is dependent on the runtime, but generally this is very expensive.",
+                " We will treat this as a full block.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_code_without_checks",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code without doing any checks of the given `code`.",
+                "",
+                " # <weight>",
+                " - `O(C)` where `C` length of `code`",
+                " - 1 storage write (codec `O(C)`).",
+                " - 1 event.",
+                " The weight of this function is dependent on the runtime. We will treat this as a full block.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_changes_trie_config",
+              "args": [
+                {
+                  "name": "changes_trie_config",
+                  "type": "Option<ChangesTrieConfiguration>"
+                }
+              ],
+              "docs": [
+                " Set the new changes trie configuration.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - 1 storage write or delete (codec `O(1)`).",
+                " - 1 call to `deposit_log`: Uses `append` API, so O(1)",
+                " - Base Weight: 7.218 µs",
+                " - DB Weight:",
+                "     - Writes: Changes Trie, System Digest",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_storage",
+              "args": [
+                {
+                  "name": "items",
+                  "type": "Vec<KeyValue>"
+                }
+              ],
+              "docs": [
+                " Set some items of storage.",
+                "",
+                " # <weight>",
+                " - `O(I)` where `I` length of `items`",
+                " - `I` storage writes (`O(1)`).",
+                " - Base Weight: 0.568 * i µs",
+                " - Writes: Number of items",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_storage",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Vec<Key>"
+                }
+              ],
+              "docs": [
+                " Kill some items from storage.",
+                "",
+                " # <weight>",
+                " - `O(IK)` where `I` length of `keys` and `K` length of one key",
+                " - `I` storage deletions.",
+                " - Base Weight: .378 * i µs",
+                " - Writes: Number of items",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_prefix",
+              "args": [
+                {
+                  "name": "prefix",
+                  "type": "Key"
+                },
+                {
+                  "name": "_subkeys",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Kill all storage items with a key that starts with the given prefix.",
+                "",
+                " **NOTE:** We rely on the Root origin to provide us the number of subkeys under",
+                " the prefix we are removing to accurately calculate the weight of this function.",
+                "",
+                " # <weight>",
+                " - `O(P)` where `P` amount of keys with prefix `prefix`",
+                " - `P` storage deletions.",
+                " - Base Weight: 0.834 * P µs",
+                " - Writes: Number of subkeys + 1",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remark_with_event",
+              "args": [
+                {
+                  "name": "remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Make some on-chain remark and emit event.",
+                "",
+                " # <weight>",
+                " - `O(b)` where b is the length of the remark.",
+                " - 1 event.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ExtrinsicSuccess",
+              "args": [
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic completed successfully. \\[info\\]"
+              ]
+            },
+            {
+              "name": "ExtrinsicFailed",
+              "args": [
+                "DispatchError",
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic failed. \\[error, info\\]"
+              ]
+            },
+            {
+              "name": "CodeUpdated",
+              "args": [],
+              "docs": [
+                " `:code` was updated."
+              ]
+            },
+            {
+              "name": "NewAccount",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A new \\[account\\] was created."
+              ]
+            },
+            {
+              "name": "KilledAccount",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] was reaped."
+              ]
+            },
+            {
+              "name": "Remarked",
+              "args": [
+                "AccountId",
+                "Hash"
+              ],
+              "docs": [
+                " On on-chain remark happened. \\[origin, remark_hash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "BlockWeights",
+              "type": "BlockWeights",
+              "value": "0x00f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a740000004059730700000000000000",
+              "docs": [
+                " Block & extrinsics weights: base values and limits."
+              ]
+            },
+            {
+              "name": "BlockLength",
+              "type": "BlockLength",
+              "value": "0x00003c000000500000005000",
+              "docs": [
+                " The maximum length of a block (in bytes)."
+              ]
+            },
+            {
+              "name": "BlockHashCount",
+              "type": "BlockNumber",
+              "value": "0x60090000",
+              "docs": [
+                " Maximum number of block number to block hash mappings to keep (oldest pruned first)."
+              ]
+            },
+            {
+              "name": "DbWeight",
+              "type": "RuntimeDbWeight",
+              "value": "0x40787d010000000000e1f50500000000",
+              "docs": [
+                " The weight of runtime database operations the runtime can invoke."
+              ]
+            },
+            {
+              "name": "Version",
+              "type": "RuntimeVersion",
+              "value": "0x106e6f6465387375627374726174652d6e6f64650a000000090100000100000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a04000000d2bc9897eed08f1502000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b0100000002000000",
+              "docs": [
+                " Get the chain's current version."
+              ]
+            },
+            {
+              "name": "SS58Prefix",
+              "type": "u8",
+              "value": "0x2a",
+              "docs": [
+                " The designated SS85 prefix of this chain.",
+                "",
+                " This replaces the \"ss58Format\" property declared in the chain spec. Reason is",
+                " that the runtime should know about the prefix in order to make use of it as",
+                " an identifier of the chain."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidSpecName",
+              "docs": [
+                " The name of specification does not match between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "SpecVersionNeedsToIncrease",
+              "docs": [
+                " The specification version is not allowed to decrease between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "FailedToExtractRuntimeVersion",
+              "docs": [
+                " Failed to extract the runtime version from the new runtime.",
+                "",
+                " Either calling `Core_version` or decoding `RuntimeVersion` failed."
+              ]
+            },
+            {
+              "name": "NonDefaultComposite",
+              "docs": [
+                " Suicide called when the account has non-default composite data."
+              ]
+            },
+            {
+              "name": "NonZeroRefCount",
+              "docs": [
+                " There is a non-zero reference count preventing the account from being purged."
+              ]
+            }
+          ],
+          "index": 0
+        },
+        {
+          "name": "Utility",
+          "storage": null,
+          "calls": [
+            {
+              "name": "batch",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Send a batch of dispatch calls.",
+                "",
+                " May be called from any origin.",
+                "",
+                " - `calls`: The calls to be dispatched from the same origin.",
+                "",
+                " If origin is root then call are dispatch without checking origin filter. (This includes",
+                " bypassing `frame_system::Config::BaseCallFilter`).",
+                "",
+                " # <weight>",
+                " - Complexity: O(C) where C is the number of calls to be batched.",
+                " # </weight>",
+                "",
+                " This will return `Ok` in all circumstances. To determine the success of the batch, an",
+                " event is deposited. If a call failed and the batch was interrupted, then the",
+                " `BatchInterrupted` event is deposited, along with the number of successful calls made",
+                " and the error of the failed call. If all were successful, then the `BatchCompleted`",
+                " event is deposited."
+              ]
+            },
+            {
+              "name": "as_derivative",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "u16"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through an indexed pseudonym of the sender.",
+                "",
+                " Filter from origin are passed along. The call will be dispatched with an origin which",
+                " use the same filter as the origin of this call.",
+                "",
+                " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.",
+                " because you expect `proxy` to have been used prior in the call stack and you do not want",
+                " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`",
+                " in the Multisig pallet instead.",
+                "",
+                " NOTE: Prior to version *12, this was called `as_limited_sub`.",
+                "",
+                " The dispatch origin for this call must be _Signed_."
+              ]
+            },
+            {
+              "name": "batch_all",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Send a batch of dispatch calls and atomically execute them.",
+                " The whole transaction will rollback and fail if any of the calls failed.",
+                "",
+                " May be called from any origin.",
+                "",
+                " - `calls`: The calls to be dispatched from the same origin.",
+                "",
+                " If origin is root then call are dispatch without checking origin filter. (This includes",
+                " bypassing `frame_system::Config::BaseCallFilter`).",
+                "",
+                " # <weight>",
+                " - Complexity: O(C) where C is the number of calls to be batched.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BatchInterrupted",
+              "args": [
+                "u32",
+                "DispatchError"
+              ],
+              "docs": [
+                " Batch of dispatches did not complete fully. Index of first failing dispatch given, as",
+                " well as the error. \\[index, error\\]"
+              ]
+            },
+            {
+              "name": "BatchCompleted",
+              "args": [],
+              "docs": [
+                " Batch of dispatches completed fully with no error."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [],
+          "index": 1
+        },
+        {
+          "name": "Babe",
+          "storage": {
+            "prefix": "Babe",
+            "items": [
+              {
+                "name": "EpochIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current epoch index."
+                ]
+              },
+              {
+                "name": "Authorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current epoch authorities."
+                ]
+              },
+              {
+                "name": "GenesisSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Slot"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The slot at which the first epoch actually started. This is 0",
+                  " until the first block of the chain."
+                ]
+              },
+              {
+                "name": "CurrentSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Slot"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current slot number."
+                ]
+              },
+              {
+                "name": "Randomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Randomness"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The epoch randomness for the *current* epoch.",
+                  "",
+                  " # Security",
+                  "",
+                  " This MUST NOT be used for gambling, as it can be influenced by a",
+                  " malicious validator in the short term. It MAY be used in many",
+                  " cryptographic protocols, however, so long as one remembers that this",
+                  " (like everything else on-chain) it is public. For example, it can be",
+                  " used where a number is needed that cannot have been chosen by an",
+                  " adversary, for purposes such as public-coin zero-knowledge proofs."
+                ]
+              },
+              {
+                "name": "PendingEpochConfigChange",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "NextConfigDescriptor"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending epoch configuration change that will be applied when the next epoch is enacted."
+                ]
+              },
+              {
+                "name": "NextRandomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Randomness"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Next epoch randomness."
+                ]
+              },
+              {
+                "name": "NextAuthorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Next epoch authorities."
+                ]
+              },
+              {
+                "name": "SegmentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Randomness under construction.",
+                  "",
+                  " We make a tradeoff between storage accesses and list length.",
+                  " We store the under-construction randomness in segments of up to",
+                  " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.",
+                  "",
+                  " Once a segment reaches this length, we begin the next one.",
+                  " We reset all segments and return to `0` at the beginning of every",
+                  " epoch."
+                ]
+              },
+              {
+                "name": "UnderConstruction",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "Vec<Randomness>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."
+                ]
+              },
+              {
+                "name": "Initialized",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "MaybeRandomness"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Temporary value (cleared at block finalization) which is `Some`",
+                  " if per-block initialization has already been called for current block."
+                ]
+              },
+              {
+                "name": "AuthorVrfRandomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "MaybeRandomness"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Temporary value (cleared at block finalization) that includes the VRF output generated",
+                  " at this block. This field should always be populated during block processing unless",
+                  " secondary plain slots are enabled (which don't contain a VRF output)."
+                ]
+              },
+              {
+                "name": "EpochStart",
+                "modifier": "Default",
+                "type": {
+                  "plain": "(BlockNumber,BlockNumber)"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The block numbers when the last and current epoch have started, respectively `N-1` and",
+                  " `N`.",
+                  " NOTE: We track this is in order to annotate the block number when a given pool of",
+                  " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in",
+                  " slots, which may be skipped, the block numbers may not line up with the slot numbers."
+                ]
+              },
+              {
+                "name": "Lateness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " How late the current block is compared to its parent.",
+                  "",
+                  " This entry is populated as part of block execution and is cleaned up",
+                  " on block finalization. Querying this storage entry outside of block",
+                  " execution context should always yield zero."
+                ]
+              },
+              {
+                "name": "EpochConfig",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BabeEpochConfiguration"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The configuration for the current epoch. Should never be `None` as it is initialized in genesis."
+                ]
+              },
+              {
+                "name": "NextEpochConfig",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BabeEpochConfiguration"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The configuration for the next epoch, `None` if the config will not change",
+                  " (you can fallback to `EpochConfig` instead in that case)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_equivocation",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "BabeEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report authority equivocation/misbehavior. This method will verify",
+                " the equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence will",
+                " be reported."
+              ]
+            },
+            {
+              "name": "report_equivocation_unsigned",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "BabeEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report authority equivocation/misbehavior. This method will verify",
+                " the equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence will",
+                " be reported.",
+                " This extrinsic must be called unsigned and it is expected that only",
+                " block authors will call it (validated in `ValidateUnsigned`), as such",
+                " if the block author is defined it will be defined as the equivocation",
+                " reporter."
+              ]
+            },
+            {
+              "name": "plan_config_change",
+              "args": [
+                {
+                  "name": "config",
+                  "type": "NextConfigDescriptor"
+                }
+              ],
+              "docs": [
+                " Plan an epoch config change. The epoch config change is recorded and will be enacted on",
+                " the next call to `enact_epoch_change`. The config will be activated one epoch after.",
+                " Multiple calls to this method will replace any existing planned config change that had",
+                " not been enacted yet."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "EpochDuration",
+              "type": "u64",
+              "value": "0xc800000000000000",
+              "docs": [
+                " The amount of time, in slots, that each epoch should last.",
+                " NOTE: Currently it is not possible to change the epoch duration after",
+                " the chain has started. Attempting to do so will brick block production."
+              ]
+            },
+            {
+              "name": "ExpectedBlockTime",
+              "type": "Moment",
+              "value": "0xb80b000000000000",
+              "docs": [
+                " The expected average block time at which BABE should be creating",
+                " blocks. Since BABE is probabilistic it is not trivial to figure out",
+                " what the expected average block time should be based on the slot",
+                " duration and the security parameter `c` (where `1 - c` represents",
+                " the probability of a slot being empty)."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidEquivocationProof",
+              "docs": [
+                " An equivocation proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "InvalidKeyOwnershipProof",
+              "docs": [
+                " A key ownership proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "DuplicateOffenceReport",
+              "docs": [
+                " A given equivocation report is valid but already previously reported."
+              ]
+            }
+          ],
+          "index": 2
+        },
+        {
+          "name": "Timestamp",
+          "storage": {
+            "prefix": "Timestamp",
+            "items": [
+              {
+                "name": "Now",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Moment"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current time for the current block."
+                ]
+              },
+              {
+                "name": "DidUpdate",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Did the timestamp get updated in this block?"
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set",
+              "args": [
+                {
+                  "name": "now",
+                  "type": "Compact<Moment>"
+                }
+              ],
+              "docs": [
+                " Set the current time.",
+                "",
+                " This call should be invoked exactly once per block. It will panic at the finalization",
+                " phase, if this call hasn't been invoked by that time.",
+                "",
+                " The timestamp should be greater than the previous one by the amount specified by",
+                " `MinimumPeriod`.",
+                "",
+                " The dispatch origin for this call must be `Inherent`.",
+                "",
+                " # <weight>",
+                " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)",
+                " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)",
+                " - 1 event handler `on_timestamp_set`. Must be `O(1)`.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "MinimumPeriod",
+              "type": "Moment",
+              "value": "0xdc05000000000000",
+              "docs": [
+                " The minimum period between blocks. Beware that this is different to the *expected* period",
+                " that the block production apparatus provides. Your chosen consensus system will generally",
+                " work with this to determine a sensible block time. e.g. For Aura, it will be double this",
+                " period on default settings."
+              ]
+            }
+          ],
+          "errors": [],
+          "index": 3
+        },
+        {
+          "name": "Authorship",
+          "storage": {
+            "prefix": "Authorship",
+            "items": [
+              {
+                "name": "Uncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<UncleEntryItem>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Uncles"
+                ]
+              },
+              {
+                "name": "Author",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Author of current block."
+                ]
+              },
+              {
+                "name": "DidSetUncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Whether uncles were already set in this block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_uncles",
+              "args": [
+                {
+                  "name": "new_uncles",
+                  "type": "Vec<Header>"
+                }
+              ],
+              "docs": [
+                " Provide a set of uncles."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidUncleParent",
+              "docs": [
+                " The uncle parent not in the chain."
+              ]
+            },
+            {
+              "name": "UnclesAlreadySet",
+              "docs": [
+                " Uncles already set in the block."
+              ]
+            },
+            {
+              "name": "TooManyUncles",
+              "docs": [
+                " Too many uncles."
+              ]
+            },
+            {
+              "name": "GenesisUncle",
+              "docs": [
+                " The uncle is genesis."
+              ]
+            },
+            {
+              "name": "TooHighUncle",
+              "docs": [
+                " The uncle is too high in chain."
+              ]
+            },
+            {
+              "name": "UncleAlreadyIncluded",
+              "docs": [
+                " The uncle is already included."
+              ]
+            },
+            {
+              "name": "OldUncle",
+              "docs": [
+                " The uncle isn't recent enough to be included."
+              ]
+            }
+          ],
+          "index": 4
+        },
+        {
+          "name": "Indices",
+          "storage": {
+            "prefix": "Indices",
+            "items": [
+              {
+                "name": "Accounts",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountIndex",
+                    "value": "(AccountId,BalanceOf,bool)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The lookup from index to account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "claim",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Assign an previously unassigned index.",
+                "",
+                " Payment: `Deposit` is reserved from the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `index`: the index to be claimed. This must not be in use.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Assign an index already owned by the sender to another account. The balance reservation",
+                " is effectively transferred to the new account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `index`: the index to be re-assigned. This must be owned by the sender.",
+                " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One transfer operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight:",
+                "    - Reads: Indices Accounts, System Account (recipient)",
+                "    - Writes: Indices Accounts, System Account (recipient)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "free",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Free up an index owned by the sender.",
+                "",
+                " Payment: Any previous deposit placed for the index is unreserved in the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must own the index.",
+                "",
+                " - `index`: the index to be freed. This must be owned by the sender.",
+                "",
+                " Emits `IndexFreed` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                },
+                {
+                  "name": "freeze",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Force an index to an account. This doesn't require a deposit. If the index is already",
+                " held, then any deposit is reimbursed to its current owner.",
+                "",
+                " The dispatch origin for this call must be _Root_.",
+                "",
+                " - `index`: the index to be (re-)assigned.",
+                " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
+                " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - Up to one reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight:",
+                "    - Reads: Indices Accounts, System Account (original owner)",
+                "    - Writes: Indices Accounts, System Account (original owner)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "freeze",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Freeze an index so it will always point to the sender account. This consumes the deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must have a",
+                " non-frozen account `index`.",
+                "",
+                " - `index`: the index to be frozen in place.",
+                "",
+                " Emits `IndexFrozen` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - Up to one slash operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "IndexAssigned",
+              "args": [
+                "AccountId",
+                "AccountIndex"
+              ],
+              "docs": [
+                " A account index was assigned. \\[index, who\\]"
+              ]
+            },
+            {
+              "name": "IndexFreed",
+              "args": [
+                "AccountIndex"
+              ],
+              "docs": [
+                " A account index has been freed up (unassigned). \\[index\\]"
+              ]
+            },
+            {
+              "name": "IndexFrozen",
+              "args": [
+                "AccountIndex",
+                "AccountId"
+              ],
+              "docs": [
+                " A account index has been frozen to its current account ID. \\[index, who\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "Deposit",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The deposit needed for reserving an index."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotAssigned",
+              "docs": [
+                " The index was not already assigned."
+              ]
+            },
+            {
+              "name": "NotOwner",
+              "docs": [
+                " The index is assigned to another account."
+              ]
+            },
+            {
+              "name": "InUse",
+              "docs": [
+                " The index was not available."
+              ]
+            },
+            {
+              "name": "NotTransfer",
+              "docs": [
+                " The source and destination accounts are identical."
+              ]
+            },
+            {
+              "name": "Permanent",
+              "docs": [
+                " The index is permanent and may not be freed/changed."
+              ]
+            }
+          ],
+          "index": 5
+        },
+        {
+          "name": "Balances",
+          "storage": {
+            "prefix": "Balances",
+            "items": [
+              {
+                "name": "TotalIssuance",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Balance"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total units issued in the system."
+                ]
+              },
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountData",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The balance of an account.",
+                  "",
+                  " NOTE: This is only used in the case that this pallet is used to store balances."
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "Vec<BalanceLock>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any liquidity locks on some account balances.",
+                  " NOTE: Should only be accessed when setting, changing and freeing a lock."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " This is set to v2.0.0 for new networks."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Transfer some liquid free balance to another account.",
+                "",
+                " `transfer` will set the `FreeBalance` of the sender and receiver.",
+                " It will decrease the total issuance of the system by the `TransferFee`.",
+                " If the sender's account is below the existential deposit as a result",
+                " of the transfer, the account will be reaped.",
+                "",
+                " The dispatch origin for this call must be `Signed` by the transactor.",
+                "",
+                " # <weight>",
+                " - Dependent on arguments but not critical, given proper implementations for",
+                "   input config types. See related functions below.",
+                " - It contains a limited number of reads and writes internally and no complex computation.",
+                "",
+                " Related functions:",
+                "",
+                "   - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
+                "   - Transferring balances to accounts that did not exist before will cause",
+                "      `T::OnNewAccount::on_new_account` to be called.",
+                "   - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.",
+                "   - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
+                "     check that the transfer will not kill the origin account.",
+                " ---------------------------------",
+                " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)",
+                " - DB Weight: 1 Read and 1 Write to destination account",
+                " - Origin account is already in memory, so no DB operations for them.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_balance",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "new_free",
+                  "type": "Compact<Balance>"
+                },
+                {
+                  "name": "new_reserved",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Set the balances of a given account.",
+                "",
+                " This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
+                " also decrease the total issuance of the system (`TotalIssuance`).",
+                " If the new free or reserved balance is below the existential deposit,",
+                " it will reset the account nonce (`frame_system::AccountNonce`).",
+                "",
+                " The dispatch origin for this call is `root`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments.",
+                " - Contains a limited number of reads and writes.",
+                " ---------------------",
+                " - Base Weight:",
+                "     - Creating: 27.56 µs",
+                "     - Killing: 35.11 µs",
+                " - DB Weight: 1 Read, 1 Write to `who`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Exactly as `transfer`, except the origin must be root and the source account may be",
+                " specified.",
+                " # <weight>",
+                " - Same as transfer, but additional read and write because the source account is",
+                "   not assumed to be in the overlay.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "transfer_keep_alive",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Same as the [`transfer`] call, but with a check that the transfer will not kill the",
+                " origin account.",
+                "",
+                " 99% of the time you want [`transfer`] instead.",
+                "",
+                " [`transfer`]: struct.Pallet.html#method.transfer",
+                " # <weight>",
+                " - Cheaper than transfer because account cannot be killed.",
+                " - Base Weight: 51.4 µs",
+                " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)",
+                " #</weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Endowed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account was created with some free balance. \\[account, free_balance\\]"
+              ]
+            },
+            {
+              "name": "DustLost",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account was removed whose balance was non-zero but below ExistentialDeposit,",
+                " resulting in an outright loss. \\[account, balance\\]"
+              ]
+            },
+            {
+              "name": "Transfer",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Transfer succeeded. \\[from, to, value\\]"
+              ]
+            },
+            {
+              "name": "BalanceSet",
+              "args": [
+                "AccountId",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " A balance was set by root. \\[who, free, reserved\\]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]"
+              ]
+            },
+            {
+              "name": "Reserved",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some balance was reserved (moved from free to reserved). \\[who, value\\]"
+              ]
+            },
+            {
+              "name": "Unreserved",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some balance was unreserved (moved from reserved to free). \\[who, value\\]"
+              ]
+            },
+            {
+              "name": "ReserveRepatriated",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance",
+                "BalanceStatus"
+              ],
+              "docs": [
+                " Some balance was moved from the reserve of the first account to the second account.",
+                " Final argument indicates the destination balance type.",
+                " \\[from, to, balance, destination_status\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ExistentialDeposit",
+              "type": "Balance",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The minimum amount required to keep an account open."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "VestingBalance",
+              "docs": [
+                " Vesting balance too high to send value"
+              ]
+            },
+            {
+              "name": "LiquidityRestrictions",
+              "docs": [
+                " Account liquidity restrictions prevent withdrawal"
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " Got an overflow after adding"
+              ]
+            },
+            {
+              "name": "InsufficientBalance",
+              "docs": [
+                " Balance too low to send value"
+              ]
+            },
+            {
+              "name": "ExistentialDeposit",
+              "docs": [
+                " Value too low to create account due to existential deposit"
+              ]
+            },
+            {
+              "name": "KeepAlive",
+              "docs": [
+                " Transfer/payment would kill account"
+              ]
+            },
+            {
+              "name": "ExistingVestingSchedule",
+              "docs": [
+                " A vesting schedule already exists for this account"
+              ]
+            },
+            {
+              "name": "DeadAccount",
+              "docs": [
+                " Beneficiary account must pre-exist"
+              ]
+            }
+          ],
+          "index": 6
+        },
+        {
+          "name": "TransactionPayment",
+          "storage": {
+            "prefix": "TransactionPayment",
+            "items": [
+              {
+                "name": "NextFeeMultiplier",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Multiplier"
+                },
+                "fallback": "0x000064a7b3b6e00d0000000000000000",
+                "docs": []
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": []
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [
+            {
+              "name": "TransactionByteFee",
+              "type": "BalanceOf",
+              "value": "0x00e40b54020000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the per-byte portion."
+              ]
+            },
+            {
+              "name": "WeightToFee",
+              "type": "Vec<WeightToFeeCoefficient>",
+              "value": "0x0401000000000000000000000000000000000000000001",
+              "docs": [
+                " The polynomial that is applied in order to derive fee from weight."
+              ]
+            }
+          ],
+          "errors": [],
+          "index": 7
+        },
+        {
+          "name": "ElectionProviderMultiPhase",
+          "storage": {
+            "prefix": "ElectionProviderMultiPhase",
+            "items": [
+              {
+                "name": "Round",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x01000000",
+                "docs": [
+                  " Internal counter for the number of rounds.",
+                  "",
+                  " This is useful for de-duplication of transactions submitted to the pool, and general",
+                  " diagnostics of the pallet.",
+                  "",
+                  " This is merely incremented once per every time that an upstream `elect` is called."
+                ]
+              },
+              {
+                "name": "CurrentPhase",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ElectionPhase"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current phase."
+                ]
+              },
+              {
+                "name": "QueuedSolution",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ReadySolution"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current best solution, signed or unsigned, queued to be returned upon `elect`."
+                ]
+              },
+              {
+                "name": "Snapshot",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "RoundSnapshot"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Snapshot data of the round.",
+                  "",
+                  " This is created at the beginning of the signed phase and cleared upon calling `elect`."
+                ]
+              },
+              {
+                "name": "DesiredTargets",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Desired number of targets to elect for this round.",
+                  "",
+                  " Only exists when [`Snapshot`] is present."
+                ]
+              },
+              {
+                "name": "SnapshotMetadata",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "SolutionOrSnapshotSize"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The metadata of the [`RoundSnapshot`]",
+                  "",
+                  " Only exists when [`Snapshot`] is present."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "submit_unsigned",
+              "args": [
+                {
+                  "name": "solution",
+                  "type": "RawSolution"
+                },
+                {
+                  "name": "witness",
+                  "type": "SolutionOrSnapshotSize"
+                }
+              ],
+              "docs": [
+                " Submit a solution for the unsigned phase.",
+                "",
+                " The dispatch origin fo this call must be __none__.",
+                "",
+                " This submission is checked on the fly. Moreover, this unsigned solution is only",
+                " validated when submitted to the pool from the **local** node. Effectively, this means",
+                " that only active validators can submit this transaction when authoring a block (similar",
+                " to an inherent).",
+                "",
+                " To prevent any incorrect solution (and thus wasted time/weight), this transaction will",
+                " panic if the solution submitted by the validator is invalid in any way, effectively",
+                " putting their authoring reward at risk.",
+                "",
+                " No deposit or reward is associated with this submission."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "SolutionStored",
+              "args": [
+                "ElectionCompute"
+              ],
+              "docs": [
+                " A solution was stored with the given compute.",
+                "",
+                " If the solution is signed, this means that it hasn't yet been processed. If the",
+                " solution is unsigned, this means that it has also been processed."
+              ]
+            },
+            {
+              "name": "ElectionFinalized",
+              "args": [
+                "Option<ElectionCompute>"
+              ],
+              "docs": [
+                " The election has been finalized, with `Some` of the given computation, or else if the",
+                " election failed, `None`."
+              ]
+            },
+            {
+              "name": "Rewarded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An account has been rewarded for their signed submission being finalized."
+              ]
+            },
+            {
+              "name": "Slashed",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An account has been slashed for submitting an invalid signed submission."
+              ]
+            },
+            {
+              "name": "SignedPhaseStarted",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " The signed phase of the given round has started."
+              ]
+            },
+            {
+              "name": "UnsignedPhaseStarted",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " The unsigned phase of the given round has started."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "UnsignedPhase",
+              "type": "BlockNumber",
+              "value": "0x32000000",
+              "docs": [
+                " Duration of the unsigned phase."
+              ]
+            },
+            {
+              "name": "SignedPhase",
+              "type": "BlockNumber",
+              "value": "0x32000000",
+              "docs": [
+                " Duration of the signed phase."
+              ]
+            },
+            {
+              "name": "SolutionImprovementThreshold",
+              "type": "Perbill",
+              "value": "0xa0860100",
+              "docs": [
+                " The minimum amount of improvement to the solution score that defines a solution as",
+                " \"better\" (in any phase)."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "PreDispatchEarlySubmission",
+              "docs": [
+                " Submission was too early."
+              ]
+            },
+            {
+              "name": "PreDispatchWrongWinnerCount",
+              "docs": [
+                " Wrong number of winners presented."
+              ]
+            },
+            {
+              "name": "PreDispatchWeakSubmission",
+              "docs": [
+                " Submission was too weak, score-wise."
+              ]
+            }
+          ],
+          "index": 8
+        },
+        {
+          "name": "Staking",
+          "storage": {
+            "prefix": "Staking",
+            "items": [
+              {
+                "name": "HistoryDepth",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x54000000",
+                "docs": [
+                  " Number of eras to keep in history.",
+                  "",
+                  " Information is kept for eras in `[current_era - history_depth; current_era]`.",
+                  "",
+                  " Must be more than the number of eras delayed by session otherwise. I.e. active era must",
+                  " always be in history. I.e. `active_era > current_era - history_depth` must be",
+                  " guaranteed."
+                ]
+              },
+              {
+                "name": "ValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ideal number of staking participants."
+                ]
+              },
+              {
+                "name": "MinimumValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Minimum number of staking participants before emergency conditions are imposed."
+                ]
+              },
+              {
+                "name": "Invulnerables",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're",
+                  " easy to initialize and the performance hit is minimal (we expect no more than four",
+                  " invulnerables) and restricted to testnets."
+                ]
+              },
+              {
+                "name": "Bonded",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all locked \"stash\" accounts to the controller account."
+                ]
+              },
+              {
+                "name": "Ledger",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "StakingLedger",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
+                ]
+              },
+              {
+                "name": "Payee",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "RewardDestination",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Where the reward payment should be made. Keyed by stash."
+                ]
+              },
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000",
+                "docs": [
+                  " The map from (wannabe) validator stash key to the preferences of that validator."
+                ]
+              },
+              {
+                "name": "Nominators",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Nominations",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from nominator stash key to the set of stash keys of all validators to nominate."
+                ]
+              },
+              {
+                "name": "CurrentEra",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current era index.",
+                  "",
+                  " This is the latest planned era, depending on how the Session pallet queues the validator",
+                  " set, it might be active or not."
+                ]
+              },
+              {
+                "name": "ActiveEra",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ActiveEraInfo"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The active era information, it holds index and start.",
+                  "",
+                  " The active era is the era being currently rewarded. Validator set of this era must be",
+                  " equal to [`SessionInterface::validators`]."
+                ]
+              },
+              {
+                "name": "ErasStartSessionIndex",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The session index at which the era start for the last `HISTORY_DEPTH` eras.",
+                  "",
+                  " Note: This tracks the starting session (i.e. session index when era start being active)",
+                  " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`."
+                ]
+              },
+              {
+                "name": "ErasStakers",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "Exposure",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Exposure of validator at era.",
+                  "",
+                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras.",
+                  " If stakers hasn't been set or has been removed then empty exposure is returned."
+                ]
+              },
+              {
+                "name": "ErasStakersClipped",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "Exposure",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Clipped Exposure of validator at era.",
+                  "",
+                  " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the",
+                  " `T::MaxNominatorRewardedPerValidator` biggest stakers.",
+                  " (Note: the field `total` and `own` of the exposure remains unchanged).",
+                  " This is used to limit the i/o cost for the nominator payout.",
+                  "",
+                  " This is keyed fist by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras.",
+                  " If stakers hasn't been set or has been removed then empty exposure is returned."
+                ]
+              },
+              {
+                "name": "ErasValidatorPrefs",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x0000",
+                "docs": [
+                  " Similar to `ErasStakers`, this holds the preferences of validators.",
+                  "",
+                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras."
+                ]
+              },
+              {
+                "name": "ErasValidatorReward",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The total validator era payout for the last `HISTORY_DEPTH` eras.",
+                  "",
+                  " Eras that haven't finished yet or has been removed doesn't have reward."
+                ]
+              },
+              {
+                "name": "ErasRewardPoints",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "EraRewardPoints",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000",
+                "docs": [
+                  " Rewards for the last `HISTORY_DEPTH` eras.",
+                  " If reward hasn't been set or has been removed then 0 reward is returned."
+                ]
+              },
+              {
+                "name": "ErasTotalStake",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total amount staked for the last `HISTORY_DEPTH` eras.",
+                  " If total hasn't been set or has been removed then 0 stake is returned."
+                ]
+              },
+              {
+                "name": "ForceEra",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Forcing"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mode of era forcing."
+                ]
+              },
+              {
+                "name": "SlashRewardFraction",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Perbill"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The percentage of the slash that is distributed to reporters.",
+                  "",
+                  " The rest of the slashed value is handled by the `Slash`."
+                ]
+              },
+              {
+                "name": "CanceledSlashPayout",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of currency given to reporters of a slash event which was",
+                  " canceled by extraordinary circumstances (e.g. governance)."
+                ]
+              },
+              {
+                "name": "UnappliedSlashes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "Vec<UnappliedSlash>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All unapplied slashes that are queued for later."
+                ]
+              },
+              {
+                "name": "BondedEras",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(EraIndex,SessionIndex)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from still-bonded eras to the first session index of that era.",
+                  "",
+                  " Must contains information for eras for the range:",
+                  " `[active_era - bounding_duration; active_era]`"
+                ]
+              },
+              {
+                "name": "ValidatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "(Perbill,BalanceOf)",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on validators, mapped by era to the highest slash proportion",
+                  " and slash value of the era."
+                ]
+              },
+              {
+                "name": "NominatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "BalanceOf",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on nominators, mapped by era to the highest slash value of the era."
+                ]
+              },
+              {
+                "name": "SlashingSpans",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "SlashingSpans",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Slashing spans for stash accounts."
+                ]
+              },
+              {
+                "name": "SpanSlash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "(AccountId,SpanIndex)",
+                    "value": "SpanRecord",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Records information about the maximum slash of a stash within a slashing span,",
+                  " as well as how much reward has been paid out."
+                ]
+              },
+              {
+                "name": "EarliestUnappliedSlash",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The earliest era for which we have a pending, unapplied slash."
+                ]
+              },
+              {
+                "name": "CurrentPlannedSession",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The last planned session scheduled by the session pallet.",
+                  "",
+                  " This is basically in sync with the call to [`SessionManager::new_session`]."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x05",
+                "docs": [
+                  " True if network has been upgraded to this version.",
+                  " Storage version of the pallet.",
+                  "",
+                  " This is set to v6.0.0 for new networks."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bond",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " Take the origin account as a stash and lock up `value` of its balance. `controller` will",
+                " be the account that controls it.",
+                "",
+                " `value` must be more than the `minimum_balance` specified by `T::Currency`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash account.",
+                "",
+                " Emits `Bonded`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Moderate complexity.",
+                " - O(1).",
+                " - Three extra DB entries.",
+                "",
+                " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned",
+                " unless the `origin` falls below _existential deposit_ and gets removed as dust.",
+                " ------------------",
+                " Weight: O(1)",
+                " DB Weight:",
+                " - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks",
+                " - Write: Bonded, Payee, [Origin Account], Locks, Ledger",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "bond_extra",
+              "args": [
+                {
+                  "name": "max_additional",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Add some extra amount that have appeared in the stash `free_balance` into the balance up",
+                " for staking.",
+                "",
+                " Use this if there are additional funds in your stash account that you wish to bond.",
+                " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount",
+                " that can be added.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller and",
+                " it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " Emits `Bonded`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - O(1).",
+                " - One DB entry.",
+                " ------------",
+                " DB Weight:",
+                " - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks",
+                " - Write: [Origin Account], Locks, Ledger",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Schedule a portion of the stash to be unlocked ready for transfer out after the bond",
+                " period ends. If this leaves an amount actively bonded less than",
+                " T::Currency::minimum_balance(), then it is increased to the full amount.",
+                "",
+                " Once the unlock period is done, you can call `withdraw_unbonded` to actually move",
+                " the funds out of management ready for transfer.",
+                "",
+                " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)",
+                " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need",
+                " to be called first to remove some of the chunks (if possible).",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " Emits `Unbonded`.",
+                "",
+                " See also [`Call::withdraw_unbonded`].",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Limited but potentially exploitable complexity.",
+                " - Contains a limited number of reads.",
+                " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)",
+                "   will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.",
+                "   The only way to clean the aforementioned storage item is also user-controlled via",
+                "   `withdraw_unbonded`.",
+                " - One DB entry.",
+                " ----------",
+                " Weight: O(1)",
+                " DB Weight:",
+                " - Read: EraElectionStatus, Ledger, CurrentEra, Locks, BalanceOf Stash,",
+                " - Write: Locks, Ledger, BalanceOf Stash,",
+                " </weight>"
+              ]
+            },
+            {
+              "name": "withdraw_unbonded",
+              "args": [
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Remove any unlocked chunks from the `unlocking` queue from our management.",
+                "",
+                " This essentially frees up that balance to be used by the stash account to do",
+                " whatever it wants.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " Emits `Withdrawn`.",
+                "",
+                " See also [`Call::unbond`].",
+                "",
+                " # <weight>",
+                " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.",
+                "  It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is",
+                "  indirectly user-controlled. See [`unbond`] for more detail.",
+                " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.",
+                " - Writes are limited to the `origin` account key.",
+                " ---------------",
+                " Complexity O(S) where S is the number of slashing spans to remove",
+                " Update:",
+                " - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]",
+                " - Writes: [Origin Account], Locks, Ledger",
+                " Kill:",
+                " - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin",
+                "   Account], Locks, BalanceOf stash",
+                " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
+                "   [Origin Account], Locks, BalanceOf stash.",
+                " - Writes Each: SpanSlash * S",
+                " NOTE: Weight annotation is the kill scenario, we refund otherwise.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "validate",
+              "args": [
+                {
+                  "name": "prefs",
+                  "type": "ValidatorPrefs"
+                }
+              ],
+              "docs": [
+                " Declare the desire to validate for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " -----------",
+                " Weight: O(1)",
+                " DB Weight:",
+                " - Read: Era Election Status, Ledger",
+                " - Write: Nominators, Validators",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "nominate",
+              "args": [
+                {
+                  "name": "targets",
+                  "type": "Vec<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Declare the desire to nominate `targets` for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era. This can only be called when",
+                " [`EraElectionStatus`] is `Closed`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - The transaction's complexity is proportional to the size of `targets` (N)",
+                " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).",
+                " - Both the reads and writes follow a similar pattern.",
+                " ---------",
+                " Weight: O(N)",
+                " where N is the number of targets",
+                " DB Weight:",
+                " - Reads: Era Election Status, Ledger, Current Era",
+                " - Writes: Validators, Nominators",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "chill",
+              "args": [],
+              "docs": [
+                " Declare no desire to either validate or nominate.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains one read.",
+                " - Writes are limited to the `origin` account key.",
+                " --------",
+                " Weight: O(1)",
+                " DB Weight:",
+                " - Read: EraElectionStatus, Ledger",
+                " - Write: Validators, Nominators",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_payee",
+              "args": [
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " (Re-)set the payment target for a controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " ---------",
+                " - Weight: O(1)",
+                " - DB Weight:",
+                "     - Read: Ledger",
+                "     - Write: Payee",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_controller",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " (Re-)set the controller of a stash.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " ----------",
+                " Weight: O(1)",
+                " DB Weight:",
+                " - Read: Bonded, Ledger New Controller, Ledger Old Controller",
+                " - Write: Bonded, Ledger New Controller, Ledger Old Controller",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_validator_count",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Sets the ideal number of validators.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Weight: O(1)",
+                " Write: Validator Count",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "increase_validator_count",
+              "args": [
+                {
+                  "name": "additional",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Increments the ideal number of validators.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Same as [`set_validator_count`].",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "scale_validator_count",
+              "args": [
+                {
+                  "name": "factor",
+                  "type": "Percent"
+                }
+              ],
+              "docs": [
+                " Scale up the ideal number of validators by a factor.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Same as [`set_validator_count`].",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_no_eras",
+              "args": [],
+              "docs": [
+                " Force there to be no new eras indefinitely.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " - Weight: O(1)",
+                " - Write: ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of the next session. After this, it will be",
+                " reset to normal (non-forced) behaviour.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " - Weight: O(1)",
+                " - Write ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_invulnerables",
+              "args": [
+                {
+                  "name": "invulnerables",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the validators who cannot be slashed (if any).",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - O(V)",
+                " - Write: Invulnerables",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_unstake",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Force a current staker to become completely unstaked, immediately.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " O(S) where S is the number of slashing spans to be removed",
+                " Reads: Bonded, Slashing Spans, Account, Locks",
+                " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks",
+                " Writes Each: SpanSlash * S",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era_always",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of sessions indefinitely.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - Weight: O(1)",
+                " - Write: ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_deferred_slash",
+              "args": [
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                },
+                {
+                  "name": "slash_indices",
+                  "type": "Vec<u32>"
+                }
+              ],
+              "docs": [
+                " Cancel enactment of a deferred slash.",
+                "",
+                " Can be called by the `T::SlashCancelOrigin`.",
+                "",
+                " Parameters: era and indices of the slashes for that era to kill.",
+                "",
+                " # <weight>",
+                " Complexity: O(U + S)",
+                " with U unapplied slashes weighted with U=1000",
+                " and S is the number of slash indices to be canceled.",
+                " - Read: Unapplied Slashes",
+                " - Write: Unapplied Slashes",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "payout_stakers",
+              "args": [
+                {
+                  "name": "validator_stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                }
+              ],
+              "docs": [
+                " Pay out all the stakers behind a single validator for a single era.",
+                "",
+                " - `validator_stash` is the stash account of the validator. Their nominators, up to",
+                "   `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.",
+                " - `era` may be any era between `[current_era - history_depth; current_era]`.",
+                "",
+                " The origin of this call must be _Signed_. Any account can call this function, even if",
+                " it is not one of the stakers.",
+                "",
+                " This can only be called when [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Time complexity: at most O(MaxNominatorRewardedPerValidator).",
+                " - Contains a limited number of reads and writes.",
+                " -----------",
+                " N is the Number of payouts for the validator (including the validator)",
+                " Weight:",
+                " - Reward Destination Staked: O(N)",
+                " - Reward Destination Controller (Creating): O(N)",
+                " DB Weight:",
+                " - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,",
+                "         ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)",
+                " - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)",
+                " - Write Each: System Account, Locks, Ledger (3 items)",
+                "",
+                "   NOTE: weights are assuming that payouts are made to alive stash account (Staked).",
+                "   Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "rebond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Rebond a portion of the stash scheduled to be unlocked.",
+                "",
+                " The dispatch origin must be signed by the controller, and it can be only called when",
+                " [`EraElectionStatus`] is `Closed`.",
+                "",
+                " # <weight>",
+                " - Time complexity: O(L), where L is unlocking chunks",
+                " - Bounded by `MAX_UNLOCKING_CHUNKS`.",
+                " - Storage changes: Can't increase storage, only decrease it.",
+                " ---------------",
+                " - DB Weight:",
+                "     - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]",
+                "     - Writes: [Origin Account], Locks, Ledger",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_history_depth",
+              "args": [
+                {
+                  "name": "new_history_depth",
+                  "type": "Compact<EraIndex>"
+                },
+                {
+                  "name": "_era_items_deleted",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Set `HistoryDepth` value. This function will delete any history information",
+                " when `HistoryDepth` is reduced.",
+                "",
+                " Parameters:",
+                " - `new_history_depth`: The new history depth you would like to set.",
+                " - `era_items_deleted`: The number of items that will be deleted by this dispatch.",
+                "    This should report all the storage items that will be deleted by clearing old",
+                "    era history. Needed to report an accurate weight for the dispatch. Trusted by",
+                "    `Root` to report an accurate number.",
+                "",
+                " Origin must be root.",
+                "",
+                " # <weight>",
+                " - E: Number of history depths removed, i.e. 10 -> 7 = 3",
+                " - Weight: O(E)",
+                " - DB Weight:",
+                "     - Reads: Current Era, History Depth",
+                "     - Writes: History Depth",
+                "     - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs",
+                "     - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reap_stash",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Remove all data structure concerning a staker/stash once its balance is at the minimum.",
+                " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone",
+                " and the target `stash` must have no funds left beyond the ED.",
+                "",
+                " This can be called from any origin.",
+                "",
+                " - `stash`: The stash account to reap. Its balance must be zero.",
+                "",
+                " # <weight>",
+                " Complexity: O(S) where S is the number of slashing spans on the account.",
+                " DB Weight:",
+                " - Reads: Stash Account, Bonded, Slashing Spans, Locks",
+                " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks",
+                " - Writes Each: SpanSlash * S",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kick",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "Vec<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Remove the given nominations from the calling validator.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                " And, it can be only called when [`EraElectionStatus`] is `Closed`. The controller",
+                " account should represent a validator.",
+                "",
+                " - `who`: A list of nominator stash accounts who are nominating this validator which",
+                "   should no longer be nominating this validator.",
+                "",
+                " Note: Making this call only makes sense if you first set the validator preferences to",
+                " block any further nominations."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "EraPayout",
+              "args": [
+                "EraIndex",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " The era payout has been set; the first balance is the validator-payout; the second is",
+                " the remainder from the maximum amount of reward.",
+                " \\[era_index, validator_payout, remainder\\]"
+              ]
+            },
+            {
+              "name": "Reward",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " The staker has been rewarded by this amount. \\[stash, amount\\]"
+              ]
+            },
+            {
+              "name": "Slash",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " One validator (and its nominators) has been slashed by the given amount.",
+                " \\[validator, amount\\]"
+              ]
+            },
+            {
+              "name": "OldSlashingReportDiscarded",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " An old slashing report from a prior era was discarded because it could",
+                " not be processed. \\[session_index\\]"
+              ]
+            },
+            {
+              "name": "StakingElection",
+              "args": [],
+              "docs": [
+                " A new set of stakers was elected."
+              ]
+            },
+            {
+              "name": "Bonded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has bonded this amount. \\[stash, amount\\]",
+                "",
+                " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,",
+                " it will not be emitted for staking rewards when they are added to stake."
+              ]
+            },
+            {
+              "name": "Unbonded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has unbonded this amount. \\[stash, amount\\]"
+              ]
+            },
+            {
+              "name": "Withdrawn",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`",
+                " from the unlocking queue. \\[stash, amount\\]"
+              ]
+            },
+            {
+              "name": "Kicked",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A nominator has been kicked from a validator. \\[nominator, stash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SessionsPerEra",
+              "type": "SessionIndex",
+              "value": "0x06000000",
+              "docs": [
+                " Number of sessions per era."
+              ]
+            },
+            {
+              "name": "BondingDuration",
+              "type": "EraIndex",
+              "value": "0xa0020000",
+              "docs": [
+                " Number of eras that staked funds must remain bonded for."
+              ]
+            },
+            {
+              "name": "SlashDeferDuration",
+              "type": "EraIndex",
+              "value": "0xa8000000",
+              "docs": [
+                " Number of eras that slashes are deferred by, after computation.",
+                "",
+                " This should be less than the bonding duration.",
+                " Set to 0 if slashes should be applied immediately, without opportunity for",
+                " intervention."
+              ]
+            },
+            {
+              "name": "MaxNominatorRewardedPerValidator",
+              "type": "u32",
+              "value": "0x00010000",
+              "docs": [
+                " The maximum number of nominators rewarded for each validator.",
+                "",
+                " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim",
+                " their reward. This used to limit the i/o cost for the nominator payout."
+              ]
+            },
+            {
+              "name": "MaxNominations",
+              "type": "u32",
+              "value": "0x10000000",
+              "docs": [
+                " Maximum number of nominations per nominator."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotController",
+              "docs": [
+                " Not a controller account."
+              ]
+            },
+            {
+              "name": "NotStash",
+              "docs": [
+                " Not a stash account."
+              ]
+            },
+            {
+              "name": "AlreadyBonded",
+              "docs": [
+                " Stash is already bonded."
+              ]
+            },
+            {
+              "name": "AlreadyPaired",
+              "docs": [
+                " Controller is already paired."
+              ]
+            },
+            {
+              "name": "EmptyTargets",
+              "docs": [
+                " Targets cannot be empty."
+              ]
+            },
+            {
+              "name": "DuplicateIndex",
+              "docs": [
+                " Duplicate index."
+              ]
+            },
+            {
+              "name": "InvalidSlashIndex",
+              "docs": [
+                " Slash record index out of bounds."
+              ]
+            },
+            {
+              "name": "InsufficientValue",
+              "docs": [
+                " Can not bond with value less than minimum balance."
+              ]
+            },
+            {
+              "name": "NoMoreChunks",
+              "docs": [
+                " Can not schedule more unlock chunks."
+              ]
+            },
+            {
+              "name": "NoUnlockChunk",
+              "docs": [
+                " Can not rebond without unlocking chunks."
+              ]
+            },
+            {
+              "name": "FundedTarget",
+              "docs": [
+                " Attempting to target a stash that still has funds."
+              ]
+            },
+            {
+              "name": "InvalidEraToReward",
+              "docs": [
+                " Invalid era to reward."
+              ]
+            },
+            {
+              "name": "InvalidNumberOfNominations",
+              "docs": [
+                " Invalid number of nominations."
+              ]
+            },
+            {
+              "name": "NotSortedAndUnique",
+              "docs": [
+                " Items are not sorted and unique."
+              ]
+            },
+            {
+              "name": "AlreadyClaimed",
+              "docs": [
+                " Rewards for this era have already been claimed for this validator."
+              ]
+            },
+            {
+              "name": "IncorrectHistoryDepth",
+              "docs": [
+                " Incorrect previous history depth input provided."
+              ]
+            },
+            {
+              "name": "IncorrectSlashingSpans",
+              "docs": [
+                " Incorrect number of slashing spans provided."
+              ]
+            },
+            {
+              "name": "BadState",
+              "docs": [
+                " Internal state has become somehow corrupted and the operation cannot continue."
+              ]
+            },
+            {
+              "name": "TooManyTargets",
+              "docs": [
+                " Too many nomination targets supplied."
+              ]
+            },
+            {
+              "name": "BadTarget",
+              "docs": [
+                " A nomination target was supplied that was blocked or otherwise not a validator."
+              ]
+            }
+          ],
+          "index": 9
+        },
+        {
+          "name": "Session",
+          "storage": {
+            "prefix": "Session",
+            "items": [
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ValidatorId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of validators."
+                ]
+              },
+              {
+                "name": "CurrentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Current index of the session."
+                ]
+              },
+              {
+                "name": "QueuedChanged",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the underlying economic identities or weighting behind the validators",
+                  " has changed in the queued validator set."
+                ]
+              },
+              {
+                "name": "QueuedKeys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(ValidatorId,Keys)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The queued keys for the next session. When the next session begins, these keys",
+                  " will be used to determine the validator's session keys."
+                ]
+              },
+              {
+                "name": "DisabledValidators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<u32>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Indices of disabled validators.",
+                  "",
+                  " The set is cleared when `on_session_ending` returns a new set of identities."
+                ]
+              },
+              {
+                "name": "NextKeys",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ValidatorId",
+                    "value": "Keys",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The next session keys for a validator."
+                ]
+              },
+              {
+                "name": "KeyOwner",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "(KeyTypeId,Bytes)",
+                    "value": "ValidatorId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The owner of a key. The key is the `KeyTypeId` + the encoded key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_keys",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Keys"
+                },
+                {
+                  "name": "proof",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Sets the session key(s) of the function caller to `keys`.",
+                " Allows an account to set its session key prior to becoming a validator.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                "   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
+                " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`",
+                " - DbWrites: `origin account`, `NextKeys`",
+                " - DbReads per key id: `KeyOwner`",
+                " - DbWrites per key id: `KeyOwner`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "purge_keys",
+              "args": [],
+              "docs": [
+                " Removes any session key(s) of the function caller.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)` in number of key types.",
+                "   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
+                " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`",
+                " - DbWrites: `NextKeys`, `origin account`",
+                " - DbWrites per key id: `KeyOwnder`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewSession",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " New session has happened. Note that the argument is the \\[session_index\\], not the block",
+                " number as the type might suggest."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidProof",
+              "docs": [
+                " Invalid ownership proof."
+              ]
+            },
+            {
+              "name": "NoAssociatedValidatorId",
+              "docs": [
+                " No associated validator ID for account."
+              ]
+            },
+            {
+              "name": "DuplicatedKey",
+              "docs": [
+                " Registered duplicate key."
+              ]
+            },
+            {
+              "name": "NoKeys",
+              "docs": [
+                " No keys are associated with this account."
+              ]
+            },
+            {
+              "name": "NoAccount",
+              "docs": [
+                " Key setting account is not live, so it's impossible to associate keys."
+              ]
+            }
+          ],
+          "index": 10
+        },
+        {
+          "name": "Democracy",
+          "storage": {
+            "prefix": "Democracy",
+            "items": [
+              {
+                "name": "PublicPropCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "PropIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of (public) proposals that have been made so far."
+                ]
+              },
+              {
+                "name": "PublicProps",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(PropIndex,Hash,AccountId)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The public proposals. Unsorted. The second item is the proposal's hash."
+                ]
+              },
+              {
+                "name": "DepositOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "PropIndex",
+                    "value": "(Vec<AccountId>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Those who have locked a deposit.",
+                  "",
+                  " TWOX-NOTE: Safe, as increasing integer keys are safe."
+                ]
+              },
+              {
+                "name": "Preimages",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "PreimageStatus",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map of hashes to the proposal preimage, along with who registered it and their deposit.",
+                  " The block number is the block at which it was deposited."
+                ]
+              },
+              {
+                "name": "ReferendumCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next free referendum index, aka the number of referenda started so far."
+                ]
+              },
+              {
+                "name": "LowestUnbaked",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The lowest referendum index representing an unbaked referendum. Equal to",
+                  " `ReferendumCount` if there isn't a unbaked referendum."
+                ]
+              },
+              {
+                "name": "ReferendumInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ReferendumIndex",
+                    "value": "ReferendumInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information concerning any given referendum.",
+                  "",
+                  " TWOX-NOTE: SAFE as indexes are not under an attacker’s control."
+                ]
+              },
+              {
+                "name": "VotingOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Voting",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " All votes for a particular voter. We store the balance for the number of votes that we",
+                  " have recorded. The second item is the total amount of delegations, that will be added.",
+                  "",
+                  " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway."
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "BlockNumber",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Accounts for which there are locks in action which may be removed at some point in the",
+                  " future. The value is the block number at which the lock expires and may be removed.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "LastTabledWasExternal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the last referendum tabled was submitted externally. False if it was a public",
+                  " proposal."
+                ]
+              },
+              {
+                "name": "NextExternal",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(Hash,VoteThreshold)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The referendum to be tabled whenever it would be valid to table an external proposal.",
+                  " This happens when a referendum needs to be tabled and one of two conditions are met:",
+                  " - `LastTabledWasExternal` is `false`; or",
+                  " - `PublicProps` is empty."
+                ]
+              },
+              {
+                "name": "Blacklist",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "(BlockNumber,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A record of who vetoed what. Maps proposal hash to a possible existent block number",
+                  " (until when it may not be resubmitted) and who vetoed it."
+                ]
+              },
+              {
+                "name": "Cancellations",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Record of all proposals that have been subject to emergency cancellation."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " New networks start with last version."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Propose a sensitive action to be taken.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the sender must",
+                " have funds to cover the deposit.",
+                "",
+                " - `proposal_hash`: The hash of the proposal preimage.",
+                " - `value`: The amount of deposit (must be at least `MinimumDeposit`).",
+                "",
+                " Emits `Proposed`.",
+                "",
+                " Weight: `O(p)`"
+              ]
+            },
+            {
+              "name": "second",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Compact<PropIndex>"
+                },
+                {
+                  "name": "seconds_upper_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Signals agreement with a particular proposal.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the sender",
+                " must have funds to cover the deposit, equal to the original deposit.",
+                "",
+                " - `proposal`: The index of the proposal to second.",
+                " - `seconds_upper_bound`: an upper bound on the current number of seconds on this",
+                "   proposal. Extrinsic is weighted according to this value with no refund.",
+                "",
+                " Weight: `O(S)` where S is the number of seconds a proposal already has."
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                },
+                {
+                  "name": "vote",
+                  "type": "AccountVote"
+                }
+              ],
+              "docs": [
+                " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;",
+                " otherwise it is a vote to keep the status quo.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `ref_index`: The index of the referendum to vote for.",
+                " - `vote`: The vote configuration.",
+                "",
+                " Weight: `O(R)` where R is the number of referendums the voter has voted on."
+              ]
+            },
+            {
+              "name": "emergency_cancel",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
+                " referendum.",
+                "",
+                " The dispatch origin of this call must be `CancellationOrigin`.",
+                "",
+                " -`ref_index`: The index of the referendum to cancel.",
+                "",
+                " Weight: `O(1)`."
+              ]
+            },
+            {
+              "name": "external_propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a referendum to be tabled once it is legal to schedule an external",
+                " referendum.",
+                "",
+                " The dispatch origin of this call must be `ExternalOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.",
+                "   Decoding vec of length V. Charged as maximum"
+              ]
+            },
+            {
+              "name": "external_propose_majority",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
+                " an external referendum.",
+                "",
+                " The dispatch of this call must be `ExternalMajorityOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "external_propose_default",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
+                " schedule an external referendum.",
+                "",
+                " The dispatch of this call must be `ExternalDefaultOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "fast_track",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "voting_period",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Schedule the currently externally-proposed majority-carries referendum to be tabled",
+                " immediately. If there is no externally-proposed referendum currently, or if there is one",
+                " but it is not a majority-carries referendum then it fails.",
+                "",
+                " The dispatch of this call must be `FastTrackOrigin`.",
+                "",
+                " - `proposal_hash`: The hash of the current external proposal.",
+                " - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
+                "   `FastTrackVotingPeriod` if too low.",
+                " - `delay`: The number of block after voting has ended in approval and this should be",
+                "   enacted. This doesn't have a minimum amount.",
+                "",
+                " Emits `Started`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "veto_external",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Veto and blacklist the external proposal hash.",
+                "",
+                " The dispatch origin of this call must be `VetoOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.",
+                "",
+                " Emits `Vetoed`.",
+                "",
+                " Weight: `O(V + log(V))` where V is number of `existing vetoers`"
+              ]
+            },
+            {
+              "name": "cancel_referendum",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Remove a referendum.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " - `ref_index`: The index of the referendum to cancel.",
+                "",
+                " # Weight: `O(1)`."
+              ]
+            },
+            {
+              "name": "cancel_queued",
+              "args": [
+                {
+                  "name": "which",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a proposal queued for enactment.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " - `which`: The index of the referendum to cancel.",
+                "",
+                " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`."
+              ]
+            },
+            {
+              "name": "delegate",
+              "args": [
+                {
+                  "name": "to",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "conviction",
+                  "type": "Conviction"
+                },
+                {
+                  "name": "balance",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " Delegate the voting power (with some given conviction) of the sending account.",
+                "",
+                " The balance delegated is locked for as long as it's delegated, and thereafter for the",
+                " time appropriate for the conviction's lock period.",
+                "",
+                " The dispatch origin of this call must be _Signed_, and the signing account must either:",
+                "   - be delegating already; or",
+                "   - have no voting activity (if there is, then it will need to be removed/consolidated",
+                "     through `reap_vote` or `unvote`).",
+                "",
+                " - `to`: The account whose voting the `target` account's voting power will follow.",
+                " - `conviction`: The conviction that will be attached to the delegated votes. When the",
+                "   account is undelegated, the funds will be locked for the corresponding period.",
+                " - `balance`: The amount of the account's balance to be used in delegating. This must",
+                "   not be more than the account's current balance.",
+                "",
+                " Emits `Delegated`.",
+                "",
+                " Weight: `O(R)` where R is the number of referendums the voter delegating to has",
+                "   voted on. Weight is charged as if maximum votes."
+              ]
+            },
+            {
+              "name": "undelegate",
+              "args": [],
+              "docs": [
+                " Undelegate the voting power of the sending account.",
+                "",
+                " Tokens may be unlocked following once an amount of time consistent with the lock period",
+                " of the conviction with which the delegation was issued.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the signing account must be",
+                " currently delegating.",
+                "",
+                " Emits `Undelegated`.",
+                "",
+                " Weight: `O(R)` where R is the number of referendums the voter delegating to has",
+                "   voted on. Weight is charged as if maximum votes."
+              ]
+            },
+            {
+              "name": "clear_public_proposals",
+              "args": [],
+              "docs": [
+                " Clears all public proposals.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " Weight: `O(1)`."
+              ]
+            },
+            {
+              "name": "note_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This doesn't require the proposal to be",
+                " in the dispatch queue but does require a deposit, returned once enacted.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `encoded_proposal`: The preimage of a proposal.",
+                "",
+                " Emits `PreimageNoted`.",
+                "",
+                " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."
+              ]
+            },
+            {
+              "name": "note_preimage_operational",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Same as `note_preimage` but origin is `OperationalPreimageOrigin`."
+              ]
+            },
+            {
+              "name": "note_imminent_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This requires the proposal to be",
+                " in the dispatch queue. No deposit is needed. When this call is successful, i.e.",
+                " the preimage has not been uploaded before and matches some imminent proposal,",
+                " no fee is paid.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `encoded_proposal`: The preimage of a proposal.",
+                "",
+                " Emits `PreimageNoted`.",
+                "",
+                " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."
+              ]
+            },
+            {
+              "name": "note_imminent_preimage_operational",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`."
+              ]
+            },
+            {
+              "name": "reap_preimage",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "proposal_len_upper_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Remove an expired proposal preimage and collect the deposit.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `proposal_hash`: The preimage hash of a proposal.",
+                " - `proposal_length_upper_bound`: an upper bound on length of the proposal.",
+                "   Extrinsic is weighted according to this value with no refund.",
+                "",
+                " This will only work after `VotingPeriod` blocks from the time that the preimage was",
+                " noted, if it's the same account doing it. If it's a different account, then it'll only",
+                " work an additional `EnactmentPeriod` later.",
+                "",
+                " Emits `PreimageReaped`.",
+                "",
+                " Weight: `O(D)` where D is length of proposal."
+              ]
+            },
+            {
+              "name": "unlock",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Unlock tokens that have an expired lock.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `target`: The account to remove the lock on.",
+                "",
+                " Weight: `O(R)` with R number of vote of target."
+              ]
+            },
+            {
+              "name": "remove_vote",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Remove a vote for a referendum.",
+                "",
+                " If:",
+                " - the referendum was cancelled, or",
+                " - the referendum is ongoing, or",
+                " - the referendum has ended such that",
+                "   - the vote of the account was in opposition to the result; or",
+                "   - there was no conviction to the account's vote; or",
+                "   - the account made a split vote",
+                " ...then the vote is removed cleanly and a following call to `unlock` may result in more",
+                " funds being available.",
+                "",
+                " If, however, the referendum has ended and:",
+                " - it finished corresponding to the vote of the account, and",
+                " - the account made a standard vote with conviction, and",
+                " - the lock period of the conviction is not over",
+                " ...then the lock will be aggregated into the overall account's lock, which may involve",
+                " *overlocking* (where the two locks are combined into a single lock that is the maximum",
+                " of both the amount locked and the time is it locked for).",
+                "",
+                " The dispatch origin of this call must be _Signed_, and the signer must have a vote",
+                " registered for referendum `index`.",
+                "",
+                " - `index`: The index of referendum of the vote to be removed.",
+                "",
+                " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.",
+                "   Weight is calculated for the maximum number of vote."
+              ]
+            },
+            {
+              "name": "remove_other_vote",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Remove a vote for a referendum.",
+                "",
+                " If the `target` is equal to the signer, then this function is exactly equivalent to",
+                " `remove_vote`. If not equal to the signer, then the vote must have expired,",
+                " either because the referendum was cancelled, because the voter lost the referendum or",
+                " because the conviction period is over.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `target`: The account of the vote to be removed; this account must have voted for",
+                "   referendum `index`.",
+                " - `index`: The index of referendum of the vote to be removed.",
+                "",
+                " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.",
+                "   Weight is calculated for the maximum number of vote."
+              ]
+            },
+            {
+              "name": "enact_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Enact a proposal from a referendum. For now we just make the weight be the maximum."
+              ]
+            },
+            {
+              "name": "blacklist",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "maybe_ref_index",
+                  "type": "Option<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Permanently place a proposal into the blacklist. This prevents it from ever being",
+                " proposed again.",
+                "",
+                " If called on a queued public or external proposal, then this will result in it being",
+                " removed. If the `ref_index` supplied is an active referendum with the proposal hash,",
+                " then it will be cancelled.",
+                "",
+                " The dispatch origin of this call must be `BlacklistOrigin`.",
+                "",
+                " - `proposal_hash`: The proposal hash to blacklist permanently.",
+                " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be",
+                " cancelled.",
+                "",
+                " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a",
+                "   reasonable value)."
+              ]
+            },
+            {
+              "name": "cancel_proposal",
+              "args": [
+                {
+                  "name": "prop_index",
+                  "type": "Compact<PropIndex>"
+                }
+              ],
+              "docs": [
+                " Remove a proposal.",
+                "",
+                " The dispatch origin of this call must be `CancelProposalOrigin`.",
+                "",
+                " - `prop_index`: The index of the proposal to cancel.",
+                "",
+                " Weight: `O(p)` where `p = PublicProps::<T>::decode_len()`"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "PropIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A motion has been proposed by a public account. \\[proposal_index, deposit\\]"
+              ]
+            },
+            {
+              "name": "Tabled",
+              "args": [
+                "PropIndex",
+                "Balance",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"
+              ]
+            },
+            {
+              "name": "ExternalTabled",
+              "args": [],
+              "docs": [
+                " An external proposal has been tabled."
+              ]
+            },
+            {
+              "name": "Started",
+              "args": [
+                "ReferendumIndex",
+                "VoteThreshold"
+              ],
+              "docs": [
+                " A referendum has begun. \\[ref_index, threshold\\]"
+              ]
+            },
+            {
+              "name": "Passed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been approved by referendum. \\[ref_index\\]"
+              ]
+            },
+            {
+              "name": "NotPassed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been rejected by referendum. \\[ref_index\\]"
+              ]
+            },
+            {
+              "name": "Cancelled",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A referendum has been cancelled. \\[ref_index\\]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "ReferendumIndex",
+                "bool"
+              ],
+              "docs": [
+                " A proposal has been enacted. \\[ref_index, is_ok\\]"
+              ]
+            },
+            {
+              "name": "Delegated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An account has delegated their vote to another account. \\[who, target\\]"
+              ]
+            },
+            {
+              "name": "Undelegated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] has cancelled a previous delegation operation."
+              ]
+            },
+            {
+              "name": "Vetoed",
+              "args": [
+                "AccountId",
+                "Hash",
+                "BlockNumber"
+              ],
+              "docs": [
+                " An external proposal has been vetoed. \\[who, proposal_hash, until\\]"
+              ]
+            },
+            {
+              "name": "PreimageNoted",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]"
+              ]
+            },
+            {
+              "name": "PreimageUsed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal preimage was removed and used (the deposit was returned).",
+                " \\[proposal_hash, provider, deposit\\]"
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was invalid.",
+                " \\[proposal_hash, ref_index\\]"
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was missing.",
+                " \\[proposal_hash, ref_index\\]"
+              ]
+            },
+            {
+              "name": "PreimageReaped",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A registered preimage was removed and the deposit collected by the reaper.",
+                " \\[proposal_hash, provider, deposit, reaper\\]"
+              ]
+            },
+            {
+              "name": "Unlocked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] has been unlocked successfully."
+              ]
+            },
+            {
+              "name": "Blacklisted",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A proposal \\[hash\\] has been blacklisted permanently."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "EnactmentPeriod",
+              "type": "BlockNumber",
+              "value": "0x002f0d00",
+              "docs": [
+                " The minimum period of locking and the period between a proposal being approved and enacted.",
+                "",
+                " It should generally be a little more than the unstake period to ensure that",
+                " voting stakers have an opportunity to remove themselves from the system in the case where",
+                " they are on the losing side of a vote."
+              ]
+            },
+            {
+              "name": "LaunchPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) new public referenda are launched."
+              ]
+            },
+            {
+              "name": "VotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) to check for new votes."
+              ]
+            },
+            {
+              "name": "MinimumDeposit",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount to be used as a deposit for a public referendum proposal."
+              ]
+            },
+            {
+              "name": "FastTrackVotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x80510100",
+              "docs": [
+                " Minimum voting period allowed for an emergency referendum."
+              ]
+            },
+            {
+              "name": "CooloffPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " Period in blocks where an external proposal may not be re-submitted after being vetoed."
+              ]
+            },
+            {
+              "name": "PreimageByteDeposit",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount of balance that must be deposited per byte of preimage stored."
+              ]
+            },
+            {
+              "name": "MaxVotes",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of votes for an account."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "ValueLow",
+              "docs": [
+                " Value too low"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal does not exist"
+              ]
+            },
+            {
+              "name": "BadIndex",
+              "docs": [
+                " Unknown index"
+              ]
+            },
+            {
+              "name": "AlreadyCanceled",
+              "docs": [
+                " Cannot cancel the same proposal twice"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Proposal already made"
+              ]
+            },
+            {
+              "name": "ProposalBlacklisted",
+              "docs": [
+                " Proposal still blacklisted"
+              ]
+            },
+            {
+              "name": "NotSimpleMajority",
+              "docs": [
+                " Next external proposal not simple majority"
+              ]
+            },
+            {
+              "name": "InvalidHash",
+              "docs": [
+                " Invalid hash"
+              ]
+            },
+            {
+              "name": "NoProposal",
+              "docs": [
+                " No external proposal"
+              ]
+            },
+            {
+              "name": "AlreadyVetoed",
+              "docs": [
+                " Identity may not veto a proposal twice"
+              ]
+            },
+            {
+              "name": "NotDelegated",
+              "docs": [
+                " Not delegated"
+              ]
+            },
+            {
+              "name": "DuplicatePreimage",
+              "docs": [
+                " Preimage already noted"
+              ]
+            },
+            {
+              "name": "NotImminent",
+              "docs": [
+                " Not imminent"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " Too early"
+              ]
+            },
+            {
+              "name": "Imminent",
+              "docs": [
+                " Imminent"
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "docs": [
+                " Preimage not found"
+              ]
+            },
+            {
+              "name": "ReferendumInvalid",
+              "docs": [
+                " Vote given for invalid referendum"
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "docs": [
+                " Invalid preimage"
+              ]
+            },
+            {
+              "name": "NoneWaiting",
+              "docs": [
+                " No proposals waiting"
+              ]
+            },
+            {
+              "name": "NotLocked",
+              "docs": [
+                " The target account does not have a lock."
+              ]
+            },
+            {
+              "name": "NotExpired",
+              "docs": [
+                " The lock on the account to be unlocked has not yet expired."
+              ]
+            },
+            {
+              "name": "NotVoter",
+              "docs": [
+                " The given account did not vote on the referendum."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " The actor has no permission to conduct the action."
+              ]
+            },
+            {
+              "name": "AlreadyDelegating",
+              "docs": [
+                " The account is already delegating."
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " An unexpected integer overflow occurred."
+              ]
+            },
+            {
+              "name": "Underflow",
+              "docs": [
+                " An unexpected integer underflow occurred."
+              ]
+            },
+            {
+              "name": "InsufficientFunds",
+              "docs": [
+                " Too high a balance was provided that the account cannot afford."
+              ]
+            },
+            {
+              "name": "NotDelegating",
+              "docs": [
+                " The account is not currently delegating."
+              ]
+            },
+            {
+              "name": "VotesExist",
+              "docs": [
+                " The account currently has votes attached to it and the operation cannot succeed until",
+                " these are removed, either through `unvote` or `reap_vote`."
+              ]
+            },
+            {
+              "name": "InstantNotAllowed",
+              "docs": [
+                " The instant referendum origin is currently disallowed."
+              ]
+            },
+            {
+              "name": "Nonsense",
+              "docs": [
+                " Delegation to oneself makes no sense."
+              ]
+            },
+            {
+              "name": "WrongUpperBound",
+              "docs": [
+                " Invalid upper bound."
+              ]
+            },
+            {
+              "name": "MaxVotesReached",
+              "docs": [
+                " Maximum number of votes reached."
+              ]
+            },
+            {
+              "name": "InvalidWitness",
+              "docs": [
+                " The provided witness data is wrong."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " Maximum number of proposals reached."
+              ]
+            }
+          ],
+          "index": 11
+        },
+        {
+          "name": "Council",
+          "storage": {
+            "prefix": "Instance1Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The prime member that helps determine the default vote behavior in case of absentations."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "prime",
+                  "type": "Option<AccountId>"
+                },
+                {
+                  "name": "old_count",
+                  "type": "MemberCount"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership.",
+                "",
+                " - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
+                " - `prime`: The prime member whose vote sets the default.",
+                " - `old_count`: The upper bound for the previous number of members in storage.",
+                "                Used for weight estimation.",
+                "",
+                " Requires root origin.",
+                "",
+                " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
+                "       the weight estimations rely on it to estimate dispatchable weight.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(MP + N)` where:",
+                "   - `M` old-members-count (code- and governance-bounded)",
+                "   - `N` new-members-count (code- and governance-bounded)",
+                "   - `P` proposals-count (code-bounded)",
+                " - DB:",
+                "   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
+                "   - 1 storage read (codec `O(P)`) for reading the proposals",
+                "   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
+                "   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
+                " - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Add a new proposal to either be voted on or executed directly.",
+                "",
+                " Requires the sender to be member.",
+                "",
+                " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
+                " or put up for voting.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1)` or `O(B + M + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - branching is influenced by `threshold` where:",
+                "     - `P1` is proposal execution complexity (`threshold < 2`)",
+                "     - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
+                " - DB:",
+                "   - 1 storage read `is_member` (codec `O(M)`)",
+                "   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
+                "   - DB accesses influenced by `threshold`:",
+                "     - EITHER storage accesses done by `proposal` (`threshold < 2`)",
+                "     - OR proposal insertion (`threshold <= 2`)",
+                "       - 1 storage mutation `Proposals` (codec `O(P2)`)",
+                "       - 1 storage mutation `ProposalCount` (codec `O(1)`)",
+                "       - 1 storage write `ProposalOf` (codec `O(B)`)",
+                "       - 1 storage write `Voting` (codec `O(M)`)",
+                "   - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Add an aye or nay vote for the sender to the given proposal.",
+                "",
+                " Requires the sender to be a member.",
+                "",
+                " Transaction fees will be waived if the member is voting on any particular proposal",
+                " for the first time and the call is successful. Subsequent vote changes will charge a fee.",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M)` where `M` is members-count (code- and governance-bounded)",
+                " - DB:",
+                "   - 1 storage read `Members` (codec `O(M)`)",
+                "   - 1 storage mutation `Voting` (codec `O(M)`)",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "proposal_weight_bound",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Close a vote that is either approved, disapproved or whose voting period has ended.",
+                "",
+                " May be called by any signed account in order to finish voting and close the proposal.",
+                "",
+                " If called before the end of the voting period it will only close the vote if it is",
+                " has enough votes to be approved or disapproved.",
+                "",
+                " If called after the end of the voting period abstentions are counted as rejections",
+                " unless there is a prime member set and the prime member cast an approval.",
+                "",
+                " If the close operation completes successfully with disapproval, the transaction fee will",
+                " be waived. Otherwise execution of the approved operation will be charged to the caller.",
+                "",
+                " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
+                " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
+                "                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1 + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - `P1` is the complexity of `proposal` preimage.",
+                "   - `P2` is proposal-count (code-bounded)",
+                " - DB:",
+                "  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
+                "  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
+                "  - any mutations done while executing `proposal` (`P1`)",
+                " - up to 3 events",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "disapprove_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
+                "",
+                " Must be called by the Root origin.",
+                "",
+                " Parameters:",
+                " * `proposal_hash`: The hash of the proposal that should be disapproved.",
+                "",
+                " # <weight>",
+                " Complexity: O(P) where P is the number of max proposals",
+                " DB Weight:",
+                " * Reads: Proposals",
+                " * Writes: Voting, Proposals, ProposalOf",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`).",
+                " \\[account, proposal_index, proposal_hash, threshold\\]"
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`).",
+                " \\[account, proposal_hash, voted, yes, no\\]"
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A motion was executed; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A single member did some action; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "Closed",
+              "args": [
+                "Hash",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A proposal was closed because its threshold was reached or after its duration was up.",
+                " \\[proposal_hash, yes, no\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " The close call was made too early, before the end of the voting."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " There can only be a maximum of `MaxProposals` active proposals."
+              ]
+            },
+            {
+              "name": "WrongProposalWeight",
+              "docs": [
+                " The given weight bound for the proposal was too low."
+              ]
+            },
+            {
+              "name": "WrongProposalLength",
+              "docs": [
+                " The given length bound for the proposal was too low."
+              ]
+            }
+          ],
+          "index": 12
+        },
+        {
+          "name": "TechnicalCommittee",
+          "storage": {
+            "prefix": "Instance2Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The prime member that helps determine the default vote behavior in case of absentations."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "prime",
+                  "type": "Option<AccountId>"
+                },
+                {
+                  "name": "old_count",
+                  "type": "MemberCount"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership.",
+                "",
+                " - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
+                " - `prime`: The prime member whose vote sets the default.",
+                " - `old_count`: The upper bound for the previous number of members in storage.",
+                "                Used for weight estimation.",
+                "",
+                " Requires root origin.",
+                "",
+                " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
+                "       the weight estimations rely on it to estimate dispatchable weight.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(MP + N)` where:",
+                "   - `M` old-members-count (code- and governance-bounded)",
+                "   - `N` new-members-count (code- and governance-bounded)",
+                "   - `P` proposals-count (code-bounded)",
+                " - DB:",
+                "   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
+                "   - 1 storage read (codec `O(P)`) for reading the proposals",
+                "   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
+                "   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
+                " - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Add a new proposal to either be voted on or executed directly.",
+                "",
+                " Requires the sender to be member.",
+                "",
+                " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
+                " or put up for voting.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1)` or `O(B + M + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - branching is influenced by `threshold` where:",
+                "     - `P1` is proposal execution complexity (`threshold < 2`)",
+                "     - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
+                " - DB:",
+                "   - 1 storage read `is_member` (codec `O(M)`)",
+                "   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
+                "   - DB accesses influenced by `threshold`:",
+                "     - EITHER storage accesses done by `proposal` (`threshold < 2`)",
+                "     - OR proposal insertion (`threshold <= 2`)",
+                "       - 1 storage mutation `Proposals` (codec `O(P2)`)",
+                "       - 1 storage mutation `ProposalCount` (codec `O(1)`)",
+                "       - 1 storage write `ProposalOf` (codec `O(B)`)",
+                "       - 1 storage write `Voting` (codec `O(M)`)",
+                "   - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Add an aye or nay vote for the sender to the given proposal.",
+                "",
+                " Requires the sender to be a member.",
+                "",
+                " Transaction fees will be waived if the member is voting on any particular proposal",
+                " for the first time and the call is successful. Subsequent vote changes will charge a fee.",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M)` where `M` is members-count (code- and governance-bounded)",
+                " - DB:",
+                "   - 1 storage read `Members` (codec `O(M)`)",
+                "   - 1 storage mutation `Voting` (codec `O(M)`)",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "proposal_weight_bound",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Close a vote that is either approved, disapproved or whose voting period has ended.",
+                "",
+                " May be called by any signed account in order to finish voting and close the proposal.",
+                "",
+                " If called before the end of the voting period it will only close the vote if it is",
+                " has enough votes to be approved or disapproved.",
+                "",
+                " If called after the end of the voting period abstentions are counted as rejections",
+                " unless there is a prime member set and the prime member cast an approval.",
+                "",
+                " If the close operation completes successfully with disapproval, the transaction fee will",
+                " be waived. Otherwise execution of the approved operation will be charged to the caller.",
+                "",
+                " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
+                " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
+                "                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1 + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - `P1` is the complexity of `proposal` preimage.",
+                "   - `P2` is proposal-count (code-bounded)",
+                " - DB:",
+                "  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
+                "  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
+                "  - any mutations done while executing `proposal` (`P1`)",
+                " - up to 3 events",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "disapprove_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
+                "",
+                " Must be called by the Root origin.",
+                "",
+                " Parameters:",
+                " * `proposal_hash`: The hash of the proposal that should be disapproved.",
+                "",
+                " # <weight>",
+                " Complexity: O(P) where P is the number of max proposals",
+                " DB Weight:",
+                " * Reads: Proposals",
+                " * Writes: Voting, Proposals, ProposalOf",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`).",
+                " \\[account, proposal_index, proposal_hash, threshold\\]"
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`).",
+                " \\[account, proposal_hash, voted, yes, no\\]"
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A motion was executed; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A single member did some action; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "Closed",
+              "args": [
+                "Hash",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A proposal was closed because its threshold was reached or after its duration was up.",
+                " \\[proposal_hash, yes, no\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " The close call was made too early, before the end of the voting."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " There can only be a maximum of `MaxProposals` active proposals."
+              ]
+            },
+            {
+              "name": "WrongProposalWeight",
+              "docs": [
+                " The given weight bound for the proposal was too low."
+              ]
+            },
+            {
+              "name": "WrongProposalLength",
+              "docs": [
+                " The given length bound for the proposal was too low."
+              ]
+            }
+          ],
+          "index": 13
+        },
+        {
+          "name": "Elections",
+          "storage": {
+            "prefix": "Elections",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<SeatHolder>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current elected members.",
+                  "",
+                  " Invariant: Always sorted based on account id."
+                ]
+              },
+              {
+                "name": "RunnersUp",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<SeatHolder>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current reserved runners-up.",
+                  "",
+                  " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the",
+                  " last (i.e. _best_) runner-up will be replaced."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The present candidate list. A current member or runner-up can never enter this vector",
+                  " and is always implicitly assumed to be a candidate.",
+                  "",
+                  " Second element is the deposit.",
+                  "",
+                  " Invariant: Always sorted based on account id."
+                ]
+              },
+              {
+                "name": "ElectionRounds",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The total number of vote rounds that have happened, excluding the upcoming one."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Voter",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Votes and locked stake of a particular voter.",
+                  "",
+                  " TWOX-NOTE: SAFE as `AccountId` is a crypto hash."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "votes",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Vote for a set of candidates for the upcoming round of election. This can be called to",
+                " set the initial votes, or update already existing votes.",
+                "",
+                " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is",
+                " reserved. The deposit is based on the number of votes and can be updated over time.",
+                "",
+                " The `votes` should:",
+                "   - not be empty.",
+                "   - be less than the number of possible candidates. Note that all current members and",
+                "     runners-up are also automatically candidates for the next round.",
+                "",
+                " If `value` is more than `who`'s total balance, then the maximum of the two is used.",
+                "",
+                " The dispatch origin of this call must be signed.",
+                "",
+                " ### Warning",
+                "",
+                " It is the responsibility of the caller to **NOT** place all of their balance into the",
+                " lock and keep some for further operations.",
+                "",
+                " # <weight>",
+                " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_voter",
+              "args": [],
+              "docs": [
+                " Remove `origin` as a voter.",
+                "",
+                " This removes the lock and returns the deposit.",
+                "",
+                " The dispatch origin of this call must be signed and be a voter."
+              ]
+            },
+            {
+              "name": "submit_candidacy",
+              "args": [
+                {
+                  "name": "candidate_count",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Submit oneself for candidacy. A fixed amount of deposit is recorded.",
+                "",
+                " All candidates are wiped at the end of the term. They either become a member/runner-up,",
+                " or leave the system while their deposit is slashed.",
+                "",
+                " The dispatch origin of this call must be signed.",
+                "",
+                " ### Warning",
+                "",
+                " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]",
+                " to get their deposit back. Losing the spot in an election will always lead to a slash.",
+                "",
+                " # <weight>",
+                " The number of current candidates must be provided as witness data.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "renounce_candidacy",
+              "args": [
+                {
+                  "name": "renouncing",
+                  "type": "Renouncing"
+                }
+              ],
+              "docs": [
+                " Renounce one's intention to be a candidate for the next election round. 3 potential",
+                " outcomes exist:",
+                "",
+                " - `origin` is a candidate and not elected in any set. In this case, the deposit is",
+                "   unreserved, returned and origin is removed as a candidate.",
+                " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and",
+                "   origin is removed as a runner-up.",
+                " - `origin` is a current member. In this case, the deposit is unreserved and origin is",
+                "   removed as a member, consequently not being a candidate for the next round anymore.",
+                "   Similar to [`remove_members`], if replacement runners exists, they are immediately",
+                "   used. If the prime is renouncing, then no prime will exist until the next round.",
+                "",
+                " The dispatch origin of this call must be signed, and have one of the above roles.",
+                "",
+                " # <weight>",
+                " The type of renouncing must be provided as witness data.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "has_replacement",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Remove a particular member from the set. This is effective immediately and the bond of",
+                " the outgoing member is slashed.",
+                "",
+                " If a runner-up is available, then the best runner-up will be removed and replaces the",
+                " outgoing member. Otherwise, a new phragmen election is started.",
+                "",
+                " The dispatch origin of this call must be root.",
+                "",
+                " Note that this does not affect the designated block number of the next election.",
+                "",
+                " # <weight>",
+                " If we have a replacement, we use a small weight. Else, since this is a root call and",
+                " will go into phragmen, we assume full block for now.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clean_defunct_voters",
+              "args": [
+                {
+                  "name": "_num_voters",
+                  "type": "u32"
+                },
+                {
+                  "name": "_num_defunct",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Clean all voters who are defunct (i.e. they do not serve any purpose at all). The",
+                " deposit of the removed voters are returned.",
+                "",
+                " This is an root function to be used only for cleaning the state.",
+                "",
+                " The dispatch origin of this call must be root.",
+                "",
+                " # <weight>",
+                " The total number of voters and those that are defunct must be provided as witness data.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewTerm",
+              "args": [
+                "Vec<(AccountId,Balance)>"
+              ],
+              "docs": [
+                " A new term with \\[new_members\\]. This indicates that enough candidates existed to run",
+                " the election, not that enough have has been elected. The inner value must be examined",
+                " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond",
+                " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to",
+                " begin with."
+              ]
+            },
+            {
+              "name": "EmptyTerm",
+              "args": [],
+              "docs": [
+                " No (or not enough) candidates existed for this round. This is different from",
+                " `NewTerm(\\[\\])`. See the description of `NewTerm`."
+              ]
+            },
+            {
+              "name": "ElectionError",
+              "args": [],
+              "docs": [
+                " Internal error happened while trying to perform election."
+              ]
+            },
+            {
+              "name": "MemberKicked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[member\\] has been removed. This should always be followed by either `NewTerm` or",
+                " `EmptyTerm`."
+              ]
+            },
+            {
+              "name": "Renounced",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Someone has renounced their candidacy."
+              ]
+            },
+            {
+              "name": "CandidateSlashed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or",
+                " runner-up.",
+                "",
+                " Note that old members and runners-up are also candidates."
+              ]
+            },
+            {
+              "name": "SeatHolderSlashed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "PalletId",
+              "type": "LockIdentifier",
+              "value": "0x706872656c656374",
+              "docs": [
+                " Identifier for the elections-phragmen pallet's lock"
+              ]
+            },
+            {
+              "name": "CandidacyBond",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " How much should be locked up in order to submit one's candidacy."
+              ]
+            },
+            {
+              "name": "VotingBondBase",
+              "type": "BalanceOf",
+              "value": "0x00f0436de36a01000000000000000000",
+              "docs": [
+                " Base deposit associated with voting.",
+                "",
+                " This should be sensibly high to economically ensure the pallet cannot be attacked by",
+                " creating a gigantic number of votes."
+              ]
+            },
+            {
+              "name": "VotingBondFactor",
+              "type": "BalanceOf",
+              "value": "0x0000cc7b9fae00000000000000000000",
+              "docs": [
+                " The amount of bond that need to be locked for each vote (32 bytes)."
+              ]
+            },
+            {
+              "name": "DesiredMembers",
+              "type": "u32",
+              "value": "0x0d000000",
+              "docs": [
+                " Number of members to elect."
+              ]
+            },
+            {
+              "name": "DesiredRunnersUp",
+              "type": "u32",
+              "value": "0x07000000",
+              "docs": [
+                " Number of runners_up to keep."
+              ]
+            },
+            {
+              "name": "TermDuration",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": [
+                " How long each seat is kept. This defines the next block number at which an election",
+                " round will happen. If set to zero, no elections are ever triggered and the module will",
+                " be in passive mode."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "UnableToVote",
+              "docs": [
+                " Cannot vote when no candidates or members exist."
+              ]
+            },
+            {
+              "name": "NoVotes",
+              "docs": [
+                " Must vote for at least one candidate."
+              ]
+            },
+            {
+              "name": "TooManyVotes",
+              "docs": [
+                " Cannot vote more than candidates."
+              ]
+            },
+            {
+              "name": "MaximumVotesExceeded",
+              "docs": [
+                " Cannot vote more than maximum allowed."
+              ]
+            },
+            {
+              "name": "LowBalance",
+              "docs": [
+                " Cannot vote with stake less than minimum balance."
+              ]
+            },
+            {
+              "name": "UnableToPayBond",
+              "docs": [
+                " Voter can not pay voting bond."
+              ]
+            },
+            {
+              "name": "MustBeVoter",
+              "docs": [
+                " Must be a voter."
+              ]
+            },
+            {
+              "name": "ReportSelf",
+              "docs": [
+                " Cannot report self."
+              ]
+            },
+            {
+              "name": "DuplicatedCandidate",
+              "docs": [
+                " Duplicated candidate submission."
+              ]
+            },
+            {
+              "name": "MemberSubmit",
+              "docs": [
+                " Member cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "RunnerUpSubmit",
+              "docs": [
+                " Runner cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "InsufficientCandidateFunds",
+              "docs": [
+                " Candidate does not have enough funds."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " Not a member."
+              ]
+            },
+            {
+              "name": "InvalidWitnessData",
+              "docs": [
+                " The provided count of number of candidates is incorrect."
+              ]
+            },
+            {
+              "name": "InvalidVoteCount",
+              "docs": [
+                " The provided count of number of votes is incorrect."
+              ]
+            },
+            {
+              "name": "InvalidRenouncing",
+              "docs": [
+                " The renouncing origin presented a wrong `Renouncing` parameter."
+              ]
+            },
+            {
+              "name": "InvalidReplacement",
+              "docs": [
+                " Prediction regarding replacement after member removal is wrong."
+              ]
+            }
+          ],
+          "index": 14
+        },
+        {
+          "name": "TechnicalMembership",
+          "storage": {
+            "prefix": "Instance1Membership",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current membership, stored as an ordered Vec."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current prime member, if one exists."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a member `who` to the set.",
+                "",
+                " May only be called from `T::AddOrigin`."
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Remove a member `who` from the set.",
+                "",
+                " May only be called from `T::RemoveOrigin`."
+              ]
+            },
+            {
+              "name": "swap_member",
+              "args": [
+                {
+                  "name": "remove",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "add",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out one member `remove` for another `add`.",
+                "",
+                " May only be called from `T::SwapOrigin`.",
+                "",
+                " Prime membership is *not* passed from `remove` to `add`, if extant."
+              ]
+            },
+            {
+              "name": "reset_members",
+              "args": [
+                {
+                  "name": "members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Change the membership to a new set, disregarding the existing membership. Be nice and",
+                " pass `members` pre-sorted.",
+                "",
+                " May only be called from `T::ResetOrigin`."
+              ]
+            },
+            {
+              "name": "change_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out the sending member for some other key `new`.",
+                "",
+                " May only be called from `Signed` origin of a current member.",
+                "",
+                " Prime membership is passed from the origin account to `new`, if extant."
+              ]
+            },
+            {
+              "name": "set_prime",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Set the prime member. Must be a current member.",
+                "",
+                " May only be called from `T::PrimeOrigin`."
+              ]
+            },
+            {
+              "name": "clear_prime",
+              "args": [],
+              "docs": [
+                " Remove the prime member if it exists.",
+                "",
+                " May only be called from `T::PrimeOrigin`."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "MemberAdded",
+              "args": [],
+              "docs": [
+                " The given member was added; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MemberRemoved",
+              "args": [],
+              "docs": [
+                " The given member was removed; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersSwapped",
+              "args": [],
+              "docs": [
+                " Two members were swapped; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersReset",
+              "args": [],
+              "docs": [
+                " The membership was reset; see the transaction for who the new set is."
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [],
+              "docs": [
+                " One of the members' keys changed."
+              ]
+            },
+            {
+              "name": "Dummy",
+              "args": [
+                "PhantomData"
+              ],
+              "docs": [
+                " Phantom member, never used."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "AlreadyMember",
+              "docs": [
+                " Already a member."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " Not a member."
+              ]
+            }
+          ],
+          "index": 15
+        },
+        {
+          "name": "Grandpa",
+          "storage": {
+            "prefix": "GrandpaFinality",
+            "items": [
+              {
+                "name": "State",
+                "modifier": "Default",
+                "type": {
+                  "plain": "StoredState"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " State of the current authority set."
+                ]
+              },
+              {
+                "name": "PendingChange",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "StoredPendingChange"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending change: (signaled at, scheduled change)."
+                ]
+              },
+              {
+                "name": "NextForced",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " next block number where we can force a change."
+                ]
+              },
+              {
+                "name": "Stalled",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(BlockNumber,BlockNumber)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " `true` if we are currently stalled."
+                ]
+              },
+              {
+                "name": "CurrentSetId",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SetId"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The number of changes (both in terms of keys and underlying economic responsibilities)",
+                  " in the \"set\" of Grandpa validators from genesis."
+                ]
+              },
+              {
+                "name": "SetIdSession",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "SetId",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from grandpa set ID to the index of the *most recent* session for which its",
+                  " members were responsible.",
+                  "",
+                  " TWOX-NOTE: `SetId` is not under user control."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_equivocation",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "GrandpaEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report voter equivocation/misbehavior. This method will verify the",
+                " equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence",
+                " will be reported."
+              ]
+            },
+            {
+              "name": "report_equivocation_unsigned",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "GrandpaEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report voter equivocation/misbehavior. This method will verify the",
+                " equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence",
+                " will be reported.",
+                "",
+                " This extrinsic must be called unsigned and it is expected that only",
+                " block authors will call it (validated in `ValidateUnsigned`), as such",
+                " if the block author is defined it will be defined as the equivocation",
+                " reporter."
+              ]
+            },
+            {
+              "name": "note_stalled",
+              "args": [
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "best_finalized_block_number",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Note that the current authority set of the GRANDPA finality gadget has",
+                " stalled. This will trigger a forced authority set change at the beginning",
+                " of the next session, to be enacted `delay` blocks after that. The delay",
+                " should be high enough to safely assume that the block signalling the",
+                " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters",
+                " will start the new authority set using the given finalized block as base.",
+                " Only callable by root."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewAuthorities",
+              "args": [
+                "AuthorityList"
+              ],
+              "docs": [
+                " New authority set has been applied. \\[authority_set\\]"
+              ]
+            },
+            {
+              "name": "Paused",
+              "args": [],
+              "docs": [
+                " Current authority set has been paused."
+              ]
+            },
+            {
+              "name": "Resumed",
+              "args": [],
+              "docs": [
+                " Current authority set has been resumed."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "PauseFailed",
+              "docs": [
+                " Attempt to signal GRANDPA pause when the authority set isn't live",
+                " (either paused or already pending pause)."
+              ]
+            },
+            {
+              "name": "ResumeFailed",
+              "docs": [
+                " Attempt to signal GRANDPA resume when the authority set isn't paused",
+                " (either live or already pending resume)."
+              ]
+            },
+            {
+              "name": "ChangePending",
+              "docs": [
+                " Attempt to signal GRANDPA change with one already pending."
+              ]
+            },
+            {
+              "name": "TooSoon",
+              "docs": [
+                " Cannot signal forced change so soon after last."
+              ]
+            },
+            {
+              "name": "InvalidKeyOwnershipProof",
+              "docs": [
+                " A key ownership proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "InvalidEquivocationProof",
+              "docs": [
+                " An equivocation proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "DuplicateOffenceReport",
+              "docs": [
+                " A given equivocation report is valid but already previously reported."
+              ]
+            }
+          ],
+          "index": 16
+        },
+        {
+          "name": "Treasury",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ProposalIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Number of proposals that have been made."
+                ]
+              },
+              {
+                "name": "Proposals",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ProposalIndex",
+                    "value": "TreasuryProposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposals that have been made."
+                ]
+              },
+              {
+                "name": "Approvals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ProposalIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposal indices that have been approved but not yet awarded."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose_spend",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Put forward a suggestion for spending. A deposit proportional to the value",
+                " is reserved and slashed if the proposal is rejected. It is returned once the",
+                " proposal is awarded.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1)",
+                " - DbReads: `ProposalCount`, `origin account`",
+                " - DbWrites: `ProposalCount`, `Proposals`, `origin account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Reject a proposed spend. The original deposit will be slashed.",
+                "",
+                " May only be called from `T::RejectOrigin`.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1)",
+                " - DbReads: `Proposals`, `rejected proposer account`",
+                " - DbWrites: `Proposals`, `rejected proposer account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
+                " and the original deposit will be returned.",
+                "",
+                " May only be called from `T::ApproveOrigin`.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1).",
+                " - DbReads: `Proposals`, `Approvals`",
+                " - DbWrite: `Approvals`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "ProposalIndex"
+              ],
+              "docs": [
+                " New proposal. \\[proposal_index\\]"
+              ]
+            },
+            {
+              "name": "Spending",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " We have ended a spend period and will now allocate funds. \\[budget_remaining\\]"
+              ]
+            },
+            {
+              "name": "Awarded",
+              "args": [
+                "ProposalIndex",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " Some funds have been allocated. \\[proposal_index, award, beneficiary\\]"
+              ]
+            },
+            {
+              "name": "Rejected",
+              "args": [
+                "ProposalIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]"
+              ]
+            },
+            {
+              "name": "Burnt",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some of our funds have been burnt. \\[burn\\]"
+              ]
+            },
+            {
+              "name": "Rollover",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Spending has finished; this is the amount that rolls over until next spend.",
+                " \\[budget_remaining\\]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds have been deposited. \\[deposit\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProposalBond",
+              "type": "Permill",
+              "value": "0x50c30000",
+              "docs": [
+                " Fraction of a proposal's value that should be bonded in order to place the proposal.",
+                " An accepted proposal gets these back. A rejected proposal does not."
+              ]
+            },
+            {
+              "name": "ProposalBondMinimum",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Minimum amount of funds that should be placed in a deposit for making a proposal."
+              ]
+            },
+            {
+              "name": "SpendPeriod",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " Period between successive spends."
+              ]
+            },
+            {
+              "name": "Burn",
+              "type": "Permill",
+              "value": "0x20a10700",
+              "docs": [
+                " Percentage of spare funds (if any) that are burnt per spend period."
+              ]
+            },
+            {
+              "name": "PalletId",
+              "type": "PalletId",
+              "value": "0x70792f7472737279",
+              "docs": [
+                " The treasury's module id, used for deriving its sovereign account ID."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InsufficientProposersBalance",
+              "docs": [
+                " Proposer's balance is too low."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " No proposal or bounty at that index."
+              ]
+            },
+            {
+              "name": "TooManyApprovals",
+              "docs": [
+                " Too many approvals in the queue."
+              ]
+            }
+          ],
+          "index": 17
+        },
+        {
+          "name": "Contracts",
+          "storage": {
+            "prefix": "Contracts",
+            "items": [
+              {
+                "name": "CurrentSchedule",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Schedule"
+                },
+                "fallback": "0x000000000004000000000200000001000080000000100000000010000000010000200000001f060000d66a0200dd84030026180000bd1c0000430b000003170000ae2800009c000000dd69010063e00200300700000706000065070000b10500006e180000002800006905000072deae08f0070000dc070000710a00006a080000a507000096070000d1070000770900003e09000075090000d809000082090000bc090000120900003c09000072090000dc090000f7080000e108000062090000162000006b1d00002e2000002c1b0000fe080000000900000f090000a7090000f1090000ba090000bb09000065090000d8b82800000000009e9828000000000016902700000000004c705700000000004cc8270000000000e4bc270000000000e8d1270000000000a0685b0000000000484f2700000000009e7627000000000000f45100000000004cab120000000000184a700000000000140100000000000000cd460000000000fc02000000000000d0b570270000000013200000000000007821da3100000000e0200000000000009a120000000000000482b10900000000e03463000000000038d7900000000000de67d00700000000840900000000000006186e000000000016935d1200000000da02000000000000eaced408000000003a240e0200000000e705000000000000fc41d50a00000000d48e9309000000002d0f0000000000003a4225090000000047020000000000002303000000000000ba7c962300000000a5210000000000006d020000000000005403000000000000e50b00000000000026922400000000006110000000000000a4122600000000001d0d000000000000520e2200000000001a0600000000000020222200000000001a0600000000000044b13c0000000000",
+                "docs": [
+                  " Current cost schedule for contracts."
+                ]
+              },
+              {
+                "name": "PristineCode",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "CodeHash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from an original code hash to the original code, untouched by instrumentation."
+                ]
+              },
+              {
+                "name": "CodeStorage",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "CodeHash",
+                    "value": "PrefabWasmModule",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping between an original code hash and instrumented wasm code, ready for execution."
+                ]
+              },
+              {
+                "name": "AccountCounter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The subtrie counter."
+                ]
+              },
+              {
+                "name": "ContractInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "ContractInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The code associated with a given account.",
+                  "",
+                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "DeletionQueue",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<DeletedContract>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Evicted contracts that await child trie deletion.",
+                  "",
+                  " Child trie deletion is a heavy operation depending on the amount of storage items",
+                  " stored in said trie. Therefore this operation is performed lazily in `on_initialize`."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "update_schedule",
+              "args": [
+                {
+                  "name": "schedule",
+                  "type": "Schedule"
+                }
+              ],
+              "docs": [
+                " Updates the schedule for metering contracts.",
+                "",
+                " The schedule's version cannot be less than the version of the stored schedule.",
+                " If a schedule does not change the instruction weights the version does not",
+                " need to be increased. Therefore we allow storing a schedule that has the same",
+                " version as the stored one."
+              ]
+            },
+            {
+              "name": "call",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Makes a call to an account, optionally transferring some balance.",
+                "",
+                " * If the account is a smart-contract account, the associated code will be",
+                " executed and any value will be transferred.",
+                " * If the account is a regular account, any value will be transferred.",
+                " * If no account exists and the call value is not less than `existential_deposit`,",
+                " a regular account will be created and any value will be transferred."
+              ]
+            },
+            {
+              "name": "instantiate_with_code",
+              "args": [
+                {
+                  "name": "endowment",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "salt",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Instantiates a new contract from the supplied `code` optionally transferring",
+                " some balance.",
+                "",
+                " This is the only function that can deploy new code to the chain.",
+                "",
+                " # Parameters",
+                "",
+                " * `endowment`: The balance to transfer from the `origin` to the newly created contract.",
+                " * `gas_limit`: The gas limit enforced when executing the constructor.",
+                " * `code`: The contract code to deploy in raw bytes.",
+                " * `data`: The input data to pass to the contract constructor.",
+                " * `salt`: Used for the address derivation. See [`Pallet::contract_address`].",
+                "",
+                " Instantiation is executed as follows:",
+                "",
+                " - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.",
+                " - If the `code_hash` already exists on the chain the underlying `code` will be shared.",
+                " - The destination address is computed based on the sender, code_hash and the salt.",
+                " - The smart-contract account is created at the computed address.",
+                " - The `endowment` is transferred to the new account.",
+                " - The `deploy` function is executed in the context of the newly-created account."
+              ]
+            },
+            {
+              "name": "instantiate",
+              "args": [
+                {
+                  "name": "endowment",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "code_hash",
+                  "type": "CodeHash"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "salt",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Instantiates a contract from a previously deployed wasm binary.",
+                "",
+                " This function is identical to [`Self::instantiate_with_code`] but without the",
+                " code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary",
+                " must be supplied."
+              ]
+            },
+            {
+              "name": "claim_surcharge",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "aux_sender",
+                  "type": "Option<AccountId>"
+                }
+              ],
+              "docs": [
+                " Allows block producers to claim a small reward for evicting a contract. If a block",
+                " producer fails to do so, a regular users will be allowed to claim the reward.",
+                "",
+                " In case of a successful eviction no fees are charged from the sender. However, the",
+                " reward is capped by the total amount of rent that was payed by the contract while",
+                " it was alive.",
+                "",
+                " If contract is not evicted as a result of this call, [`Error::ContractNotEvictable`]",
+                " is returned and the sender is not eligible for the reward."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Instantiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Contract deployed by address at the specified address. \\[deployer, contract\\]"
+              ]
+            },
+            {
+              "name": "Evicted",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Contract has been evicted and is now in tombstone state. \\[contract\\]"
+              ]
+            },
+            {
+              "name": "Terminated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Contract has been terminated without leaving a tombstone.",
+                " \\[contract, beneficiary\\]",
+                "",
+                " # Params",
+                "",
+                " - `contract`: The contract that was terminated.",
+                " - `beneficiary`: The account that received the contracts remaining balance.",
+                "",
+                " # Note",
+                "",
+                " The only way for a contract to be removed without a tombstone and emitting",
+                " this event is by calling `seal_terminate`."
+              ]
+            },
+            {
+              "name": "Restored",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Hash",
+                "Balance"
+              ],
+              "docs": [
+                " Restoration of a contract has been successful.",
+                " \\[restorer, dest, code_hash, rent_allowance\\]",
+                "",
+                " # Params",
+                "",
+                " - `restorer`: Account ID of the restoring contract.",
+                " - `dest`: Account ID of the restored contract.",
+                " - `code_hash`: Code hash of the restored contract.",
+                " - `rent_allowance`: Rent allowance of the restored contract."
+              ]
+            },
+            {
+              "name": "CodeStored",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " Code with the specified hash has been stored. \\[code_hash\\]"
+              ]
+            },
+            {
+              "name": "ScheduleUpdated",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " Triggered when the current schedule is updated.",
+                " \\[version\\]",
+                "",
+                " # Params",
+                "",
+                " - `version`: The version of the newly set schedule."
+              ]
+            },
+            {
+              "name": "ContractEmitted",
+              "args": [
+                "AccountId",
+                "Bytes"
+              ],
+              "docs": [
+                " A custom event emitted by the contract.",
+                " \\[contract, data\\]",
+                "",
+                " # Params",
+                "",
+                " - `contract`: The contract that emitted the event.",
+                " - `data`: Data supplied by the contract. Metadata generated during contract",
+                "           compilation is needed to decode it."
+              ]
+            },
+            {
+              "name": "CodeRemoved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A code with the specified hash was removed.",
+                " \\[code_hash\\]",
+                "",
+                " This happens when the last contract that uses this code hash was removed or evicted."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SignedClaimHandicap",
+              "type": "BlockNumber",
+              "value": "0x02000000",
+              "docs": [
+                " Number of block delay an extrinsic claim surcharge has.",
+                "",
+                " When claim surcharge is called by an extrinsic the rent is checked",
+                " for current_block - delay"
+              ]
+            },
+            {
+              "name": "TombstoneDeposit",
+              "type": "BalanceOf",
+              "value": "0x00f0e8857a9c02000000000000000000",
+              "docs": [
+                " The minimum amount required to generate a tombstone."
+              ]
+            },
+            {
+              "name": "DepositPerContract",
+              "type": "BalanceOf",
+              "value": "0x00f0e8857a9c02000000000000000000",
+              "docs": [
+                " The balance every contract needs to deposit to stay alive indefinitely.",
+                "",
+                " This is different from the [`Self::TombstoneDeposit`] because this only needs to be",
+                " deposited while the contract is alive. Costs for additional storage are added to",
+                " this base cost.",
+                "",
+                " This is a simple way to ensure that contracts with empty storage eventually get deleted by",
+                " making them pay rent. This creates an incentive to remove them early in order to save rent."
+              ]
+            },
+            {
+              "name": "DepositPerStorageByte",
+              "type": "BalanceOf",
+              "value": "0x0060defb740500000000000000000000",
+              "docs": [
+                " The balance a contract needs to deposit per storage byte to stay alive indefinitely.",
+                "",
+                " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,",
+                " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.",
+                " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,",
+                " then it would pay 500 BU/day."
+              ]
+            },
+            {
+              "name": "DepositPerStorageItem",
+              "type": "BalanceOf",
+              "value": "0x00f0ab75a40d00000000000000000000",
+              "docs": [
+                " The balance a contract needs to deposit per storage item to stay alive indefinitely.",
+                "",
+                " It works the same as [`Self::DepositPerStorageByte`] but for storage items."
+              ]
+            },
+            {
+              "name": "RentFraction",
+              "type": "Perbill",
+              "value": "0x85040000",
+              "docs": [
+                " The fraction of the deposit that should be used as rent per block.",
+                "",
+                " When a contract hasn't enough balance deposited to stay alive indefinitely it needs",
+                " to pay per block for the storage it consumes that is not covered by the deposit.",
+                " This determines how high this rent payment is per block as a fraction of the deposit."
+              ]
+            },
+            {
+              "name": "SurchargeReward",
+              "type": "BalanceOf",
+              "value": "0x005cb2ec220000000000000000000000",
+              "docs": [
+                " Reward that is received by the party whose touch has led",
+                " to removal of a contract."
+              ]
+            },
+            {
+              "name": "MaxDepth",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum nesting level of a call/instantiate stack."
+              ]
+            },
+            {
+              "name": "MaxValueSize",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " The maximum size of a storage value and event payload in bytes."
+              ]
+            },
+            {
+              "name": "DeletionQueueDepth",
+              "type": "u32",
+              "value": "0xf0000000",
+              "docs": [
+                " The maximum number of tries that can be queued for deletion."
+              ]
+            },
+            {
+              "name": "DeletionWeightLimit",
+              "type": "Weight",
+              "value": "0x00d0ed902e000000",
+              "docs": [
+                " The maximum amount of weight that can be consumed per block for lazy trie removal."
+              ]
+            },
+            {
+              "name": "MaxCodeSize",
+              "type": "u32",
+              "value": "0x00000200",
+              "docs": [
+                " The maximum length of a contract code in bytes. This limit applies to the instrumented",
+                " version of the code. Therefore `instantiate_with_code` can fail even when supplying",
+                " a wasm binary below this maximum size."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidScheduleVersion",
+              "docs": [
+                " A new schedule must have a greater version than the current one."
+              ]
+            },
+            {
+              "name": "InvalidSurchargeClaim",
+              "docs": [
+                " An origin must be signed or inherent and auxiliary sender only provided on inherent."
+              ]
+            },
+            {
+              "name": "InvalidSourceContract",
+              "docs": [
+                " Cannot restore from nonexisting or tombstone contract."
+              ]
+            },
+            {
+              "name": "InvalidDestinationContract",
+              "docs": [
+                " Cannot restore to nonexisting or alive contract."
+              ]
+            },
+            {
+              "name": "InvalidTombstone",
+              "docs": [
+                " Tombstones don't match."
+              ]
+            },
+            {
+              "name": "InvalidContractOrigin",
+              "docs": [
+                " An origin TrieId written in the current block."
+              ]
+            },
+            {
+              "name": "OutOfGas",
+              "docs": [
+                " The executed contract exhausted its gas limit."
+              ]
+            },
+            {
+              "name": "OutputBufferTooSmall",
+              "docs": [
+                " The output buffer supplied to a contract API call was too small."
+              ]
+            },
+            {
+              "name": "BelowSubsistenceThreshold",
+              "docs": [
+                " Performing the requested transfer would have brought the contract below",
+                " the subsistence threshold. No transfer is allowed to do this in order to allow",
+                " for a tombstone to be created. Use `seal_terminate` to remove a contract without",
+                " leaving a tombstone behind."
+              ]
+            },
+            {
+              "name": "NewContractNotFunded",
+              "docs": [
+                " The newly created contract is below the subsistence threshold after executing",
+                " its contructor. No contracts are allowed to exist below that threshold."
+              ]
+            },
+            {
+              "name": "TransferFailed",
+              "docs": [
+                " Performing the requested transfer failed for a reason originating in the",
+                " chosen currency implementation of the runtime. Most probably the balance is",
+                " too low or locks are placed on it."
+              ]
+            },
+            {
+              "name": "MaxCallDepthReached",
+              "docs": [
+                " Performing a call was denied because the calling depth reached the limit",
+                " of what is specified in the schedule."
+              ]
+            },
+            {
+              "name": "NotCallable",
+              "docs": [
+                " The contract that was called is either no contract at all (a plain account)",
+                " or is a tombstone."
+              ]
+            },
+            {
+              "name": "CodeTooLarge",
+              "docs": [
+                " The code supplied to `instantiate_with_code` exceeds the limit specified in the",
+                " current schedule."
+              ]
+            },
+            {
+              "name": "CodeNotFound",
+              "docs": [
+                " No code could be found at the supplied code hash."
+              ]
+            },
+            {
+              "name": "OutOfBounds",
+              "docs": [
+                " A buffer outside of sandbox memory was passed to a contract API function."
+              ]
+            },
+            {
+              "name": "DecodingFailed",
+              "docs": [
+                " Input passed to a contract API function failed to decode as expected type."
+              ]
+            },
+            {
+              "name": "ContractTrapped",
+              "docs": [
+                " Contract trapped during execution."
+              ]
+            },
+            {
+              "name": "ValueTooLarge",
+              "docs": [
+                " The size defined in `T::MaxValueSize` was exceeded."
+              ]
+            },
+            {
+              "name": "ReentranceDenied",
+              "docs": [
+                " The action performed is not allowed while the contract performing it is already",
+                " on the call stack. Those actions are contract self destruction and restoration",
+                " of a tombstone."
+              ]
+            },
+            {
+              "name": "InputAlreadyRead",
+              "docs": [
+                " `seal_input` was called twice from the same contract execution context."
+              ]
+            },
+            {
+              "name": "RandomSubjectTooLong",
+              "docs": [
+                " The subject passed to `seal_random` exceeds the limit."
+              ]
+            },
+            {
+              "name": "TooManyTopics",
+              "docs": [
+                " The amount of topics passed to `seal_deposit_events` exceeds the limit."
+              ]
+            },
+            {
+              "name": "DuplicateTopics",
+              "docs": [
+                " The topics passed to `seal_deposit_events` contains at least one duplicate."
+              ]
+            },
+            {
+              "name": "NoChainExtension",
+              "docs": [
+                " The chain does not provide a chain extension. Calling the chain extension results",
+                " in this error. Note that this usually  shouldn't happen as deploying such contracts",
+                " is rejected."
+              ]
+            },
+            {
+              "name": "DeletionQueueFull",
+              "docs": [
+                " Removal of a contract failed because the deletion queue is full.",
+                "",
+                " This can happen when either calling [`Pallet::claim_surcharge`] or `seal_terminate`.",
+                " The queue is filled by deleting contracts and emptied by a fixed amount each block.",
+                " Trying again during another block is the only way to resolve this issue."
+              ]
+            },
+            {
+              "name": "ContractNotEvictable",
+              "docs": [
+                " A contract could not be evicted because it has enough balance to pay rent.",
+                "",
+                " This can be returned from [`Pallet::claim_surcharge`] because the target",
+                " contract has enough balance to pay for its rent."
+              ]
+            },
+            {
+              "name": "StorageExhausted",
+              "docs": [
+                " A storage modification exhausted the 32bit type that holds the storage size.",
+                "",
+                " This can either happen when the accumulated storage in bytes is too large or",
+                " when number of storage items is too large."
+              ]
+            },
+            {
+              "name": "DuplicateContract",
+              "docs": [
+                " A contract with the same AccountId already exists."
+              ]
+            }
+          ],
+          "index": 18
+        },
+        {
+          "name": "Sudo",
+          "storage": {
+            "prefix": "Sudo",
+            "items": [
+              {
+                "name": "Key",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The `AccountId` of the sudo key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "sudo",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Weight of derivative `call` execution + 10,000.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_unchecked_weight",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                },
+                {
+                  "name": "_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                " This function does not check the weight of the call, and instead allows the",
+                " Sudo user to specify the weight of the call.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - The weight of this call is defined by the caller.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_as",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Signed` origin from",
+                " a given account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Weight of derivative `call` execution + 10,000.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Sudid",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A sudo just took place. \\[result\\]"
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The \\[sudoer\\] just switched identity; the old key is supplied."
+              ]
+            },
+            {
+              "name": "SudoAsDone",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A sudo just took place. \\[result\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "RequireSudo",
+              "docs": [
+                " Sender must be the Sudo account"
+              ]
+            }
+          ],
+          "index": 19
+        },
+        {
+          "name": "ImOnline",
+          "storage": {
+            "prefix": "ImOnline",
+            "items": [
+              {
+                "name": "HeartbeatAfter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The block number after which it's ok to send heartbeats in the current",
+                  " session.",
+                  "",
+                  " At the beginning of each session we set this to a value that should fall",
+                  " roughly in the middle of the session duration. The idea is to first wait for",
+                  " the validators to produce a block in the current session, so that the",
+                  " heartbeat later on will not be necessary.",
+                  "",
+                  " This value will only be used as a fallback if we fail to get a proper session",
+                  " progress estimate from `NextSessionRotation`, as those estimates should be",
+                  " more accurate then the value we calculate for `HeartbeatAfter`."
+                ]
+              },
+              {
+                "name": "Keys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AuthorityId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of keys that may issue a heartbeat."
+                ]
+              },
+              {
+                "name": "ReceivedHeartbeats",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "SessionIndex",
+                    "key2": "AuthIndex",
+                    "value": "Bytes",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " For each session index, we keep a mapping of `AuthIndex` to",
+                  " `offchain::OpaqueNetworkState`."
+                ]
+              },
+              {
+                "name": "AuthoredBlocks",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "SessionIndex",
+                    "key2": "ValidatorId",
+                    "value": "u32",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " For each session index, we keep a mapping of `ValidatorId<T>` to the",
+                  " number of blocks authored by the given authority."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "heartbeat",
+              "args": [
+                {
+                  "name": "heartbeat",
+                  "type": "Heartbeat"
+                },
+                {
+                  "name": "_signature",
+                  "type": "Signature"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)",
+                "   and E is length of `heartbeat.network_state.external_address`",
+                "   - `O(K)`: decoding of length `K`",
+                "   - `O(E)`: decoding/encoding of length `E`",
+                " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,",
+                "   `ReceivedHeartbeats`",
+                " - DbWrites: `ReceivedHeartbeats`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "HeartbeatReceived",
+              "args": [
+                "AuthorityId"
+              ],
+              "docs": [
+                " A new heartbeat was received from `AuthorityId` \\[authority_id\\]"
+              ]
+            },
+            {
+              "name": "AllGood",
+              "args": [],
+              "docs": [
+                " At the end of the session, no offence was committed."
+              ]
+            },
+            {
+              "name": "SomeOffline",
+              "args": [
+                "Vec<IdentificationTuple>"
+              ],
+              "docs": [
+                " At the end of the session, at least one validator was found to be \\[offline\\]."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidKey",
+              "docs": [
+                " Non existent public key."
+              ]
+            },
+            {
+              "name": "DuplicatedHeartbeat",
+              "docs": [
+                " Duplicated heartbeat."
+              ]
+            }
+          ],
+          "index": 20
+        },
+        {
+          "name": "AuthorityDiscovery",
+          "storage": null,
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 21
+        },
+        {
+          "name": "Offences",
+          "storage": {
+            "prefix": "Offences",
+            "items": [
+              {
+                "name": "Reports",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ReportIdOf",
+                    "value": "OffenceDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The primary structure that holds all offence records keyed by report identifiers."
+                ]
+              },
+              {
+                "name": "DeferredOffences",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<DeferredOffenceOf>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Deferred reports that have been rejected by the offence handler and need to be submitted",
+                  " at a later time."
+                ]
+              },
+              {
+                "name": "ConcurrentReportsIndex",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "Kind",
+                    "key2": "OpaqueTimeSlot",
+                    "value": "Vec<ReportIdOf>",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A vector of reports of the same kind that happened at the same time slot."
+                ]
+              },
+              {
+                "name": "ReportsByKindIndex",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Kind",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Enumerates all reports of a kind along with the time they happened.",
+                  "",
+                  " All reports are sorted by the time of offence.",
+                  "",
+                  " Note that the actual type of this mapping is `Vec<u8>`, this is because values of",
+                  " different types are not supported at the moment so we are doing the manual serialization."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": [
+            {
+              "name": "Offence",
+              "args": [
+                "Kind",
+                "OpaqueTimeSlot",
+                "bool"
+              ],
+              "docs": [
+                " There is an offence reported of the given `kind` happened at the `session_index` and",
+                " (kind-specific) time slot. This event is not deposited for duplicate slashes. last",
+                " element indicates of the offence was applied (true) or queued (false)",
+                " \\[kind, timeslot, applied\\]."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [],
+          "index": 22
+        },
+        {
+          "name": "Historical",
+          "storage": null,
+          "calls": null,
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 23
+        },
+        {
+          "name": "RandomnessCollectiveFlip",
+          "storage": {
+            "prefix": "RandomnessCollectiveFlip",
+            "items": [
+              {
+                "name": "RandomMaterial",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Series of block headers from the last 81 blocks that acts as random seed material. This",
+                  " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of",
+                  " the oldest hash."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 24
+        },
+        {
+          "name": "Identity",
+          "storage": {
+            "prefix": "Identity",
+            "items": [
+              {
+                "name": "IdentityOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Registration",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information that is pertinent to identify the entity behind an account.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "SuperOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "(AccountId,Data)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The super-identity of an alternative \"sub\" identity together with its name, within that",
+                  " context. If the account is not some other account's sub-identity, then just `None`."
+                ]
+              },
+              {
+                "name": "SubsOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " Alternative \"sub\" identities of this account.",
+                  "",
+                  " The first item is the deposit, the second is a vector of the accounts.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "Registrars",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Option<RegistrarInfo>>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of registrars. Not expected to get very big as can only be added through a",
+                  " special origin (likely a council motion).",
+                  "",
+                  " The index into this can be cast to `RegistrarIndex` to get a valid value."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_registrar",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a registrar to the system.",
+                "",
+                " The dispatch origin for this call must be `T::RegistrarOrigin`.",
+                "",
+                " - `account`: the account of the registrar.",
+                "",
+                " Emits `RegistrarAdded` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).",
+                " - One storage mutation (codec `O(R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_identity",
+              "args": [
+                {
+                  "name": "info",
+                  "type": "IdentityInfo"
+                }
+              ],
+              "docs": [
+                " Set an account's identity information and reserve the appropriate deposit.",
+                "",
+                " If the account already has identity information, the deposit is taken as part payment",
+                " for the new deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `info`: The identity information.",
+                "",
+                " Emits `IdentitySet` if successful.",
+                "",
+                " # <weight>",
+                " - `O(X + X' + R)`",
+                "   - where `X` additional-field-count (deposit-bounded and code-bounded)",
+                "   - where `R` judgements-count (registrar-count-bounded)",
+                " - One balance reserve operation.",
+                " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_subs",
+              "args": [
+                {
+                  "name": "subs",
+                  "type": "Vec<(AccountId,Data)>"
+                }
+              ],
+              "docs": [
+                " Set the sub-accounts of the sender.",
+                "",
+                " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned",
+                " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " - `subs`: The identity's (new) sub-accounts.",
+                "",
+                " # <weight>",
+                " - `O(P + S)`",
+                "   - where `P` old-subs-count (hard- and deposit-bounded).",
+                "   - where `S` subs-count (hard- and deposit-bounded).",
+                " - At most one balance operations.",
+                " - DB:",
+                "   - `P + S` storage mutations (codec complexity `O(1)`)",
+                "   - One storage read (codec complexity `O(P)`).",
+                "   - One storage write (codec complexity `O(S)`).",
+                "   - One storage-exists (`IdentityOf::contains_key`).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_identity",
+              "args": [],
+              "docs": [
+                " Clear an account's identity info and all sub-accounts and return all deposits.",
+                "",
+                " Payment: All reserved balances on the account are returned.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " Emits `IdentityCleared` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`",
+                "   - where `R` registrar-count (governance-bounded).",
+                "   - where `S` subs-count (hard- and deposit-bounded).",
+                "   - where `X` additional-field-count (deposit-bounded and code-bounded).",
+                " - One balance-unreserve operation.",
+                " - `2` storage reads and `S + 2` storage deletions.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "request_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "max_fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Request a judgement from a registrar.",
+                "",
+                " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement",
+                " given.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is requested.",
+                " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:",
+                "",
+                " ```nocompile",
+                " Self::registrars().get(reg_index).unwrap().fee",
+                " ```",
+                "",
+                " Emits `JudgementRequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_request",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "RegistrarIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a previous request.",
+                "",
+                " Payment: A previously reserved deposit is returned on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is no longer requested.",
+                "",
+                " Emits `JudgementUnrequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - One storage mutation `O(R + X)`.",
+                " - One event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fee",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Set the fee required for a judgement to be requested from a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fee`: the new fee.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_account_id",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Change the account associated with a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `new`: the new account ID.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fields",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fields",
+                  "type": "IdentityFields"
+                }
+              ],
+              "docs": [
+                " Set the field information for a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fields`: the fields that the registrar concerns themselves with.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "provide_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "judgement",
+                  "type": "IdentityJudgement"
+                }
+              ],
+              "docs": [
+                " Provide a judgement for an account's identity.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `reg_index`.",
+                "",
+                " - `reg_index`: the index of the registrar whose judgement is being made.",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.",
+                "",
+                " Emits `JudgementGiven` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-transfer operation.",
+                " - Up to one account-lookup operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_identity",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove an account's identity and sub-account information and slash the deposits.",
+                "",
+                " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by",
+                " `Slash`. Verification request deposits are not returned; they should be cancelled",
+                " manually using `cancel_request`.",
+                "",
+                " The dispatch origin for this call must match `T::ForceOrigin`.",
+                "",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                "",
+                " Emits `IdentityKilled` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`.",
+                " - One balance-reserve operation.",
+                " - `S + 2` storage mutations.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "add_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "data",
+                  "type": "Data"
+                }
+              ],
+              "docs": [
+                " Add the given account to the sender's subs.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "rename_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "data",
+                  "type": "Data"
+                }
+              ],
+              "docs": [
+                " Alter the associated name of the given sub-account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "remove_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove the given account from the sender's subs.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "quit_sub",
+              "args": [],
+              "docs": [
+                " Remove the sender as a sub-account.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender (*not* the original depositor).",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " super-identity.",
+                "",
+                " NOTE: This should not normally be used, but is provided in the case that the non-",
+                " controller of an account is maliciously registered as a sub-account."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "IdentitySet",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A name was set or reset (which will remove all judgements). \\[who\\]"
+              ]
+            },
+            {
+              "name": "IdentityCleared",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was cleared, and the given balance returned. \\[who, deposit\\]"
+              ]
+            },
+            {
+              "name": "IdentityKilled",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was removed and the given balance slashed. \\[who, deposit\\]"
+              ]
+            },
+            {
+              "name": "JudgementRequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was asked from a registrar. \\[who, registrar_index\\]"
+              ]
+            },
+            {
+              "name": "JudgementUnrequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement request was retracted. \\[who, registrar_index\\]"
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was given by a registrar. \\[target, registrar_index\\]"
+              ]
+            },
+            {
+              "name": "RegistrarAdded",
+              "args": [
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A registrar was added. \\[registrar_index\\]"
+              ]
+            },
+            {
+              "name": "SubIdentityAdded",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]"
+              ]
+            },
+            {
+              "name": "SubIdentityRemoved",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was removed from an identity and the deposit freed.",
+                " \\[sub, main, deposit\\]"
+              ]
+            },
+            {
+              "name": "SubIdentityRevoked",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was cleared, and the given deposit repatriated from the",
+                " main identity account to the sub-identity account. \\[sub, main, deposit\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "BasicDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The amount held on deposit for a registered identity."
+              ]
+            },
+            {
+              "name": "FieldDeposit",
+              "type": "BalanceOf",
+              "value": "0x00a031a95fe300000000000000000000",
+              "docs": [
+                " The amount held on deposit per additional field for a registered identity."
+              ]
+            },
+            {
+              "name": "SubAccountDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080f420e6b500000000000000000000",
+              "docs": [
+                " The amount held on deposit for a registered subaccount. This should account for the fact",
+                " that one storage item's value will increase by the size of an account ID, and there will be",
+                " another trie item whose value is the size of an account ID plus 32 bytes."
+              ]
+            },
+            {
+              "name": "MaxSubAccounts",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of sub-accounts allowed per identified account."
+              ]
+            },
+            {
+              "name": "MaxAdditionalFields",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O",
+                " required to access an identity, but can be pretty high."
+              ]
+            },
+            {
+              "name": "MaxRegistrars",
+              "type": "u32",
+              "value": "0x14000000",
+              "docs": [
+                " Maxmimum number of registrars allowed in the system. Needed to bound the complexity",
+                " of, e.g., updating judgements."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "TooManySubAccounts",
+              "docs": [
+                " Too many subs-accounts."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Account isn't found."
+              ]
+            },
+            {
+              "name": "NotNamed",
+              "docs": [
+                " Account isn't named."
+              ]
+            },
+            {
+              "name": "EmptyIndex",
+              "docs": [
+                " Empty index."
+              ]
+            },
+            {
+              "name": "FeeChanged",
+              "docs": [
+                " Fee is changed."
+              ]
+            },
+            {
+              "name": "NoIdentity",
+              "docs": [
+                " No identity found."
+              ]
+            },
+            {
+              "name": "StickyJudgement",
+              "docs": [
+                " Sticky judgement."
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "docs": [
+                " Judgement given."
+              ]
+            },
+            {
+              "name": "InvalidJudgement",
+              "docs": [
+                " Invalid judgement."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " The index is invalid."
+              ]
+            },
+            {
+              "name": "InvalidTarget",
+              "docs": [
+                " The target is invalid."
+              ]
+            },
+            {
+              "name": "TooManyFields",
+              "docs": [
+                " Too many additional fields."
+              ]
+            },
+            {
+              "name": "TooManyRegistrars",
+              "docs": [
+                " Maximum amount of registrars reached. Cannot add any more."
+              ]
+            },
+            {
+              "name": "AlreadyClaimed",
+              "docs": [
+                " Account ID is already named."
+              ]
+            },
+            {
+              "name": "NotSub",
+              "docs": [
+                " Sender is not a sub-account."
+              ]
+            },
+            {
+              "name": "NotOwned",
+              "docs": [
+                " Sub-account isn't owned by sender."
+              ]
+            }
+          ],
+          "index": 25
+        },
+        {
+          "name": "Society",
+          "storage": {
+            "prefix": "Society",
+            "items": [
+              {
+                "name": "Founder",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The first member."
+                ]
+              },
+              {
+                "name": "Rules",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A hash of the rules of this society concerning membership. Can only be set once and",
+                  " only by the founder."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of candidates; bidders that are attempting to become members."
+                ]
+              },
+              {
+                "name": "SuspendedCandidates",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,BidKind)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended candidates."
+                ]
+              },
+              {
+                "name": "Pot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " Amount of our account balance that is specifically for the next round's bid(s)."
+                ]
+              },
+              {
+                "name": "Head",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The most primary from the most recently approved members."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of members, ordered."
+                ]
+              },
+              {
+                "name": "SuspendedMembers",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended members."
+                ]
+              },
+              {
+                "name": "Bids",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current bids, stored ordered by the value of the bid."
+                ]
+              },
+              {
+                "name": "Vouching",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "VouchingStatus",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Members currently vouching or banned from vouching again"
+                ]
+              },
+              {
+                "name": "Payouts",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Vec<(BlockNumber,BalanceOf)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending payouts; ordered by block number, with the amount that should be paid out."
+                ]
+              },
+              {
+                "name": "Strikes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "StrikeCount",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ongoing number of losing votes cast by the member."
+                ]
+              },
+              {
+                "name": "Votes",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "SocietyVote",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Double map from Candidate -> Voter -> (Maybe) Vote."
+                ]
+              },
+              {
+                "name": "Defender",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The defending member currently being challenged."
+                ]
+              },
+              {
+                "name": "DefenderVotes",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "SocietyVote",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes for the defender."
+                ]
+              },
+              {
+                "name": "MaxMembers",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The max number of members for the society at one time."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bid",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " A user outside of the society can make a bid for entry.",
+                "",
+                " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned",
+                " when the bid becomes a member, or if the bid calls `unbid`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `value`: A one time payment the bid would like to receive when joining the society.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)",
+                " - Storage Reads:",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " \t- One storage read to retrieve all members. O(M)",
+                " - Storage Writes:",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for new bid.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbid",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " A bidder can remove their bid for entry into society.",
+                " By doing so, they will have their candidate deposit returned or",
+                " they will unvouch their voucher.",
+                "",
+                " Payment: The bid deposit is unreserved if the user made a bid.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a bidder.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), X (balance unreserve)",
+                " - One storage read and write to retrieve and update the bids. O(B)",
+                " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "tip",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " As a member, vouch for someone to join society by placing a bid on their behalf.",
+                "",
+                " There is no deposit required to vouch for a new bid, but a member can only vouch for",
+                " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by",
+                " the suspension judgement origin, the member will be banned from vouching again.",
+                "",
+                " As a vouching member, you can claim a tip if the candidate is accepted. This tip will",
+                " be paid as a portion of the reward the member will receive for joining the society.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `who`: The user who you would like to vouch for.",
+                " - `value`: The total reward to be paid between you and the candidate if they become",
+                " a member in the society.",
+                " - `tip`: Your cut of the total `value` payout when the candidate is inducted into",
+                " the society. Tips larger than `value` will be saturated upon payout.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members)",
+                " - Storage Reads:",
+                " \t- One storage read to retrieve all members. O(M)",
+                " \t- One storage read to check member is not already vouching. O(1)",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " - Storage Writes:",
+                " \t- One storage write to insert vouching status to the member. O(1)",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(log M) search to check sender is a member.",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for vouch.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unvouch",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " As a vouching member, unvouch a bid. This only works while vouched user is",
+                " only a bidder (and not a candidate).",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a vouching member.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids)",
+                " - One storage read O(1) to check the signer is a vouching member.",
+                " - One storage mutate to retrieve and update the bids. O(B)",
+                " - One vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "candidate",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on a candidate.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `candidate`: The candidate that the member would like to bid on.",
+                " - `approve`: A boolean which says if the candidate should be",
+                "              approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " Key: C (len of candidates), M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One account lookup.",
+                " - One storage read O(C) and O(C) search to check that user is a candidate.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM + C)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "defender_vote",
+              "args": [
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on the defender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `approve`: A boolean which says if the candidate should be",
+                " approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " - Key: M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "payout",
+              "args": [],
+              "docs": [
+                " Transfer the first matured payout for the sender and remove it from the records.",
+                "",
+                " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.",
+                "",
+                " Payment: The member will receive a payment equal to their first matured",
+                " payout to their free balance.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member with",
+                " payouts remaining.",
+                "",
+                " # <weight>",
+                " Key: M (len of members), P (number of payouts for a particular member)",
+                " - One storage read O(M) and O(log M) search to check signer is a member.",
+                " - One storage read O(P) to get all payouts for a member.",
+                " - One storage read O(1) to get the current block number.",
+                " - One currency transfer call. O(X)",
+                " - One storage write or removal to update the member's payouts. O(P)",
+                "",
+                " Total Complexity: O(M + logM + P + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "found",
+              "args": [
+                {
+                  "name": "founder",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "max_members",
+                  "type": "u32"
+                },
+                {
+                  "name": "rules",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Found the society.",
+                "",
+                " This is done as a discrete action in order to allow for the",
+                " module to be included into a running chain and can only be done once.",
+                "",
+                " The dispatch origin for this call must be from the _FounderSetOrigin_.",
+                "",
+                " Parameters:",
+                " - `founder` - The first member and head of the newly founded society.",
+                " - `max_members` - The initial max number of members for the society.",
+                " - `rules` - The rules of this society concerning membership.",
+                "",
+                " # <weight>",
+                " - Two storage mutates to set `Head` and `Founder`. O(1)",
+                " - One storage write to add the first member to society. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unfound",
+              "args": [],
+              "docs": [
+                " Annul the founding of the society.",
+                "",
+                " The dispatch origin for this call must be Signed, and the signing account must be both",
+                " the `Founder` and the `Head`. This implies that it may only be done when there is one",
+                " member.",
+                "",
+                " # <weight>",
+                " - Two storage reads O(1).",
+                " - Four storage removals O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "forgive",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Allow suspension judgement origin to make judgement on a suspended member.",
+                "",
+                " If a suspended member is forgiven, we simply add them back as a member, not affecting",
+                " any of the existing storage items for that member.",
+                "",
+                " If a suspended member is rejected, remove all associated storage items, including",
+                " their payouts, and remove any vouched bids they currently have.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended member to be judged.",
+                " - `forgive` - A boolean representing whether the suspension judgement origin",
+                "               forgives (`true`) or rejects (`false`) a suspended member.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members)",
+                " - One storage read to check `who` is a suspended member. O(1)",
+                " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.",
+                " - Up to 3 storage removals O(1) to clean up a removed member.",
+                " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal. O(1)",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_candidate",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "judgement",
+                  "type": "SocietyJudgement"
+                }
+              ],
+              "docs": [
+                " Allow suspended judgement origin to make judgement on a suspended candidate.",
+                "",
+                " If the judgement is `Approve`, we add them to society as a member with the appropriate",
+                " payment for joining society.",
+                "",
+                " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back",
+                " to the society treasury, or we ban the voucher from vouching again.",
+                "",
+                " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go",
+                " through the induction process again.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended candidate to be judged.",
+                " - `judgement` - `Approve`, `Reject`, or `Rebid`.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members), X (balance action)",
+                " - One storage read to check `who` is a suspended candidate.",
+                " - One storage removal of the suspended candidate.",
+                " - Approve Logic",
+                " \t- One storage read to get the available pot to pay users with. O(1)",
+                " \t- One storage write to update the available pot. O(1)",
+                " \t- One storage read to get the current block number. O(1)",
+                " \t- One storage read to get all members. O(M)",
+                " \t- Up to one unreserve currency action.",
+                " \t- Up to two new storage writes to payouts.",
+                " \t- Up to one storage write with O(log M) binary search to add a member to society.",
+                " - Reject Logic",
+                " \t- Up to one repatriate reserved currency action. O(X)",
+                " \t- Up to one storage write to ban the vouching member from vouching again.",
+                " - Rebid Logic",
+                " \t- Storage mutate with O(log B) binary search to place the user back into bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal.",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_max_members",
+              "args": [
+                {
+                  "name": "max",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Allows root origin to change the maximum number of members in society.",
+                " Max membership count must be greater than 1.",
+                "",
+                " The dispatch origin for this call must be from _ROOT_.",
+                "",
+                " Parameters:",
+                " - `max` - The maximum number of members for the society.",
+                "",
+                " # <weight>",
+                " - One storage write to update the max. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Founded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The society is founded by the given identity. \\[founder\\]"
+              ]
+            },
+            {
+              "name": "Bid",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A membership bid just happened. The given account is the candidate's ID and their offer",
+                " is the second. \\[candidate_id, offer\\]"
+              ]
+            },
+            {
+              "name": "Vouch",
+              "args": [
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A membership bid just happened by vouching. The given account is the candidate's ID and",
+                " their offer is the second. The vouching party is the third. \\[candidate_id, offer, vouching\\]"
+              ]
+            },
+            {
+              "name": "AutoUnbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] was dropped (due to an excess of bids in the system)."
+              ]
+            },
+            {
+              "name": "Unbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] was dropped (by their request)."
+              ]
+            },
+            {
+              "name": "Unvouch",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] was dropped (by request of who vouched for them)."
+              ]
+            },
+            {
+              "name": "Inducted",
+              "args": [
+                "AccountId",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A group of candidates have been inducted. The batch's primary is the first value, the",
+                " batch in full is the second. \\[primary, candidates\\]"
+              ]
+            },
+            {
+              "name": "SuspendedMemberJudgement",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A suspended member has been judged. \\[who, judged\\]"
+              ]
+            },
+            {
+              "name": "CandidateSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] has been suspended"
+              ]
+            },
+            {
+              "name": "MemberSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[member\\] has been suspended"
+              ]
+            },
+            {
+              "name": "Challenged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[member\\] has been challenged"
+              ]
+            },
+            {
+              "name": "Vote",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed \\[candidate, voter, vote\\]"
+              ]
+            },
+            {
+              "name": "DefenderVote",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed for a defending member \\[voter, vote\\]"
+              ]
+            },
+            {
+              "name": "NewMaxMembers",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " A new \\[max\\] member count has been set"
+              ]
+            },
+            {
+              "name": "Unfounded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Society is unfounded. \\[founder\\]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds were deposited into the society account. \\[value\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "CandidateDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The minimum amount of a deposit required for a bid to be made."
+              ]
+            },
+            {
+              "name": "WrongSideDeduction",
+              "type": "BalanceOf",
+              "value": "0x0080f420e6b500000000000000000000",
+              "docs": [
+                " The amount of the unpaid reward that gets deducted in the case that either a skeptic",
+                " doesn't vote or someone votes in the wrong way."
+              ]
+            },
+            {
+              "name": "MaxStrikes",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)",
+                " before they become suspended."
+              ]
+            },
+            {
+              "name": "PeriodSpend",
+              "type": "BalanceOf",
+              "value": "0x0000c52ebca2b1000000000000000000",
+              "docs": [
+                " The amount of incentive paid within each period. Doesn't include VoterTip."
+              ]
+            },
+            {
+              "name": "RotationPeriod",
+              "type": "BlockNumber",
+              "value": "0x00770100",
+              "docs": [
+                " The number of blocks between candidate/membership rotation periods."
+              ]
+            },
+            {
+              "name": "ChallengePeriod",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": [
+                " The number of blocks between membership challenges."
+              ]
+            },
+            {
+              "name": "PalletId",
+              "type": "PalletId",
+              "value": "0x70792f736f636965",
+              "docs": [
+                " The societies's module id"
+              ]
+            },
+            {
+              "name": "MaxCandidateIntake",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " Maximum candidate intake per round."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "BadPosition",
+              "docs": [
+                " An incorrect position was provided."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " User is not a member."
+              ]
+            },
+            {
+              "name": "AlreadyMember",
+              "docs": [
+                " User is already a member."
+              ]
+            },
+            {
+              "name": "Suspended",
+              "docs": [
+                " User is suspended."
+              ]
+            },
+            {
+              "name": "NotSuspended",
+              "docs": [
+                " User is not suspended."
+              ]
+            },
+            {
+              "name": "NoPayout",
+              "docs": [
+                " Nothing to payout."
+              ]
+            },
+            {
+              "name": "AlreadyFounded",
+              "docs": [
+                " Society already founded."
+              ]
+            },
+            {
+              "name": "InsufficientPot",
+              "docs": [
+                " Not enough in pot to accept candidate."
+              ]
+            },
+            {
+              "name": "AlreadyVouching",
+              "docs": [
+                " Member is already vouching or banned from vouching again."
+              ]
+            },
+            {
+              "name": "NotVouching",
+              "docs": [
+                " Member is not vouching."
+              ]
+            },
+            {
+              "name": "Head",
+              "docs": [
+                " Cannot remove the head of the chain."
+              ]
+            },
+            {
+              "name": "Founder",
+              "docs": [
+                " Cannot remove the founder."
+              ]
+            },
+            {
+              "name": "AlreadyBid",
+              "docs": [
+                " User has already made a bid."
+              ]
+            },
+            {
+              "name": "AlreadyCandidate",
+              "docs": [
+                " User is already a candidate."
+              ]
+            },
+            {
+              "name": "NotCandidate",
+              "docs": [
+                " User is not a candidate."
+              ]
+            },
+            {
+              "name": "MaxMembers",
+              "docs": [
+                " Too many members in the society."
+              ]
+            },
+            {
+              "name": "NotFounder",
+              "docs": [
+                " The caller is not the founder."
+              ]
+            },
+            {
+              "name": "NotHead",
+              "docs": [
+                " The caller is not the head."
+              ]
+            }
+          ],
+          "index": 26
+        },
+        {
+          "name": "Recovery",
+          "storage": {
+            "prefix": "Recovery",
+            "items": [
+              {
+                "name": "Recoverable",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "RecoveryConfig",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of recoverable accounts and their recovery configuration."
+                ]
+              },
+              {
+                "name": "ActiveRecoveries",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "ActiveRecovery",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Active recovery attempts.",
+                  "",
+                  " First account is the account to be recovered, and the second account",
+                  " is the user trying to recover the account."
+                ]
+              },
+              {
+                "name": "Proxy",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The list of allowed proxy accounts.",
+                  "",
+                  " Map from the user who can access it to the recovered account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "as_recovered",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through a recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and registered to",
+                " be able to make calls on behalf of the recovered account.",
+                "",
+                " Parameters:",
+                " - `account`: The recovered account you want to make a call on-behalf-of.",
+                " - `call`: The call you want to make with the recovered account.",
+                "",
+                " # <weight>",
+                " - The weight of the `call` + 10,000.",
+                " - One storage lookup to check account is recovered by `who`. O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_recovered",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow ROOT to bypass the recovery process and set an a rescuer account",
+                " for a lost account directly.",
+                "",
+                " The dispatch origin for this call must be _ROOT_.",
+                "",
+                " Parameters:",
+                " - `lost`: The \"lost account\" to be recovered.",
+                " - `rescuer`: The \"rescuer account\" which can call as the lost account.",
+                "",
+                " # <weight>",
+                " - One storage write O(1)",
+                " - One event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "create_recovery",
+              "args": [
+                {
+                  "name": "friends",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "delay_period",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Create a recovery configuration for your account. This makes your account recoverable.",
+                "",
+                " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance",
+                " will be reserved for storing the recovery configuration. This deposit is returned",
+                " in full when the user calls `remove_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `friends`: A list of friends you trust to vouch for recovery attempts.",
+                "   Should be ordered and contain no duplicate values.",
+                " - `threshold`: The number of friends that must vouch for a recovery attempt",
+                "   before the account can be recovered. Should be less than or equal to",
+                "   the length of the list of friends.",
+                " - `delay_period`: The number of blocks after a recovery attempt is initialized",
+                "   that needs to pass before the account can be recovered.",
+                "",
+                " # <weight>",
+                " - Key: F (len of friends)",
+                " - One storage read to check that account is not already recoverable. O(1).",
+                " - A check that the friends list is sorted and unique. O(F)",
+                " - One currency reserve operation. O(X)",
+                " - One storage write. O(1). Codec O(F).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "initiate_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Initiate the process for recovering a recoverable account.",
+                "",
+                " Payment: `RecoveryDeposit` balance will be reserved for initiating the",
+                " recovery process. This deposit will always be repatriated to the account",
+                " trying to be recovered. See `close_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to recover. This account",
+                "   needs to be recoverable (i.e. have a recovery configuration).",
+                "",
+                " # <weight>",
+                " - One storage read to check that account is recoverable. O(F)",
+                " - One storage read to check that this recovery process hasn't already started. O(1)",
+                " - One currency reserve operation. O(X)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch_recovery",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a \"friend\" of a recoverable account to vouch for an active recovery",
+                " process for that account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"friend\"",
+                " for the recoverable account.",
+                "",
+                " Parameters:",
+                " - `lost`: The lost account that you want to recover.",
+                " - `rescuer`: The account trying to rescue the lost account that you",
+                "   want to vouch for.",
+                "",
+                " The combination of these two parameters must point to an active recovery",
+                " process.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One binary search to confirm caller is a friend. O(logF)",
+                " - One binary search to confirm caller has not already vouched. O(logV)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + logF + V + logV)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "claim_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a successful rescuer to claim their recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"",
+                " who has successfully completed the account recovery process: collected",
+                " `threshold` or more vouches, waited `delay_period` blocks since initiation.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to claim has been successfully",
+                "   recovered by you.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + V)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_recovery",
+              "args": [
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " As the controller of a recoverable account, close an active recovery",
+                " process for your account.",
+                "",
+                " Payment: By calling this function, the recoverable account will receive",
+                " the recovery deposit `RecoveryDeposit` placed by the rescuer.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account with an active recovery process for it.",
+                "",
+                " Parameters:",
+                " - `rescuer`: The account trying to rescue this recoverable account.",
+                "",
+                " # <weight>",
+                " Key: V (len of vouching friends)",
+                " - One storage read/remove to get the active recovery process. O(1), Codec O(V)",
+                " - One balance call to repatriate reserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(V + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_recovery",
+              "args": [],
+              "docs": [
+                " Remove the recovery process for your account. Recovered accounts are still accessible.",
+                "",
+                " NOTE: The user must make sure to call `close_recovery` on all active",
+                " recovery attempts before calling this function else it will fail.",
+                "",
+                " Payment: By calling this function the recoverable account will unreserve",
+                " their recovery configuration deposit.",
+                " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account (i.e. has a recovery configuration).",
+                "",
+                " # <weight>",
+                " Key: F (len of friends)",
+                " - One storage read to get the prefix iterator for active recoveries. O(1)",
+                " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)",
+                " - One balance call to unreserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_recovered",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Cancel the ability to use `as_recovered` for `account`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and registered to",
+                " be able to make calls on behalf of the recovered account.",
+                "",
+                " Parameters:",
+                " - `account`: The recovered account you are able to call on-behalf-of.",
+                "",
+                " # <weight>",
+                " - One storage mutation to check account is recovered by `who`. O(1)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "RecoveryCreated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been set up for an \\[account\\]."
+              ]
+            },
+            {
+              "name": "RecoveryInitiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been initiated for lost account by rescuer account.",
+                " \\[lost, rescuer\\]"
+              ]
+            },
+            {
+              "name": "RecoveryVouched",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for lost account by rescuer account has been vouched for by sender.",
+                " \\[lost, rescuer, sender\\]"
+              ]
+            },
+            {
+              "name": "RecoveryClosed",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for lost account by rescuer account has been closed.",
+                " \\[lost, rescuer\\]"
+              ]
+            },
+            {
+              "name": "AccountRecovered",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Lost account has been successfully recovered by rescuer account.",
+                " \\[lost, rescuer\\]"
+              ]
+            },
+            {
+              "name": "RecoveryRemoved",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been removed for an \\[account\\]."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ConfigDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a recovery configuration."
+              ]
+            },
+            {
+              "name": "FriendDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x00203d88792d00000000000000000000",
+              "docs": [
+                " The amount of currency needed per additional user when creating a recovery configuration."
+              ]
+            },
+            {
+              "name": "MaxFriends",
+              "type": "u16",
+              "value": "0x0900",
+              "docs": [
+                " The maximum amount of friends allowed in a recovery configuration."
+              ]
+            },
+            {
+              "name": "RecoveryDeposit",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for starting a recovery."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotAllowed",
+              "docs": [
+                " User is not allowed to make a call on behalf of this account"
+              ]
+            },
+            {
+              "name": "ZeroThreshold",
+              "docs": [
+                " Threshold must be greater than zero"
+              ]
+            },
+            {
+              "name": "NotEnoughFriends",
+              "docs": [
+                " Friends list must be greater than zero and threshold"
+              ]
+            },
+            {
+              "name": "MaxFriends",
+              "docs": [
+                " Friends list must be less than max friends"
+              ]
+            },
+            {
+              "name": "NotSorted",
+              "docs": [
+                " Friends list must be sorted and free of duplicates"
+              ]
+            },
+            {
+              "name": "NotRecoverable",
+              "docs": [
+                " This account is not set up for recovery"
+              ]
+            },
+            {
+              "name": "AlreadyRecoverable",
+              "docs": [
+                " This account is already set up for recovery"
+              ]
+            },
+            {
+              "name": "AlreadyStarted",
+              "docs": [
+                " A recovery process has already started for this account"
+              ]
+            },
+            {
+              "name": "NotStarted",
+              "docs": [
+                " A recovery process has not started for this rescuer"
+              ]
+            },
+            {
+              "name": "NotFriend",
+              "docs": [
+                " This account is not a friend who can vouch"
+              ]
+            },
+            {
+              "name": "DelayPeriod",
+              "docs": [
+                " The friend must wait until the delay period to vouch for this recovery"
+              ]
+            },
+            {
+              "name": "AlreadyVouched",
+              "docs": [
+                " This user has already vouched for this recovery"
+              ]
+            },
+            {
+              "name": "Threshold",
+              "docs": [
+                " The threshold for recovering this account has not been met"
+              ]
+            },
+            {
+              "name": "StillActive",
+              "docs": [
+                " There are still active recovery attempts that need to be closed"
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " There was an overflow in a calculation"
+              ]
+            },
+            {
+              "name": "AlreadyProxy",
+              "docs": [
+                " This account is already set up for recovery"
+              ]
+            },
+            {
+              "name": "BadState",
+              "docs": [
+                " Some internal state is broken."
+              ]
+            }
+          ],
+          "index": 27
+        },
+        {
+          "name": "Vesting",
+          "storage": {
+            "prefix": "Vesting",
+            "items": [
+              {
+                "name": "Vesting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "VestingInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information regarding the vesting of a given account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vest",
+              "args": [],
+              "docs": [
+                " Unlock any vested funds of the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have funds still",
+                " locked under this pallet.",
+                "",
+                " Emits either `VestingCompleted` or `VestingUpdated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 2 Reads, 2 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, [Sender Account]",
+                "     - Writes: Vesting Storage, Balances Locks, [Sender Account]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vest_other",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Unlock any vested funds of a `target` account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `target`: The account whose vested funds should be unlocked. Must have funds still",
+                " locked under this pallet.",
+                "",
+                " Emits either `VestingCompleted` or `VestingUpdated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 3 Reads, 3 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vested_transfer",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "schedule",
+                  "type": "VestingInfo"
+                }
+              ],
+              "docs": [
+                " Create a vested transfer.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `target`: The account that should be transferred the vested funds.",
+                " - `amount`: The amount of funds to transfer and will be vested.",
+                " - `schedule`: The vesting schedule attached to the transfer.",
+                "",
+                " Emits `VestingCreated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 3 Reads, 3 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_vested_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "schedule",
+                  "type": "VestingInfo"
+                }
+              ],
+              "docs": [
+                " Force a vested transfer.",
+                "",
+                " The dispatch origin for this call must be _Root_.",
+                "",
+                " - `source`: The account whose funds should be transferred.",
+                " - `target`: The account that should be transferred the vested funds.",
+                " - `amount`: The amount of funds to transfer and will be vested.",
+                " - `schedule`: The vesting schedule attached to the transfer.",
+                "",
+                " Emits `VestingCreated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 4 Reads, 4 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account, Source Account",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account, Source Account",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "VestingUpdated",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " The amount vested has been updated. This could indicate more funds are available. The",
+                " balance given is the amount which is left unvested (and thus locked).",
+                " \\[account, unvested\\]"
+              ]
+            },
+            {
+              "name": "VestingCompleted",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] has become fully vested. No further vesting can happen."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "MinVestedTransfer",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount transferred to call `vested_transfer`."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotVesting",
+              "docs": [
+                " The account given is not vesting."
+              ]
+            },
+            {
+              "name": "ExistingVestingSchedule",
+              "docs": [
+                " An existing vesting schedule already exists for this account that cannot be clobbered."
+              ]
+            },
+            {
+              "name": "AmountLow",
+              "docs": [
+                " Amount being transferred is too low to create a vesting schedule."
+              ]
+            }
+          ],
+          "index": 28
+        },
+        {
+          "name": "Scheduler",
+          "storage": {
+            "prefix": "Scheduler",
+            "items": [
+              {
+                "name": "Agenda",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BlockNumber",
+                    "value": "Vec<Option<Scheduled>>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Items to be executed, indexed by the block number that they should be executed on."
+                ]
+              },
+              {
+                "name": "Lookup",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Bytes",
+                    "value": "TaskAddress",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Lookup from identity to the block number and index of the task."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " New networks start with last version."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "schedule",
+              "args": [
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Anonymously schedule a task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 22.29 + .126 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda",
+                "     - Write: Agenda",
+                " - Will use base weight of 25 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel",
+              "args": [
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "index",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Cancel an anonymously scheduled task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 22.15 + 2.869 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 100 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_named",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Schedule a named task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 29.6 + .159 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda, Lookup",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 35 which should be good for more than 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_named",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Cancel a named scheduled task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 24.91 + 2.907 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda, Lookup",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 100 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_after",
+              "args": [
+                {
+                  "name": "after",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Anonymously schedule a task after a delay.",
+                "",
+                " # <weight>",
+                " Same as [`schedule`].",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_named_after",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "after",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Schedule a named task after a delay.",
+                "",
+                " # <weight>",
+                " Same as [`schedule_named`].",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Scheduled",
+              "args": [
+                "BlockNumber",
+                "u32"
+              ],
+              "docs": [
+                " Scheduled some task. \\[when, index\\]"
+              ]
+            },
+            {
+              "name": "Canceled",
+              "args": [
+                "BlockNumber",
+                "u32"
+              ],
+              "docs": [
+                " Canceled some task. \\[when, index\\]"
+              ]
+            },
+            {
+              "name": "Dispatched",
+              "args": [
+                "TaskAddress",
+                "Option<Bytes>",
+                "DispatchResult"
+              ],
+              "docs": [
+                " Dispatched some task. \\[task, id, result\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "FailedToSchedule",
+              "docs": [
+                " Failed to schedule a call"
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Cannot find the scheduled call."
+              ]
+            },
+            {
+              "name": "TargetBlockNumberInPast",
+              "docs": [
+                " Given target block number is in the past."
+              ]
+            },
+            {
+              "name": "RescheduleNoChange",
+              "docs": [
+                " Reschedule failed because it does not change scheduled time."
+              ]
+            }
+          ],
+          "index": 29
+        },
+        {
+          "name": "Proxy",
+          "storage": {
+            "prefix": "Proxy",
+            "items": [
+              {
+                "name": "Proxies",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(Vec<ProxyDefinition>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " The set of account proxies. Maps the account which has delegated to the accounts",
+                  " which are being delegated to, together with the amount held on deposit."
+                ]
+              },
+              {
+                "name": "Announcements",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(Vec<ProxyAnnouncement>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " The announcements made by the proxy (key)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "proxy",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "force_proxy_type",
+                  "type": "Option<ProxyType>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Dispatch the given `call` from an account that the sender is authorised for through",
+                " `add_proxy`.",
+                "",
+                " Removes any corresponding announcement(s).",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
+                " - `call`: The call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "add_proxy",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Register a proxy account for the sender that is able to make calls on its behalf.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `proxy`: The account that the `caller` would like to make a proxy.",
+                " - `proxy_type`: The permissions allowed for this proxy account.",
+                " - `delay`: The announcement period required of the initial proxy. Will generally be",
+                " zero.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxy",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Unregister a proxy account for the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `proxy`: The account that the `caller` would like to remove as a proxy.",
+                " - `proxy_type`: The permissions currently enabled for the removed proxy account.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxies",
+              "args": [],
+              "docs": [
+                " Unregister all proxy accounts for the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " WARNING: This may be called on accounts created by `anonymous`, however if done, then",
+                " the unreserved fees will be inaccessible. **All access to this account will be lost.**",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "anonymous",
+              "args": [
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "index",
+                  "type": "u16"
+                }
+              ],
+              "docs": [
+                " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and",
+                " initialize it with a proxy of `proxy_type` for `origin` sender.",
+                "",
+                " Requires a `Signed` origin.",
+                "",
+                " - `proxy_type`: The type of the proxy that the sender will be registered as over the",
+                " new account. This will almost always be the most permissive `ProxyType` possible to",
+                " allow for maximum flexibility.",
+                " - `index`: A disambiguation index, in case this is called multiple times in the same",
+                " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just",
+                " want to use `0`.",
+                " - `delay`: The announcement period required of the initial proxy. Will generally be",
+                " zero.",
+                "",
+                " Fails with `Duplicate` if this has already been called in this transaction, from the",
+                " same sender, with the same parameters.",
+                "",
+                " Fails if there are insufficient funds to pay for deposit.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>",
+                " TODO: Might be over counting 1 read"
+              ]
+            },
+            {
+              "name": "kill_anonymous",
+              "args": [
+                {
+                  "name": "spawner",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "index",
+                  "type": "u16"
+                },
+                {
+                  "name": "height",
+                  "type": "Compact<BlockNumber>"
+                },
+                {
+                  "name": "ext_index",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Removes a previously spawned anonymous proxy.",
+                "",
+                " WARNING: **All access to this account will be lost.** Any funds held in it will be",
+                " inaccessible.",
+                "",
+                " Requires a `Signed` origin, and the sender account must have been created by a call to",
+                " `anonymous` with corresponding parameters.",
+                "",
+                " - `spawner`: The account that originally called `anonymous` to create this account.",
+                " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.",
+                " - `proxy_type`: The proxy type originally passed to `anonymous`.",
+                " - `height`: The height of the chain when the call to `anonymous` was processed.",
+                " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.",
+                "",
+                " Fails with `NoPermission` in case the caller is not a previously created anonymous",
+                " account whose `anonymous` call has corresponding parameters.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "announce",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Publish the hash of a proxy-call that will be made in the future.",
+                "",
+                " This must be called some number of blocks before the corresponding `proxy` is attempted",
+                " if the delay associated with the proxy relationship is greater than zero.",
+                "",
+                " No more than `MaxPending` announcements may be made at any one time.",
+                "",
+                " This will take a deposit of `AnnouncementDepositFactor` as well as",
+                " `AnnouncementDepositBase` if there are no other pending announcements.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a proxy of `real`.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `call_hash`: The hash of the call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_announcement",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Remove a given announcement.",
+                "",
+                " May be called by a proxy account to remove a call they previously announced and return",
+                " the deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `call_hash`: The hash of the call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_announcement",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Remove the given announcement of a delegate.",
+                "",
+                " May be called by a target (proxied) account to remove a call that one of their delegates",
+                " (`delegate`) has announced they want to execute. The deposit is returned.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `delegate`: The account that previously announced the call.",
+                " - `call_hash`: The hash of the call to be made.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "proxy_announced",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "force_proxy_type",
+                  "type": "Option<ProxyType>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Dispatch the given `call` from an account that the sender is authorized for through",
+                " `add_proxy`.",
+                "",
+                " Removes any corresponding announcement(s).",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
+                " - `call`: The call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ProxyExecuted",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A proxy was executed correctly, with the given \\[result\\]."
+              ]
+            },
+            {
+              "name": "AnonymousCreated",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "ProxyType",
+                "u16"
+              ],
+              "docs": [
+                " Anonymous account has been created by new proxy with given",
+                " disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"
+              ]
+            },
+            {
+              "name": "Announced",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Hash"
+              ],
+              "docs": [
+                " An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProxyDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f09e544c3900000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a proxy.",
+                "",
+                " This is held for an additional storage item whose value size is",
+                " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes."
+              ]
+            },
+            {
+              "name": "ProxyDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x0060aa7714b400000000000000000000",
+              "docs": [
+                " The amount of currency needed per proxy added.",
+                "",
+                " This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing",
+                " storage value. Thus, when configuring `ProxyDepositFactor` one should take into account",
+                " `32 + proxy_type.encode().len()` bytes of data."
+              ]
+            },
+            {
+              "name": "MaxProxies",
+              "type": "u16",
+              "value": "0x2000",
+              "docs": [
+                " The maximum amount of proxies allowed for a single account."
+              ]
+            },
+            {
+              "name": "MaxPending",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum amount of time-delayed announcements that are allowed to be pending."
+              ]
+            },
+            {
+              "name": "AnnouncementDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f09e544c3900000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating an announcement.",
+                "",
+                " This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."
+              ]
+            },
+            {
+              "name": "AnnouncementDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x00c054ef286801000000000000000000",
+              "docs": [
+                " The amount of currency needed per announcement made.",
+                "",
+                " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)",
+                " into a pre-existing storage value."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "TooMany",
+              "docs": [
+                " There are too many proxies registered or too many announcements pending."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Proxy registration not found."
+              ]
+            },
+            {
+              "name": "NotProxy",
+              "docs": [
+                " Sender is not a proxy of the account to be proxied."
+              ]
+            },
+            {
+              "name": "Unproxyable",
+              "docs": [
+                " A call which is incompatible with the proxy type's filter was attempted."
+              ]
+            },
+            {
+              "name": "Duplicate",
+              "docs": [
+                " Account is already a proxy."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " Call may not be made by proxy because it may escalate its privileges."
+              ]
+            },
+            {
+              "name": "Unannounced",
+              "docs": [
+                " Announcement, if made at all, was made too recently."
+              ]
+            },
+            {
+              "name": "NoSelfProxy",
+              "docs": [
+                " Cannot add self as proxy."
+              ]
+            }
+          ],
+          "index": 30
+        },
+        {
+          "name": "Multisig",
+          "storage": {
+            "prefix": "Multisig",
+            "items": [
+              {
+                "name": "Multisigs",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "[u8;32]",
+                    "value": "Multisig",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of open multisig operations."
+                ]
+              },
+              {
+                "name": "Calls",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "[u8;32]",
+                    "value": "(OpaqueCall,AccountId,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": []
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "as_multi_threshold_1",
+              "args": [
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Immediately dispatch a multi-signature call using a single approval from the caller.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `other_signatories`: The accounts (other than the sender) who are part of the",
+                " multi-signature, but do not participate in the approval process.",
+                " - `call`: The call to be executed.",
+                "",
+                " Result is equivalent to the dispatched result.",
+                "",
+                " # <weight>",
+                " O(Z + C) where Z is the length of the call and C its execution weight.",
+                " -------------------------------",
+                " - DB Weight: None",
+                " - Plus Call Weight",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call",
+                  "type": "OpaqueCall"
+                },
+                {
+                  "name": "store_call",
+                  "type": "bool"
+                },
+                {
+                  "name": "max_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " If there are enough, then dispatch the call.",
+                "",
+                " Payment: `DepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `DepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call`: The call to be executed.",
+                "",
+                " NOTE: Unless this is the final approval, you will generally want to use",
+                " `approve_as_multi` instead, since it only requires a hash of the call.",
+                "",
+                " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise",
+                " on success, result is `Ok` and the result from the interior call, if it was executed,",
+                " may be found in the deposited `MultisigExecuted` event.",
+                "",
+                " # <weight>",
+                " - `O(S + Z + Call)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - The weight of the `call`.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `DepositBase + threshold * DepositFactor`.",
+                " -------------------------------",
+                " - DB Weight:",
+                "     - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)",
+                "     - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)",
+                " - Plus Call Weight",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                },
+                {
+                  "name": "max_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " Payment: `DepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `DepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " NOTE: If this is the final approval, you will want to use `as_multi` instead.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `DepositBase + threshold * DepositFactor`.",
+                " ----------------------------------",
+                " - DB Weight:",
+                "     - Read: Multisig Storage, [Caller Account]",
+                "     - Write: Multisig Storage, [Caller Account]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "timepoint",
+                  "type": "Timepoint"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                }
+              ],
+              "docs": [
+                " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously",
+                " for this operation will be unreserved on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `timepoint`: The timepoint (block number and transaction index) of the first approval",
+                " transaction for this dispatch.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - One event.",
+                " - I/O: 1 read `O(S)`, one remove.",
+                " - Storage: removes one item.",
+                " ----------------------------------",
+                " - DB Weight:",
+                "     - Read: Multisig Storage, [Caller Account], Refund Account, Calls",
+                "     - Write: Multisig Storage, [Caller Account], Refund Account, Calls",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewMultisig",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A new multisig operation has begun. \\[approving, multisig, call_hash\\]"
+              ]
+            },
+            {
+              "name": "MultisigApproval",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A multisig operation has been approved by someone.",
+                " \\[approving, timepoint, multisig, call_hash\\]"
+              ]
+            },
+            {
+              "name": "MultisigExecuted",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]"
+              ]
+            },
+            {
+              "name": "MultisigCancelled",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "DepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f01c0adbed01000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a multisig execution or to store",
+                " a dispatch call for later."
+              ]
+            },
+            {
+              "name": "DepositFactor",
+              "type": "BalanceOf",
+              "value": "0x0000cc7b9fae00000000000000000000",
+              "docs": [
+                " The amount of currency needed per unit threshold when creating a multisig execution."
+              ]
+            },
+            {
+              "name": "MaxSignatories",
+              "type": "u16",
+              "value": "0x6400",
+              "docs": [
+                " The maximum amount of signatories allowed for a given multisig."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "MinimumThreshold",
+              "docs": [
+                " Threshold must be 2 or greater."
+              ]
+            },
+            {
+              "name": "AlreadyApproved",
+              "docs": [
+                " Call is already approved by this signatory."
+              ]
+            },
+            {
+              "name": "NoApprovalsNeeded",
+              "docs": [
+                " Call doesn't need any (more) approvals."
+              ]
+            },
+            {
+              "name": "TooFewSignatories",
+              "docs": [
+                " There are too few signatories in the list."
+              ]
+            },
+            {
+              "name": "TooManySignatories",
+              "docs": [
+                " There are too many signatories in the list."
+              ]
+            },
+            {
+              "name": "SignatoriesOutOfOrder",
+              "docs": [
+                " The signatories were provided out of order; they should be ordered."
+              ]
+            },
+            {
+              "name": "SenderInSignatories",
+              "docs": [
+                " The sender was contained in the other signatories; it shouldn't be."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Multisig operation not found when attempting to cancel."
+              ]
+            },
+            {
+              "name": "NotOwner",
+              "docs": [
+                " Only the account that originally created the multisig is able to cancel it."
+              ]
+            },
+            {
+              "name": "NoTimepoint",
+              "docs": [
+                " No timepoint was given, yet the multisig operation is already underway."
+              ]
+            },
+            {
+              "name": "WrongTimepoint",
+              "docs": [
+                " A different timepoint was given to the multisig operation that is underway."
+              ]
+            },
+            {
+              "name": "UnexpectedTimepoint",
+              "docs": [
+                " A timepoint was given, yet no multisig operation is underway."
+              ]
+            },
+            {
+              "name": "MaxWeightTooLow",
+              "docs": [
+                " The maximum weight information provided was too low."
+              ]
+            },
+            {
+              "name": "AlreadyStored",
+              "docs": [
+                " The data to be stored is already stored."
+              ]
+            }
+          ],
+          "index": 31
+        },
+        {
+          "name": "Bounties",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "BountyCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BountyIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Number of bounty proposals that have been made."
+                ]
+              },
+              {
+                "name": "Bounties",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BountyIndex",
+                    "value": "Bounty",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Bounties that have been made."
+                ]
+              },
+              {
+                "name": "BountyDescriptions",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BountyIndex",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The description of each bounty."
+                ]
+              },
+              {
+                "name": "BountyApprovals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<BountyIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Bounty indices that have been approved but not yet funded."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose_bounty",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "description",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Propose a new bounty.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
+                " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,",
+                " or slashed when rejected.",
+                "",
+                " - `curator`: The curator account whom will manage this bounty.",
+                " - `fee`: The curator fee.",
+                " - `value`: The total payment amount of this bounty, curator fee included.",
+                " - `description`: The description of this bounty."
+              ]
+            },
+            {
+              "name": "approve_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Approve a bounty proposal. At a later time, the bounty will be funded and become active",
+                " and the original deposit will be returned.",
+                "",
+                " May only be called from `T::ApproveOrigin`.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose_curator",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                },
+                {
+                  "name": "curator",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Assign a curator to a funded bounty.",
+                "",
+                " May only be called from `T::ApproveOrigin`.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unassign_curator",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Unassign curator from a bounty.",
+                "",
+                " This function can only be called by the `RejectOrigin` a signed origin.",
+                "",
+                " If this function is called by the `RejectOrigin`, we assume that the curator is malicious",
+                " or inactive. As a result, we will slash the curator when possible.",
+                "",
+                " If the origin is the curator, we take this as a sign they are unable to do their job and",
+                " they willingly give up. We could slash them, but for now we allow them to recover their",
+                " deposit and exit without issue. (We may want to change this if it is abused.)",
+                "",
+                " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows",
+                " anyone in the community to call out that a curator is not doing their due diligence, and",
+                " we should pick a new curator. In this case the curator should also be slashed.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "accept_curator",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Accept the curator role for a bounty.",
+                " A deposit will be reserved from curator and refund upon successful payout.",
+                "",
+                " May only be called from the curator.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "award_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.",
+                "",
+                " The dispatch origin for this call must be the curator of this bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to award.",
+                " - `beneficiary`: The beneficiary account whom will receive the payout.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "claim_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Claim the payout from an awarded bounty after payout delay.",
+                "",
+                " The dispatch origin for this call must be the beneficiary of this bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to claim.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Cancel a proposed or active bounty. All the funds will be sent to treasury and",
+                " the curator deposit will be unreserved if possible.",
+                "",
+                " Only `T::RejectOrigin` is able to cancel a bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to cancel.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "extend_bounty_expiry",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                },
+                {
+                  "name": "_remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Extend the expiry time of an active bounty.",
+                "",
+                " The dispatch origin for this call must be the curator of this bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to extend.",
+                " - `remark`: additional information.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BountyProposed",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " New bounty proposal. \\[index\\]"
+              ]
+            },
+            {
+              "name": "BountyRejected",
+              "args": [
+                "BountyIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A bounty proposal was rejected; funds were slashed. \\[index, bond\\]"
+              ]
+            },
+            {
+              "name": "BountyBecameActive",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " A bounty proposal is funded and became active. \\[index\\]"
+              ]
+            },
+            {
+              "name": "BountyAwarded",
+              "args": [
+                "BountyIndex",
+                "AccountId"
+              ],
+              "docs": [
+                " A bounty is awarded to a beneficiary. \\[index, beneficiary\\]"
+              ]
+            },
+            {
+              "name": "BountyClaimed",
+              "args": [
+                "BountyIndex",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]"
+              ]
+            },
+            {
+              "name": "BountyCanceled",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " A bounty is cancelled. \\[index\\]"
+              ]
+            },
+            {
+              "name": "BountyExtended",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " A bounty expiry is extended. \\[index\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "DataDepositPerByte",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount held on deposit per byte within bounty description."
+              ]
+            },
+            {
+              "name": "BountyDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The amount held on deposit for placing a bounty proposal."
+              ]
+            },
+            {
+              "name": "BountyDepositPayoutDelay",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " The delay period for which a bounty beneficiary need to wait before claim the payout."
+              ]
+            },
+            {
+              "name": "BountyUpdatePeriod",
+              "type": "BlockNumber",
+              "value": "0x00270600",
+              "docs": [
+                " Bounty duration in blocks."
+              ]
+            },
+            {
+              "name": "BountyCuratorDeposit",
+              "type": "Permill",
+              "value": "0x20a10700",
+              "docs": [
+                " Percentage of the curator fee that will be reserved upfront as deposit for bounty curator."
+              ]
+            },
+            {
+              "name": "BountyValueMinimum",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " Minimum value for a bounty."
+              ]
+            },
+            {
+              "name": "MaximumReasonLength",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " Maximum acceptable reason length."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InsufficientProposersBalance",
+              "docs": [
+                " Proposer's balance is too low."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " No proposal or bounty at that index."
+              ]
+            },
+            {
+              "name": "ReasonTooBig",
+              "docs": [
+                " The reason given is just too big."
+              ]
+            },
+            {
+              "name": "UnexpectedStatus",
+              "docs": [
+                " The bounty status is unexpected."
+              ]
+            },
+            {
+              "name": "RequireCurator",
+              "docs": [
+                " Require bounty curator."
+              ]
+            },
+            {
+              "name": "InvalidValue",
+              "docs": [
+                " Invalid bounty value."
+              ]
+            },
+            {
+              "name": "InvalidFee",
+              "docs": [
+                " Invalid bounty fee."
+              ]
+            },
+            {
+              "name": "PendingPayout",
+              "docs": [
+                " A bounty payout is pending.",
+                " To cancel the bounty, you must unassign and slash the curator."
+              ]
+            },
+            {
+              "name": "Premature",
+              "docs": [
+                " The bounties cannot be claimed/closed because it's still in the countdown period."
+              ]
+            }
+          ],
+          "index": 32
+        },
+        {
+          "name": "Tips",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "Tips",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Hash",
+                    "value": "OpenTip",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.",
+                  " This has the insecure enumerable hash function since the key itself is already",
+                  " guaranteed to be a secure hash."
+                ]
+              },
+              {
+                "name": "Reasons",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Simple preimage lookup from the reason's hash to the original data. Again, has an",
+                  " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_awesome",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Report something `reason` that deserves a tip and claim any eventual the finder's fee.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
+                " `DataDepositPerByte` for each byte in `reason`.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R)` where `R` length of `reason`.",
+                "   - encoding and hashing of 'reason'",
+                " - DbReads: `Reasons`, `Tips`",
+                " - DbWrites: `Reasons`, `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "retract_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.",
+                "",
+                " If successful, the original deposit will be unreserved.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`",
+                " must have been reported by the signing account through `report_awesome` (and not",
+                " through `tip_new`).",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " Emits `TipRetracted` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                "   - Depends on the length of `T::Hash` which is fixed.",
+                " - DbReads: `Tips`, `origin account`",
+                " - DbWrites: `Reasons`, `Tips`, `origin account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip_new",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Give a tip for something new; no finder's fee will be taken.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.",
+                "   - `O(T)`: decoding `Tipper` vec of length `T`",
+                "     `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "     The actual cost depends on the implementation of `T::Tippers`.",
+                "   - `O(R)`: hashing and encoding of reason of length `R`",
+                " - DbReads: `Tippers`, `Reasons`",
+                " - DbWrites: `Reasons`, `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Declare a tip value for an already-open tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the hash of the original tip `reason` and the beneficiary",
+                "   account ID.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period",
+                " has started.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(T)` where `T` is the number of tippers.",
+                "   decoding `Tipper` vec of length `T`, insert tip and check closing,",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                "",
+                "   Actually weight could be lower as it depends on how many tips are in `OpenTip` but it",
+                "   is weighted as if almost full i.e of length `T-1`.",
+                " - DbReads: `Tippers`, `Tips`",
+                " - DbWrites: `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Close and payout a tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " The tip identified by `hash` must have finished its countdown period.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(T)` where `T` is the number of tippers.",
+                "   decoding `Tipper` vec of length `T`.",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                " - DbReads: `Tips`, `Tippers`, `tip finder`",
+                " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "slash_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Remove and slash an already-open tip.",
+                "",
+                " May only be called from `T::RejectOrigin`.",
+                "",
+                " As a result, the finder is slashed and the deposits are lost.",
+                "",
+                " Emits `TipSlashed` if successful.",
+                "",
+                " # <weight>",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewTip",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A new tip suggestion has been opened. \\[tip_hash\\]"
+              ]
+            },
+            {
+              "name": "TipClosing",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has reached threshold and is closing. \\[tip_hash\\]"
+              ]
+            },
+            {
+              "name": "TipClosed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A tip suggestion has been closed. \\[tip_hash, who, payout\\]"
+              ]
+            },
+            {
+              "name": "TipRetracted",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has been retracted. \\[tip_hash\\]"
+              ]
+            },
+            {
+              "name": "TipSlashed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "TipCountdown",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " The period for which a tip remains open after is has achieved threshold tippers."
+              ]
+            },
+            {
+              "name": "TipFindersFee",
+              "type": "Percent",
+              "value": "0x14",
+              "docs": [
+                " The amount of the final tip which goes to the original reporter of the tip."
+              ]
+            },
+            {
+              "name": "TipReportDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The amount held on deposit for placing a tip report."
+              ]
+            },
+            {
+              "name": "DataDepositPerByte",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount held on deposit per byte within the tip report reason."
+              ]
+            },
+            {
+              "name": "MaximumReasonLength",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " Maximum acceptable reason length."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "ReasonTooBig",
+              "docs": [
+                " The reason given is just too big."
+              ]
+            },
+            {
+              "name": "AlreadyKnown",
+              "docs": [
+                " The tip was already found/started."
+              ]
+            },
+            {
+              "name": "UnknownTip",
+              "docs": [
+                " The tip hash is unknown."
+              ]
+            },
+            {
+              "name": "NotFinder",
+              "docs": [
+                " The account attempting to retract the tip is not the finder of the tip."
+              ]
+            },
+            {
+              "name": "StillOpen",
+              "docs": [
+                " The tip cannot be claimed/closed because there are not enough tippers yet."
+              ]
+            },
+            {
+              "name": "Premature",
+              "docs": [
+                " The tip cannot be claimed/closed because it's still in the countdown period."
+              ]
+            }
+          ],
+          "index": 33
+        },
+        {
+          "name": "Assets",
+          "storage": {
+            "prefix": "Assets",
+            "items": [
+              {
+                "name": "Asset",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AssetId",
+                    "value": "AssetDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Details of an asset."
+                ]
+              },
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_128Concat",
+                    "key1": "AssetId",
+                    "key2": "AccountId",
+                    "value": "AssetBalance",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00000000000000000000",
+                "docs": [
+                  " The number of units of assets held by any given account."
+                ]
+              },
+              {
+                "name": "Approvals",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_128Concat",
+                    "key1": "AssetId",
+                    "key2": "AssetApprovalKey",
+                    "value": "AssetApproval",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Approved balance transfers. First balance is the amount approved for transfer. Second",
+                  " is the amount of `T::Currency` reserved for storing this."
+                ]
+              },
+              {
+                "name": "Metadata",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AssetId",
+                    "value": "AssetMetadata",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000",
+                "docs": [
+                  " Metadata of an asset."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "create",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "min_balance",
+                  "type": "TAssetBalance"
+                }
+              ],
+              "docs": [
+                " Issue a new class of fungible assets from a public origin.",
+                "",
+                " This new asset class has no assets initially and its owner is the origin.",
+                "",
+                " The origin must be Signed and the sender must have sufficient funds free.",
+                "",
+                " Funds of sender are reserved by `AssetDeposit`.",
+                "",
+                " Parameters:",
+                " - `id`: The identifier of the new asset. This must not be currently in use to identify",
+                " an existing asset.",
+                " - `admin`: The admin of this class of assets. The admin is the initial address of each",
+                " member of the asset class's admin team.",
+                " - `min_balance`: The minimum balance of this new asset that any single account must",
+                " have. If an account's balance is reduced below this, then it collapses to zero.",
+                "",
+                " Emits `Created` event when successful.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_create",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "is_sufficient",
+                  "type": "bool"
+                },
+                {
+                  "name": "min_balance",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Issue a new class of fungible assets from a privileged origin.",
+                "",
+                " This new asset class has no assets initially.",
+                "",
+                " The origin must conform to `ForceOrigin`.",
+                "",
+                " Unlike `create`, no funds are reserved.",
+                "",
+                " - `id`: The identifier of the new asset. This must not be currently in use to identify",
+                " an existing asset.",
+                " - `owner`: The owner of this class of assets. The owner has full superuser permissions",
+                " over this asset, but may later change and configure the permissions using `transfer_ownership`",
+                " and `set_team`.",
+                " - `max_zombies`: The total number of accounts which may hold assets in this class yet",
+                " have no existential deposit.",
+                " - `min_balance`: The minimum balance of this new asset that any single account must",
+                " have. If an account's balance is reduced below this, then it collapses to zero.",
+                "",
+                " Emits `ForceCreated` event when successful.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "destroy",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "witness",
+                  "type": "AssetDestroyWitness"
+                }
+              ],
+              "docs": [
+                " Destroy a class of fungible assets.",
+                "",
+                " The origin must conform to `ForceOrigin` or must be Signed and the sender must be the",
+                " owner of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be destroyed. This must identify an existing",
+                " asset.",
+                "",
+                " Emits `Destroyed` event when successful.",
+                "",
+                " Weight: `O(c + p + a)` where:",
+                " - `c = (witness.accounts - witness.sufficients)`",
+                " - `s = witness.sufficients`",
+                " - `a = witness.approvals`"
+              ]
+            },
+            {
+              "name": "mint",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Mint assets of a particular class.",
+                "",
+                " The origin must be Signed and the sender must be the Issuer of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to have some amount minted.",
+                " - `beneficiary`: The account to be credited with the minted assets.",
+                " - `amount`: The amount of the asset to be minted.",
+                "",
+                " Emits `Destroyed` event when successful.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."
+              ]
+            },
+            {
+              "name": "burn",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.",
+                "",
+                " Origin must be Signed and the sender should be the Manager of the asset `id`.",
+                "",
+                " Bails with `BalanceZero` if the `who` is already dead.",
+                "",
+                " - `id`: The identifier of the asset to have some amount burned.",
+                " - `who`: The account to be debited from.",
+                " - `amount`: The maximum amount by which `who`'s balance should be reduced.",
+                "",
+                " Emits `Burned` with the actual amount burned. If this takes the balance to below the",
+                " minimum for the asset, then the amount burned is increased to take it to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Post-existence of `who`; Pre & post Zombie-status of `who`."
+              ]
+            },
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Move some assets from the sender account to another.",
+                "",
+                " Origin must be Signed.",
+                "",
+                " - `id`: The identifier of the asset to have some amount transferred.",
+                " - `target`: The account to be credited.",
+                " - `amount`: The amount by which the sender's balance of assets should be reduced and",
+                " `target`'s balance increased. The amount actually transferred may be slightly greater in",
+                " the case that the transfer would otherwise take the sender balance above zero but below",
+                " the minimum balance. Must be greater than zero.",
+                "",
+                " Emits `Transferred` with the actual amount transferred. If this takes the source balance",
+                " to below the minimum for the asset, then the amount transferred is increased to take it",
+                " to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existence of `target`; Post-existence of sender; Prior & post zombie-status",
+                " of sender; Account pre-existence of `target`."
+              ]
+            },
+            {
+              "name": "transfer_keep_alive",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Move some assets from the sender account to another, keeping the sender account alive.",
+                "",
+                " Origin must be Signed.",
+                "",
+                " - `id`: The identifier of the asset to have some amount transferred.",
+                " - `target`: The account to be credited.",
+                " - `amount`: The amount by which the sender's balance of assets should be reduced and",
+                " `target`'s balance increased. The amount actually transferred may be slightly greater in",
+                " the case that the transfer would otherwise take the sender balance above zero but below",
+                " the minimum balance. Must be greater than zero.",
+                "",
+                " Emits `Transferred` with the actual amount transferred. If this takes the source balance",
+                " to below the minimum for the asset, then the amount transferred is increased to take it",
+                " to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existence of `target`; Post-existence of sender; Prior & post zombie-status",
+                " of sender; Account pre-existence of `target`."
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Move some assets from one account to another.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to have some amount transferred.",
+                " - `source`: The account to be debited.",
+                " - `dest`: The account to be credited.",
+                " - `amount`: The amount by which the `source`'s balance of assets should be reduced and",
+                " `dest`'s balance increased. The amount actually transferred may be slightly greater in",
+                " the case that the transfer would otherwise take the `source` balance above zero but",
+                " below the minimum balance. Must be greater than zero.",
+                "",
+                " Emits `Transferred` with the actual amount transferred. If this takes the source balance",
+                " to below the minimum for the asset, then the amount transferred is increased to take it",
+                " to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existence of `dest`; Post-existence of `source`; Prior & post zombie-status",
+                " of `source`; Account pre-existence of `dest`."
+              ]
+            },
+            {
+              "name": "freeze",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Disallow further unprivileged transfers from an account.",
+                "",
+                " Origin must be Signed and the sender should be the Freezer of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                " - `who`: The account to be frozen.",
+                "",
+                " Emits `Frozen`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "thaw",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Allow unprivileged transfers from an account again.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                " - `who`: The account to be unfrozen.",
+                "",
+                " Emits `Thawed`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "freeze_asset",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Disallow further unprivileged transfers for the asset class.",
+                "",
+                " Origin must be Signed and the sender should be the Freezer of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                "",
+                " Emits `Frozen`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "thaw_asset",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Allow unprivileged transfers for the asset again.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                "",
+                " Emits `Thawed`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "transfer_ownership",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Change the Owner of an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `owner`: The new Owner of this asset.",
+                "",
+                " Emits `OwnerChanged`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_team",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "issuer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "freezer",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Change the Issuer, Admin and Freezer of an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                " - `issuer`: The new Issuer of this asset.",
+                " - `admin`: The new Admin of this asset.",
+                " - `freezer`: The new Freezer of this asset.",
+                "",
+                " Emits `TeamChanged`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "name",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "symbol",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "decimals",
+                  "type": "u8"
+                }
+              ],
+              "docs": [
+                " Set the metadata for an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " Funds of sender are reserved according to the formula:",
+                " `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into",
+                " account any already reserved funds.",
+                "",
+                " - `id`: The identifier of the asset to update.",
+                " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.",
+                " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.",
+                " - `decimals`: The number of decimals this asset uses to represent one unit.",
+                "",
+                " Emits `MetadataSet`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "clear_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Clear the metadata for an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " Any deposit is freed for the asset owner.",
+                "",
+                " - `id`: The identifier of the asset to clear.",
+                "",
+                " Emits `MetadataCleared`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_set_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "name",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "symbol",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "decimals",
+                  "type": "u8"
+                },
+                {
+                  "name": "is_frozen",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Force the metadata for an asset to some value.",
+                "",
+                " Origin must be ForceOrigin.",
+                "",
+                " Any deposit is left alone.",
+                "",
+                " - `id`: The identifier of the asset to update.",
+                " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.",
+                " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.",
+                " - `decimals`: The number of decimals this asset uses to represent one unit.",
+                "",
+                " Emits `MetadataSet`.",
+                "",
+                " Weight: `O(N + S)` where N and S are the length of the name and symbol respectively."
+              ]
+            },
+            {
+              "name": "force_clear_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Clear the metadata for an asset.",
+                "",
+                " Origin must be ForceOrigin.",
+                "",
+                " Any deposit is returned.",
+                "",
+                " - `id`: The identifier of the asset to clear.",
+                "",
+                " Emits `MetadataCleared`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_asset_status",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "issuer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "freezer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "min_balance",
+                  "type": "Compact<TAssetBalance>"
+                },
+                {
+                  "name": "is_sufficient",
+                  "type": "bool"
+                },
+                {
+                  "name": "is_frozen",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Alter the attributes of a given asset.",
+                "",
+                " Origin must be `ForceOrigin`.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `owner`: The new Owner of this asset.",
+                " - `issuer`: The new Issuer of this asset.",
+                " - `admin`: The new Admin of this asset.",
+                " - `freezer`: The new Freezer of this asset.",
+                " - `min_balance`: The minimum balance of this new asset that any single account must",
+                " have. If an account's balance is reduced below this, then it collapses to zero.",
+                " - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient",
+                " value to account for the state bloat associated with its balance storage. If set to",
+                " `true`, then non-zero balances may be stored without a `consumer` reference (and thus",
+                " an ED in the Balances pallet or whatever else is used to control user-account state",
+                " growth).",
+                " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin",
+                " instructions.",
+                "",
+                " Emits `AssetStatusChanged` with the identity of the asset.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "approve_transfer",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "delegate",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Approve an amount of asset for transfer by a delegated third-party account.",
+                "",
+                " Origin must be Signed.",
+                "",
+                " Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account",
+                " for the purpose of holding the approval. If some non-zero amount of assets is already",
+                " approved from signing account to `delegate`, then it is topped up or unreserved to",
+                " meet the right value.",
+                "",
+                " NOTE: The signing account does not need to own `amount` of assets at the point of",
+                " making this call.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `delegate`: The account to delegate permission to transfer asset.",
+                " - `amount`: The amount of asset that may be transferred by `delegate`. If there is",
+                " already an approval in place, then this acts additively.",
+                "",
+                " Emits `ApprovedTransfer` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "cancel_approval",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "delegate",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Cancel all of some asset approved for delegated transfer by a third-party account.",
+                "",
+                " Origin must be Signed and there must be an approval in place between signer and",
+                " `delegate`.",
+                "",
+                " Unreserves any deposit previously reserved by `approve_transfer` for the approval.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `delegate`: The account delegated permission to transfer asset.",
+                "",
+                " Emits `ApprovalCancelled` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_cancel_approval",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "delegate",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Cancel all of some asset approved for delegated transfer by a third-party account.",
+                "",
+                " Origin must be either ForceOrigin or Signed origin with the signer being the Admin",
+                " account of the asset `id`.",
+                "",
+                " Unreserves any deposit previously reserved by `approve_transfer` for the approval.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `delegate`: The account delegated permission to transfer asset.",
+                "",
+                " Emits `ApprovalCancelled` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "transfer_approved",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "destination",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Transfer some asset balance from a previously delegated account to some third-party",
+                " account.",
+                "",
+                " Origin must be Signed and there must be an approval in place by the `owner` to the",
+                " signer.",
+                "",
+                " If the entire amount approved for transfer is transferred, then any deposit previously",
+                " reserved by `approve_transfer` is unreserved.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `owner`: The account which previously approved for a transfer of at least `amount` and",
+                " from which the asset balance will be withdrawn.",
+                " - `destination`: The account to which the asset balance of `amount` will be transferred.",
+                " - `amount`: The amount of assets to transfer.",
+                "",
+                " Emits `TransferredApproved` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Created",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some asset class was created. \\[asset_id, creator, owner\\]"
+              ]
+            },
+            {
+              "name": "Issued",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " Some assets were issued. \\[asset_id, owner, total_supply\\]"
+              ]
+            },
+            {
+              "name": "Transferred",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " Some assets were transferred. \\[asset_id, from, to, amount\\]"
+              ]
+            },
+            {
+              "name": "Burned",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " Some assets were destroyed. \\[asset_id, owner, balance\\]"
+              ]
+            },
+            {
+              "name": "TeamChanged",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " The management team changed \\[asset_id, issuer, admin, freezer\\]"
+              ]
+            },
+            {
+              "name": "OwnerChanged",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " The owner changed \\[asset_id, owner\\]"
+              ]
+            },
+            {
+              "name": "Frozen",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some account `who` was frozen. \\[asset_id, who\\]"
+              ]
+            },
+            {
+              "name": "Thawed",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some account `who` was thawed. \\[asset_id, who\\]"
+              ]
+            },
+            {
+              "name": "AssetFrozen",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " Some asset `asset_id` was frozen. \\[asset_id\\]"
+              ]
+            },
+            {
+              "name": "AssetThawed",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " Some asset `asset_id` was thawed. \\[asset_id\\]"
+              ]
+            },
+            {
+              "name": "Destroyed",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " An asset class was destroyed."
+              ]
+            },
+            {
+              "name": "ForceCreated",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some asset class was force-created. \\[asset_id, owner\\]"
+              ]
+            },
+            {
+              "name": "MetadataSet",
+              "args": [
+                "AssetId",
+                "Bytes",
+                "Bytes",
+                "u8",
+                "bool"
+              ],
+              "docs": [
+                " New metadata has been set for an asset. \\[asset_id, name, symbol, decimals, is_frozen\\]"
+              ]
+            },
+            {
+              "name": "MetadataCleared",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " Metadata has been cleared for an asset. \\[asset_id\\]"
+              ]
+            },
+            {
+              "name": "ApprovedTransfer",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " (Additional) funds have been approved for transfer to a destination account.",
+                " \\[asset_id, source, delegate, amount\\]"
+              ]
+            },
+            {
+              "name": "ApprovalCancelled",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An approval for account `delegate` was cancelled by `owner`.",
+                " \\[id, owner, delegate\\]"
+              ]
+            },
+            {
+              "name": "TransferredApproved",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " An `amount` was transferred in its entirety from `owner` to `destination` by",
+                " the approved `delegate`.",
+                " \\[id, owner, delegate, destination\\]"
+              ]
+            },
+            {
+              "name": "AssetStatusChanged",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " An asset has had its attributes changed by the `Force` origin.",
+                " \\[id\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "BalanceLow",
+              "docs": [
+                " Account balance must be greater than or equal to the transfer amount."
+              ]
+            },
+            {
+              "name": "BalanceZero",
+              "docs": [
+                " Balance should be non-zero."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " The signing account has no permission to do the operation."
+              ]
+            },
+            {
+              "name": "Unknown",
+              "docs": [
+                " The given asset ID is unknown."
+              ]
+            },
+            {
+              "name": "Frozen",
+              "docs": [
+                " The origin account is frozen."
+              ]
+            },
+            {
+              "name": "InUse",
+              "docs": [
+                " The asset ID is already taken."
+              ]
+            },
+            {
+              "name": "BadWitness",
+              "docs": [
+                " Invalid witness data given."
+              ]
+            },
+            {
+              "name": "MinBalanceZero",
+              "docs": [
+                " Minimum balance should be non-zero."
+              ]
+            },
+            {
+              "name": "Overflow",
+              "docs": [
+                " A mint operation lead to an overflow."
+              ]
+            },
+            {
+              "name": "NoProvider",
+              "docs": [
+                " No provider reference exists to allow a non-zero balance of a non-self-sufficient asset."
+              ]
+            },
+            {
+              "name": "BadMetadata",
+              "docs": [
+                " Invalid metadata given."
+              ]
+            },
+            {
+              "name": "Unapproved",
+              "docs": [
+                " No approval exists that would allow the transfer."
+              ]
+            },
+            {
+              "name": "WouldDie",
+              "docs": [
+                " The source account would not survive the transfer and it needs to stay alive."
+              ]
+            }
+          ],
+          "index": 34
+        },
+        {
+          "name": "Mmr",
+          "storage": {
+            "prefix": "MerkleMountainRange",
+            "items": [
+              {
+                "name": "RootHash",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Latest MMR Root hash."
+                ]
+              },
+              {
+                "name": "NumberOfLeaves",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current size of the MMR (number of leaves)."
+                ]
+              },
+              {
+                "name": "Nodes",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "u64",
+                    "value": "Hash",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Hashes of the nodes in the MMR.",
+                  "",
+                  " Note this collection only contains MMR peaks, the inner nodes (and leaves)",
+                  " are pruned and only stored in the Offchain DB."
+                ]
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 35
+        },
+        {
+          "name": "Lottery",
+          "storage": {
+            "prefix": "Lottery",
+            "items": [
+              {
+                "name": "LotteryIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": []
+              },
+              {
+                "name": "Lottery",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "LotteryConfig"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The configuration for the current lottery."
+                ]
+              },
+              {
+                "name": "Participants",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(u32,Vec<CallIndex>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000",
+                "docs": [
+                  " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)"
+                ]
+              },
+              {
+                "name": "TicketsCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Total number of tickets sold."
+                ]
+              },
+              {
+                "name": "Tickets",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Each ticket's owner.",
+                  "",
+                  " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones",
+                  " are actually valid ticket mappings."
+                ]
+              },
+              {
+                "name": "CallIndices",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<CallIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The calls stored in this pallet to be used in an active lottery if configured",
+                  " by `Config::ValidateCall`."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "buy_ticket",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Buy a ticket to enter the lottery.",
+                "",
+                " This extrinsic acts as a passthrough function for `call`. In all",
+                " situations where `call` alone would succeed, this extrinsic should",
+                " succeed.",
+                "",
+                " If `call` is successful, then we will attempt to purchase a ticket,",
+                " which may fail silently. To detect success of a ticket purchase, you",
+                " should listen for the `TicketBought` event.",
+                "",
+                " This extrinsic must be called by a signed origin."
+              ]
+            },
+            {
+              "name": "set_calls",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Set calls in storage which can be used to purchase a lottery ticket.",
+                "",
+                " This function only matters if you use the `ValidateCall` implementation",
+                " provided by this pallet, which uses storage to determine the valid calls.",
+                "",
+                " This extrinsic must be called by the Manager origin."
+              ]
+            },
+            {
+              "name": "start_lottery",
+              "args": [
+                {
+                  "name": "price",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "length",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "repeat",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Start a lottery using the provided configuration.",
+                "",
+                " This extrinsic must be called by the `ManagerOrigin`.",
+                "",
+                " Parameters:",
+                "",
+                " * `price`: The cost of a single ticket.",
+                " * `length`: How long the lottery should run for starting at the current block.",
+                " * `delay`: How long after the lottery end we should wait before picking a winner.",
+                " * `repeat`: If the lottery should repeat when completed."
+              ]
+            },
+            {
+              "name": "stop_repeat",
+              "args": [],
+              "docs": [
+                " If a lottery is repeating, you can use this to stop the repeat.",
+                " The lottery will continue to run to completion.",
+                "",
+                " This extrinsic must be called by the `ManagerOrigin`."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "LotteryStarted",
+              "args": [],
+              "docs": [
+                " A lottery has been started!"
+              ]
+            },
+            {
+              "name": "CallsUpdated",
+              "args": [],
+              "docs": [
+                " A new set of calls have been set!"
+              ]
+            },
+            {
+              "name": "Winner",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A winner has been chosen!"
+              ]
+            },
+            {
+              "name": "TicketBought",
+              "args": [
+                "AccountId",
+                "CallIndex"
+              ],
+              "docs": [
+                " A ticket has been bought!"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "PalletId",
+              "type": "PalletId",
+              "value": "0x70792f6c6f74746f",
+              "docs": []
+            },
+            {
+              "name": "MaxCalls",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": []
+            }
+          ],
+          "errors": [
+            {
+              "name": "Overflow",
+              "docs": [
+                " An overflow has occurred."
+              ]
+            },
+            {
+              "name": "NotConfigured",
+              "docs": [
+                " A lottery has not been configured."
+              ]
+            },
+            {
+              "name": "InProgress",
+              "docs": [
+                " A lottery is already in progress."
+              ]
+            },
+            {
+              "name": "AlreadyEnded",
+              "docs": [
+                " A lottery has already ended."
+              ]
+            },
+            {
+              "name": "InvalidCall",
+              "docs": [
+                " The call is not valid for an open lottery."
+              ]
+            },
+            {
+              "name": "AlreadyParticipating",
+              "docs": [
+                " You are already participating in the lottery with this call."
+              ]
+            },
+            {
+              "name": "TooManyCalls",
+              "docs": [
+                " Too many calls for a single lottery."
+              ]
+            },
+            {
+              "name": "EncodingFailed",
+              "docs": [
+                " Failed to encode calls"
+              ]
+            }
+          ],
+          "index": 36
+        },
+        {
+          "name": "Gilt",
+          "storage": {
+            "prefix": "Gilt",
+            "items": [
+              {
+                "name": "QueueTotals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(u32,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The totals of items and balances within each queue. Saves a lot of storage reads in the",
+                  " case of sparsely packed queues.",
+                  "",
+                  " The vector is indexed by duration in `Period`s, offset by one, so information on the queue",
+                  " whose duration is one `Period` would be storage `0`."
+                ]
+              },
+              {
+                "name": "Queues",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "u32",
+                    "value": "Vec<GiltBid>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The queues of bids ready to become gilts. Indexed by duration (in `Period`s)."
+                ]
+              },
+              {
+                "name": "ActiveTotal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ActiveGiltsTotal"
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Information relating to the gilts currently active."
+                ]
+              },
+              {
+                "name": "Active",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "ActiveIndex",
+                    "value": "ActiveGilt",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The currently active gilts, indexed according to the order of creation."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "place_bid",
+              "args": [
+                {
+                  "name": "amount",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "duration",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Place a bid for a gilt to be issued.",
+                "",
+                " Origin must be Signed, and account must have at least `amount` in free balance.",
+                "",
+                " - `amount`: The amount of the bid; these funds will be reserved. If the bid is",
+                " successfully elevated into an issued gilt, then these funds will continue to be",
+                " reserved until the gilt expires. Must be at least `MinFreeze`.",
+                " - `duration`: The number of periods for which the funds will be locked if the gilt is",
+                " issued. It will expire only after this period has elapsed after the point of issuance.",
+                " Must be greater than 1 and no more than `QueueCount`.",
+                "",
+                " Complexities:",
+                " - `Queues[duration].len()` (just take max)."
+              ]
+            },
+            {
+              "name": "retract_bid",
+              "args": [
+                {
+                  "name": "amount",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "duration",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Retract a previously placed bid.",
+                "",
+                " Origin must be Signed, and the account should have previously issued a still-active bid",
+                " of `amount` for `duration`.",
+                "",
+                " - `amount`: The amount of the previous bid.",
+                " - `duration`: The duration of the previous bid."
+              ]
+            },
+            {
+              "name": "set_target",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "Compact<Perquintill>"
+                }
+              ],
+              "docs": [
+                " Set target proportion of gilt-funds.",
+                "",
+                " Origin must be `AdminOrigin`.",
+                "",
+                " - `target`: The target proportion of effective issued funds that should be under gilts",
+                " at any one time."
+              ]
+            },
+            {
+              "name": "thaw",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<ActiveIndex>"
+                }
+              ],
+              "docs": [
+                " Remove an active but expired gilt. Reserved funds under gilt are freed and balance is",
+                " adjusted to ensure that the funds grow or shrink to maintain the equivalent proportion",
+                " of effective total issued funds.",
+                "",
+                " Origin must be Signed and the account must be the owner of the gilt of the given index.",
+                "",
+                " - `index`: The index of the gilt to be thawed."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BidPlaced",
+              "args": [
+                "AccountId",
+                "BalanceOf",
+                "u32"
+              ],
+              "docs": [
+                " A bid was successfully placed.",
+                " \\[ who, amount, duration \\]"
+              ]
+            },
+            {
+              "name": "BidRetracted",
+              "args": [
+                "AccountId",
+                "BalanceOf",
+                "u32"
+              ],
+              "docs": [
+                " A bid was successfully removed (before being accepted as a gilt).",
+                " \\[ who, amount, duration \\]"
+              ]
+            },
+            {
+              "name": "GiltIssued",
+              "args": [
+                "ActiveIndex",
+                "BlockNumber",
+                "AccountId",
+                "BalanceOf"
+              ],
+              "docs": [
+                " A bid was accepted as a gilt. The balance may not be released until expiry.",
+                " \\[ index, expiry, who, amount \\]"
+              ]
+            },
+            {
+              "name": "GiltThawed",
+              "args": [
+                "ActiveIndex",
+                "AccountId",
+                "BalanceOf",
+                "BalanceOf"
+              ],
+              "docs": [
+                " An expired gilt has been thawed.",
+                " \\[ index, who, original_amount, additional_amount \\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "QueueCount",
+              "type": "u32",
+              "value": "0x2c010000",
+              "docs": [
+                " Number of duration queues in total. This sets the maximum duration supported, which is",
+                " this value multiplied by `Period`."
+              ]
+            },
+            {
+              "name": "MaxQueueLen",
+              "type": "u32",
+              "value": "0xe8030000",
+              "docs": [
+                " Maximum number of items that may be in each duration queue."
+              ]
+            },
+            {
+              "name": "FifoQueueLen",
+              "type": "u32",
+              "value": "0xf4010000",
+              "docs": [
+                " Portion of the queue which is free from ordering and just a FIFO.",
+                "",
+                " Must be no greater than `MaxQueueLen`."
+              ]
+            },
+            {
+              "name": "Period",
+              "type": "BlockNumber",
+              "value": "0x002f0d00",
+              "docs": [
+                " The base period for the duration queues. This is the common multiple across all",
+                " supported freezing durations that can be bid upon."
+              ]
+            },
+            {
+              "name": "MinFreeze",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount of funds that may be offered to freeze for a gilt. Note that this",
+                " does not actually limit the amount which may be frozen in a gilt since gilts may be",
+                " split up in order to satisfy the desired amount of funds under gilts.",
+                "",
+                " It should be at least big enough to ensure that there is no possible storage spam attack",
+                " or queue-filling attack."
+              ]
+            },
+            {
+              "name": "IntakePeriod",
+              "type": "BlockNumber",
+              "value": "0x0a000000",
+              "docs": [
+                " The number of blocks between consecutive attempts to issue more gilts in an effort to",
+                " get to the target amount to be frozen.",
+                "",
+                " A larger value results in fewer storage hits each block, but a slower period to get to",
+                " the target."
+              ]
+            },
+            {
+              "name": "MaxIntakeBids",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " The maximum amount of bids that can be turned into issued gilts each block. A larger",
+                " value here means less of the block available for transactions should there be a glut of",
+                " bids to make into gilts to reach the target."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "DurationTooSmall",
+              "docs": [
+                " The duration of the bid is less than one."
+              ]
+            },
+            {
+              "name": "DurationTooBig",
+              "docs": [
+                " The duration is the bid is greater than the number of queues."
+              ]
+            },
+            {
+              "name": "AmountTooSmall",
+              "docs": [
+                " The amount of the bid is less than the minimum allowed."
+              ]
+            },
+            {
+              "name": "BidTooLow",
+              "docs": [
+                " The queue for the bid's duration is full and the amount bid is too low to get in through",
+                " replacing an existing bid."
+              ]
+            },
+            {
+              "name": "Unknown",
+              "docs": [
+                " Gilt index is unknown."
+              ]
+            },
+            {
+              "name": "NotOwner",
+              "docs": [
+                " Not the owner of the gilt."
+              ]
+            },
+            {
+              "name": "NotExpired",
+              "docs": [
+                " Gilt not yet at expiry date."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " The given bid for retraction is not found."
+              ]
+            }
+          ],
+          "index": 37
+        }
+      ],
+      "extrinsic": {
+        "version": 4,
+        "signedExtensions": [
+          "CheckSpecVersion",
+          "CheckTxVersion",
+          "CheckGenesis",
+          "CheckMortality",
+          "CheckNonce",
+          "CheckWeight",
+          "ChargeTransactionPayment"
+        ]
+      }
+    }
+  }
+}
diff --git a/tests/meta/v13.hex b/tests/meta/v13.hex
new file mode 100644
--- /dev/null
+++ b/tests/meta/v13.hex
@@ -0,0 +1,1 @@
+0x6d6574610da01853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e0503106e6f6465387375627374726174652d6e6f64650a0000000b0100000000000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b01000000020000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780c753136082a0014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e34f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e0000011042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304000c5d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207468617420696e636c756465732074686520565246206f75747075742067656e6572617465645101206174207468697320626c6f636b2e2054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000485012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e2067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c75363420c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e041c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657844690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e052042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964d05765616b426f756e6465645665633c42616c616e63654c6f636b3c543a3a42616c616e63653e2c20543a3a4d61784c6f636b733e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010230543a3a4163636f756e7449642901426f756e6465645665633c52657365727665446174613c543a3a526573657276654964656e7469666965722c20543a3a42616c616e63653e2c20543a3a0a4d617852657365727665733e00040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0114207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e307472616e736665725f616c6c0810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365286b6565705f616c69766510626f6f6c480901205472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e005d01204e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e732074686174650120616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062656101207472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c490120796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f7261676544206465706f736974732c206574632e2e2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a4202d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e5d01202d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c51012020206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f725d012020207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fa02020206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3420202023203c7765696768743e3d01202d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e34202020233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e79526573657276657304b0204e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657306485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000768456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e64657801000c753332100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100585375626d697373696f6e496e64696365734f663c543e0400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101050c753332545369676e65645375626d697373696f6e4f663c543e00d10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f7265000034456c656374696f6e53636f72650400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01103c7375626d69745f756e7369676e65640820736f6c7574696f6e64526177536f6c7574696f6e3c436f6d706163744f663c543e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f726504406d617962655f6e6578745f73636f7265544f7074696f6e3c456c656374696f6e53636f72653e14b4205365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00dc204469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f4205468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c740420736f6c7574696f6e6c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e205d0120536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748c2063616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e00490120546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e0065012054686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e79550120666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f6c206d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740820736f6c7574696f6e64526177536f6c7574696f6e3c436f6d706163744f663c543e3e586e756d5f7369676e65645f7375626d697373696f6e730c75333234a0205375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d420546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e0061012054686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e6454206f6620746865207369676e65642070686173652e0061012041206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e1901206d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002c2023203c7765696768743eb42051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011838536f6c7574696f6e53746f726564083c456c656374696f6e436f6d7075746510626f6f6c18b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e005501205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408244163636f756e7449641c42616c616e636504290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408244163636f756e7449641c42616c616e636504250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e2834556e7369676e6564506861736538543a3a426c6f636b4e756d62657210320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210320000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c10a0860100084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617438543a3a426c6f636b4e756d626572100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e505369676e65644d61785375626d697373696f6e730c753332100a0000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768741857656967687420c07c907c2d0100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e6564526577617264426173653042616c616e63654f663c543e4000407a10f35a00000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f7369745765696768743042616c616e63654f663c543e400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e2c6850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c044d0120546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f736974049820546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e65737304a4205769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d75636857656967687404bc20546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261049c204f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d6574616461746104ac20536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e64657804d4206053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564049c205468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e081c5374616b696e67011c5374616b696e679430486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f725072656673000800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400000c75333204000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e0004000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400000c75333204000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0031012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6053657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040610cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076362e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c6400001c50657263656e7404000c810120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f206e6f6d696e61746f72732e6d0120546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f7273202860436f756e74466f722a602920696ee4207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e016410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5465012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d2c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e8c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e003d012049662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1d0120746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a1d01202d20526561643a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e744572612c204c6f636b732c2042616c616e63654f662053746173682ca4202d2057726974653a204c6f636b732c204c65646765722c2042616c616e63654f662053746173682c28203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533327c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766520205570646174653a2501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657218204b696c6c3a4501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e8c2020204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173685101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732cb02020205b4f726967696e204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173682e74202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d34205765696768743a204f284e2984207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f65726173003cb020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3d0120546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865e020656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100404d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730038050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657870110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d73290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e38e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533323c61012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34e42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e490120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e2054686520636f6e74726f6c6c657298206163636f756e742073686f756c6420726570726573656e7420612076616c696461746f722e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d69747314486d696e5f6e6f6d696e61746f725f626f6e643042616c616e63654f663c543e486d696e5f76616c696461746f725f626f6e643042616c616e63654f663c543e4c6d61785f6e6f6d696e61746f725f636f756e742c4f7074696f6e3c7533323e4c6d61785f76616c696461746f725f636f756e742c4f7074696f6e3c7533323e247468726573686f6c643c4f7074696f6e3c50657263656e743e34bc205570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e002901202a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e2901202a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e4501202a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652eb02020205768656e2073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e4501202a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652eb02020205768656e2073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00ac204f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e003901204e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e150120746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720428636f6e74726f6c6c657230543a3a4163636f756e744964584501204465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00450120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e005d01204966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265dc20656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e006101204966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e7334206d757374206265206d65743a4101202a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d617859012020206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e5d01202a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e6594202020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e6101202a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e6573550120202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c6444202020626f6e642072657175697265642e00590120546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739c2077686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e000128244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d1852657761726408244163636f756e7449641c42616c616e636504fc20546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d3c5374616b696e67456c656374696f6e0004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c65640004b02054686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c7533321010000000005c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6404d02043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f746865720459012054686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730875012054686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e672073657474696e67739420746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730875012054686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e672073657474696e67739420746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e091c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e746088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578086501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e0a2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001482050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e047d012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c820412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c2069735f6f6b5c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d20556e6c6f636b656404244163636f756e74496404bc20416e205c5b6163636f756e745c5d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e842056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e38496e76616c69645769746e6573730490205468652070726f7669646564207769746e65737320646174612069732077726f6e672e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0b1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0c48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0d24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e550120202053696d696c617220746f205b6072656d6f76655f6d656d62657273605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c794d01202020757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e4000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c753332100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e0e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e0f1c4772616e647061011c4772616e6470611814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e10205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d143050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1124436f6e7472616374730124436f6e74726163747314305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e4c5072656661625761736d4d6f64756c653c543e0004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650100505665633c44656c65746564436f6e74726163743e040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7359012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f696e697469616c697a65602e01101063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f64651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10636f64651c5665633c75383e10646174611c5665633c75383e1073616c741c5665633c75383e54350120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e673820736f6d652062616c616e63652e000501205468697320697320746865206f6e6c792066756e6374696f6e20746861742063616e206465706c6f79206e657720636f646520746f2074686520636861696e2e0034202320506172616d6574657273006101202a2060656e646f776d656e74603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e1901202a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722ed0202a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef8202a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3501202a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a007501202d2054686520737570706c6965642060636f64656020697320696e737472756d656e7465642c206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e5d01202d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e4d01202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ed4202d205468652060656e646f776d656e7460206973207472616e7366657272656420746f20746865206e6577206163636f756e742e4501202d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e74696174651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e1073616c741c5665633c75383e14010120496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e00390120546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654d0120636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e61727948206d75737420626520737570706c6965642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e244d0120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b39012070726f6475636572206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e004d0120496e2063617365206f662061207375636365737366756c206576696374696f6e206e6f20666565732061726520636861726765642066726f6d207468652073656e6465722e20486f77657665722c20746865450120726577617264206973206361707065642062792074686520746f74616c20616d6f756e74206f662072656e7420746861742077617320706169642062792074686520636f6e7472616374207768696c65382069742077617320616c6976652e00550120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c205b604572726f723a3a436f6e74726163744e6f74457669637461626c65605dec2069732072657475726e656420616e64207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e012030496e7374616e74696174656408244163636f756e744964244163636f756e74496404390120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205c5b6465706c6f7965722c20636f6e74726163745c5d1c4576696374656404244163636f756e74496404190120436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e205c5b636f6e74726163745c5d285465726d696e6174656408244163636f756e744964244163636f756e74496430e820436f6e747261637420686173206265656e207465726d696e6174656420776974686f7574206c656176696e67206120746f6d6273746f6e652e68205c5b636f6e74726163742c2062656e65666963696172795c5d0024202320506172616d7300c0202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420776173207465726d696e617465642e3101202d206062656e6566696369617279603a20546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e63652e001c2023204e6f7465002d0120546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420776974686f7574206120746f6d6273746f6e6520616e6420656d697474696e67ac2074686973206576656e742069732062792063616c6c696e6720607365616c5f7465726d696e617465602e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524bc20526573746f726174696f6e206f66206120636f6e747261637420686173206265656e207375636365737366756c2eb8205c5b726573746f7265722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655c5d0024202320506172616d7300d0202d2060726573746f726572603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e74726163742ebc202d206064657374603a204163636f756e74204944206f662074686520726573746f72656420636f6e74726163742ecc202d2060636f64655f68617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163742ef4202d206072656e745f616c6c6f77616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e74726163742e28436f646553746f72656404104861736804f020436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e205c5b636f64655f686173685c5d3c5363686564756c6555706461746564040c75333218c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e30205c5b76657273696f6e5c5d0024202320506172616d7300d0202d206076657273696f6e603a205468652076657273696f6e206f6620746865206e65776c7920736574207363686564756c652e3c436f6e7472616374456d697474656408244163636f756e7449641c5665633c75383e20a0204120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e4c205c5b636f6e74726163742c20646174615c5d0024202320506172616d7300cc202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420656d697474656420746865206576656e742e3101202d206064617461603a204461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e7472616374b82020202020202020202020636f6d70696c6174696f6e206973206e656564656420746f206465636f64652069742e2c436f646552656d6f76656404104861736810b0204120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e38205c5b636f64655f686173685c5d00550120546869732068617070656e73207768656e20746865206c61737420636f6e747261637420746861742075736573207468697320636f64652068617368207761732072656d6f766564206f7220657669637465642e28205363686564756c652c5363686564756c653c543ed1090400000000020000000100008000000010000000001000000001000020000000200000000040000000000200020000008e0f0000b04602009a8c0300a9720000767600005e380000ea5e00000753000097000000579e030088130500b60000007a170000c11100005721000099370000483a0000d0110000d8d12c08bc4300005c430000bb2e0000a942000000260000b72300009c370000ad540000de540000ca5400000354000018550000e553000011550000c053000007540000da540000a0530000e85300008d5400004a690000bd680000a56a000096670000b053000013540000055400006a5500009255000060550000f455000033550000cae32900000000007a332a00000000004041290000000000a6fb5d000000000060c02a0000000000e6d6290000000000065329000000000062002a0000000000d425290000000000b0522a00000000005cb3540000000000b41c1600000000008057640000000000000100000000000008f6380000000000710200000000000078d68a210000000098d6de2a000000007c75640900000000466d6f000000000070baac0000000000ec73de07000000007406000000000000922c190000000000fc9f1d00000000008618ee0900000000450200000000000082dc6108000000003e573102000000002704000000000000cc94430b000000009406e1100000000096fa930800000000dc010000000000009c020000000000001843c12400000000f001000000000000b80200000000000094070000000000008a9b2a0000000000561200000000000046432b0000000000ab0c000000000000c08c260000000000b005000000000000acd2260000000000b005000000000000046820436f7374207363686564756c6520616e64206c696d6974732e4c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000f0e8857a9c0200000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e484465706f736974506572436f6e74726163743042616c616e63654f663c543e4000f0e8857a9c02000000000000000000202101205468652062616c616e636520657665727920636f6e7472616374206e6565647320746f206465706f73697420746f207374617920616c69766520696e646566696e6974656c792e005101205468697320697320646966666572656e742066726f6d20746865205b6053656c663a3a546f6d6273746f6e654465706f736974605d20626563617573652074686973206f6e6c79206e6565647320746f2062654501206465706f7369746564207768696c652074686520636f6e747261637420697320616c6976652e20436f73747320666f72206164646974696f6e616c2073746f726167652061726520616464656420746f402074686973206261736520636f73742e006d01205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465642062797101206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f20736176652072656e742e544465706f73697450657253746f72616765427974653042616c616e63654f663c543e400060defb740500000000000000000000185501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206279746520746f207374617920616c69766520696e646566696e6974656c792e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e544465706f73697450657253746f726167654974656d3042616c616e63654f663c543e4000f0ab75a40d000000000000000000000c5501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206974656d20746f207374617920616c69766520696e646566696e6974656c792e00310120497420776f726b73207468652073616d65206173205b6053656c663a3a4465706f73697450657253746f7261676542797465605d2062757420666f722073746f72616765206974656d732e3052656e744672616374696f6e1c50657262696c6c1085040000140d0120546865206672616374696f6e206f6620746865206465706f73697420746861742073686f756c6420626520757365642061732072656e742070657220626c6f636b2e005101205768656e206120636f6e7472616374206861736e277420656e6f7567682062616c616e6365206465706f736974656420746f207374617920616c69766520696e646566696e6974656c79206974206e65656473450120746f207061792070657220626c6f636b20666f72207468652073746f7261676520697420636f6e73756d65732074686174206973206e6f7420636f766572656420627920746865206465706f7369742e590120546869732064657465726d696e657320686f77206869676820746869732072656e74207061796d656e742069732070657220626c6f636b2061732061206672616374696f6e206f6620746865206465706f7369742e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e4844656c6574696f6e517565756544657074680c753332101a04000004f420546865206d6178696d756d206e756d626572206f6620747269657320746861742063616e2062652071756575656420666f722064656c6574696f6e2e4c44656c6574696f6e5765696768744c696d6974185765696768742000d0ed902e000000044d0120546865206d6178696d756d20616d6f756e74206f662077656967687420746861742063616e20626520636f6e73756d65642070657220626c6f636b20666f72206c617a7920747269652072656d6f76616c2e8858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e6404c0204e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e4c436f6e74726163744973546f6d6273746f6e6510b0204120746f6d6273746f6e65206578697374206174207468652073706563696669656420616464726573732e00410120546f6d6273746f6e652063616e6e6f742062652063616c6c65642e20416e796f6e652063616e2075736520607365616c5f726573746f72655f746f6020696e206f7264657220746f20726576697665582074686520636f6e74726163742c2074686f7567682e2c52656e744e6f7450616964182501205468652063616c6c656420636f6e747261637420646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920666f72206974732073746f726167652e0039012054686520636f6e74726163742072616e206f7574206f662062616c616e636520616e64206973207468657265666f726520656c696769626c6520666f72206576696374696f6e20696e746f20612d0120746f6d6273746f6e652e20416e796f6e652063616e2065766963742074686520636f6e7472616374206279207375626d697474696e6720612060636c61696d5f737572636861726765602d012065787472696e7369632e20416c7465726e61746976656c792c206120706c61696e2062616c616e6365207472616e736665722063616e206265207573656420696e206f7264657220746ff420696e6372656173652074686520636f6e7472616374732066756e647320736f20746861742069742063616e2062652063616c6c656420616761696e2e30436f6465546f6f4c617267650841012054686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e20746865482063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c6172676504d0205468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74081d01205465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c72656164793501206f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e61746560206f7220607365616c5f726573746f72655f746f2e38496e707574466f7277617264656404450120607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e5052616e646f6d5375626a656374546f6f4c6f6e6704dc20546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730421012054686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e3c4475706c6963617465546f706963730431012054686520746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e74736020636f6e7461696e73206174206c65617374206f6e65206475706c69636174652e404e6f436861696e457874656e73696f6e0c49012054686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c7473510120696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e747261637473342069732072656a65637465642e4444656c6574696f6e517565756546756c6c1405012052656d6f76616c206f66206120636f6e7472616374206661696c65642062656361757365207468652064656c6574696f6e2071756575652069732066756c6c2e00550120546869732063616e2068617070656e207768656e206569746865722063616c6c696e67205b6050616c6c65743a3a636c61696d5f737572636861726765605d206f7220607365616c5f7465726d696e617465602e5101205468652071756575652069732066696c6c65642062792064656c6574696e6720636f6e74726163747320616e6420656d7074696564206279206120666978656420616d6f756e74206561636820626c6f636b2e250120547279696e6720616761696e20647572696e6720616e6f7468657220626c6f636b20697320746865206f6e6c792077617920746f207265736f6c766520746869732069737375652e50436f6e74726163744e6f74457669637461626c65102d01204120636f6e747261637420636f756c64206e6f74206265206576696374656420626563617573652069742068617320656e6f7567682062616c616e636520746f207061792072656e742e00250120546869732063616e2062652072657475726e65642066726f6d205b6050616c6c65743a3a636c61696d5f737572636861726765605d20626563617573652074686520746172676574c420636f6e74726163742068617320656e6f7567682062616c616e636520746f2070617920666f72206974732072656e742e4053746f7261676545786861757374656410350120412073746f72616765206d6f64696669636174696f6e20657868617573746564207468652033326269742074797065207468617420686f6c6473207468652073746f726167652073697a652e00350120546869732063616e206569746865722068617070656e207768656e2074686520616363756d756c617465642073746f7261676520696e20627974657320697320746f6f206c61726765206f72ac207768656e206e756d626572206f662073746f72616765206974656d7320697320746f6f206c617267652e444475706c6963617465436f6e747261637404cc204120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f720cbc204120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00290120546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e61746560206f7220607365616c5f726573746f72655f746f602e5c44656275674d657373616765496e76616c69645554463804410120546865206465627567206d6573736167652073706563696669656420746f20607365616c5f64656275675f6d6573736167656020646f657320636f6e7461696e20696e76616c6964205554462d382e405265656e7472616e636544656e69656404110120412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e12105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e741320496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e4101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e290101202020616e642045206973206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e1448417574686f72697479446973636f76657279000000000015204f6666656e63657301204f6666656e6365730c1c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001041c4f6666656e636508104b696e64384f706171756554696d65536c6f740c550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e50205c5b6b696e642c2074696d65736c6f745c5d2e00001628486973746f726963616c0000000000176052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0000000018204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d204043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e2050616c6c657449642050616c6c657449642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964484d617843616e646964617465496e74616b650c753332100a0000000490204d6178696d756d2063616e64696461746520696e74616b652070657220726f756e642e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000c69012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00690120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465047c20536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e1b1c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e406820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e2054686519012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e744964041d0120416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d0010404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e744964a50128426f756e6465645665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850726f786965732c3e2c2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e744964a10128426f756e6465645665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850656e64696e672c3e2c2042616c616e63654f663c543e2c290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e690120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00690120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f2061207072652d6578697374696e6761012073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b6520696e746f206163636f756e74c020603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c753332102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c39000000000000000000000c310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00690120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c79203136206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b8590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f7765696768741857656967687490590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e4000f01c0adbed0100000000000000000018710120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f2073746f72656c20612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f726965730c75313608640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e201054697073012054726561737572790810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d1430546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e211841737365747301184173736574731014417373657400010228543a3a41737365744964f8417373657444657461696c733c543a3a42616c616e63652c20543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e00040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7401020228543a3a4173736574496430543a3a4163636f756e74496488417373657442616c616e63653c543a3a42616c616e63652c20543a3a45787472613e02280000000000000000000004e420546865206e756d626572206f6620756e697473206f66206173736574732068656c6420627920616e7920676976656e206163636f756e742e24417070726f76616c7300030c28543a3a4173736574496430543a3a4163636f756e74496430543a3a4163636f756e7449640c020202b0417070726f76616c3c543a3a42616c616e63652c204465706f73697442616c616e63654f663c542c20493e3e04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d6574616461746101010228543a3a41737365744964190141737365744d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0a3e005000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e015c186372656174650c0869644c436f6d706163743c543a3a417373657449643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e636528543a3a42616c616e63654cec2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c02046756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e003020506172616d65746572733a5d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f637265617465100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653469735f73756666696369656e7410626f6f6c2c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e4cfc2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e005d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e737d01206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6720607472616e736665725f6f776e657273686970604020616e6420607365745f7465616d602e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f79080869644c436f6d706163743c543a3a417373657449643e1c7769746e6573733844657374726f795769746e65737348902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00590120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686564206f776e6572206f662074686520617373657420606964602e005101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e671c2061737365742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e004901204e4f54453a2049742063616e2062652068656c7066756c20746f20666972737420667265657a6520616e206173736574206265666f72652064657374726f79696e6720697420736f207468617420796f754d012063616e2070726f76696465206163637572617465207769746e65737320696e666f726d6174696f6e20616e642070726576656e742075736572732066726f6d206d616e6970756c6174696e67207374617465b420696e20612077617920746861742063616e206d616b652069742068617264657220746f2064657374726f792e0078205765696768743a20604f2863202b2070202b206129602077686572653ac4202d206063203d20287769746e6573732e6163636f756e7473202d207769746e6573732e73756666696369656e7473296070202d206073203d207769746e6573732e73756666696369656e74736068202d206061203d207769746e6573732e617070726f76616c7360106d696e740c0869644c436f6d706163743c543a3a417373657449643e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e308c204d696e7420617373657473206f66206120706172746963756c617220636c6173732e003d0120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e1101202d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec8202d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129605901204d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e3c490120526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00dc204261696c732077697468206042616c616e63655a65726f6020696620746865206077686f6020697320616c726561647920646561642e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea4202d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e2d01202d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e00550120456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f77207468653d01206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e003c205765696768743a20604f283129600d01204d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e48d4204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e4c7472616e736665725f6b6565705f616c6976650c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485d01204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e38666f7263655f7472616e73666572100869644c436f6d706163743c543a3a417373657449643e18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e4cb8204d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c202d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e98202d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e5d01202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e645d012060646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d82062656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f6620206064657374602e18667265657a65080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528e420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e742e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e8c202d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f283129601074686177080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528d020416c6c6f7720756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e7420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e94202d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f6173736574040869644c436f6d706163743c543a3a417373657449643e24f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296028746861775f6173736574040869644c436f6d706163743c543a3a417373657449643e24c820416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e657273686970080869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652878204368616e676520746865204f776e6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d100869644c436f6d706163743c543a3a417373657449643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530c8204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f28312960307365745f6d65746164617461100869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c73087538407c2053657420746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00dc2046756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a550120604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a820416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c730875382469735f66726f7a656e10626f6f6c38bc20466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e0070204f726967696e206d75737420626520466f7263654f726967696e2e006c20416e79206465706f736974206973206c65667420616c6f6e652e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e005501205765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e0070204f726967696e206d75737420626520466f7263654f726967696e2e006420416e79206465706f7369742069732072657475726e65642e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f61737365745f737461747573200869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e3469735f73756666696369656e7410626f6f6c2469735f66726f7a656e10626f6f6c589c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e5501202d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e7451012076616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f5901206074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e642074687573510120616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e74207374617465242067726f777468292e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c0869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e50310120417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e005c204f726967696e206d757374206265205369676e65642e00510120456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e74590120666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794d0120617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f58206d656574207468652072696768742076616c75652e004901204e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f6648206d616b696e6720746869732063616c6c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e1101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e4d01202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e420616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c080869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004101204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e6430206064656c6567617465602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004d01204f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e6c206163636f756e74206f662074686520617373657420606964602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f28312960447472616e736665725f617070726f766564100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c64657374696e6174696f6e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485101205472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d706172747924206163636f756e742e004d01204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f2074686520207369676e65722e005d012049662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b82072657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e6501202d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64c02066726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e6501202d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb8202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e00a020456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e003c205765696768743a20604f2831296001481c437265617465640c1c41737365744964244163636f756e744964244163636f756e74496404ec20536f6d6520617373657420636c6173732077617320637265617465642e205c5b61737365745f69642c2063726561746f722c206f776e65725c5d184973737565640c1c41737365744964244163636f756e7449641c42616c616e636504ec20536f6d65206173736574732077657265206973737565642e205c5b61737365745f69642c206f776e65722c20746f74616c5f737570706c795c5d2c5472616e73666572726564101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636504f420536f6d65206173736574732077657265207472616e736665727265642e205c5b61737365745f69642c2066726f6d2c20746f2c20616d6f756e745c5d184275726e65640c1c41737365744964244163636f756e7449641c42616c616e636504e420536f6d652061737365747320776572652064657374726f7965642e205c5b61737365745f69642c206f776e65722c2062616c616e63655c5d2c5465616d4368616e676564101c41737365744964244163636f756e744964244163636f756e744964244163636f756e74496404050120546865206d616e6167656d656e74207465616d206368616e676564205c5b61737365745f69642c206973737565722c2061646d696e2c20667265657a65725c5d304f776e65724368616e676564081c41737365744964244163636f756e744964049820546865206f776e6572206368616e676564205c5b61737365745f69642c206f776e65725c5d1846726f7a656e081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f60207761732066726f7a656e2e205c5b61737365745f69642c2077686f5c5d18546861776564081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f6020776173207468617765642e205c5b61737365745f69642c2077686f5c5d2c417373657446726f7a656e041c4173736574496404bc20536f6d65206173736574206061737365745f696460207761732066726f7a656e2e205c5b61737365745f69645c5d2c4173736574546861776564041c4173736574496404bc20536f6d65206173736574206061737365745f69646020776173207468617765642e205c5b61737365745f69645c5d2444657374726f796564041c41737365744964047820416e20617373657420636c617373207761732064657374726f7965642e30466f72636543726561746564081c41737365744964244163636f756e74496404e020536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e205c5b61737365745f69642c206f776e65725c5d2c4d65746164617461536574141c417373657449641c5665633c75383e1c5665633c75383e08753810626f6f6c046101204e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e205c5b61737365745f69642c206e616d652c2073796d626f6c2c20646563696d616c732c2069735f66726f7a656e5c5d3c4d65746164617461436c6561726564041c4173736574496404d4204d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e205c5b61737365745f69645c5d40417070726f7665645472616e73666572101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636508350120284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e9c205c5b61737365745f69642c20736f757263652c2064656c65676174652c20616d6f756e745c5d44417070726f76616c43616e63656c6c65640c1c41737365744964244163636f756e744964244163636f756e74496408f420416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e60205c5b69642c206f776e65722c2064656c65676174655c5d4c5472616e73666572726564417070726f766564141c41737365744964244163636f756e744964244163636f756e744964244163636f756e7449641c42616c616e63650c350120416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e60206279642074686520617070726f766564206064656c6567617465602e94205c5b69642c206f776e65722c2064656c65676174652c2064657374696e6174696f6e5c5d4841737365745374617475734368616e676564041c4173736574496408fc20416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e1c205c5b69645c5d00302842616c616e63654c6f77041901204163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e2c42616c616e63655a65726f04702042616c616e63652073686f756c64206265206e6f6e2d7a65726f2e304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e047820546865206f726967696e206163636f756e742069732066726f7a656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0490204d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e284e6f50726f7669646572046501204e6f2070726f7669646572207265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742e2c4261644d65746164617461046020496e76616c6964206d6574616461746120676976656e2e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c644469650439012054686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e220c4d6d72014c4d65726b6c654d6f756e7461696e52616e67650c20526f6f74486173680100583c5420617320436f6e6669673c493e3e3a3a486173688000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301000c75363420000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001060c753634583c5420617320436f6e6669673c493e3e3a3a48617368000400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000231c4c6f7474657279011c4c6f747465727918304c6f7474657279496e64657801000c7533321000000000001c4c6f74746572790000ac4c6f7474657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e747301010530543a3a4163636f756e74496454287533322c205665633c43616c6c496e6465783e29001400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e7401000c7533321000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b6574730001050c75333230543a3a4163636f756e74496400040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100385665633c43616c6c496e6465783e0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e0110286275795f7469636b6574041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c8c204275792061207469636b657420746f20656e74657220746865206c6f74746572792e00050120546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0d0120736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c642420737563636565642e001101204966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c1501207768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75b02073686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c820546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c73041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e181501205365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e00210120546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e29012070726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d420546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279101470726963653042616c616e63654f663c543e186c656e67746838543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721872657065617410626f6f6c28c82053746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e003020506172616d65746572733a00a0202a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e3d01202a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e4901202a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee4202a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174001001012049662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ec020546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e0110384c6f7474657279537461727465640004702041206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640004882041206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208244163636f756e7449641c42616c616e6365046820412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408244163636f756e7449642443616c6c496e64657804682041207469636b657420686173206265656e20626f7567687421082050616c6c657449642050616c6c657449642070792f6c6f74746f046020546865204c6f747465727927732070616c6c6574206964204d617843616c6c730c753332100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e1c344e6f74436f6e66696775726564048c2041206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f677265737304882041206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e64656404742041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c04ac205468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e6704f420596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c73049420546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564045c204661696c656420746f20656e636f64652063616c6c73241047696c74011047696c74102c5175657565546f74616c730100605665633c287533322c2042616c616e63654f663c543e293e04001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101020c753332a05665633c47696c744269643c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e0004000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c01007841637469766547696c7473546f74616c3c42616c616e63654f663c543e3e9000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e184163746976650001022c416374697665496e646578a50141637469766547696c743c42616c616e63654f663c543e2c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3c0a54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a426c6f636b4e756d6265723e000400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e011024706c6163655f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c753332349420506c61636520612062696420666f7220612067696c7420746f206265206973737565642e004101204f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e003d01202d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069734101207375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265fc20726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e5901202d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c742069735d01206973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed8204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e003820436f6d706c657869746965733ab0202d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c7533321c84205265747261637420612070726576696f75736c7920706c61636564206269642e006101204f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d6163746976652062696470206f662060616d6f756e746020666f7220606475726174696f6e602e00b0202d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ec0202d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574041874617267657450436f6d706163743c5065727175696e74696c6c3e189420536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e0078204f726967696e206d757374206265206041646d696e4f726967696e602e005d01202d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c74734420617420616e79206f6e652074696d652e10746861770414696e64657850436f6d706163743c416374697665496e6465783e1c59012052656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e63652069735d012061646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e84206f662065666665637469766520746f74616c206973737565642066756e64732e006101204f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00bc202d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e011024426964506c616365640c244163636f756e7449643042616c616e63654f663c543e0c753332087c20412062696420776173207375636365737366756c6c7920706c616365642e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d304269645265747261637465640c244163636f756e7449643042616c616e63654f663c543e0c75333208090120412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d2847696c74497373756564102c416374697665496e64657838543a3a426c6f636b4e756d626572244163636f756e7449643042616c616e63654f663c543e0831012041206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e84205c5b20696e6465782c206578706972792c2077686f2c20616d6f756e74205c5d2847696c74546861776564102c416374697665496e646578244163636f756e7449643042616c616e63654f663c543e3042616c616e63654f663c543e088420416e20657870697265642067696c7420686173206265656e207468617765642ed4205c5b20696e6465782c2077686f2c206f726967696e616c5f616d6f756e742c206164646974696f6e616c5f616d6f756e74205c5d1c285175657565436f756e740c753332102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e0c75333210e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e0c75333210f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f6438543a3a426c6f636b4e756d62657210002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a653042616c616e63654f663c543e400000c16ff2862300000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6438543a3a426c6f636b4e756d626572100a00000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b65426964730c753332100a0000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e20404475726174696f6e546f6f536d616c6c04a820546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f42696704f820546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c04e02054686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f770865012054686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e207468726f7567686c207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e045c2047696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572046c204e6f7420746865206f776e6572206f66207468652067696c742e284e6f744578706972656404742047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e6404ac2054686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e251c556e6971756573011c556e69717565731814436c61737300010228543a3a436c6173734964c8436c61737344657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e000400046c2044657461696c73206f6620616e20617373657420636c6173732e1c4163636f756e7400030c30543a3a4163636f756e74496428543a3a436c617373496434543a3a496e7374616e636549640c020202082829040008610120546865206173736574732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420617373657473206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e14417373657400020228543a3a436c617373496434543a3a496e7374616e63654964d4496e7374616e636544657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e02040004d4205468652061737365747320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f6600010228543a3a436c6173734964d4436c6173734d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e0004000470204d65746164617461206f6620616e20617373657420636c6173732e48496e7374616e63654d657461646174614f6600020228543a3a436c617373496434543a3a496e7374616e63654964e0496e7374616e63654d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e020400047c204d65746164617461206f6620616e20617373657420696e7374616e63652e2441747472696275746500030c28543a3a436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0c020202dc28426f756e6465645665633c75382c20543a3a56616c75654c696d69743e2c204465706f73697442616c616e63654f663c542c20493e2904000470204d65746164617461206f6620616e20617373657420636c6173732e0158186372656174650814636c6173734c436f6d706163743c543a3a436c61737349643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636540fc2049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00b4206041737365744465706f736974602066756e6473206f662073656e646572206172652072657365727665642e003020506172616d65746572733a5501202d2060636c617373603a20546865206964656e746966696572206f6620746865206e657720617373657420636c6173732e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f6372656174650c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c400d012049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e003d01202d2060636c617373603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e732901206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e679420607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f790814636c6173734c436f6d706163743c543a3a436c61737349643e1c7769746e6573733844657374726f795769746e6573733c902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00610120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d7573742062652074686570206f776e6572206f66207468652061737365742060636c617373602e00f8202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c61737320746f2062652064657374726f7965642e4901202d20607769746e657373603a20496e666f726d6174696f6e206f6e2074686520696e7374616e636573206d696e74656420696e2074686520617373657420636c6173732e2054686973206d7573742062652420636f72726563742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0068205765696768743a20604f286e202b206d29602077686572653a68202d20606e203d207769746e6573732e696e7374616e636573608c202d20606d203d207769746e6573732e696e7374616e63655f6d6574616461746173606c202d206061203d207769746e6573732e6174747269627574657360106d696e740c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652cb8204d696e7420616e20617373657420696e7374616e6365206f66206120706172746963756c617220636c6173732e00490120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206d696e7465642ef0202d2060696e7374616e6365603a2054686520696e7374616e63652076616c7565206f662074686520617373657420746f206265206d696e7465642ee0202d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e7465642061737365742e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f28312960106275726e0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2c636865636b5f6f776e6572ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34842044657374726f7920612073696e676c6520617373657420696e7374616e63652e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206275726e65642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265206275726e65642e5501202d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c65737320746865802020206173736574206973206f776e656420627920746869732076616c75652e00b820456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e003c205765696768743a20604f2831296080204d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e10646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cc8204d6f766520616e2061737365742066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f8204f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a88202d207468652041646d696e206f66207468652061737365742060636c617373603b94202d20746865204f776e6572206f66207468652061737365742060696e7374616e6365603b6101202d2074686520617070726f7665642064656c656761746520666f72207468652061737365742060696e7374616e6365602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e002c20417267756d656e74733ad4202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207472616e736665727265642eec202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207472616e736665727265642ee4202d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f66207468652061737365742e005420456d69747320605472616e73666572726564602e003c205765696768743a20604f283129602472656465706f7369740814636c6173734c436f6d706163743c543a3a436c61737349643e24696e7374616e636573485665633c543a3a496e7374616e636549643e44a02052656576616c7561746520746865206465706f73697473206f6e20736f6d65206173736574732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2e5101202d2060696e7374616e636573603a2054686520696e7374616e636573206f662074686520617373657420636c6173732077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e005901204e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e7920617373657420696e7374616e6365732077686963682061726520756e6b6e6f776e206f723d0120696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220616101206465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e20696e7374616e63657359012077686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c7c20736f2069742773206f66206c6974746c6520636f6e73657175656e63652e0055012049742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636c61737320697320756e6b6e6f776e206f6620746865207369676e657220697368206e6f74207065726d697474656420746f2063616c6c2069742e0074205765696768743a20604f28696e7374616e6365732e6c656e2829296018667265657a650814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296010746861770814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28d42052652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207468617765642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24050120446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00a4202d2060636c617373603a2054686520617373657420636c61737320746f2062652066726f7a656e2e005420456d6974732060436c61737346726f7a656e602e003c205765696768743a20604f2831296028746861775f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24e42052652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e008c202d2060636c617373603a2054686520636c61737320746f206265207468617765642e005420456d6974732060436c617373546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e6572736869700814636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652890204368616e676520746865204f776e6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e8202d2060636c617373603a2054686520617373657420636c6173732077686f7365206f776e65722073686f756c64206265206368616e6765642eb8202d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320617373657420636c6173732e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d1014636c6173734c436f6d706163743c543a3a436c61737349643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530e0204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e4202d2060636c617373603a2054686520617373657420636c6173732077686f7365207465616d2073686f756c64206265206368616e6765642ec0202d2060697373756572603a20546865206e657720497373756572206f66207468697320617373657420636c6173732eb8202d206061646d696e603a20546865206e65772041646d696e206f66207468697320617373657420636c6173732ec8202d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320617373657420636c6173732e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c290120417070726f766520616e20696e7374616e636520746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e001501204f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f66207468652061737365742060696e7374616e6365602e002501202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e3d01202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e2101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e73666572207468652061737365742e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e506d617962655f636865636b5f64656c6567617465ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4019012043616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e20617373657420627920612064656c65676174652e005c204f726967696e206d757374206265206569746865723a58202d207468652060466f72636560206f726967696e3b0501202d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652061737365742060636c617373603b1101202d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f66207468652061737365742060696e7374616e6365603b002c20417267756d656e74733a1d01202d2060636c617373603a2054686520636c617373206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e3501202d2060696e7374616e6365603a2054686520696e7374616e6365206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e5501202d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb42020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296048666f7263655f61737365745f7374617475731c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c2469735f66726f7a656e10626f6f6c449c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e00a0202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d01202d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e20696e7374616e6365206f66207468697320617373657424202020636c6173732e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f28312960347365745f6174747269627574651014636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e1476616c756574426f756e6465645665633c75382c20543a3a56616c75654c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e4101202d20606d617962655f696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f283129603c636c6561725f6174747269627574650c14636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f28312960307365745f6d657461646174611014636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c44a02053657420746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d657461646174610814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e34a820436c65617220746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865482061737365742060696e7374616e6365602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e004501202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f20636c6561722e3101202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f28312960487365745f636c6173735f6d657461646174610c14636c6173734c436f6d706163743c543a3a436c61737349643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c40942053657420746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e005d0120496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e000501202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742077686f7365206d6574616461746120746f207570646174652e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e006820456d6974732060436c6173734d65746164617461536574602e003c205765696768743a20604f2831296050636c6561725f636c6173735f6d657461646174610414636c6173734c436f6d706163743c543a3a436c61737349643e309c20436c65617220746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e001901202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f7365206d6574616461746120746f20636c6561722e007820456d6974732060436c6173734d65746164617461436c6561726564602e003c205765696768743a20604f2831296001581c437265617465640c1c436c6173734964244163636f756e744964244163636f756e74496404e020416e20617373657420636c6173732077617320637265617465642e205c5b20636c6173732c2063726561746f722c206f776e6572205c5d30466f72636543726561746564081c436c6173734964244163636f756e74496404d420416e20617373657420636c6173732077617320666f7263652d637265617465642e205c5b20636c6173732c206f776e6572205c5d2444657374726f796564041c436c617373496404b020416e2061737365742060636c61737360207761732064657374726f7965642e205c5b20636c617373205c5d184973737565640c1c436c617373496428496e7374616e63654964244163636f756e74496404f020416e2061737365742060696e73746163656020776173206973737565642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d2c5472616e73666572726564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e74496404110120416e2061737365742060696e73746163656020776173207472616e736665727265642e205c5b20636c6173732c20696e7374616e63652c2066726f6d2c20746f205c5d184275726e65640c1c436c617373496428496e7374616e63654964244163636f756e74496404010120416e2061737365742060696e7374616e636560207761732064657374726f7965642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d1846726f7a656e081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e636560207761732066726f7a656e2e205c5b20636c6173732c20696e7374616e6365205c5d18546861776564081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e63656020776173207468617765642e205c5b20636c6173732c20696e7374616e6365205c5d2c436c61737346726f7a656e041c436c617373496404ac20536f6d652061737365742060636c61737360207761732066726f7a656e2e205c5b20636c617373205c5d2c436c617373546861776564041c436c617373496404ac20536f6d652061737365742060636c6173736020776173207468617765642e205c5b20636c617373205c5d304f776e65724368616e676564081c436c6173734964244163636f756e74496404a420546865206f776e6572206368616e676564205c5b20636c6173732c206e65775f6f776e6572205c5d2c5465616d4368616e676564101c436c6173734964244163636f756e744964244163636f756e744964244163636f756e74496404010120546865206d616e6167656d656e74207465616d206368616e676564205c5b20636c6173732c206973737565722c2061646d696e2c20667265657a6572205c5d40417070726f7665645472616e73666572101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c550120416e2060696e7374616e636560206f6620616e2061737365742060636c6173736020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e73666572206279206130206064656c6567617465602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d44417070726f76616c43616e63656c6c6564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c610120416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e73666572207468652060696e7374616e636560206f6620616e2061737365742060636c6173736020776173682063616e63656c6c65642062792069747320606f776e6572602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d4841737365745374617475734368616e676564041c436c6173734964081d0120416e2061737365742060636c617373602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e30205c5b20636c617373205c5d40436c6173734d657461646174615365740c1c436c617373496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c042d01204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c6173732e205c5b20636c6173732c20646174612c2069735f66726f7a656e205c5d50436c6173734d65746164617461436c6561726564041c436c617373496404e8204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c6173732e205c5b20636c617373205c5d2c4d65746164617461536574101c436c617373496428496e7374616e6365496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c08c4204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420696e7374616e63652e9c205c5b20636c6173732c20696e7374616e63652c20646174612c2069735f66726f7a656e205c5d3c4d65746164617461436c6561726564081c436c617373496428496e7374616e63654964041d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c20696e7374616e6365205c5d2c52656465706f7369746564081c436c6173734964485665633c543a3a496e7374616e636549643e044d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c207375636365737366756c5f696e7374616e636573205c5d30417474726962757465536574101c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e74426f756e6465645665633c75382c20543a3a56616c75654c696d69743e081101204e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c617373206f7220696e7374616e63652ea0205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c2076616c7565205c5d40417474726962757465436c65617265640c1c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e08110120417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c617373206f7220696e7374616e63652eb8205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c206d617962655f76616c7565205c5d0028304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c726561647945786973747304e82054686520617373657420696e7374616e63652049442068617320616c7265616479206265656e207573656420666f7220616e2061737365742e2857726f6e674f776e657204ec20546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e1846726f7a656e049c2054686520617373657420696e7374616e6365206f7220636c6173732069732066726f7a656e2e3457726f6e6744656c656761746504f8205468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465047c205468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e26485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f7261676524305472616e73616374696f6e7300010238543a3a426c6f636b4e756d626572505665633c5472616e73616374696f6e496e666f3e00040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e284368756e6b436f756e7401010238543a3a426c6f636b4e756d6265720c753332001000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e1c4279746546656500003042616c616e63654f663c543e040004582053746f72616765206665652070657220627974652e20456e74727946656500003042616c616e63654f663c543e040004742053746f726167652066656520706572207472616e73616374696f6e2e484d61785472616e73616374696f6e53697a6501000c753332100000000004cc204d6178696d756d20646174612073657420696e20612073696e676c65207472616e73616374696f6e20696e2062797465732e504d6178426c6f636b5472616e73616374696f6e7301000c753332100000000004d4204d6178696d756d206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e2074686520626c6f636b2e3453746f72616765506572696f64010038543a3a426c6f636b4e756d6265721000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e44426c6f636b5472616e73616374696f6e730100505665633c5472616e73616374696f6e496e666f3e0400003050726f6f66436865636b6564010010626f6f6c0400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f010c1473746f72650410646174611c5665633c75383e18790120496e64657820616e642073746f72652064617461206f6e20636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d20697320604d61785472616e73616374696f6e53697a65602e390120446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e6577602069732063616c6c65642e2c2023203c7765696768743e1501202d206e2a6c6f67286e29206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e88204164646974696f6e616c6c7920636f6e7461696e7320612044422077726974652e302023203c2f7765696768743e1472656e65770814626c6f636b38543a3a426c6f636b4e756d62657214696e6465780c7533321c31012052656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e7329012070726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e0501205472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e78204170706c6965732073616d652066656573206173206073746f7265602e2c2023203c7765696768743e30202d20436f6e7374616e742e302023203c2f7765696768743e2c636865636b5f70726f6f66041470726f6f665c5472616e73616374696f6e53746f7261676550726f6f661c1d0120436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e0501204966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e2c2023203c7765696768743e6901202d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d2070726f62696e672ea020546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2ed4204865726520776520617373756d652061206d6178696d756d206f66203130302070726f626564207472616e73616374696f6e732e302023203c2f7765696768743e010c1853746f726564040c753332048c2053746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040c75333204902052656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640004a02053746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e003444496e73756666696369656e7446756e6473047820496e73756666696369656e74206163636f756e742062616c616e63652e344e6f74436f6e66696775726564045c20496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e6404802052656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e049820417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f6604982050726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f66046c2050726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66045c204d697373696e672073746f726167652070726f6f662e404d697373696e6753746174654461746104d820556e61626c6520746f207665726966792070726f6f6620626563617375652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b048420446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b656404b02053746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c617267650468205472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73049020546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e7465787404d820417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e27041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74
diff --git a/tests/meta/v13.json b/tests/meta/v13.json
new file mode 100644
--- /dev/null
+++ b/tests/meta/v13.json
@@ -0,0 +1,16490 @@
+{
+  "magicNumber": 1635018093,
+  "metadata": {
+    "v13": {
+      "modules": [
+        {
+          "name": "System",
+          "storage": {
+            "prefix": "System",
+            "items": [
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The full account information for a particular account ID."
+                ]
+              },
+              {
+                "name": "ExtrinsicCount",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total extrinsics count for the current block."
+                ]
+              },
+              {
+                "name": "BlockWeight",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ConsumedWeight"
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The current weight for the block."
+                ]
+              },
+              {
+                "name": "AllExtrinsicsLen",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total length (in bytes) for all extrinsics put together, for the current block."
+                ]
+              },
+              {
+                "name": "BlockHash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BlockNumber",
+                    "value": "Hash",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Map of block numbers to block hashes."
+                ]
+              },
+              {
+                "name": "ExtrinsicData",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Extrinsics data for the current block (maps an extrinsic's index to its data)."
+                ]
+              },
+              {
+                "name": "Number",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The current block number being processed. Set by `execute_block`."
+                ]
+              },
+              {
+                "name": "ParentHash",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Hash of the previous block."
+                ]
+              },
+              {
+                "name": "Digest",
+                "modifier": "Default",
+                "type": {
+                  "plain": "DigestOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Digest of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Events",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<EventRecord>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Events deposited for the current block."
+                ]
+              },
+              {
+                "name": "EventCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EventIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of events in the `Events<T>` list."
+                ]
+              },
+              {
+                "name": "EventTopics",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "Hash",
+                    "value": "Vec<(BlockNumber,EventIndex)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mapping between a topic (represented by T::Hash) and a vector of indexes",
+                  " of events in the `<Events<T>>` list.",
+                  "",
+                  " All topic vectors have deterministic storage locations depending on the topic. This",
+                  " allows light-clients to leverage the changes trie storage tracking mechanism and",
+                  " in case of changes fetch the list of events of interest.",
+                  "",
+                  " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
+                  " the `EventIndex` then in case if the topic has the same contents on the next block",
+                  " no notification will be triggered thus the event might be lost."
+                ]
+              },
+              {
+                "name": "LastRuntimeUpgrade",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "LastRuntimeUpgradeInfo"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."
+                ]
+              },
+              {
+                "name": "UpgradedToU32RefCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."
+                ]
+              },
+              {
+                "name": "UpgradedToTripleRefCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False",
+                  " (default) if not."
+                ]
+              },
+              {
+                "name": "ExecutionPhase",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Phase"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The execution phase of the block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "fill_block",
+              "args": [
+                {
+                  "name": "_ratio",
+                  "type": "Perbill"
+                }
+              ],
+              "docs": [
+                " A dispatch that will fill the block weight up to the given ratio."
+              ]
+            },
+            {
+              "name": "remark",
+              "args": [
+                {
+                  "name": "_remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Make some on-chain remark.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_heap_pages",
+              "args": [
+                {
+                  "name": "pages",
+                  "type": "u64"
+                }
+              ],
+              "docs": [
+                " Set the number of pages in the WebAssembly environment's heap.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - 1 storage write.",
+                " - Base Weight: 1.405 µs",
+                " - 1 write to HEAP_PAGES",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_code",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code.",
+                "",
+                " # <weight>",
+                " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`",
+                " - 1 storage write (codec `O(C)`).",
+                " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).",
+                " - 1 event.",
+                " The weight of this function is dependent on the runtime, but generally this is very expensive.",
+                " We will treat this as a full block.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_code_without_checks",
+              "args": [
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new runtime code without doing any checks of the given `code`.",
+                "",
+                " # <weight>",
+                " - `O(C)` where `C` length of `code`",
+                " - 1 storage write (codec `O(C)`).",
+                " - 1 event.",
+                " The weight of this function is dependent on the runtime. We will treat this as a full block.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_changes_trie_config",
+              "args": [
+                {
+                  "name": "changes_trie_config",
+                  "type": "Option<ChangesTrieConfiguration>"
+                }
+              ],
+              "docs": [
+                " Set the new changes trie configuration.",
+                "",
+                " # <weight>",
+                " - `O(1)`",
+                " - 1 storage write or delete (codec `O(1)`).",
+                " - 1 call to `deposit_log`: Uses `append` API, so O(1)",
+                " - Base Weight: 7.218 µs",
+                " - DB Weight:",
+                "     - Writes: Changes Trie, System Digest",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_storage",
+              "args": [
+                {
+                  "name": "items",
+                  "type": "Vec<KeyValue>"
+                }
+              ],
+              "docs": [
+                " Set some items of storage.",
+                "",
+                " # <weight>",
+                " - `O(I)` where `I` length of `items`",
+                " - `I` storage writes (`O(1)`).",
+                " - Base Weight: 0.568 * i µs",
+                " - Writes: Number of items",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_storage",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Vec<Key>"
+                }
+              ],
+              "docs": [
+                " Kill some items from storage.",
+                "",
+                " # <weight>",
+                " - `O(IK)` where `I` length of `keys` and `K` length of one key",
+                " - `I` storage deletions.",
+                " - Base Weight: .378 * i µs",
+                " - Writes: Number of items",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_prefix",
+              "args": [
+                {
+                  "name": "prefix",
+                  "type": "Key"
+                },
+                {
+                  "name": "_subkeys",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Kill all storage items with a key that starts with the given prefix.",
+                "",
+                " **NOTE:** We rely on the Root origin to provide us the number of subkeys under",
+                " the prefix we are removing to accurately calculate the weight of this function.",
+                "",
+                " # <weight>",
+                " - `O(P)` where `P` amount of keys with prefix `prefix`",
+                " - `P` storage deletions.",
+                " - Base Weight: 0.834 * P µs",
+                " - Writes: Number of subkeys + 1",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remark_with_event",
+              "args": [
+                {
+                  "name": "remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Make some on-chain remark and emit event.",
+                "",
+                " # <weight>",
+                " - `O(b)` where b is the length of the remark.",
+                " - 1 event.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ExtrinsicSuccess",
+              "args": [
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic completed successfully. \\[info\\]"
+              ]
+            },
+            {
+              "name": "ExtrinsicFailed",
+              "args": [
+                "DispatchError",
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic failed. \\[error, info\\]"
+              ]
+            },
+            {
+              "name": "CodeUpdated",
+              "args": [],
+              "docs": [
+                " `:code` was updated."
+              ]
+            },
+            {
+              "name": "NewAccount",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A new \\[account\\] was created."
+              ]
+            },
+            {
+              "name": "KilledAccount",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] was reaped."
+              ]
+            },
+            {
+              "name": "Remarked",
+              "args": [
+                "AccountId",
+                "Hash"
+              ],
+              "docs": [
+                " On on-chain remark happened. \\[origin, remark_hash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "BlockWeights",
+              "type": "BlockWeights",
+              "value": "0x00f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a740000004059730700000000000000",
+              "docs": [
+                " Block & extrinsics weights: base values and limits."
+              ]
+            },
+            {
+              "name": "BlockLength",
+              "type": "BlockLength",
+              "value": "0x00003c000000500000005000",
+              "docs": [
+                " The maximum length of a block (in bytes)."
+              ]
+            },
+            {
+              "name": "BlockHashCount",
+              "type": "BlockNumber",
+              "value": "0x60090000",
+              "docs": [
+                " Maximum number of block number to block hash mappings to keep (oldest pruned first)."
+              ]
+            },
+            {
+              "name": "DbWeight",
+              "type": "RuntimeDbWeight",
+              "value": "0x40787d010000000000e1f50500000000",
+              "docs": [
+                " The weight of runtime database operations the runtime can invoke."
+              ]
+            },
+            {
+              "name": "Version",
+              "type": "RuntimeVersion",
+              "value": "0x106e6f6465387375627374726174652d6e6f64650a0000000b0100000000000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b0100000002000000",
+              "docs": [
+                " Get the chain's current version."
+              ]
+            },
+            {
+              "name": "SS58Prefix",
+              "type": "u16",
+              "value": "0x2a00",
+              "docs": [
+                " The designated SS85 prefix of this chain.",
+                "",
+                " This replaces the \"ss58Format\" property declared in the chain spec. Reason is",
+                " that the runtime should know about the prefix in order to make use of it as",
+                " an identifier of the chain."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidSpecName",
+              "docs": [
+                " The name of specification does not match between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "SpecVersionNeedsToIncrease",
+              "docs": [
+                " The specification version is not allowed to decrease between the current runtime",
+                " and the new runtime."
+              ]
+            },
+            {
+              "name": "FailedToExtractRuntimeVersion",
+              "docs": [
+                " Failed to extract the runtime version from the new runtime.",
+                "",
+                " Either calling `Core_version` or decoding `RuntimeVersion` failed."
+              ]
+            },
+            {
+              "name": "NonDefaultComposite",
+              "docs": [
+                " Suicide called when the account has non-default composite data."
+              ]
+            },
+            {
+              "name": "NonZeroRefCount",
+              "docs": [
+                " There is a non-zero reference count preventing the account from being purged."
+              ]
+            }
+          ],
+          "index": 0
+        },
+        {
+          "name": "Utility",
+          "storage": null,
+          "calls": [
+            {
+              "name": "batch",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Send a batch of dispatch calls.",
+                "",
+                " May be called from any origin.",
+                "",
+                " - `calls`: The calls to be dispatched from the same origin.",
+                "",
+                " If origin is root then call are dispatch without checking origin filter. (This includes",
+                " bypassing `frame_system::Config::BaseCallFilter`).",
+                "",
+                " # <weight>",
+                " - Complexity: O(C) where C is the number of calls to be batched.",
+                " # </weight>",
+                "",
+                " This will return `Ok` in all circumstances. To determine the success of the batch, an",
+                " event is deposited. If a call failed and the batch was interrupted, then the",
+                " `BatchInterrupted` event is deposited, along with the number of successful calls made",
+                " and the error of the failed call. If all were successful, then the `BatchCompleted`",
+                " event is deposited."
+              ]
+            },
+            {
+              "name": "as_derivative",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "u16"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through an indexed pseudonym of the sender.",
+                "",
+                " Filter from origin are passed along. The call will be dispatched with an origin which",
+                " use the same filter as the origin of this call.",
+                "",
+                " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.",
+                " because you expect `proxy` to have been used prior in the call stack and you do not want",
+                " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`",
+                " in the Multisig pallet instead.",
+                "",
+                " NOTE: Prior to version *12, this was called `as_limited_sub`.",
+                "",
+                " The dispatch origin for this call must be _Signed_."
+              ]
+            },
+            {
+              "name": "batch_all",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Send a batch of dispatch calls and atomically execute them.",
+                " The whole transaction will rollback and fail if any of the calls failed.",
+                "",
+                " May be called from any origin.",
+                "",
+                " - `calls`: The calls to be dispatched from the same origin.",
+                "",
+                " If origin is root then call are dispatch without checking origin filter. (This includes",
+                " bypassing `frame_system::Config::BaseCallFilter`).",
+                "",
+                " # <weight>",
+                " - Complexity: O(C) where C is the number of calls to be batched.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BatchInterrupted",
+              "args": [
+                "u32",
+                "DispatchError"
+              ],
+              "docs": [
+                " Batch of dispatches did not complete fully. Index of first failing dispatch given, as",
+                " well as the error. \\[index, error\\]"
+              ]
+            },
+            {
+              "name": "BatchCompleted",
+              "args": [],
+              "docs": [
+                " Batch of dispatches completed fully with no error."
+              ]
+            },
+            {
+              "name": "ItemCompleted",
+              "args": [],
+              "docs": [
+                " A single item within a Batch of dispatches has completed with no error."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [],
+          "index": 1
+        },
+        {
+          "name": "Babe",
+          "storage": {
+            "prefix": "Babe",
+            "items": [
+              {
+                "name": "EpochIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current epoch index."
+                ]
+              },
+              {
+                "name": "Authorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current epoch authorities."
+                ]
+              },
+              {
+                "name": "GenesisSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Slot"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The slot at which the first epoch actually started. This is 0",
+                  " until the first block of the chain."
+                ]
+              },
+              {
+                "name": "CurrentSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Slot"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current slot number."
+                ]
+              },
+              {
+                "name": "Randomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Randomness"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The epoch randomness for the *current* epoch.",
+                  "",
+                  " # Security",
+                  "",
+                  " This MUST NOT be used for gambling, as it can be influenced by a",
+                  " malicious validator in the short term. It MAY be used in many",
+                  " cryptographic protocols, however, so long as one remembers that this",
+                  " (like everything else on-chain) it is public. For example, it can be",
+                  " used where a number is needed that cannot have been chosen by an",
+                  " adversary, for purposes such as public-coin zero-knowledge proofs."
+                ]
+              },
+              {
+                "name": "PendingEpochConfigChange",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "NextConfigDescriptor"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending epoch configuration change that will be applied when the next epoch is enacted."
+                ]
+              },
+              {
+                "name": "NextRandomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Randomness"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Next epoch randomness."
+                ]
+              },
+              {
+                "name": "NextAuthorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Next epoch authorities."
+                ]
+              },
+              {
+                "name": "SegmentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Randomness under construction.",
+                  "",
+                  " We make a tradeoff between storage accesses and list length.",
+                  " We store the under-construction randomness in segments of up to",
+                  " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.",
+                  "",
+                  " Once a segment reaches this length, we begin the next one.",
+                  " We reset all segments and return to `0` at the beginning of every",
+                  " epoch."
+                ]
+              },
+              {
+                "name": "UnderConstruction",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "Vec<Randomness>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."
+                ]
+              },
+              {
+                "name": "Initialized",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "MaybeRandomness"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Temporary value (cleared at block finalization) which is `Some`",
+                  " if per-block initialization has already been called for current block."
+                ]
+              },
+              {
+                "name": "AuthorVrfRandomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "MaybeRandomness"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " This field should always be populated during block processing unless",
+                  " secondary plain slots are enabled (which don't contain a VRF output).",
+                  "",
+                  " It is set in `on_initialize`, before it will contain the value from the last block."
+                ]
+              },
+              {
+                "name": "EpochStart",
+                "modifier": "Default",
+                "type": {
+                  "plain": "(BlockNumber,BlockNumber)"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The block numbers when the last and current epoch have started, respectively `N-1` and",
+                  " `N`.",
+                  " NOTE: We track this is in order to annotate the block number when a given pool of",
+                  " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in",
+                  " slots, which may be skipped, the block numbers may not line up with the slot numbers."
+                ]
+              },
+              {
+                "name": "Lateness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " How late the current block is compared to its parent.",
+                  "",
+                  " This entry is populated as part of block execution and is cleaned up",
+                  " on block finalization. Querying this storage entry outside of block",
+                  " execution context should always yield zero."
+                ]
+              },
+              {
+                "name": "EpochConfig",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BabeEpochConfiguration"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The configuration for the current epoch. Should never be `None` as it is initialized in genesis."
+                ]
+              },
+              {
+                "name": "NextEpochConfig",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BabeEpochConfiguration"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The configuration for the next epoch, `None` if the config will not change",
+                  " (you can fallback to `EpochConfig` instead in that case)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_equivocation",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "BabeEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report authority equivocation/misbehavior. This method will verify",
+                " the equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence will",
+                " be reported."
+              ]
+            },
+            {
+              "name": "report_equivocation_unsigned",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "BabeEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report authority equivocation/misbehavior. This method will verify",
+                " the equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence will",
+                " be reported.",
+                " This extrinsic must be called unsigned and it is expected that only",
+                " block authors will call it (validated in `ValidateUnsigned`), as such",
+                " if the block author is defined it will be defined as the equivocation",
+                " reporter."
+              ]
+            },
+            {
+              "name": "plan_config_change",
+              "args": [
+                {
+                  "name": "config",
+                  "type": "NextConfigDescriptor"
+                }
+              ],
+              "docs": [
+                " Plan an epoch config change. The epoch config change is recorded and will be enacted on",
+                " the next call to `enact_epoch_change`. The config will be activated one epoch after.",
+                " Multiple calls to this method will replace any existing planned config change that had",
+                " not been enacted yet."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "EpochDuration",
+              "type": "u64",
+              "value": "0xc800000000000000",
+              "docs": [
+                " The amount of time, in slots, that each epoch should last.",
+                " NOTE: Currently it is not possible to change the epoch duration after",
+                " the chain has started. Attempting to do so will brick block production."
+              ]
+            },
+            {
+              "name": "ExpectedBlockTime",
+              "type": "Moment",
+              "value": "0xb80b000000000000",
+              "docs": [
+                " The expected average block time at which BABE should be creating",
+                " blocks. Since BABE is probabilistic it is not trivial to figure out",
+                " what the expected average block time should be based on the slot",
+                " duration and the security parameter `c` (where `1 - c` represents",
+                " the probability of a slot being empty)."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidEquivocationProof",
+              "docs": [
+                " An equivocation proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "InvalidKeyOwnershipProof",
+              "docs": [
+                " A key ownership proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "DuplicateOffenceReport",
+              "docs": [
+                " A given equivocation report is valid but already previously reported."
+              ]
+            }
+          ],
+          "index": 2
+        },
+        {
+          "name": "Timestamp",
+          "storage": {
+            "prefix": "Timestamp",
+            "items": [
+              {
+                "name": "Now",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Moment"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current time for the current block."
+                ]
+              },
+              {
+                "name": "DidUpdate",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Did the timestamp get updated in this block?"
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set",
+              "args": [
+                {
+                  "name": "now",
+                  "type": "Compact<Moment>"
+                }
+              ],
+              "docs": [
+                " Set the current time.",
+                "",
+                " This call should be invoked exactly once per block. It will panic at the finalization",
+                " phase, if this call hasn't been invoked by that time.",
+                "",
+                " The timestamp should be greater than the previous one by the amount specified by",
+                " `MinimumPeriod`.",
+                "",
+                " The dispatch origin for this call must be `Inherent`.",
+                "",
+                " # <weight>",
+                " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)",
+                " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)",
+                " - 1 event handler `on_timestamp_set`. Must be `O(1)`.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "MinimumPeriod",
+              "type": "Moment",
+              "value": "0xdc05000000000000",
+              "docs": [
+                " The minimum period between blocks. Beware that this is different to the *expected* period",
+                " that the block production apparatus provides. Your chosen consensus system will generally",
+                " work with this to determine a sensible block time. e.g. For Aura, it will be double this",
+                " period on default settings."
+              ]
+            }
+          ],
+          "errors": [],
+          "index": 3
+        },
+        {
+          "name": "Authorship",
+          "storage": {
+            "prefix": "Authorship",
+            "items": [
+              {
+                "name": "Uncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<UncleEntryItem>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Uncles"
+                ]
+              },
+              {
+                "name": "Author",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Author of current block."
+                ]
+              },
+              {
+                "name": "DidSetUncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Whether uncles were already set in this block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_uncles",
+              "args": [
+                {
+                  "name": "new_uncles",
+                  "type": "Vec<Header>"
+                }
+              ],
+              "docs": [
+                " Provide a set of uncles."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "UncleGenerations",
+              "type": "BlockNumber",
+              "value": "0x05000000",
+              "docs": [
+                " The number of blocks back we should accept uncles.",
+                " This means that we will deal with uncle-parents that are",
+                " `UncleGenerations + 1` before `now`."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidUncleParent",
+              "docs": [
+                " The uncle parent not in the chain."
+              ]
+            },
+            {
+              "name": "UnclesAlreadySet",
+              "docs": [
+                " Uncles already set in the block."
+              ]
+            },
+            {
+              "name": "TooManyUncles",
+              "docs": [
+                " Too many uncles."
+              ]
+            },
+            {
+              "name": "GenesisUncle",
+              "docs": [
+                " The uncle is genesis."
+              ]
+            },
+            {
+              "name": "TooHighUncle",
+              "docs": [
+                " The uncle is too high in chain."
+              ]
+            },
+            {
+              "name": "UncleAlreadyIncluded",
+              "docs": [
+                " The uncle is already included."
+              ]
+            },
+            {
+              "name": "OldUncle",
+              "docs": [
+                " The uncle isn't recent enough to be included."
+              ]
+            }
+          ],
+          "index": 4
+        },
+        {
+          "name": "Indices",
+          "storage": {
+            "prefix": "Indices",
+            "items": [
+              {
+                "name": "Accounts",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountIndex",
+                    "value": "(AccountId,BalanceOf,bool)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The lookup from index to account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "claim",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Assign an previously unassigned index.",
+                "",
+                " Payment: `Deposit` is reserved from the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `index`: the index to be claimed. This must not be in use.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Assign an index already owned by the sender to another account. The balance reservation",
+                " is effectively transferred to the new account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `index`: the index to be re-assigned. This must be owned by the sender.",
+                " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One transfer operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight:",
+                "    - Reads: Indices Accounts, System Account (recipient)",
+                "    - Writes: Indices Accounts, System Account (recipient)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "free",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Free up an index owned by the sender.",
+                "",
+                " Payment: Any previous deposit placed for the index is unreserved in the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must own the index.",
+                "",
+                " - `index`: the index to be freed. This must be owned by the sender.",
+                "",
+                " Emits `IndexFreed` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - One reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                },
+                {
+                  "name": "freeze",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Force an index to an account. This doesn't require a deposit. If the index is already",
+                " held, then any deposit is reimbursed to its current owner.",
+                "",
+                " The dispatch origin for this call must be _Root_.",
+                "",
+                " - `index`: the index to be (re-)assigned.",
+                " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.",
+                " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.",
+                "",
+                " Emits `IndexAssigned` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - Up to one reserve operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight:",
+                "    - Reads: Indices Accounts, System Account (original owner)",
+                "    - Writes: Indices Accounts, System Account (original owner)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "freeze",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "AccountIndex"
+                }
+              ],
+              "docs": [
+                " Freeze an index so it will always point to the sender account. This consumes the deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must have a",
+                " non-frozen account `index`.",
+                "",
+                " - `index`: the index to be frozen in place.",
+                "",
+                " Emits `IndexFrozen` if successful.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - One storage mutation (codec `O(1)`).",
+                " - Up to one slash operation.",
+                " - One event.",
+                " -------------------",
+                " - DB Weight: 1 Read/Write (Accounts)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "IndexAssigned",
+              "args": [
+                "AccountId",
+                "AccountIndex"
+              ],
+              "docs": [
+                " A account index was assigned. \\[index, who\\]"
+              ]
+            },
+            {
+              "name": "IndexFreed",
+              "args": [
+                "AccountIndex"
+              ],
+              "docs": [
+                " A account index has been freed up (unassigned). \\[index\\]"
+              ]
+            },
+            {
+              "name": "IndexFrozen",
+              "args": [
+                "AccountIndex",
+                "AccountId"
+              ],
+              "docs": [
+                " A account index has been frozen to its current account ID. \\[index, who\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "Deposit",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The deposit needed for reserving an index."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotAssigned",
+              "docs": [
+                " The index was not already assigned."
+              ]
+            },
+            {
+              "name": "NotOwner",
+              "docs": [
+                " The index is assigned to another account."
+              ]
+            },
+            {
+              "name": "InUse",
+              "docs": [
+                " The index was not available."
+              ]
+            },
+            {
+              "name": "NotTransfer",
+              "docs": [
+                " The source and destination accounts are identical."
+              ]
+            },
+            {
+              "name": "Permanent",
+              "docs": [
+                " The index is permanent and may not be freed/changed."
+              ]
+            }
+          ],
+          "index": 5
+        },
+        {
+          "name": "Balances",
+          "storage": {
+            "prefix": "Balances",
+            "items": [
+              {
+                "name": "TotalIssuance",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Balance"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total units issued in the system."
+                ]
+              },
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountData",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The balance of an account.",
+                  "",
+                  " NOTE: This is only used in the case that this pallet is used to store balances."
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "Vec<BalanceLock>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any liquidity locks on some account balances.",
+                  " NOTE: Should only be accessed when setting, changing and freeing a lock."
+                ]
+              },
+              {
+                "name": "Reserves",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "Vec<ReserveData>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Named reserves on some account balances."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " This is set to v2.0.0 for new networks."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Transfer some liquid free balance to another account.",
+                "",
+                " `transfer` will set the `FreeBalance` of the sender and receiver.",
+                " It will decrease the total issuance of the system by the `TransferFee`.",
+                " If the sender's account is below the existential deposit as a result",
+                " of the transfer, the account will be reaped.",
+                "",
+                " The dispatch origin for this call must be `Signed` by the transactor.",
+                "",
+                " # <weight>",
+                " - Dependent on arguments but not critical, given proper implementations for",
+                "   input config types. See related functions below.",
+                " - It contains a limited number of reads and writes internally and no complex computation.",
+                "",
+                " Related functions:",
+                "",
+                "   - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
+                "   - Transferring balances to accounts that did not exist before will cause",
+                "      `T::OnNewAccount::on_new_account` to be called.",
+                "   - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.",
+                "   - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
+                "     check that the transfer will not kill the origin account.",
+                " ---------------------------------",
+                " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)",
+                " - DB Weight: 1 Read and 1 Write to destination account",
+                " - Origin account is already in memory, so no DB operations for them.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_balance",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "new_free",
+                  "type": "Compact<Balance>"
+                },
+                {
+                  "name": "new_reserved",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Set the balances of a given account.",
+                "",
+                " This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
+                " also decrease the total issuance of the system (`TotalIssuance`).",
+                " If the new free or reserved balance is below the existential deposit,",
+                " it will reset the account nonce (`frame_system::AccountNonce`).",
+                "",
+                " The dispatch origin for this call is `root`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments.",
+                " - Contains a limited number of reads and writes.",
+                " ---------------------",
+                " - Base Weight:",
+                "     - Creating: 27.56 µs",
+                "     - Killing: 35.11 µs",
+                " - DB Weight: 1 Read, 1 Write to `who`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Exactly as `transfer`, except the origin must be root and the source account may be",
+                " specified.",
+                " # <weight>",
+                " - Same as transfer, but additional read and write because the source account is",
+                "   not assumed to be in the overlay.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "transfer_keep_alive",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Same as the [`transfer`] call, but with a check that the transfer will not kill the",
+                " origin account.",
+                "",
+                " 99% of the time you want [`transfer`] instead.",
+                "",
+                " [`transfer`]: struct.Pallet.html#method.transfer",
+                " # <weight>",
+                " - Cheaper than transfer because account cannot be killed.",
+                " - Base Weight: 51.4 µs",
+                " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)",
+                " #</weight>"
+              ]
+            },
+            {
+              "name": "transfer_all",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "keep_alive",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Transfer the entire transferable balance from the caller account.",
+                "",
+                " NOTE: This function only attempts to transfer _transferable_ balances. This means that",
+                " any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be",
+                " transferred by this function. To ensure that this function results in a killed account,",
+                " you might need to prepare the account by removing any reference counters, storage",
+                " deposits, etc...",
+                "",
+                " The dispatch origin of this call must be Signed.",
+                "",
+                " - `dest`: The recipient of the transfer.",
+                " - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all",
+                "   of the funds the account has, causing the sender account to be killed (false), or",
+                "   transfer everything except at least the existential deposit, which will guarantee to",
+                "   keep the sender account alive (true).",
+                "   # <weight>",
+                " - O(1). Just like transfer, but reading the user's transferable balance first.",
+                "   #</weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Endowed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account was created with some free balance. \\[account, free_balance\\]"
+              ]
+            },
+            {
+              "name": "DustLost",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account was removed whose balance was non-zero but below ExistentialDeposit,",
+                " resulting in an outright loss. \\[account, balance\\]"
+              ]
+            },
+            {
+              "name": "Transfer",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Transfer succeeded. \\[from, to, value\\]"
+              ]
+            },
+            {
+              "name": "BalanceSet",
+              "args": [
+                "AccountId",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " A balance was set by root. \\[who, free, reserved\\]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]"
+              ]
+            },
+            {
+              "name": "Reserved",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some balance was reserved (moved from free to reserved). \\[who, value\\]"
+              ]
+            },
+            {
+              "name": "Unreserved",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Some balance was unreserved (moved from reserved to free). \\[who, value\\]"
+              ]
+            },
+            {
+              "name": "ReserveRepatriated",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance",
+                "BalanceStatus"
+              ],
+              "docs": [
+                " Some balance was moved from the reserve of the first account to the second account.",
+                " Final argument indicates the destination balance type.",
+                " \\[from, to, balance, destination_status\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ExistentialDeposit",
+              "type": "Balance",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The minimum amount required to keep an account open."
+              ]
+            },
+            {
+              "name": "MaxLocks",
+              "type": "u32",
+              "value": "0x32000000",
+              "docs": [
+                " The maximum number of locks that should exist on an account.",
+                " Not strictly enforced, but used for weight estimation."
+              ]
+            },
+            {
+              "name": "MaxReserves",
+              "type": "u32",
+              "value": "0x32000000",
+              "docs": [
+                " The maximum number of named reserves that can exist on an account."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "VestingBalance",
+              "docs": [
+                " Vesting balance too high to send value"
+              ]
+            },
+            {
+              "name": "LiquidityRestrictions",
+              "docs": [
+                " Account liquidity restrictions prevent withdrawal"
+              ]
+            },
+            {
+              "name": "InsufficientBalance",
+              "docs": [
+                " Balance too low to send value"
+              ]
+            },
+            {
+              "name": "ExistentialDeposit",
+              "docs": [
+                " Value too low to create account due to existential deposit"
+              ]
+            },
+            {
+              "name": "KeepAlive",
+              "docs": [
+                " Transfer/payment would kill account"
+              ]
+            },
+            {
+              "name": "ExistingVestingSchedule",
+              "docs": [
+                " A vesting schedule already exists for this account"
+              ]
+            },
+            {
+              "name": "DeadAccount",
+              "docs": [
+                " Beneficiary account must pre-exist"
+              ]
+            },
+            {
+              "name": "TooManyReserves",
+              "docs": [
+                " Number of named reserves exceed MaxReserves"
+              ]
+            }
+          ],
+          "index": 6
+        },
+        {
+          "name": "TransactionPayment",
+          "storage": {
+            "prefix": "TransactionPayment",
+            "items": [
+              {
+                "name": "NextFeeMultiplier",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Multiplier"
+                },
+                "fallback": "0x000064a7b3b6e00d0000000000000000",
+                "docs": []
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": []
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [
+            {
+              "name": "TransactionByteFee",
+              "type": "BalanceOf",
+              "value": "0x00e40b54020000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the per-byte portion."
+              ]
+            },
+            {
+              "name": "WeightToFee",
+              "type": "Vec<WeightToFeeCoefficient>",
+              "value": "0x0401000000000000000000000000000000000000000001",
+              "docs": [
+                " The polynomial that is applied in order to derive fee from weight."
+              ]
+            }
+          ],
+          "errors": [],
+          "index": 7
+        },
+        {
+          "name": "ElectionProviderMultiPhase",
+          "storage": {
+            "prefix": "ElectionProviderMultiPhase",
+            "items": [
+              {
+                "name": "Round",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x01000000",
+                "docs": [
+                  " Internal counter for the number of rounds.",
+                  "",
+                  " This is useful for de-duplication of transactions submitted to the pool, and general",
+                  " diagnostics of the pallet.",
+                  "",
+                  " This is merely incremented once per every time that an upstream `elect` is called."
+                ]
+              },
+              {
+                "name": "CurrentPhase",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ElectionPhase"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current phase."
+                ]
+              },
+              {
+                "name": "QueuedSolution",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ReadySolution"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current best solution, signed or unsigned, queued to be returned upon `elect`."
+                ]
+              },
+              {
+                "name": "Snapshot",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "RoundSnapshot"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Snapshot data of the round.",
+                  "",
+                  " This is created at the beginning of the signed phase and cleared upon calling `elect`."
+                ]
+              },
+              {
+                "name": "DesiredTargets",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Desired number of targets to elect for this round.",
+                  "",
+                  " Only exists when [`Snapshot`] is present."
+                ]
+              },
+              {
+                "name": "SnapshotMetadata",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "SolutionOrSnapshotSize"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The metadata of the [`RoundSnapshot`]",
+                  "",
+                  " Only exists when [`Snapshot`] is present."
+                ]
+              },
+              {
+                "name": "SignedSubmissionNextIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next index to be assigned to an incoming signed submission.",
+                  "",
+                  " Every accepted submission is assigned a unique index; that index is bound to that particular",
+                  " submission for the duration of the election. On election finalization, the next index is",
+                  " reset to 0.",
+                  "",
+                  " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its",
+                  " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,",
+                  " because iteration is slow. Instead, we store the value here."
+                ]
+              },
+              {
+                "name": "SignedSubmissionIndices",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SubmissionIndicesOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A sorted, bounded set of `(score, index)`, where each `index` points to a value in",
+                  " `SignedSubmissions`.",
+                  "",
+                  " We never need to process more than a single signed submission at a time. Signed submissions",
+                  " can be quite large, so we're willing to pay the cost of multiple database accesses to access",
+                  " them one at a time instead of reading and decoding all of them at once."
+                ]
+              },
+              {
+                "name": "SignedSubmissionsMap",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "SignedSubmissionOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000",
+                "docs": [
+                  " Unchecked, signed solutions.",
+                  "",
+                  " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while",
+                  " allowing us to keep only a single one in memory at a time.",
+                  "",
+                  " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or",
+                  " affect; we shouldn't need a cryptographically secure hasher."
+                ]
+              },
+              {
+                "name": "MinimumUntrustedScore",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ElectionScore"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The minimum score that each 'untrusted' solution must attain in order to be considered",
+                  " feasible.",
+                  "",
+                  " Can be set via `set_minimum_untrusted_score`."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "submit_unsigned",
+              "args": [
+                {
+                  "name": "solution",
+                  "type": "RawSolution"
+                },
+                {
+                  "name": "witness",
+                  "type": "SolutionOrSnapshotSize"
+                }
+              ],
+              "docs": [
+                " Submit a solution for the unsigned phase.",
+                "",
+                " The dispatch origin fo this call must be __none__.",
+                "",
+                " This submission is checked on the fly. Moreover, this unsigned solution is only",
+                " validated when submitted to the pool from the **local** node. Effectively, this means",
+                " that only active validators can submit this transaction when authoring a block (similar",
+                " to an inherent).",
+                "",
+                " To prevent any incorrect solution (and thus wasted time/weight), this transaction will",
+                " panic if the solution submitted by the validator is invalid in any way, effectively",
+                " putting their authoring reward at risk.",
+                "",
+                " No deposit or reward is associated with this submission."
+              ]
+            },
+            {
+              "name": "set_minimum_untrusted_score",
+              "args": [
+                {
+                  "name": "maybe_next_score",
+                  "type": "Option<ElectionScore>"
+                }
+              ],
+              "docs": [
+                " Set a new value for `MinimumUntrustedScore`.",
+                "",
+                " Dispatch origin must be aligned with `T::ForceOrigin`.",
+                "",
+                " This check can be turned off by setting the value to `None`."
+              ]
+            },
+            {
+              "name": "set_emergency_election_result",
+              "args": [
+                {
+                  "name": "supports",
+                  "type": "Supports"
+                }
+              ],
+              "docs": [
+                " Set a solution in the queue, to be handed out to the client of this pallet in the next",
+                " call to `ElectionProvider::elect`.",
+                "",
+                " This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.",
+                "",
+                " The solution is not checked for any feasibility and is assumed to be trustworthy, as any",
+                " feasibility check itself can in principle cause the election process to fail (due to",
+                " memory/weight constrains)."
+              ]
+            },
+            {
+              "name": "submit",
+              "args": [
+                {
+                  "name": "solution",
+                  "type": "RawSolution"
+                },
+                {
+                  "name": "num_signed_submissions",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Submit a solution for the signed phase.",
+                "",
+                " The dispatch origin fo this call must be __signed__.",
+                "",
+                " The solution is potentially queued, based on the claimed score and processed at the end",
+                " of the signed phase.",
+                "",
+                " A deposit is reserved and recorded for the solution. Based on the outcome, the solution",
+                " might be rewarded, slashed, or get all or a part of the deposit back.",
+                "",
+                " # <weight>",
+                " Queue size must be provided as witness data.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "SolutionStored",
+              "args": [
+                "ElectionCompute",
+                "bool"
+              ],
+              "docs": [
+                " A solution was stored with the given compute.",
+                "",
+                " If the solution is signed, this means that it hasn't yet been processed. If the",
+                " solution is unsigned, this means that it has also been processed.",
+                "",
+                " The `bool` is `true` when a previous solution was ejected to make room for this one."
+              ]
+            },
+            {
+              "name": "ElectionFinalized",
+              "args": [
+                "Option<ElectionCompute>"
+              ],
+              "docs": [
+                " The election has been finalized, with `Some` of the given computation, or else if the",
+                " election failed, `None`."
+              ]
+            },
+            {
+              "name": "Rewarded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has been rewarded for their signed submission being finalized."
+              ]
+            },
+            {
+              "name": "Slashed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has been slashed for submitting an invalid signed submission."
+              ]
+            },
+            {
+              "name": "SignedPhaseStarted",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " The signed phase of the given round has started."
+              ]
+            },
+            {
+              "name": "UnsignedPhaseStarted",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " The unsigned phase of the given round has started."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "UnsignedPhase",
+              "type": "BlockNumber",
+              "value": "0x32000000",
+              "docs": [
+                " Duration of the unsigned phase."
+              ]
+            },
+            {
+              "name": "SignedPhase",
+              "type": "BlockNumber",
+              "value": "0x32000000",
+              "docs": [
+                " Duration of the signed phase."
+              ]
+            },
+            {
+              "name": "SolutionImprovementThreshold",
+              "type": "Perbill",
+              "value": "0xa0860100",
+              "docs": [
+                " The minimum amount of improvement to the solution score that defines a solution as",
+                " \"better\" (in any phase)."
+              ]
+            },
+            {
+              "name": "OffchainRepeat",
+              "type": "BlockNumber",
+              "value": "0x05000000",
+              "docs": [
+                " The repeat threshold of the offchain worker.",
+                "",
+                " For example, if it is 5, that means that at least 5 blocks will elapse between attempts",
+                " to submit the worker's solution."
+              ]
+            },
+            {
+              "name": "MinerTxPriority",
+              "type": "TransactionPriority",
+              "value": "0xfeffffffffffff7f",
+              "docs": [
+                " The priority of the unsigned transaction submitted in the unsigned-phase"
+              ]
+            },
+            {
+              "name": "MinerMaxIterations",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " Maximum number of iteration of balancing that will be executed in the embedded miner of",
+                " the pallet."
+              ]
+            },
+            {
+              "name": "MinerMaxWeight",
+              "type": "Weight",
+              "value": "0xc07c907c2d010000",
+              "docs": [
+                " Maximum weight that the miner should consume.",
+                "",
+                " The miner will ensure that the total weight of the unsigned solution will not exceed",
+                " this value, based on [`WeightInfo::submit_unsigned`]."
+              ]
+            },
+            {
+              "name": "SignedMaxSubmissions",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " Maximum number of signed submissions that can be queued.",
+                "",
+                " It is best to avoid adjusting this during an election, as it impacts downstream data",
+                " structures. In particular, `SignedSubmissionIndices<T>` is bounded on this value. If you",
+                " update this value during an election, you _must_ ensure that",
+                " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,",
+                " attempts to submit new solutions may cause a runtime panic."
+              ]
+            },
+            {
+              "name": "SignedMaxWeight",
+              "type": "Weight",
+              "value": "0xc07c907c2d010000",
+              "docs": [
+                " Maximum weight of a signed solution.",
+                "",
+                " This should probably be similar to [`Config::MinerMaxWeight`]."
+              ]
+            },
+            {
+              "name": "SignedRewardBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Base reward for a signed solution"
+              ]
+            },
+            {
+              "name": "SignedDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Base deposit for a signed solution."
+              ]
+            },
+            {
+              "name": "SignedDepositByte",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " Per-byte deposit for a signed solution."
+              ]
+            },
+            {
+              "name": "SignedDepositWeight",
+              "type": "BalanceOf",
+              "value": "0x00000000000000000000000000000000",
+              "docs": [
+                " Per-weight deposit for a signed solution."
+              ]
+            },
+            {
+              "name": "MinerMaxLength",
+              "type": "u32",
+              "value": "0x00003600",
+              "docs": [
+                " Maximum length (bytes) that the mined solution should consume.",
+                "",
+                " The miner will ensure that the total length of the unsigned solution will not exceed",
+                " this value."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "PreDispatchEarlySubmission",
+              "docs": [
+                " Submission was too early."
+              ]
+            },
+            {
+              "name": "PreDispatchWrongWinnerCount",
+              "docs": [
+                " Wrong number of winners presented."
+              ]
+            },
+            {
+              "name": "PreDispatchWeakSubmission",
+              "docs": [
+                " Submission was too weak, score-wise."
+              ]
+            },
+            {
+              "name": "SignedQueueFull",
+              "docs": [
+                " The queue was full, and the solution was not better than any of the existing ones."
+              ]
+            },
+            {
+              "name": "SignedCannotPayDeposit",
+              "docs": [
+                " The origin failed to pay the deposit."
+              ]
+            },
+            {
+              "name": "SignedInvalidWitness",
+              "docs": [
+                " Witness data to dispatchable is invalid."
+              ]
+            },
+            {
+              "name": "SignedTooMuchWeight",
+              "docs": [
+                " The signed submission consumes too much weight"
+              ]
+            },
+            {
+              "name": "OcwCallWrongEra",
+              "docs": [
+                " OCW submitted solution for wrong round"
+              ]
+            },
+            {
+              "name": "MissingSnapshotMetadata",
+              "docs": [
+                " Snapshot metadata should exist but didn't."
+              ]
+            },
+            {
+              "name": "InvalidSubmissionIndex",
+              "docs": [
+                " `Self::insert_submission` returned an invalid index."
+              ]
+            },
+            {
+              "name": "CallNotAllowed",
+              "docs": [
+                " The call is not allowed at this point."
+              ]
+            }
+          ],
+          "index": 8
+        },
+        {
+          "name": "Staking",
+          "storage": {
+            "prefix": "Staking",
+            "items": [
+              {
+                "name": "HistoryDepth",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x54000000",
+                "docs": [
+                  " Number of eras to keep in history.",
+                  "",
+                  " Information is kept for eras in `[current_era - history_depth; current_era]`.",
+                  "",
+                  " Must be more than the number of eras delayed by session otherwise. I.e. active era must",
+                  " always be in history. I.e. `active_era > current_era - history_depth` must be",
+                  " guaranteed."
+                ]
+              },
+              {
+                "name": "ValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ideal number of staking participants."
+                ]
+              },
+              {
+                "name": "MinimumValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Minimum number of staking participants before emergency conditions are imposed."
+                ]
+              },
+              {
+                "name": "Invulnerables",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're",
+                  " easy to initialize and the performance hit is minimal (we expect no more than four",
+                  " invulnerables) and restricted to testnets."
+                ]
+              },
+              {
+                "name": "Bonded",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all locked \"stash\" accounts to the controller account."
+                ]
+              },
+              {
+                "name": "MinNominatorBond",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The minimum active bond to become and maintain the role of a nominator."
+                ]
+              },
+              {
+                "name": "MinValidatorBond",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The minimum active bond to become and maintain the role of a validator."
+                ]
+              },
+              {
+                "name": "Ledger",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "StakingLedger",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
+                ]
+              },
+              {
+                "name": "Payee",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "RewardDestination",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Where the reward payment should be made. Keyed by stash."
+                ]
+              },
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000",
+                "docs": [
+                  " The map from (wannabe) validator stash key to the preferences of that validator.",
+                  "",
+                  " When updating this storage item, you must also update the `CounterForValidators`."
+                ]
+              },
+              {
+                "name": "CounterForValidators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " A tracker to keep count of the number of items in the `Validators` map."
+                ]
+              },
+              {
+                "name": "MaxValidatorsCount",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The maximum validator count before we stop allowing new validators to join.",
+                  "",
+                  " When this value is not set, no limits are enforced."
+                ]
+              },
+              {
+                "name": "Nominators",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Nominations",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from nominator stash key to the set of stash keys of all validators to nominate.",
+                  "",
+                  " When updating this storage item, you must also update the `CounterForNominators`."
+                ]
+              },
+              {
+                "name": "CounterForNominators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " A tracker to keep count of the number of items in the `Nominators` map."
+                ]
+              },
+              {
+                "name": "MaxNominatorsCount",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The maximum nominator count before we stop allowing new validators to join.",
+                  "",
+                  " When this value is not set, no limits are enforced."
+                ]
+              },
+              {
+                "name": "CurrentEra",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current era index.",
+                  "",
+                  " This is the latest planned era, depending on how the Session pallet queues the validator",
+                  " set, it might be active or not."
+                ]
+              },
+              {
+                "name": "ActiveEra",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "ActiveEraInfo"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The active era information, it holds index and start.",
+                  "",
+                  " The active era is the era being currently rewarded. Validator set of this era must be",
+                  " equal to [`SessionInterface::validators`]."
+                ]
+              },
+              {
+                "name": "ErasStartSessionIndex",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The session index at which the era start for the last `HISTORY_DEPTH` eras.",
+                  "",
+                  " Note: This tracks the starting session (i.e. session index when era start being active)",
+                  " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`."
+                ]
+              },
+              {
+                "name": "ErasStakers",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "Exposure",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Exposure of validator at era.",
+                  "",
+                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras.",
+                  " If stakers hasn't been set or has been removed then empty exposure is returned."
+                ]
+              },
+              {
+                "name": "ErasStakersClipped",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "Exposure",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Clipped Exposure of validator at era.",
+                  "",
+                  " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the",
+                  " `T::MaxNominatorRewardedPerValidator` biggest stakers.",
+                  " (Note: the field `total` and `own` of the exposure remains unchanged).",
+                  " This is used to limit the i/o cost for the nominator payout.",
+                  "",
+                  " This is keyed fist by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras.",
+                  " If stakers hasn't been set or has been removed then empty exposure is returned."
+                ]
+              },
+              {
+                "name": "ErasValidatorPrefs",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x0000",
+                "docs": [
+                  " Similar to `ErasStakers`, this holds the preferences of validators.",
+                  "",
+                  " This is keyed first by the era index to allow bulk deletion and then the stash account.",
+                  "",
+                  " Is it removed after `HISTORY_DEPTH` eras."
+                ]
+              },
+              {
+                "name": "ErasValidatorReward",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The total validator era payout for the last `HISTORY_DEPTH` eras.",
+                  "",
+                  " Eras that haven't finished yet or has been removed doesn't have reward."
+                ]
+              },
+              {
+                "name": "ErasRewardPoints",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "EraRewardPoints",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000",
+                "docs": [
+                  " Rewards for the last `HISTORY_DEPTH` eras.",
+                  " If reward hasn't been set or has been removed then 0 reward is returned."
+                ]
+              },
+              {
+                "name": "ErasTotalStake",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total amount staked for the last `HISTORY_DEPTH` eras.",
+                  " If total hasn't been set or has been removed then 0 stake is returned."
+                ]
+              },
+              {
+                "name": "ForceEra",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Forcing"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mode of era forcing."
+                ]
+              },
+              {
+                "name": "SlashRewardFraction",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Perbill"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The percentage of the slash that is distributed to reporters.",
+                  "",
+                  " The rest of the slashed value is handled by the `Slash`."
+                ]
+              },
+              {
+                "name": "CanceledSlashPayout",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of currency given to reporters of a slash event which was",
+                  " canceled by extraordinary circumstances (e.g. governance)."
+                ]
+              },
+              {
+                "name": "UnappliedSlashes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "EraIndex",
+                    "value": "Vec<UnappliedSlash>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All unapplied slashes that are queued for later."
+                ]
+              },
+              {
+                "name": "BondedEras",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(EraIndex,SessionIndex)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from still-bonded eras to the first session index of that era.",
+                  "",
+                  " Must contains information for eras for the range:",
+                  " `[active_era - bounding_duration; active_era]`"
+                ]
+              },
+              {
+                "name": "ValidatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "(Perbill,BalanceOf)",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on validators, mapped by era to the highest slash proportion",
+                  " and slash value of the era."
+                ]
+              },
+              {
+                "name": "NominatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "BalanceOf",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on nominators, mapped by era to the highest slash value of the era."
+                ]
+              },
+              {
+                "name": "SlashingSpans",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "SlashingSpans",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Slashing spans for stash accounts."
+                ]
+              },
+              {
+                "name": "SpanSlash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "(AccountId,SpanIndex)",
+                    "value": "SpanRecord",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Records information about the maximum slash of a stash within a slashing span,",
+                  " as well as how much reward has been paid out."
+                ]
+              },
+              {
+                "name": "EarliestUnappliedSlash",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The earliest era for which we have a pending, unapplied slash."
+                ]
+              },
+              {
+                "name": "CurrentPlannedSession",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The last planned session scheduled by the session pallet.",
+                  "",
+                  " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x06",
+                "docs": [
+                  " True if network has been upgraded to this version.",
+                  " Storage version of the pallet.",
+                  "",
+                  " This is set to v7.0.0 for new networks."
+                ]
+              },
+              {
+                "name": "ChillThreshold",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Percent"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The threshold for when users can start calling `chill_other` for other validators / nominators.",
+                  " The threshold is compared to the actual number of validators / nominators (`CountFor*`) in",
+                  " the system compared to the configured max (`Max*Count`)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bond",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " Take the origin account as a stash and lock up `value` of its balance. `controller` will",
+                " be the account that controls it.",
+                "",
+                " `value` must be more than the `minimum_balance` specified by `T::Currency`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash account.",
+                "",
+                " Emits `Bonded`.",
+                " # <weight>",
+                " - Independent of the arguments. Moderate complexity.",
+                " - O(1).",
+                " - Three extra DB entries.",
+                "",
+                " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned",
+                " unless the `origin` falls below _existential deposit_ and gets removed as dust.",
+                " ------------------",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "bond_extra",
+              "args": [
+                {
+                  "name": "max_additional",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Add some extra amount that have appeared in the stash `free_balance` into the balance up",
+                " for staking.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " Use this if there are additional funds in your stash account that you wish to bond.",
+                " Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose any limitation",
+                " on the amount that can be added.",
+                "",
+                " Emits `Bonded`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Schedule a portion of the stash to be unlocked ready for transfer out after the bond",
+                " period ends. If this leaves an amount actively bonded less than",
+                " T::Currency::minimum_balance(), then it is increased to the full amount.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " Once the unlock period is done, you can call `withdraw_unbonded` to actually move",
+                " the funds out of management ready for transfer.",
+                "",
+                " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)",
+                " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need",
+                " to be called first to remove some of the chunks (if possible).",
+                "",
+                " If a user encounters the `InsufficientBond` error when calling this extrinsic,",
+                " they should call `chill` first in order to free up their bonded funds.",
+                "",
+                " Emits `Unbonded`.",
+                "",
+                " See also [`Call::withdraw_unbonded`]."
+              ]
+            },
+            {
+              "name": "withdraw_unbonded",
+              "args": [
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Remove any unlocked chunks from the `unlocking` queue from our management.",
+                "",
+                " This essentially frees up that balance to be used by the stash account to do",
+                " whatever it wants.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller.",
+                "",
+                " Emits `Withdrawn`.",
+                "",
+                " See also [`Call::unbond`].",
+                "",
+                " # <weight>",
+                " Complexity O(S) where S is the number of slashing spans to remove",
+                " NOTE: Weight annotation is the kill scenario, we refund otherwise.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "validate",
+              "args": [
+                {
+                  "name": "prefs",
+                  "type": "ValidatorPrefs"
+                }
+              ],
+              "docs": [
+                " Declare the desire to validate for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash."
+              ]
+            },
+            {
+              "name": "nominate",
+              "args": [
+                {
+                  "name": "targets",
+                  "type": "Vec<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Declare the desire to nominate `targets` for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - The transaction's complexity is proportional to the size of `targets` (N)",
+                " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).",
+                " - Both the reads and writes follow a similar pattern.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "chill",
+              "args": [],
+              "docs": [
+                " Declare no desire to either validate or nominate.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains one read.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_payee",
+              "args": [
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " (Re-)set the payment target for a controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " ---------",
+                " - Weight: O(1)",
+                " - DB Weight:",
+                "     - Read: Ledger",
+                "     - Write: Payee",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_controller",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " (Re-)set the controller of a stash.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " ----------",
+                " Weight: O(1)",
+                " DB Weight:",
+                " - Read: Bonded, Ledger New Controller, Ledger Old Controller",
+                " - Write: Bonded, Ledger New Controller, Ledger Old Controller",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_validator_count",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Sets the ideal number of validators.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Weight: O(1)",
+                " Write: Validator Count",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "increase_validator_count",
+              "args": [
+                {
+                  "name": "additional",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Increments the ideal number of validators.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Same as [`Self::set_validator_count`].",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "scale_validator_count",
+              "args": [
+                {
+                  "name": "factor",
+                  "type": "Percent"
+                }
+              ],
+              "docs": [
+                " Scale up the ideal number of validators by a factor.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " Same as [`Self::set_validator_count`].",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_no_eras",
+              "args": [],
+              "docs": [
+                " Force there to be no new eras indefinitely.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # Warning",
+                "",
+                " The election process starts multiple blocks before the end of the era.",
+                " Thus the election process may be ongoing when this is called. In this case the",
+                " election will continue until the next era is triggered.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " - Weight: O(1)",
+                " - Write: ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of the next session. After this, it will be",
+                " reset to normal (non-forced) behaviour.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # Warning",
+                "",
+                " The election process starts multiple blocks before the end of the era.",
+                " If this is called just before a new era is triggered, the election process may not",
+                " have enough blocks to get a result.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " - Weight: O(1)",
+                " - Write ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_invulnerables",
+              "args": [
+                {
+                  "name": "invulnerables",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the validators who cannot be slashed (if any).",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " - O(V)",
+                " - Write: Invulnerables",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_unstake",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Force a current staker to become completely unstaked, immediately.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # <weight>",
+                " O(S) where S is the number of slashing spans to be removed",
+                " Reads: Bonded, Slashing Spans, Account, Locks",
+                " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks",
+                " Writes Each: SpanSlash * S",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era_always",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of sessions indefinitely.",
+                "",
+                " The dispatch origin must be Root.",
+                "",
+                " # Warning",
+                "",
+                " The election process starts multiple blocks before the end of the era.",
+                " If this is called just before a new era is triggered, the election process may not",
+                " have enough blocks to get a result.",
+                "",
+                " # <weight>",
+                " - Weight: O(1)",
+                " - Write: ForceEra",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_deferred_slash",
+              "args": [
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                },
+                {
+                  "name": "slash_indices",
+                  "type": "Vec<u32>"
+                }
+              ],
+              "docs": [
+                " Cancel enactment of a deferred slash.",
+                "",
+                " Can be called by the `T::SlashCancelOrigin`.",
+                "",
+                " Parameters: era and indices of the slashes for that era to kill.",
+                "",
+                " # <weight>",
+                " Complexity: O(U + S)",
+                " with U unapplied slashes weighted with U=1000",
+                " and S is the number of slash indices to be canceled.",
+                " - Read: Unapplied Slashes",
+                " - Write: Unapplied Slashes",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "payout_stakers",
+              "args": [
+                {
+                  "name": "validator_stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                }
+              ],
+              "docs": [
+                " Pay out all the stakers behind a single validator for a single era.",
+                "",
+                " - `validator_stash` is the stash account of the validator. Their nominators, up to",
+                "   `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.",
+                " - `era` may be any era between `[current_era - history_depth; current_era]`.",
+                "",
+                " The origin of this call must be _Signed_. Any account can call this function, even if",
+                " it is not one of the stakers.",
+                "",
+                " # <weight>",
+                " - Time complexity: at most O(MaxNominatorRewardedPerValidator).",
+                " - Contains a limited number of reads and writes.",
+                " -----------",
+                " N is the Number of payouts for the validator (including the validator)",
+                " Weight:",
+                " - Reward Destination Staked: O(N)",
+                " - Reward Destination Controller (Creating): O(N)",
+                "",
+                "   NOTE: weights are assuming that payouts are made to alive stash account (Staked).",
+                "   Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "rebond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Rebond a portion of the stash scheduled to be unlocked.",
+                "",
+                " The dispatch origin must be signed by the controller.",
+                "",
+                " # <weight>",
+                " - Time complexity: O(L), where L is unlocking chunks",
+                " - Bounded by `MAX_UNLOCKING_CHUNKS`.",
+                " - Storage changes: Can't increase storage, only decrease it.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_history_depth",
+              "args": [
+                {
+                  "name": "new_history_depth",
+                  "type": "Compact<EraIndex>"
+                },
+                {
+                  "name": "_era_items_deleted",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Set `HistoryDepth` value. This function will delete any history information",
+                " when `HistoryDepth` is reduced.",
+                "",
+                " Parameters:",
+                " - `new_history_depth`: The new history depth you would like to set.",
+                " - `era_items_deleted`: The number of items that will be deleted by this dispatch.",
+                "    This should report all the storage items that will be deleted by clearing old",
+                "    era history. Needed to report an accurate weight for the dispatch. Trusted by",
+                "    `Root` to report an accurate number.",
+                "",
+                " Origin must be root.",
+                "",
+                " # <weight>",
+                " - E: Number of history depths removed, i.e. 10 -> 7 = 3",
+                " - Weight: O(E)",
+                " - DB Weight:",
+                "     - Reads: Current Era, History Depth",
+                "     - Writes: History Depth",
+                "     - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs",
+                "     - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reap_stash",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "num_slashing_spans",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Remove all data structure concerning a staker/stash once its balance is at the minimum.",
+                " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone",
+                " and the target `stash` must have no funds left beyond the ED.",
+                "",
+                " This can be called from any origin.",
+                "",
+                " - `stash`: The stash account to reap. Its balance must be zero.",
+                "",
+                " # <weight>",
+                " Complexity: O(S) where S is the number of slashing spans on the account.",
+                " DB Weight:",
+                " - Reads: Stash Account, Bonded, Slashing Spans, Locks",
+                " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks",
+                " - Writes Each: SpanSlash * S",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kick",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "Vec<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Remove the given nominations from the calling validator.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " - `who`: A list of nominator stash accounts who are nominating this validator which",
+                "   should no longer be nominating this validator.",
+                "",
+                " Note: Making this call only makes sense if you first set the validator preferences to",
+                " block any further nominations."
+              ]
+            },
+            {
+              "name": "set_staking_limits",
+              "args": [
+                {
+                  "name": "min_nominator_bond",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "min_validator_bond",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "max_nominator_count",
+                  "type": "Option<u32>"
+                },
+                {
+                  "name": "max_validator_count",
+                  "type": "Option<u32>"
+                },
+                {
+                  "name": "threshold",
+                  "type": "Option<Percent>"
+                }
+              ],
+              "docs": [
+                " Update the various staking limits this pallet.",
+                "",
+                " * `min_nominator_bond`: The minimum active bond needed to be a nominator.",
+                " * `min_validator_bond`: The minimum active bond needed to be a validator.",
+                " * `max_nominator_count`: The max number of users who can be a nominator at once.",
+                "   When set to `None`, no limit is enforced.",
+                " * `max_validator_count`: The max number of users who can be a validator at once.",
+                "   When set to `None`, no limit is enforced.",
+                "",
+                " Origin must be Root to call this function.",
+                "",
+                " NOTE: Existing nominators and validators will not be affected by this update.",
+                " to kick people under the new limits, `chill_other` should be called."
+              ]
+            },
+            {
+              "name": "chill_other",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Declare a `controller` to stop participating as either a validator or nominator.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_, but can be called by anyone.",
+                "",
+                " If the caller is the same as the controller being targeted, then no further checks are",
+                " enforced, and this function behaves just like `chill`.",
+                "",
+                " If the caller is different than the controller being targeted, the following conditions",
+                " must be met:",
+                " * A `ChillThreshold` must be set and checked which defines how close to the max",
+                "   nominators or validators we must reach before users can start chilling one-another.",
+                " * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine",
+                "   how close we are to the threshold.",
+                " * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines",
+                "   if this is a person that should be chilled because they have not met the threshold",
+                "   bond required.",
+                "",
+                " This can be helpful if bond requirements are updated, and we need to remove old users",
+                " who do not satisfy these requirements."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "EraPaid",
+              "args": [
+                "EraIndex",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " The era payout has been set; the first balance is the validator-payout; the second is",
+                " the remainder from the maximum amount of reward.",
+                " \\[era_index, validator_payout, remainder\\]"
+              ]
+            },
+            {
+              "name": "Rewarded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " The nominator has been rewarded by this amount. \\[stash, amount\\]"
+              ]
+            },
+            {
+              "name": "Slashed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " One validator (and its nominators) has been slashed by the given amount.",
+                " \\[validator, amount\\]"
+              ]
+            },
+            {
+              "name": "OldSlashingReportDiscarded",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " An old slashing report from a prior era was discarded because it could",
+                " not be processed. \\[session_index\\]"
+              ]
+            },
+            {
+              "name": "StakersElected",
+              "args": [],
+              "docs": [
+                " A new set of stakers was elected."
+              ]
+            },
+            {
+              "name": "Bonded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has bonded this amount. \\[stash, amount\\]",
+                "",
+                " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,",
+                " it will not be emitted for staking rewards when they are added to stake."
+              ]
+            },
+            {
+              "name": "Unbonded",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has unbonded this amount. \\[stash, amount\\]"
+              ]
+            },
+            {
+              "name": "Withdrawn",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`",
+                " from the unlocking queue. \\[stash, amount\\]"
+              ]
+            },
+            {
+              "name": "Kicked",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A nominator has been kicked from a validator. \\[nominator, stash\\]"
+              ]
+            },
+            {
+              "name": "StakingElectionFailed",
+              "args": [],
+              "docs": [
+                " The election failed. No new era is planned."
+              ]
+            },
+            {
+              "name": "Chilled",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An account has stopped participating as either a validator or nominator.",
+                " \\[stash\\]"
+              ]
+            },
+            {
+              "name": "PayoutStarted",
+              "args": [
+                "EraIndex",
+                "AccountId"
+              ],
+              "docs": [
+                " The stakers' rewards are getting paid. \\[era_index, validator_stash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SessionsPerEra",
+              "type": "SessionIndex",
+              "value": "0x06000000",
+              "docs": [
+                " Number of sessions per era."
+              ]
+            },
+            {
+              "name": "BondingDuration",
+              "type": "EraIndex",
+              "value": "0xa0020000",
+              "docs": [
+                " Number of eras that staked funds must remain bonded for."
+              ]
+            },
+            {
+              "name": "SlashDeferDuration",
+              "type": "EraIndex",
+              "value": "0xa8000000",
+              "docs": [
+                " Number of eras that slashes are deferred by, after computation.",
+                "",
+                " This should be less than the bonding duration. Set to 0 if slashes",
+                " should be applied immediately, without opportunity for intervention."
+              ]
+            },
+            {
+              "name": "MaxNominatorRewardedPerValidator",
+              "type": "u32",
+              "value": "0x00010000",
+              "docs": [
+                " The maximum number of nominators rewarded for each validator.",
+                "",
+                " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim",
+                " their reward. This used to limit the i/o cost for the nominator payout."
+              ]
+            },
+            {
+              "name": "MaxNominations",
+              "type": "u32",
+              "value": "0x10000000",
+              "docs": []
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotController",
+              "docs": [
+                " Not a controller account."
+              ]
+            },
+            {
+              "name": "NotStash",
+              "docs": [
+                " Not a stash account."
+              ]
+            },
+            {
+              "name": "AlreadyBonded",
+              "docs": [
+                " Stash is already bonded."
+              ]
+            },
+            {
+              "name": "AlreadyPaired",
+              "docs": [
+                " Controller is already paired."
+              ]
+            },
+            {
+              "name": "EmptyTargets",
+              "docs": [
+                " Targets cannot be empty."
+              ]
+            },
+            {
+              "name": "DuplicateIndex",
+              "docs": [
+                " Duplicate index."
+              ]
+            },
+            {
+              "name": "InvalidSlashIndex",
+              "docs": [
+                " Slash record index out of bounds."
+              ]
+            },
+            {
+              "name": "InsufficientBond",
+              "docs": [
+                " Can not bond with value less than minimum required."
+              ]
+            },
+            {
+              "name": "NoMoreChunks",
+              "docs": [
+                " Can not schedule more unlock chunks."
+              ]
+            },
+            {
+              "name": "NoUnlockChunk",
+              "docs": [
+                " Can not rebond without unlocking chunks."
+              ]
+            },
+            {
+              "name": "FundedTarget",
+              "docs": [
+                " Attempting to target a stash that still has funds."
+              ]
+            },
+            {
+              "name": "InvalidEraToReward",
+              "docs": [
+                " Invalid era to reward."
+              ]
+            },
+            {
+              "name": "InvalidNumberOfNominations",
+              "docs": [
+                " Invalid number of nominations."
+              ]
+            },
+            {
+              "name": "NotSortedAndUnique",
+              "docs": [
+                " Items are not sorted and unique."
+              ]
+            },
+            {
+              "name": "AlreadyClaimed",
+              "docs": [
+                " Rewards for this era have already been claimed for this validator."
+              ]
+            },
+            {
+              "name": "IncorrectHistoryDepth",
+              "docs": [
+                " Incorrect previous history depth input provided."
+              ]
+            },
+            {
+              "name": "IncorrectSlashingSpans",
+              "docs": [
+                " Incorrect number of slashing spans provided."
+              ]
+            },
+            {
+              "name": "BadState",
+              "docs": [
+                " Internal state has become somehow corrupted and the operation cannot continue."
+              ]
+            },
+            {
+              "name": "TooManyTargets",
+              "docs": [
+                " Too many nomination targets supplied."
+              ]
+            },
+            {
+              "name": "BadTarget",
+              "docs": [
+                " A nomination target was supplied that was blocked or otherwise not a validator."
+              ]
+            },
+            {
+              "name": "CannotChillOther",
+              "docs": [
+                " The user has enough bond and thus cannot be chilled forcefully by an external person."
+              ]
+            },
+            {
+              "name": "TooManyNominators",
+              "docs": [
+                " There are too many nominators in the system. Governance needs to adjust the staking settings",
+                " to keep things safe for the runtime."
+              ]
+            },
+            {
+              "name": "TooManyValidators",
+              "docs": [
+                " There are too many validators in the system. Governance needs to adjust the staking settings",
+                " to keep things safe for the runtime."
+              ]
+            }
+          ],
+          "index": 9
+        },
+        {
+          "name": "Session",
+          "storage": {
+            "prefix": "Session",
+            "items": [
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ValidatorId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of validators."
+                ]
+              },
+              {
+                "name": "CurrentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Current index of the session."
+                ]
+              },
+              {
+                "name": "QueuedChanged",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the underlying economic identities or weighting behind the validators",
+                  " has changed in the queued validator set."
+                ]
+              },
+              {
+                "name": "QueuedKeys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(ValidatorId,Keys)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The queued keys for the next session. When the next session begins, these keys",
+                  " will be used to determine the validator's session keys."
+                ]
+              },
+              {
+                "name": "DisabledValidators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<u32>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Indices of disabled validators.",
+                  "",
+                  " The set is cleared when `on_session_ending` returns a new set of identities."
+                ]
+              },
+              {
+                "name": "NextKeys",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ValidatorId",
+                    "value": "Keys",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The next session keys for a validator."
+                ]
+              },
+              {
+                "name": "KeyOwner",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "(KeyTypeId,Bytes)",
+                    "value": "ValidatorId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The owner of a key. The key is the `KeyTypeId` + the encoded key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_keys",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Keys"
+                },
+                {
+                  "name": "proof",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Sets the session key(s) of the function caller to `keys`.",
+                " Allows an account to set its session key prior to becoming a validator.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                "   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
+                " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`",
+                " - DbWrites: `origin account`, `NextKeys`",
+                " - DbReads per key id: `KeyOwner`",
+                " - DbWrites per key id: `KeyOwner`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "purge_keys",
+              "args": [],
+              "docs": [
+                " Removes any session key(s) of the function caller.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)` in number of key types.",
+                "   Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.",
+                " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`",
+                " - DbWrites: `NextKeys`, `origin account`",
+                " - DbWrites per key id: `KeyOwner`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewSession",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " New session has happened. Note that the argument is the \\[session_index\\], not the block",
+                " number as the type might suggest."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InvalidProof",
+              "docs": [
+                " Invalid ownership proof."
+              ]
+            },
+            {
+              "name": "NoAssociatedValidatorId",
+              "docs": [
+                " No associated validator ID for account."
+              ]
+            },
+            {
+              "name": "DuplicatedKey",
+              "docs": [
+                " Registered duplicate key."
+              ]
+            },
+            {
+              "name": "NoKeys",
+              "docs": [
+                " No keys are associated with this account."
+              ]
+            },
+            {
+              "name": "NoAccount",
+              "docs": [
+                " Key setting account is not live, so it's impossible to associate keys."
+              ]
+            }
+          ],
+          "index": 10
+        },
+        {
+          "name": "Democracy",
+          "storage": {
+            "prefix": "Democracy",
+            "items": [
+              {
+                "name": "PublicPropCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "PropIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of (public) proposals that have been made so far."
+                ]
+              },
+              {
+                "name": "PublicProps",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(PropIndex,Hash,AccountId)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The public proposals. Unsorted. The second item is the proposal's hash."
+                ]
+              },
+              {
+                "name": "DepositOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "PropIndex",
+                    "value": "(Vec<AccountId>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Those who have locked a deposit.",
+                  "",
+                  " TWOX-NOTE: Safe, as increasing integer keys are safe."
+                ]
+              },
+              {
+                "name": "Preimages",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "PreimageStatus",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map of hashes to the proposal preimage, along with who registered it and their deposit.",
+                  " The block number is the block at which it was deposited."
+                ]
+              },
+              {
+                "name": "ReferendumCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next free referendum index, aka the number of referenda started so far."
+                ]
+              },
+              {
+                "name": "LowestUnbaked",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The lowest referendum index representing an unbaked referendum. Equal to",
+                  " `ReferendumCount` if there isn't a unbaked referendum."
+                ]
+              },
+              {
+                "name": "ReferendumInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ReferendumIndex",
+                    "value": "ReferendumInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information concerning any given referendum.",
+                  "",
+                  " TWOX-NOTE: SAFE as indexes are not under an attacker’s control."
+                ]
+              },
+              {
+                "name": "VotingOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Voting",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " All votes for a particular voter. We store the balance for the number of votes that we",
+                  " have recorded. The second item is the total amount of delegations, that will be added.",
+                  "",
+                  " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway."
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "BlockNumber",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Accounts for which there are locks in action which may be removed at some point in the",
+                  " future. The value is the block number at which the lock expires and may be removed.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "LastTabledWasExternal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the last referendum tabled was submitted externally. False if it was a public",
+                  " proposal."
+                ]
+              },
+              {
+                "name": "NextExternal",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(Hash,VoteThreshold)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The referendum to be tabled whenever it would be valid to table an external proposal.",
+                  " This happens when a referendum needs to be tabled and one of two conditions are met:",
+                  " - `LastTabledWasExternal` is `false`; or",
+                  " - `PublicProps` is empty."
+                ]
+              },
+              {
+                "name": "Blacklist",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "(BlockNumber,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A record of who vetoed what. Maps proposal hash to a possible existent block number",
+                  " (until when it may not be resubmitted) and who vetoed it."
+                ]
+              },
+              {
+                "name": "Cancellations",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Record of all proposals that have been subject to emergency cancellation."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " New networks start with last version."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Propose a sensitive action to be taken.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the sender must",
+                " have funds to cover the deposit.",
+                "",
+                " - `proposal_hash`: The hash of the proposal preimage.",
+                " - `value`: The amount of deposit (must be at least `MinimumDeposit`).",
+                "",
+                " Emits `Proposed`.",
+                "",
+                " Weight: `O(p)`"
+              ]
+            },
+            {
+              "name": "second",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Compact<PropIndex>"
+                },
+                {
+                  "name": "seconds_upper_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Signals agreement with a particular proposal.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the sender",
+                " must have funds to cover the deposit, equal to the original deposit.",
+                "",
+                " - `proposal`: The index of the proposal to second.",
+                " - `seconds_upper_bound`: an upper bound on the current number of seconds on this",
+                "   proposal. Extrinsic is weighted according to this value with no refund.",
+                "",
+                " Weight: `O(S)` where S is the number of seconds a proposal already has."
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                },
+                {
+                  "name": "vote",
+                  "type": "AccountVote"
+                }
+              ],
+              "docs": [
+                " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;",
+                " otherwise it is a vote to keep the status quo.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `ref_index`: The index of the referendum to vote for.",
+                " - `vote`: The vote configuration.",
+                "",
+                " Weight: `O(R)` where R is the number of referendums the voter has voted on."
+              ]
+            },
+            {
+              "name": "emergency_cancel",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
+                " referendum.",
+                "",
+                " The dispatch origin of this call must be `CancellationOrigin`.",
+                "",
+                " -`ref_index`: The index of the referendum to cancel.",
+                "",
+                " Weight: `O(1)`."
+              ]
+            },
+            {
+              "name": "external_propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a referendum to be tabled once it is legal to schedule an external",
+                " referendum.",
+                "",
+                " The dispatch origin of this call must be `ExternalOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.",
+                "   Decoding vec of length V. Charged as maximum"
+              ]
+            },
+            {
+              "name": "external_propose_majority",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
+                " an external referendum.",
+                "",
+                " The dispatch of this call must be `ExternalMajorityOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "external_propose_default",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
+                " schedule an external referendum.",
+                "",
+                " The dispatch of this call must be `ExternalDefaultOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "fast_track",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "voting_period",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Schedule the currently externally-proposed majority-carries referendum to be tabled",
+                " immediately. If there is no externally-proposed referendum currently, or if there is one",
+                " but it is not a majority-carries referendum then it fails.",
+                "",
+                " The dispatch of this call must be `FastTrackOrigin`.",
+                "",
+                " - `proposal_hash`: The hash of the current external proposal.",
+                " - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
+                "   `FastTrackVotingPeriod` if too low.",
+                " - `delay`: The number of block after voting has ended in approval and this should be",
+                "   enacted. This doesn't have a minimum amount.",
+                "",
+                " Emits `Started`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "veto_external",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Veto and blacklist the external proposal hash.",
+                "",
+                " The dispatch origin of this call must be `VetoOrigin`.",
+                "",
+                " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.",
+                "",
+                " Emits `Vetoed`.",
+                "",
+                " Weight: `O(V + log(V))` where V is number of `existing vetoers`"
+              ]
+            },
+            {
+              "name": "cancel_referendum",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Remove a referendum.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " - `ref_index`: The index of the referendum to cancel.",
+                "",
+                " # Weight: `O(1)`."
+              ]
+            },
+            {
+              "name": "cancel_queued",
+              "args": [
+                {
+                  "name": "which",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a proposal queued for enactment.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " - `which`: The index of the referendum to cancel.",
+                "",
+                " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`."
+              ]
+            },
+            {
+              "name": "delegate",
+              "args": [
+                {
+                  "name": "to",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "conviction",
+                  "type": "Conviction"
+                },
+                {
+                  "name": "balance",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " Delegate the voting power (with some given conviction) of the sending account.",
+                "",
+                " The balance delegated is locked for as long as it's delegated, and thereafter for the",
+                " time appropriate for the conviction's lock period.",
+                "",
+                " The dispatch origin of this call must be _Signed_, and the signing account must either:",
+                "   - be delegating already; or",
+                "   - have no voting activity (if there is, then it will need to be removed/consolidated",
+                "     through `reap_vote` or `unvote`).",
+                "",
+                " - `to`: The account whose voting the `target` account's voting power will follow.",
+                " - `conviction`: The conviction that will be attached to the delegated votes. When the",
+                "   account is undelegated, the funds will be locked for the corresponding period.",
+                " - `balance`: The amount of the account's balance to be used in delegating. This must",
+                "   not be more than the account's current balance.",
+                "",
+                " Emits `Delegated`.",
+                "",
+                " Weight: `O(R)` where R is the number of referendums the voter delegating to has",
+                "   voted on. Weight is charged as if maximum votes."
+              ]
+            },
+            {
+              "name": "undelegate",
+              "args": [],
+              "docs": [
+                " Undelegate the voting power of the sending account.",
+                "",
+                " Tokens may be unlocked following once an amount of time consistent with the lock period",
+                " of the conviction with which the delegation was issued.",
+                "",
+                " The dispatch origin of this call must be _Signed_ and the signing account must be",
+                " currently delegating.",
+                "",
+                " Emits `Undelegated`.",
+                "",
+                " Weight: `O(R)` where R is the number of referendums the voter delegating to has",
+                "   voted on. Weight is charged as if maximum votes."
+              ]
+            },
+            {
+              "name": "clear_public_proposals",
+              "args": [],
+              "docs": [
+                " Clears all public proposals.",
+                "",
+                " The dispatch origin of this call must be _Root_.",
+                "",
+                " Weight: `O(1)`."
+              ]
+            },
+            {
+              "name": "note_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This doesn't require the proposal to be",
+                " in the dispatch queue but does require a deposit, returned once enacted.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `encoded_proposal`: The preimage of a proposal.",
+                "",
+                " Emits `PreimageNoted`.",
+                "",
+                " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."
+              ]
+            },
+            {
+              "name": "note_preimage_operational",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Same as `note_preimage` but origin is `OperationalPreimageOrigin`."
+              ]
+            },
+            {
+              "name": "note_imminent_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This requires the proposal to be",
+                " in the dispatch queue. No deposit is needed. When this call is successful, i.e.",
+                " the preimage has not been uploaded before and matches some imminent proposal,",
+                " no fee is paid.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `encoded_proposal`: The preimage of a proposal.",
+                "",
+                " Emits `PreimageNoted`.",
+                "",
+                " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."
+              ]
+            },
+            {
+              "name": "note_imminent_preimage_operational",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`."
+              ]
+            },
+            {
+              "name": "reap_preimage",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "proposal_len_upper_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Remove an expired proposal preimage and collect the deposit.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `proposal_hash`: The preimage hash of a proposal.",
+                " - `proposal_length_upper_bound`: an upper bound on length of the proposal.",
+                "   Extrinsic is weighted according to this value with no refund.",
+                "",
+                " This will only work after `VotingPeriod` blocks from the time that the preimage was",
+                " noted, if it's the same account doing it. If it's a different account, then it'll only",
+                " work an additional `EnactmentPeriod` later.",
+                "",
+                " Emits `PreimageReaped`.",
+                "",
+                " Weight: `O(D)` where D is length of proposal."
+              ]
+            },
+            {
+              "name": "unlock",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Unlock tokens that have an expired lock.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `target`: The account to remove the lock on.",
+                "",
+                " Weight: `O(R)` with R number of vote of target."
+              ]
+            },
+            {
+              "name": "remove_vote",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Remove a vote for a referendum.",
+                "",
+                " If:",
+                " - the referendum was cancelled, or",
+                " - the referendum is ongoing, or",
+                " - the referendum has ended such that",
+                "   - the vote of the account was in opposition to the result; or",
+                "   - there was no conviction to the account's vote; or",
+                "   - the account made a split vote",
+                " ...then the vote is removed cleanly and a following call to `unlock` may result in more",
+                " funds being available.",
+                "",
+                " If, however, the referendum has ended and:",
+                " - it finished corresponding to the vote of the account, and",
+                " - the account made a standard vote with conviction, and",
+                " - the lock period of the conviction is not over",
+                " ...then the lock will be aggregated into the overall account's lock, which may involve",
+                " *overlocking* (where the two locks are combined into a single lock that is the maximum",
+                " of both the amount locked and the time is it locked for).",
+                "",
+                " The dispatch origin of this call must be _Signed_, and the signer must have a vote",
+                " registered for referendum `index`.",
+                "",
+                " - `index`: The index of referendum of the vote to be removed.",
+                "",
+                " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.",
+                "   Weight is calculated for the maximum number of vote."
+              ]
+            },
+            {
+              "name": "remove_other_vote",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Remove a vote for a referendum.",
+                "",
+                " If the `target` is equal to the signer, then this function is exactly equivalent to",
+                " `remove_vote`. If not equal to the signer, then the vote must have expired,",
+                " either because the referendum was cancelled, because the voter lost the referendum or",
+                " because the conviction period is over.",
+                "",
+                " The dispatch origin of this call must be _Signed_.",
+                "",
+                " - `target`: The account of the vote to be removed; this account must have voted for",
+                "   referendum `index`.",
+                " - `index`: The index of referendum of the vote to be removed.",
+                "",
+                " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.",
+                "   Weight is calculated for the maximum number of vote."
+              ]
+            },
+            {
+              "name": "enact_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Enact a proposal from a referendum. For now we just make the weight be the maximum."
+              ]
+            },
+            {
+              "name": "blacklist",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "maybe_ref_index",
+                  "type": "Option<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Permanently place a proposal into the blacklist. This prevents it from ever being",
+                " proposed again.",
+                "",
+                " If called on a queued public or external proposal, then this will result in it being",
+                " removed. If the `ref_index` supplied is an active referendum with the proposal hash,",
+                " then it will be cancelled.",
+                "",
+                " The dispatch origin of this call must be `BlacklistOrigin`.",
+                "",
+                " - `proposal_hash`: The proposal hash to blacklist permanently.",
+                " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be",
+                " cancelled.",
+                "",
+                " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a",
+                "   reasonable value)."
+              ]
+            },
+            {
+              "name": "cancel_proposal",
+              "args": [
+                {
+                  "name": "prop_index",
+                  "type": "Compact<PropIndex>"
+                }
+              ],
+              "docs": [
+                " Remove a proposal.",
+                "",
+                " The dispatch origin of this call must be `CancelProposalOrigin`.",
+                "",
+                " - `prop_index`: The index of the proposal to cancel.",
+                "",
+                " Weight: `O(p)` where `p = PublicProps::<T>::decode_len()`"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "PropIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A motion has been proposed by a public account. \\[proposal_index, deposit\\]"
+              ]
+            },
+            {
+              "name": "Tabled",
+              "args": [
+                "PropIndex",
+                "Balance",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"
+              ]
+            },
+            {
+              "name": "ExternalTabled",
+              "args": [],
+              "docs": [
+                " An external proposal has been tabled."
+              ]
+            },
+            {
+              "name": "Started",
+              "args": [
+                "ReferendumIndex",
+                "VoteThreshold"
+              ],
+              "docs": [
+                " A referendum has begun. \\[ref_index, threshold\\]"
+              ]
+            },
+            {
+              "name": "Passed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been approved by referendum. \\[ref_index\\]"
+              ]
+            },
+            {
+              "name": "NotPassed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been rejected by referendum. \\[ref_index\\]"
+              ]
+            },
+            {
+              "name": "Cancelled",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A referendum has been cancelled. \\[ref_index\\]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "ReferendumIndex",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A proposal has been enacted. \\[ref_index, result\\]"
+              ]
+            },
+            {
+              "name": "Delegated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An account has delegated their vote to another account. \\[who, target\\]"
+              ]
+            },
+            {
+              "name": "Undelegated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] has cancelled a previous delegation operation."
+              ]
+            },
+            {
+              "name": "Vetoed",
+              "args": [
+                "AccountId",
+                "Hash",
+                "BlockNumber"
+              ],
+              "docs": [
+                " An external proposal has been vetoed. \\[who, proposal_hash, until\\]"
+              ]
+            },
+            {
+              "name": "PreimageNoted",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]"
+              ]
+            },
+            {
+              "name": "PreimageUsed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal preimage was removed and used (the deposit was returned).",
+                " \\[proposal_hash, provider, deposit\\]"
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was invalid.",
+                " \\[proposal_hash, ref_index\\]"
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was missing.",
+                " \\[proposal_hash, ref_index\\]"
+              ]
+            },
+            {
+              "name": "PreimageReaped",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A registered preimage was removed and the deposit collected by the reaper.",
+                " \\[proposal_hash, provider, deposit, reaper\\]"
+              ]
+            },
+            {
+              "name": "Unlocked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] has been unlocked successfully."
+              ]
+            },
+            {
+              "name": "Blacklisted",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A proposal \\[hash\\] has been blacklisted permanently."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "EnactmentPeriod",
+              "type": "BlockNumber",
+              "value": "0x002f0d00",
+              "docs": [
+                " The minimum period of locking and the period between a proposal being approved and enacted.",
+                "",
+                " It should generally be a little more than the unstake period to ensure that",
+                " voting stakers have an opportunity to remove themselves from the system in the case where",
+                " they are on the losing side of a vote."
+              ]
+            },
+            {
+              "name": "LaunchPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) new public referenda are launched."
+              ]
+            },
+            {
+              "name": "VotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) to check for new votes."
+              ]
+            },
+            {
+              "name": "MinimumDeposit",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount to be used as a deposit for a public referendum proposal."
+              ]
+            },
+            {
+              "name": "InstantAllowed",
+              "type": "bool",
+              "value": "0x01",
+              "docs": [
+                " Indicator for whether an emergency origin is even allowed to happen. Some chains may want",
+                " to set this permanently to `false`, others may want to condition it on things such as",
+                " an upgrade having happened recently."
+              ]
+            },
+            {
+              "name": "FastTrackVotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x80510100",
+              "docs": [
+                " Minimum voting period allowed for a fast-track referendum."
+              ]
+            },
+            {
+              "name": "CooloffPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " Period in blocks where an external proposal may not be re-submitted after being vetoed."
+              ]
+            },
+            {
+              "name": "PreimageByteDeposit",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount of balance that must be deposited per byte of preimage stored."
+              ]
+            },
+            {
+              "name": "MaxVotes",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of votes for an account.",
+                "",
+                " Also used to compute weight, an overly big value can",
+                " lead to extrinsic with very big weight: see `delegate` for instance."
+              ]
+            },
+            {
+              "name": "MaxProposals",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of public proposals that can exist at any time."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "ValueLow",
+              "docs": [
+                " Value too low"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal does not exist"
+              ]
+            },
+            {
+              "name": "BadIndex",
+              "docs": [
+                " Unknown index"
+              ]
+            },
+            {
+              "name": "AlreadyCanceled",
+              "docs": [
+                " Cannot cancel the same proposal twice"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Proposal already made"
+              ]
+            },
+            {
+              "name": "ProposalBlacklisted",
+              "docs": [
+                " Proposal still blacklisted"
+              ]
+            },
+            {
+              "name": "NotSimpleMajority",
+              "docs": [
+                " Next external proposal not simple majority"
+              ]
+            },
+            {
+              "name": "InvalidHash",
+              "docs": [
+                " Invalid hash"
+              ]
+            },
+            {
+              "name": "NoProposal",
+              "docs": [
+                " No external proposal"
+              ]
+            },
+            {
+              "name": "AlreadyVetoed",
+              "docs": [
+                " Identity may not veto a proposal twice"
+              ]
+            },
+            {
+              "name": "NotDelegated",
+              "docs": [
+                " Not delegated"
+              ]
+            },
+            {
+              "name": "DuplicatePreimage",
+              "docs": [
+                " Preimage already noted"
+              ]
+            },
+            {
+              "name": "NotImminent",
+              "docs": [
+                " Not imminent"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " Too early"
+              ]
+            },
+            {
+              "name": "Imminent",
+              "docs": [
+                " Imminent"
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "docs": [
+                " Preimage not found"
+              ]
+            },
+            {
+              "name": "ReferendumInvalid",
+              "docs": [
+                " Vote given for invalid referendum"
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "docs": [
+                " Invalid preimage"
+              ]
+            },
+            {
+              "name": "NoneWaiting",
+              "docs": [
+                " No proposals waiting"
+              ]
+            },
+            {
+              "name": "NotLocked",
+              "docs": [
+                " The target account does not have a lock."
+              ]
+            },
+            {
+              "name": "NotExpired",
+              "docs": [
+                " The lock on the account to be unlocked has not yet expired."
+              ]
+            },
+            {
+              "name": "NotVoter",
+              "docs": [
+                " The given account did not vote on the referendum."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " The actor has no permission to conduct the action."
+              ]
+            },
+            {
+              "name": "AlreadyDelegating",
+              "docs": [
+                " The account is already delegating."
+              ]
+            },
+            {
+              "name": "InsufficientFunds",
+              "docs": [
+                " Too high a balance was provided that the account cannot afford."
+              ]
+            },
+            {
+              "name": "NotDelegating",
+              "docs": [
+                " The account is not currently delegating."
+              ]
+            },
+            {
+              "name": "VotesExist",
+              "docs": [
+                " The account currently has votes attached to it and the operation cannot succeed until",
+                " these are removed, either through `unvote` or `reap_vote`."
+              ]
+            },
+            {
+              "name": "InstantNotAllowed",
+              "docs": [
+                " The instant referendum origin is currently disallowed."
+              ]
+            },
+            {
+              "name": "Nonsense",
+              "docs": [
+                " Delegation to oneself makes no sense."
+              ]
+            },
+            {
+              "name": "WrongUpperBound",
+              "docs": [
+                " Invalid upper bound."
+              ]
+            },
+            {
+              "name": "MaxVotesReached",
+              "docs": [
+                " Maximum number of votes reached."
+              ]
+            },
+            {
+              "name": "InvalidWitness",
+              "docs": [
+                " The provided witness data is wrong."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " Maximum number of proposals reached."
+              ]
+            }
+          ],
+          "index": 11
+        },
+        {
+          "name": "Council",
+          "storage": {
+            "prefix": "Instance1Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The prime member that helps determine the default vote behavior in case of absentations."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "prime",
+                  "type": "Option<AccountId>"
+                },
+                {
+                  "name": "old_count",
+                  "type": "MemberCount"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership.",
+                "",
+                " - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
+                " - `prime`: The prime member whose vote sets the default.",
+                " - `old_count`: The upper bound for the previous number of members in storage.",
+                "                Used for weight estimation.",
+                "",
+                " Requires root origin.",
+                "",
+                " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
+                "       the weight estimations rely on it to estimate dispatchable weight.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(MP + N)` where:",
+                "   - `M` old-members-count (code- and governance-bounded)",
+                "   - `N` new-members-count (code- and governance-bounded)",
+                "   - `P` proposals-count (code-bounded)",
+                " - DB:",
+                "   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
+                "   - 1 storage read (codec `O(P)`) for reading the proposals",
+                "   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
+                "   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
+                " - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Add a new proposal to either be voted on or executed directly.",
+                "",
+                " Requires the sender to be member.",
+                "",
+                " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
+                " or put up for voting.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1)` or `O(B + M + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - branching is influenced by `threshold` where:",
+                "     - `P1` is proposal execution complexity (`threshold < 2`)",
+                "     - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
+                " - DB:",
+                "   - 1 storage read `is_member` (codec `O(M)`)",
+                "   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
+                "   - DB accesses influenced by `threshold`:",
+                "     - EITHER storage accesses done by `proposal` (`threshold < 2`)",
+                "     - OR proposal insertion (`threshold <= 2`)",
+                "       - 1 storage mutation `Proposals` (codec `O(P2)`)",
+                "       - 1 storage mutation `ProposalCount` (codec `O(1)`)",
+                "       - 1 storage write `ProposalOf` (codec `O(B)`)",
+                "       - 1 storage write `Voting` (codec `O(M)`)",
+                "   - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Add an aye or nay vote for the sender to the given proposal.",
+                "",
+                " Requires the sender to be a member.",
+                "",
+                " Transaction fees will be waived if the member is voting on any particular proposal",
+                " for the first time and the call is successful. Subsequent vote changes will charge a fee.",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M)` where `M` is members-count (code- and governance-bounded)",
+                " - DB:",
+                "   - 1 storage read `Members` (codec `O(M)`)",
+                "   - 1 storage mutation `Voting` (codec `O(M)`)",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "proposal_weight_bound",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Close a vote that is either approved, disapproved or whose voting period has ended.",
+                "",
+                " May be called by any signed account in order to finish voting and close the proposal.",
+                "",
+                " If called before the end of the voting period it will only close the vote if it is",
+                " has enough votes to be approved or disapproved.",
+                "",
+                " If called after the end of the voting period abstentions are counted as rejections",
+                " unless there is a prime member set and the prime member cast an approval.",
+                "",
+                " If the close operation completes successfully with disapproval, the transaction fee will",
+                " be waived. Otherwise execution of the approved operation will be charged to the caller.",
+                "",
+                " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
+                " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
+                "                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1 + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - `P1` is the complexity of `proposal` preimage.",
+                "   - `P2` is proposal-count (code-bounded)",
+                " - DB:",
+                "  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
+                "  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
+                "  - any mutations done while executing `proposal` (`P1`)",
+                " - up to 3 events",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "disapprove_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
+                "",
+                " Must be called by the Root origin.",
+                "",
+                " Parameters:",
+                " * `proposal_hash`: The hash of the proposal that should be disapproved.",
+                "",
+                " # <weight>",
+                " Complexity: O(P) where P is the number of max proposals",
+                " DB Weight:",
+                " * Reads: Proposals",
+                " * Writes: Voting, Proposals, ProposalOf",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`).",
+                " \\[account, proposal_index, proposal_hash, threshold\\]"
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`).",
+                " \\[account, proposal_hash, voted, yes, no\\]"
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A motion was executed; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A single member did some action; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "Closed",
+              "args": [
+                "Hash",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A proposal was closed because its threshold was reached or after its duration was up.",
+                " \\[proposal_hash, yes, no\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " The close call was made too early, before the end of the voting."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " There can only be a maximum of `MaxProposals` active proposals."
+              ]
+            },
+            {
+              "name": "WrongProposalWeight",
+              "docs": [
+                " The given weight bound for the proposal was too low."
+              ]
+            },
+            {
+              "name": "WrongProposalLength",
+              "docs": [
+                " The given length bound for the proposal was too low."
+              ]
+            }
+          ],
+          "index": 12
+        },
+        {
+          "name": "TechnicalCommittee",
+          "storage": {
+            "prefix": "Instance2Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The prime member that helps determine the default vote behavior in case of absentations."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "prime",
+                  "type": "Option<AccountId>"
+                },
+                {
+                  "name": "old_count",
+                  "type": "MemberCount"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership.",
+                "",
+                " - `new_members`: The new member list. Be nice to the chain and provide it sorted.",
+                " - `prime`: The prime member whose vote sets the default.",
+                " - `old_count`: The upper bound for the previous number of members in storage.",
+                "                Used for weight estimation.",
+                "",
+                " Requires root origin.",
+                "",
+                " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but",
+                "       the weight estimations rely on it to estimate dispatchable weight.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(MP + N)` where:",
+                "   - `M` old-members-count (code- and governance-bounded)",
+                "   - `N` new-members-count (code- and governance-bounded)",
+                "   - `P` proposals-count (code-bounded)",
+                " - DB:",
+                "   - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members",
+                "   - 1 storage read (codec `O(P)`) for reading the proposals",
+                "   - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal",
+                "   - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`",
+                " - DB: 1 read (codec `O(M)`) + DB access of `proposal`",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Add a new proposal to either be voted on or executed directly.",
+                "",
+                " Requires the sender to be member.",
+                "",
+                " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)",
+                " or put up for voting.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1)` or `O(B + M + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - branching is influenced by `threshold` where:",
+                "     - `P1` is proposal execution complexity (`threshold < 2`)",
+                "     - `P2` is proposals-count (code-bounded) (`threshold >= 2`)",
+                " - DB:",
+                "   - 1 storage read `is_member` (codec `O(M)`)",
+                "   - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)",
+                "   - DB accesses influenced by `threshold`:",
+                "     - EITHER storage accesses done by `proposal` (`threshold < 2`)",
+                "     - OR proposal insertion (`threshold <= 2`)",
+                "       - 1 storage mutation `Proposals` (codec `O(P2)`)",
+                "       - 1 storage mutation `ProposalCount` (codec `O(1)`)",
+                "       - 1 storage write `ProposalOf` (codec `O(B)`)",
+                "       - 1 storage write `Voting` (codec `O(M)`)",
+                "   - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Add an aye or nay vote for the sender to the given proposal.",
+                "",
+                " Requires the sender to be a member.",
+                "",
+                " Transaction fees will be waived if the member is voting on any particular proposal",
+                " for the first time and the call is successful. Subsequent vote changes will charge a fee.",
+                " # <weight>",
+                " ## Weight",
+                " - `O(M)` where `M` is members-count (code- and governance-bounded)",
+                " - DB:",
+                "   - 1 storage read `Members` (codec `O(M)`)",
+                "   - 1 storage mutation `Voting` (codec `O(M)`)",
+                " - 1 event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "proposal_weight_bound",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "length_bound",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Close a vote that is either approved, disapproved or whose voting period has ended.",
+                "",
+                " May be called by any signed account in order to finish voting and close the proposal.",
+                "",
+                " If called before the end of the voting period it will only close the vote if it is",
+                " has enough votes to be approved or disapproved.",
+                "",
+                " If called after the end of the voting period abstentions are counted as rejections",
+                " unless there is a prime member set and the prime member cast an approval.",
+                "",
+                " If the close operation completes successfully with disapproval, the transaction fee will",
+                " be waived. Otherwise execution of the approved operation will be charged to the caller.",
+                "",
+                " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.",
+                " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via",
+                "                   `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.",
+                "",
+                " # <weight>",
+                " ## Weight",
+                " - `O(B + M + P1 + P2)` where:",
+                "   - `B` is `proposal` size in bytes (length-fee-bounded)",
+                "   - `M` is members-count (code- and governance-bounded)",
+                "   - `P1` is the complexity of `proposal` preimage.",
+                "   - `P2` is proposal-count (code-bounded)",
+                " - DB:",
+                "  - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)",
+                "  - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)",
+                "  - any mutations done while executing `proposal` (`P1`)",
+                " - up to 3 events",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "disapprove_proposal",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Disapprove a proposal, close, and remove it from the system, regardless of its current state.",
+                "",
+                " Must be called by the Root origin.",
+                "",
+                " Parameters:",
+                " * `proposal_hash`: The hash of the proposal that should be disapproved.",
+                "",
+                " # <weight>",
+                " Complexity: O(P) where P is the number of max proposals",
+                " DB Weight:",
+                " * Reads: Proposals",
+                " * Writes: Voting, Proposals, ProposalOf",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`).",
+                " \\[account, proposal_index, proposal_hash, threshold\\]"
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`).",
+                " \\[account, proposal_hash, voted, yes, no\\]"
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold.",
+                " \\[proposal_hash\\]"
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A motion was executed; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A single member did some action; result will be `Ok` if it returned without error.",
+                " \\[proposal_hash, result\\]"
+              ]
+            },
+            {
+              "name": "Closed",
+              "args": [
+                "Hash",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A proposal was closed because its threshold was reached or after its duration was up.",
+                " \\[proposal_hash, yes, no\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "NotMember",
+              "docs": [
+                " Account is not a member"
+              ]
+            },
+            {
+              "name": "DuplicateProposal",
+              "docs": [
+                " Duplicate proposals not allowed"
+              ]
+            },
+            {
+              "name": "ProposalMissing",
+              "docs": [
+                " Proposal must exist"
+              ]
+            },
+            {
+              "name": "WrongIndex",
+              "docs": [
+                " Mismatched index"
+              ]
+            },
+            {
+              "name": "DuplicateVote",
+              "docs": [
+                " Duplicate vote ignored"
+              ]
+            },
+            {
+              "name": "AlreadyInitialized",
+              "docs": [
+                " Members are already initialized!"
+              ]
+            },
+            {
+              "name": "TooEarly",
+              "docs": [
+                " The close call was made too early, before the end of the voting."
+              ]
+            },
+            {
+              "name": "TooManyProposals",
+              "docs": [
+                " There can only be a maximum of `MaxProposals` active proposals."
+              ]
+            },
+            {
+              "name": "WrongProposalWeight",
+              "docs": [
+                " The given weight bound for the proposal was too low."
+              ]
+            },
+            {
+              "name": "WrongProposalLength",
+              "docs": [
+                " The given length bound for the proposal was too low."
+              ]
+            }
+          ],
+          "index": 13
+        },
+        {
+          "name": "Elections",
+          "storage": {
+            "prefix": "Elections",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<SeatHolder>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current elected members.",
+                  "",
+                  " Invariant: Always sorted based on account id."
+                ]
+              },
+              {
+                "name": "RunnersUp",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<SeatHolder>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current reserved runners-up.",
+                  "",
+                  " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the",
+                  " last (i.e. _best_) runner-up will be replaced."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The present candidate list. A current member or runner-up can never enter this vector",
+                  " and is always implicitly assumed to be a candidate.",
+                  "",
+                  " Second element is the deposit.",
+                  "",
+                  " Invariant: Always sorted based on account id."
+                ]
+              },
+              {
+                "name": "ElectionRounds",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The total number of vote rounds that have happened, excluding the upcoming one."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Voter",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Votes and locked stake of a particular voter.",
+                  "",
+                  " TWOX-NOTE: SAFE as `AccountId` is a crypto hash."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "votes",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Vote for a set of candidates for the upcoming round of election. This can be called to",
+                " set the initial votes, or update already existing votes.",
+                "",
+                " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is",
+                " reserved. The deposit is based on the number of votes and can be updated over time.",
+                "",
+                " The `votes` should:",
+                "   - not be empty.",
+                "   - be less than the number of possible candidates. Note that all current members and",
+                "     runners-up are also automatically candidates for the next round.",
+                "",
+                " If `value` is more than `who`'s total balance, then the maximum of the two is used.",
+                "",
+                " The dispatch origin of this call must be signed.",
+                "",
+                " ### Warning",
+                "",
+                " It is the responsibility of the caller to **NOT** place all of their balance into the",
+                " lock and keep some for further operations.",
+                "",
+                " # <weight>",
+                " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_voter",
+              "args": [],
+              "docs": [
+                " Remove `origin` as a voter.",
+                "",
+                " This removes the lock and returns the deposit.",
+                "",
+                " The dispatch origin of this call must be signed and be a voter."
+              ]
+            },
+            {
+              "name": "submit_candidacy",
+              "args": [
+                {
+                  "name": "candidate_count",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Submit oneself for candidacy. A fixed amount of deposit is recorded.",
+                "",
+                " All candidates are wiped at the end of the term. They either become a member/runner-up,",
+                " or leave the system while their deposit is slashed.",
+                "",
+                " The dispatch origin of this call must be signed.",
+                "",
+                " ### Warning",
+                "",
+                " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]",
+                " to get their deposit back. Losing the spot in an election will always lead to a slash.",
+                "",
+                " # <weight>",
+                " The number of current candidates must be provided as witness data.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "renounce_candidacy",
+              "args": [
+                {
+                  "name": "renouncing",
+                  "type": "Renouncing"
+                }
+              ],
+              "docs": [
+                " Renounce one's intention to be a candidate for the next election round. 3 potential",
+                " outcomes exist:",
+                "",
+                " - `origin` is a candidate and not elected in any set. In this case, the deposit is",
+                "   unreserved, returned and origin is removed as a candidate.",
+                " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and",
+                "   origin is removed as a runner-up.",
+                " - `origin` is a current member. In this case, the deposit is unreserved and origin is",
+                "   removed as a member, consequently not being a candidate for the next round anymore.",
+                "   Similar to [`remove_member`](Self::remove_member), if replacement runners exists,",
+                "   they are immediately used. If the prime is renouncing, then no prime will exist until",
+                "   the next round.",
+                "",
+                " The dispatch origin of this call must be signed, and have one of the above roles.",
+                "",
+                " # <weight>",
+                " The type of renouncing must be provided as witness data.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "has_replacement",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Remove a particular member from the set. This is effective immediately and the bond of",
+                " the outgoing member is slashed.",
+                "",
+                " If a runner-up is available, then the best runner-up will be removed and replaces the",
+                " outgoing member. Otherwise, a new phragmen election is started.",
+                "",
+                " The dispatch origin of this call must be root.",
+                "",
+                " Note that this does not affect the designated block number of the next election.",
+                "",
+                " # <weight>",
+                " If we have a replacement, we use a small weight. Else, since this is a root call and",
+                " will go into phragmen, we assume full block for now.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clean_defunct_voters",
+              "args": [
+                {
+                  "name": "_num_voters",
+                  "type": "u32"
+                },
+                {
+                  "name": "_num_defunct",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Clean all voters who are defunct (i.e. they do not serve any purpose at all). The",
+                " deposit of the removed voters are returned.",
+                "",
+                " This is an root function to be used only for cleaning the state.",
+                "",
+                " The dispatch origin of this call must be root.",
+                "",
+                " # <weight>",
+                " The total number of voters and those that are defunct must be provided as witness data.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewTerm",
+              "args": [
+                "Vec<(AccountId,Balance)>"
+              ],
+              "docs": [
+                " A new term with \\[new_members\\]. This indicates that enough candidates existed to run",
+                " the election, not that enough have has been elected. The inner value must be examined",
+                " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond",
+                " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to",
+                " begin with."
+              ]
+            },
+            {
+              "name": "EmptyTerm",
+              "args": [],
+              "docs": [
+                " No (or not enough) candidates existed for this round. This is different from",
+                " `NewTerm(\\[\\])`. See the description of `NewTerm`."
+              ]
+            },
+            {
+              "name": "ElectionError",
+              "args": [],
+              "docs": [
+                " Internal error happened while trying to perform election."
+              ]
+            },
+            {
+              "name": "MemberKicked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[member\\] has been removed. This should always be followed by either `NewTerm` or",
+                " `EmptyTerm`."
+              ]
+            },
+            {
+              "name": "Renounced",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Someone has renounced their candidacy."
+              ]
+            },
+            {
+              "name": "CandidateSlashed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or",
+                " runner-up.",
+                "",
+                " Note that old members and runners-up are also candidates."
+              ]
+            },
+            {
+              "name": "SeatHolderSlashed",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "PalletId",
+              "type": "LockIdentifier",
+              "value": "0x706872656c656374",
+              "docs": [
+                " Identifier for the elections-phragmen pallet's lock"
+              ]
+            },
+            {
+              "name": "CandidacyBond",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " How much should be locked up in order to submit one's candidacy."
+              ]
+            },
+            {
+              "name": "VotingBondBase",
+              "type": "BalanceOf",
+              "value": "0x00f0436de36a01000000000000000000",
+              "docs": [
+                " Base deposit associated with voting.",
+                "",
+                " This should be sensibly high to economically ensure the pallet cannot be attacked by",
+                " creating a gigantic number of votes."
+              ]
+            },
+            {
+              "name": "VotingBondFactor",
+              "type": "BalanceOf",
+              "value": "0x0000cc7b9fae00000000000000000000",
+              "docs": [
+                " The amount of bond that need to be locked for each vote (32 bytes)."
+              ]
+            },
+            {
+              "name": "DesiredMembers",
+              "type": "u32",
+              "value": "0x0d000000",
+              "docs": [
+                " Number of members to elect."
+              ]
+            },
+            {
+              "name": "DesiredRunnersUp",
+              "type": "u32",
+              "value": "0x07000000",
+              "docs": [
+                " Number of runners_up to keep."
+              ]
+            },
+            {
+              "name": "TermDuration",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": [
+                " How long each seat is kept. This defines the next block number at which an election",
+                " round will happen. If set to zero, no elections are ever triggered and the module will",
+                " be in passive mode."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "UnableToVote",
+              "docs": [
+                " Cannot vote when no candidates or members exist."
+              ]
+            },
+            {
+              "name": "NoVotes",
+              "docs": [
+                " Must vote for at least one candidate."
+              ]
+            },
+            {
+              "name": "TooManyVotes",
+              "docs": [
+                " Cannot vote more than candidates."
+              ]
+            },
+            {
+              "name": "MaximumVotesExceeded",
+              "docs": [
+                " Cannot vote more than maximum allowed."
+              ]
+            },
+            {
+              "name": "LowBalance",
+              "docs": [
+                " Cannot vote with stake less than minimum balance."
+              ]
+            },
+            {
+              "name": "UnableToPayBond",
+              "docs": [
+                " Voter can not pay voting bond."
+              ]
+            },
+            {
+              "name": "MustBeVoter",
+              "docs": [
+                " Must be a voter."
+              ]
+            },
+            {
+              "name": "ReportSelf",
+              "docs": [
+                " Cannot report self."
+              ]
+            },
+            {
+              "name": "DuplicatedCandidate",
+              "docs": [
+                " Duplicated candidate submission."
+              ]
+            },
+            {
+              "name": "MemberSubmit",
+              "docs": [
+                " Member cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "RunnerUpSubmit",
+              "docs": [
+                " Runner cannot re-submit candidacy."
+              ]
+            },
+            {
+              "name": "InsufficientCandidateFunds",
+              "docs": [
+                " Candidate does not have enough funds."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " Not a member."
+              ]
+            },
+            {
+              "name": "InvalidWitnessData",
+              "docs": [
+                " The provided count of number of candidates is incorrect."
+              ]
+            },
+            {
+              "name": "InvalidVoteCount",
+              "docs": [
+                " The provided count of number of votes is incorrect."
+              ]
+            },
+            {
+              "name": "InvalidRenouncing",
+              "docs": [
+                " The renouncing origin presented a wrong `Renouncing` parameter."
+              ]
+            },
+            {
+              "name": "InvalidReplacement",
+              "docs": [
+                " Prediction regarding replacement after member removal is wrong."
+              ]
+            }
+          ],
+          "index": 14
+        },
+        {
+          "name": "TechnicalMembership",
+          "storage": {
+            "prefix": "Instance1Membership",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current membership, stored as an ordered Vec."
+                ]
+              },
+              {
+                "name": "Prime",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current prime member, if one exists."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a member `who` to the set.",
+                "",
+                " May only be called from `T::AddOrigin`."
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Remove a member `who` from the set.",
+                "",
+                " May only be called from `T::RemoveOrigin`."
+              ]
+            },
+            {
+              "name": "swap_member",
+              "args": [
+                {
+                  "name": "remove",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "add",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out one member `remove` for another `add`.",
+                "",
+                " May only be called from `T::SwapOrigin`.",
+                "",
+                " Prime membership is *not* passed from `remove` to `add`, if extant."
+              ]
+            },
+            {
+              "name": "reset_members",
+              "args": [
+                {
+                  "name": "members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Change the membership to a new set, disregarding the existing membership. Be nice and",
+                " pass `members` pre-sorted.",
+                "",
+                " May only be called from `T::ResetOrigin`."
+              ]
+            },
+            {
+              "name": "change_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out the sending member for some other key `new`.",
+                "",
+                " May only be called from `Signed` origin of a current member.",
+                "",
+                " Prime membership is passed from the origin account to `new`, if extant."
+              ]
+            },
+            {
+              "name": "set_prime",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Set the prime member. Must be a current member.",
+                "",
+                " May only be called from `T::PrimeOrigin`."
+              ]
+            },
+            {
+              "name": "clear_prime",
+              "args": [],
+              "docs": [
+                " Remove the prime member if it exists.",
+                "",
+                " May only be called from `T::PrimeOrigin`."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "MemberAdded",
+              "args": [],
+              "docs": [
+                " The given member was added; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MemberRemoved",
+              "args": [],
+              "docs": [
+                " The given member was removed; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersSwapped",
+              "args": [],
+              "docs": [
+                " Two members were swapped; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersReset",
+              "args": [],
+              "docs": [
+                " The membership was reset; see the transaction for who the new set is."
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [],
+              "docs": [
+                " One of the members' keys changed."
+              ]
+            },
+            {
+              "name": "Dummy",
+              "args": [
+                "PhantomData"
+              ],
+              "docs": [
+                " Phantom member, never used."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "AlreadyMember",
+              "docs": [
+                " Already a member."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " Not a member."
+              ]
+            }
+          ],
+          "index": 15
+        },
+        {
+          "name": "Grandpa",
+          "storage": {
+            "prefix": "Grandpa",
+            "items": [
+              {
+                "name": "State",
+                "modifier": "Default",
+                "type": {
+                  "plain": "StoredState"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " State of the current authority set."
+                ]
+              },
+              {
+                "name": "PendingChange",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "StoredPendingChange"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending change: (signaled at, scheduled change)."
+                ]
+              },
+              {
+                "name": "NextForced",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " next block number where we can force a change."
+                ]
+              },
+              {
+                "name": "Stalled",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(BlockNumber,BlockNumber)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " `true` if we are currently stalled."
+                ]
+              },
+              {
+                "name": "CurrentSetId",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SetId"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The number of changes (both in terms of keys and underlying economic responsibilities)",
+                  " in the \"set\" of Grandpa validators from genesis."
+                ]
+              },
+              {
+                "name": "SetIdSession",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "SetId",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from grandpa set ID to the index of the *most recent* session for which its",
+                  " members were responsible.",
+                  "",
+                  " TWOX-NOTE: `SetId` is not under user control."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_equivocation",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "GrandpaEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report voter equivocation/misbehavior. This method will verify the",
+                " equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence",
+                " will be reported."
+              ]
+            },
+            {
+              "name": "report_equivocation_unsigned",
+              "args": [
+                {
+                  "name": "equivocation_proof",
+                  "type": "GrandpaEquivocationProof"
+                },
+                {
+                  "name": "key_owner_proof",
+                  "type": "KeyOwnerProof"
+                }
+              ],
+              "docs": [
+                " Report voter equivocation/misbehavior. This method will verify the",
+                " equivocation proof and validate the given key ownership proof",
+                " against the extracted offender. If both are valid, the offence",
+                " will be reported.",
+                "",
+                " This extrinsic must be called unsigned and it is expected that only",
+                " block authors will call it (validated in `ValidateUnsigned`), as such",
+                " if the block author is defined it will be defined as the equivocation",
+                " reporter."
+              ]
+            },
+            {
+              "name": "note_stalled",
+              "args": [
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "best_finalized_block_number",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Note that the current authority set of the GRANDPA finality gadget has",
+                " stalled. This will trigger a forced authority set change at the beginning",
+                " of the next session, to be enacted `delay` blocks after that. The delay",
+                " should be high enough to safely assume that the block signalling the",
+                " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters",
+                " will start the new authority set using the given finalized block as base.",
+                " Only callable by root."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewAuthorities",
+              "args": [
+                "AuthorityList"
+              ],
+              "docs": [
+                " New authority set has been applied. \\[authority_set\\]"
+              ]
+            },
+            {
+              "name": "Paused",
+              "args": [],
+              "docs": [
+                " Current authority set has been paused."
+              ]
+            },
+            {
+              "name": "Resumed",
+              "args": [],
+              "docs": [
+                " Current authority set has been resumed."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "PauseFailed",
+              "docs": [
+                " Attempt to signal GRANDPA pause when the authority set isn't live",
+                " (either paused or already pending pause)."
+              ]
+            },
+            {
+              "name": "ResumeFailed",
+              "docs": [
+                " Attempt to signal GRANDPA resume when the authority set isn't paused",
+                " (either live or already pending resume)."
+              ]
+            },
+            {
+              "name": "ChangePending",
+              "docs": [
+                " Attempt to signal GRANDPA change with one already pending."
+              ]
+            },
+            {
+              "name": "TooSoon",
+              "docs": [
+                " Cannot signal forced change so soon after last."
+              ]
+            },
+            {
+              "name": "InvalidKeyOwnershipProof",
+              "docs": [
+                " A key ownership proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "InvalidEquivocationProof",
+              "docs": [
+                " An equivocation proof provided as part of an equivocation report is invalid."
+              ]
+            },
+            {
+              "name": "DuplicateOffenceReport",
+              "docs": [
+                " A given equivocation report is valid but already previously reported."
+              ]
+            }
+          ],
+          "index": 16
+        },
+        {
+          "name": "Treasury",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ProposalIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Number of proposals that have been made."
+                ]
+              },
+              {
+                "name": "Proposals",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ProposalIndex",
+                    "value": "TreasuryProposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposals that have been made."
+                ]
+              },
+              {
+                "name": "Approvals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ProposalIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposal indices that have been approved but not yet awarded."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose_spend",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Put forward a suggestion for spending. A deposit proportional to the value",
+                " is reserved and slashed if the proposal is rejected. It is returned once the",
+                " proposal is awarded.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1)",
+                " - DbReads: `ProposalCount`, `origin account`",
+                " - DbWrites: `ProposalCount`, `Proposals`, `origin account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Reject a proposed spend. The original deposit will be slashed.",
+                "",
+                " May only be called from `T::RejectOrigin`.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1)",
+                " - DbReads: `Proposals`, `rejected proposer account`",
+                " - DbWrites: `Proposals`, `rejected proposer account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
+                " and the original deposit will be returned.",
+                "",
+                " May only be called from `T::ApproveOrigin`.",
+                "",
+                " # <weight>",
+                " - Complexity: O(1).",
+                " - DbReads: `Proposals`, `Approvals`",
+                " - DbWrite: `Approvals`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "ProposalIndex"
+              ],
+              "docs": [
+                " New proposal. \\[proposal_index\\]"
+              ]
+            },
+            {
+              "name": "Spending",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " We have ended a spend period and will now allocate funds. \\[budget_remaining\\]"
+              ]
+            },
+            {
+              "name": "Awarded",
+              "args": [
+                "ProposalIndex",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " Some funds have been allocated. \\[proposal_index, award, beneficiary\\]"
+              ]
+            },
+            {
+              "name": "Rejected",
+              "args": [
+                "ProposalIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]"
+              ]
+            },
+            {
+              "name": "Burnt",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some of our funds have been burnt. \\[burn\\]"
+              ]
+            },
+            {
+              "name": "Rollover",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Spending has finished; this is the amount that rolls over until next spend.",
+                " \\[budget_remaining\\]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds have been deposited. \\[deposit\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProposalBond",
+              "type": "Permill",
+              "value": "0x50c30000",
+              "docs": [
+                " Fraction of a proposal's value that should be bonded in order to place the proposal.",
+                " An accepted proposal gets these back. A rejected proposal does not."
+              ]
+            },
+            {
+              "name": "ProposalBondMinimum",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Minimum amount of funds that should be placed in a deposit for making a proposal."
+              ]
+            },
+            {
+              "name": "SpendPeriod",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " Period between successive spends."
+              ]
+            },
+            {
+              "name": "Burn",
+              "type": "Permill",
+              "value": "0x20a10700",
+              "docs": [
+                " Percentage of spare funds (if any) that are burnt per spend period."
+              ]
+            },
+            {
+              "name": "PalletId",
+              "type": "PalletId",
+              "value": "0x70792f7472737279",
+              "docs": [
+                " The treasury's pallet id, used for deriving its sovereign account ID."
+              ]
+            },
+            {
+              "name": "MaxApprovals",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of approvals that can wait in the spending queue."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InsufficientProposersBalance",
+              "docs": [
+                " Proposer's balance is too low."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " No proposal or bounty at that index."
+              ]
+            },
+            {
+              "name": "TooManyApprovals",
+              "docs": [
+                " Too many approvals in the queue."
+              ]
+            }
+          ],
+          "index": 17
+        },
+        {
+          "name": "Contracts",
+          "storage": {
+            "prefix": "Contracts",
+            "items": [
+              {
+                "name": "PristineCode",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "CodeHash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from an original code hash to the original code, untouched by instrumentation."
+                ]
+              },
+              {
+                "name": "CodeStorage",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "CodeHash",
+                    "value": "PrefabWasmModule",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping between an original code hash and instrumented wasm code, ready for execution."
+                ]
+              },
+              {
+                "name": "AccountCounter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The subtrie counter."
+                ]
+              },
+              {
+                "name": "ContractInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "ContractInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The code associated with a given account.",
+                  "",
+                  " TWOX-NOTE: SAFE since `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "DeletionQueue",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<DeletedContract>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Evicted contracts that await child trie deletion.",
+                  "",
+                  " Child trie deletion is a heavy operation depending on the amount of storage items",
+                  " stored in said trie. Therefore this operation is performed lazily in `on_initialize`."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "call",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Makes a call to an account, optionally transferring some balance.",
+                "",
+                " * If the account is a smart-contract account, the associated code will be",
+                " executed and any value will be transferred.",
+                " * If the account is a regular account, any value will be transferred.",
+                " * If no account exists and the call value is not less than `existential_deposit`,",
+                " a regular account will be created and any value will be transferred."
+              ]
+            },
+            {
+              "name": "instantiate_with_code",
+              "args": [
+                {
+                  "name": "endowment",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "salt",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Instantiates a new contract from the supplied `code` optionally transferring",
+                " some balance.",
+                "",
+                " This is the only function that can deploy new code to the chain.",
+                "",
+                " # Parameters",
+                "",
+                " * `endowment`: The balance to transfer from the `origin` to the newly created contract.",
+                " * `gas_limit`: The gas limit enforced when executing the constructor.",
+                " * `code`: The contract code to deploy in raw bytes.",
+                " * `data`: The input data to pass to the contract constructor.",
+                " * `salt`: Used for the address derivation. See [`Pallet::contract_address`].",
+                "",
+                " Instantiation is executed as follows:",
+                "",
+                " - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.",
+                " - If the `code_hash` already exists on the chain the underlying `code` will be shared.",
+                " - The destination address is computed based on the sender, code_hash and the salt.",
+                " - The smart-contract account is created at the computed address.",
+                " - The `endowment` is transferred to the new account.",
+                " - The `deploy` function is executed in the context of the newly-created account."
+              ]
+            },
+            {
+              "name": "instantiate",
+              "args": [
+                {
+                  "name": "endowment",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Weight>"
+                },
+                {
+                  "name": "code_hash",
+                  "type": "CodeHash"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "salt",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Instantiates a contract from a previously deployed wasm binary.",
+                "",
+                " This function is identical to [`Self::instantiate_with_code`] but without the",
+                " code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary",
+                " must be supplied."
+              ]
+            },
+            {
+              "name": "claim_surcharge",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "aux_sender",
+                  "type": "Option<AccountId>"
+                }
+              ],
+              "docs": [
+                " Allows block producers to claim a small reward for evicting a contract. If a block",
+                " producer fails to do so, a regular users will be allowed to claim the reward.",
+                "",
+                " In case of a successful eviction no fees are charged from the sender. However, the",
+                " reward is capped by the total amount of rent that was paid by the contract while",
+                " it was alive.",
+                "",
+                " If contract is not evicted as a result of this call, [`Error::ContractNotEvictable`]",
+                " is returned and the sender is not eligible for the reward."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Instantiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Contract deployed by address at the specified address. \\[deployer, contract\\]"
+              ]
+            },
+            {
+              "name": "Evicted",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Contract has been evicted and is now in tombstone state. \\[contract\\]"
+              ]
+            },
+            {
+              "name": "Terminated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Contract has been terminated without leaving a tombstone.",
+                " \\[contract, beneficiary\\]",
+                "",
+                " # Params",
+                "",
+                " - `contract`: The contract that was terminated.",
+                " - `beneficiary`: The account that received the contracts remaining balance.",
+                "",
+                " # Note",
+                "",
+                " The only way for a contract to be removed without a tombstone and emitting",
+                " this event is by calling `seal_terminate`."
+              ]
+            },
+            {
+              "name": "Restored",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Hash",
+                "Balance"
+              ],
+              "docs": [
+                " Restoration of a contract has been successful.",
+                " \\[restorer, dest, code_hash, rent_allowance\\]",
+                "",
+                " # Params",
+                "",
+                " - `restorer`: Account ID of the restoring contract.",
+                " - `dest`: Account ID of the restored contract.",
+                " - `code_hash`: Code hash of the restored contract.",
+                " - `rent_allowance`: Rent allowance of the restored contract."
+              ]
+            },
+            {
+              "name": "CodeStored",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " Code with the specified hash has been stored. \\[code_hash\\]"
+              ]
+            },
+            {
+              "name": "ScheduleUpdated",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " Triggered when the current schedule is updated.",
+                " \\[version\\]",
+                "",
+                " # Params",
+                "",
+                " - `version`: The version of the newly set schedule."
+              ]
+            },
+            {
+              "name": "ContractEmitted",
+              "args": [
+                "AccountId",
+                "Bytes"
+              ],
+              "docs": [
+                " A custom event emitted by the contract.",
+                " \\[contract, data\\]",
+                "",
+                " # Params",
+                "",
+                " - `contract`: The contract that emitted the event.",
+                " - `data`: Data supplied by the contract. Metadata generated during contract",
+                "           compilation is needed to decode it."
+              ]
+            },
+            {
+              "name": "CodeRemoved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A code with the specified hash was removed.",
+                " \\[code_hash\\]",
+                "",
+                " This happens when the last contract that uses this code hash was removed or evicted."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "Schedule",
+              "type": "Schedule",
+              "value": "0x0400000000020000000100008000000010000000001000000001000020000000200000000040000000000200020000008e0f0000b04602009a8c0300a9720000767600005e380000ea5e00000753000097000000579e030088130500b60000007a170000c11100005721000099370000483a0000d0110000d8d12c08bc4300005c430000bb2e0000a942000000260000b72300009c370000ad540000de540000ca5400000354000018550000e553000011550000c053000007540000da540000a0530000e85300008d5400004a690000bd680000a56a000096670000b053000013540000055400006a5500009255000060550000f455000033550000cae32900000000007a332a00000000004041290000000000a6fb5d000000000060c02a0000000000e6d6290000000000065329000000000062002a0000000000d425290000000000b0522a00000000005cb3540000000000b41c1600000000008057640000000000000100000000000008f6380000000000710200000000000078d68a210000000098d6de2a000000007c75640900000000466d6f000000000070baac0000000000ec73de07000000007406000000000000922c190000000000fc9f1d00000000008618ee0900000000450200000000000082dc6108000000003e573102000000002704000000000000cc94430b000000009406e1100000000096fa930800000000dc010000000000009c020000000000001843c12400000000f001000000000000b80200000000000094070000000000008a9b2a0000000000561200000000000046432b0000000000ab0c000000000000c08c260000000000b005000000000000acd2260000000000b005000000000000",
+              "docs": [
+                " Cost schedule and limits."
+              ]
+            },
+            {
+              "name": "SignedClaimHandicap",
+              "type": "BlockNumber",
+              "value": "0x02000000",
+              "docs": [
+                " Number of block delay an extrinsic claim surcharge has.",
+                "",
+                " When claim surcharge is called by an extrinsic the rent is checked",
+                " for current_block - delay"
+              ]
+            },
+            {
+              "name": "TombstoneDeposit",
+              "type": "BalanceOf",
+              "value": "0x00f0e8857a9c02000000000000000000",
+              "docs": [
+                " The minimum amount required to generate a tombstone."
+              ]
+            },
+            {
+              "name": "DepositPerContract",
+              "type": "BalanceOf",
+              "value": "0x00f0e8857a9c02000000000000000000",
+              "docs": [
+                " The balance every contract needs to deposit to stay alive indefinitely.",
+                "",
+                " This is different from the [`Self::TombstoneDeposit`] because this only needs to be",
+                " deposited while the contract is alive. Costs for additional storage are added to",
+                " this base cost.",
+                "",
+                " This is a simple way to ensure that contracts with empty storage eventually get deleted by",
+                " making them pay rent. This creates an incentive to remove them early in order to save rent."
+              ]
+            },
+            {
+              "name": "DepositPerStorageByte",
+              "type": "BalanceOf",
+              "value": "0x0060defb740500000000000000000000",
+              "docs": [
+                " The balance a contract needs to deposit per storage byte to stay alive indefinitely.",
+                "",
+                " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,",
+                " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.",
+                " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,",
+                " then it would pay 500 BU/day."
+              ]
+            },
+            {
+              "name": "DepositPerStorageItem",
+              "type": "BalanceOf",
+              "value": "0x00f0ab75a40d00000000000000000000",
+              "docs": [
+                " The balance a contract needs to deposit per storage item to stay alive indefinitely.",
+                "",
+                " It works the same as [`Self::DepositPerStorageByte`] but for storage items."
+              ]
+            },
+            {
+              "name": "RentFraction",
+              "type": "Perbill",
+              "value": "0x85040000",
+              "docs": [
+                " The fraction of the deposit that should be used as rent per block.",
+                "",
+                " When a contract hasn't enough balance deposited to stay alive indefinitely it needs",
+                " to pay per block for the storage it consumes that is not covered by the deposit.",
+                " This determines how high this rent payment is per block as a fraction of the deposit."
+              ]
+            },
+            {
+              "name": "SurchargeReward",
+              "type": "BalanceOf",
+              "value": "0x005cb2ec220000000000000000000000",
+              "docs": [
+                " Reward that is received by the party whose touch has led",
+                " to removal of a contract."
+              ]
+            },
+            {
+              "name": "DeletionQueueDepth",
+              "type": "u32",
+              "value": "0x1a040000",
+              "docs": [
+                " The maximum number of tries that can be queued for deletion."
+              ]
+            },
+            {
+              "name": "DeletionWeightLimit",
+              "type": "Weight",
+              "value": "0x00d0ed902e000000",
+              "docs": [
+                " The maximum amount of weight that can be consumed per block for lazy trie removal."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidScheduleVersion",
+              "docs": [
+                " A new schedule must have a greater version than the current one."
+              ]
+            },
+            {
+              "name": "InvalidSurchargeClaim",
+              "docs": [
+                " An origin must be signed or inherent and auxiliary sender only provided on inherent."
+              ]
+            },
+            {
+              "name": "InvalidSourceContract",
+              "docs": [
+                " Cannot restore from nonexisting or tombstone contract."
+              ]
+            },
+            {
+              "name": "InvalidDestinationContract",
+              "docs": [
+                " Cannot restore to nonexisting or alive contract."
+              ]
+            },
+            {
+              "name": "InvalidTombstone",
+              "docs": [
+                " Tombstones don't match."
+              ]
+            },
+            {
+              "name": "InvalidContractOrigin",
+              "docs": [
+                " An origin TrieId written in the current block."
+              ]
+            },
+            {
+              "name": "OutOfGas",
+              "docs": [
+                " The executed contract exhausted its gas limit."
+              ]
+            },
+            {
+              "name": "OutputBufferTooSmall",
+              "docs": [
+                " The output buffer supplied to a contract API call was too small."
+              ]
+            },
+            {
+              "name": "BelowSubsistenceThreshold",
+              "docs": [
+                " Performing the requested transfer would have brought the contract below",
+                " the subsistence threshold. No transfer is allowed to do this in order to allow",
+                " for a tombstone to be created. Use `seal_terminate` to remove a contract without",
+                " leaving a tombstone behind."
+              ]
+            },
+            {
+              "name": "NewContractNotFunded",
+              "docs": [
+                " The newly created contract is below the subsistence threshold after executing",
+                " its contructor. No contracts are allowed to exist below that threshold."
+              ]
+            },
+            {
+              "name": "TransferFailed",
+              "docs": [
+                " Performing the requested transfer failed for a reason originating in the",
+                " chosen currency implementation of the runtime. Most probably the balance is",
+                " too low or locks are placed on it."
+              ]
+            },
+            {
+              "name": "MaxCallDepthReached",
+              "docs": [
+                " Performing a call was denied because the calling depth reached the limit",
+                " of what is specified in the schedule."
+              ]
+            },
+            {
+              "name": "ContractNotFound",
+              "docs": [
+                " No contract was found at the specified address."
+              ]
+            },
+            {
+              "name": "ContractIsTombstone",
+              "docs": [
+                " A tombstone exist at the specified address.",
+                "",
+                " Tombstone cannot be called. Anyone can use `seal_restore_to` in order to revive",
+                " the contract, though."
+              ]
+            },
+            {
+              "name": "RentNotPaid",
+              "docs": [
+                " The called contract does not have enough balance to pay for its storage.",
+                "",
+                " The contract ran out of balance and is therefore eligible for eviction into a",
+                " tombstone. Anyone can evict the contract by submitting a `claim_surcharge`",
+                " extrinsic. Alternatively, a plain balance transfer can be used in order to",
+                " increase the contracts funds so that it can be called again."
+              ]
+            },
+            {
+              "name": "CodeTooLarge",
+              "docs": [
+                " The code supplied to `instantiate_with_code` exceeds the limit specified in the",
+                " current schedule."
+              ]
+            },
+            {
+              "name": "CodeNotFound",
+              "docs": [
+                " No code could be found at the supplied code hash."
+              ]
+            },
+            {
+              "name": "OutOfBounds",
+              "docs": [
+                " A buffer outside of sandbox memory was passed to a contract API function."
+              ]
+            },
+            {
+              "name": "DecodingFailed",
+              "docs": [
+                " Input passed to a contract API function failed to decode as expected type."
+              ]
+            },
+            {
+              "name": "ContractTrapped",
+              "docs": [
+                " Contract trapped during execution."
+              ]
+            },
+            {
+              "name": "ValueTooLarge",
+              "docs": [
+                " The size defined in `T::MaxValueSize` was exceeded."
+              ]
+            },
+            {
+              "name": "TerminatedWhileReentrant",
+              "docs": [
+                " Termination of a contract is not allowed while the contract is already",
+                " on the call stack. Can be triggered by `seal_terminate` or `seal_restore_to."
+              ]
+            },
+            {
+              "name": "InputForwarded",
+              "docs": [
+                " `seal_call` forwarded this contracts input. It therefore is no longer available."
+              ]
+            },
+            {
+              "name": "RandomSubjectTooLong",
+              "docs": [
+                " The subject passed to `seal_random` exceeds the limit."
+              ]
+            },
+            {
+              "name": "TooManyTopics",
+              "docs": [
+                " The amount of topics passed to `seal_deposit_events` exceeds the limit."
+              ]
+            },
+            {
+              "name": "DuplicateTopics",
+              "docs": [
+                " The topics passed to `seal_deposit_events` contains at least one duplicate."
+              ]
+            },
+            {
+              "name": "NoChainExtension",
+              "docs": [
+                " The chain does not provide a chain extension. Calling the chain extension results",
+                " in this error. Note that this usually  shouldn't happen as deploying such contracts",
+                " is rejected."
+              ]
+            },
+            {
+              "name": "DeletionQueueFull",
+              "docs": [
+                " Removal of a contract failed because the deletion queue is full.",
+                "",
+                " This can happen when either calling [`Pallet::claim_surcharge`] or `seal_terminate`.",
+                " The queue is filled by deleting contracts and emptied by a fixed amount each block.",
+                " Trying again during another block is the only way to resolve this issue."
+              ]
+            },
+            {
+              "name": "ContractNotEvictable",
+              "docs": [
+                " A contract could not be evicted because it has enough balance to pay rent.",
+                "",
+                " This can be returned from [`Pallet::claim_surcharge`] because the target",
+                " contract has enough balance to pay for its rent."
+              ]
+            },
+            {
+              "name": "StorageExhausted",
+              "docs": [
+                " A storage modification exhausted the 32bit type that holds the storage size.",
+                "",
+                " This can either happen when the accumulated storage in bytes is too large or",
+                " when number of storage items is too large."
+              ]
+            },
+            {
+              "name": "DuplicateContract",
+              "docs": [
+                " A contract with the same AccountId already exists."
+              ]
+            },
+            {
+              "name": "TerminatedInConstructor",
+              "docs": [
+                " A contract self destructed in its constructor.",
+                "",
+                " This can be triggered by a call to `seal_terminate` or `seal_restore_to`."
+              ]
+            },
+            {
+              "name": "DebugMessageInvalidUTF8",
+              "docs": [
+                " The debug message specified to `seal_debug_message` does contain invalid UTF-8."
+              ]
+            },
+            {
+              "name": "ReentranceDenied",
+              "docs": [
+                " A call tried to invoke a contract that is flagged as non-reentrant."
+              ]
+            }
+          ],
+          "index": 18
+        },
+        {
+          "name": "Sudo",
+          "storage": {
+            "prefix": "Sudo",
+            "items": [
+              {
+                "name": "Key",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The `AccountId` of the sudo key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "sudo",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Weight of derivative `call` execution + 10,000.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_unchecked_weight",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                },
+                {
+                  "name": "_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                " This function does not check the weight of the call, and instead allows the",
+                " Sudo user to specify the weight of the call.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - The weight of this call is defined by the caller.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_as",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Signed` origin from",
+                " a given account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Weight of derivative `call` execution + 10,000.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Sudid",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A sudo just took place. \\[result\\]"
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The \\[sudoer\\] just switched identity; the old key is supplied."
+              ]
+            },
+            {
+              "name": "SudoAsDone",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A sudo just took place. \\[result\\]"
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "RequireSudo",
+              "docs": [
+                " Sender must be the Sudo account"
+              ]
+            }
+          ],
+          "index": 19
+        },
+        {
+          "name": "ImOnline",
+          "storage": {
+            "prefix": "ImOnline",
+            "items": [
+              {
+                "name": "HeartbeatAfter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The block number after which it's ok to send heartbeats in the current",
+                  " session.",
+                  "",
+                  " At the beginning of each session we set this to a value that should fall",
+                  " roughly in the middle of the session duration. The idea is to first wait for",
+                  " the validators to produce a block in the current session, so that the",
+                  " heartbeat later on will not be necessary.",
+                  "",
+                  " This value will only be used as a fallback if we fail to get a proper session",
+                  " progress estimate from `NextSessionRotation`, as those estimates should be",
+                  " more accurate then the value we calculate for `HeartbeatAfter`."
+                ]
+              },
+              {
+                "name": "Keys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AuthorityId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of keys that may issue a heartbeat."
+                ]
+              },
+              {
+                "name": "ReceivedHeartbeats",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "SessionIndex",
+                    "key2": "AuthIndex",
+                    "value": "Bytes",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " For each session index, we keep a mapping of `AuthIndex` to",
+                  " `offchain::OpaqueNetworkState`."
+                ]
+              },
+              {
+                "name": "AuthoredBlocks",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "SessionIndex",
+                    "key2": "ValidatorId",
+                    "value": "u32",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " For each session index, we keep a mapping of `ValidatorId<T>` to the",
+                  " number of blocks authored by the given authority."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "heartbeat",
+              "args": [
+                {
+                  "name": "heartbeat",
+                  "type": "Heartbeat"
+                },
+                {
+                  "name": "_signature",
+                  "type": "Signature"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)",
+                "   and E is length of `heartbeat.network_state.external_address`",
+                "   - `O(K)`: decoding of length `K`",
+                "   - `O(E)`: decoding/encoding of length `E`",
+                " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,",
+                "   `ReceivedHeartbeats`",
+                " - DbWrites: `ReceivedHeartbeats`",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "HeartbeatReceived",
+              "args": [
+                "AuthorityId"
+              ],
+              "docs": [
+                " A new heartbeat was received from `AuthorityId` \\[authority_id\\]"
+              ]
+            },
+            {
+              "name": "AllGood",
+              "args": [],
+              "docs": [
+                " At the end of the session, no offence was committed."
+              ]
+            },
+            {
+              "name": "SomeOffline",
+              "args": [
+                "Vec<IdentificationTuple>"
+              ],
+              "docs": [
+                " At the end of the session, at least one validator was found to be \\[offline\\]."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "UnsignedPriority",
+              "type": "TransactionPriority",
+              "value": "0xffffffffffffffff",
+              "docs": [
+                " A configuration for base priority of unsigned transactions.",
+                "",
+                " This is exposed so that it can be tuned for particular runtime, when",
+                " multiple pallets send unsigned transactions."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InvalidKey",
+              "docs": [
+                " Non existent public key."
+              ]
+            },
+            {
+              "name": "DuplicatedHeartbeat",
+              "docs": [
+                " Duplicated heartbeat."
+              ]
+            }
+          ],
+          "index": 20
+        },
+        {
+          "name": "AuthorityDiscovery",
+          "storage": null,
+          "calls": null,
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 21
+        },
+        {
+          "name": "Offences",
+          "storage": {
+            "prefix": "Offences",
+            "items": [
+              {
+                "name": "Reports",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "ReportIdOf",
+                    "value": "OffenceDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The primary structure that holds all offence records keyed by report identifiers."
+                ]
+              },
+              {
+                "name": "ConcurrentReportsIndex",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "Kind",
+                    "key2": "OpaqueTimeSlot",
+                    "value": "Vec<ReportIdOf>",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A vector of reports of the same kind that happened at the same time slot."
+                ]
+              },
+              {
+                "name": "ReportsByKindIndex",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Kind",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Enumerates all reports of a kind along with the time they happened.",
+                  "",
+                  " All reports are sorted by the time of offence.",
+                  "",
+                  " Note that the actual type of this mapping is `Vec<u8>`, this is because values of",
+                  " different types are not supported at the moment so we are doing the manual serialization."
+                ]
+              }
+            ]
+          },
+          "calls": null,
+          "events": [
+            {
+              "name": "Offence",
+              "args": [
+                "Kind",
+                "OpaqueTimeSlot"
+              ],
+              "docs": [
+                " There is an offence reported of the given `kind` happened at the `session_index` and",
+                " (kind-specific) time slot. This event is not deposited for duplicate slashes.",
+                " \\[kind, timeslot\\]."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [],
+          "index": 22
+        },
+        {
+          "name": "Historical",
+          "storage": null,
+          "calls": null,
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 23
+        },
+        {
+          "name": "RandomnessCollectiveFlip",
+          "storage": {
+            "prefix": "RandomnessCollectiveFlip",
+            "items": [
+              {
+                "name": "RandomMaterial",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Series of block headers from the last 81 blocks that acts as random seed material. This",
+                  " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of",
+                  " the oldest hash."
+                ]
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 24
+        },
+        {
+          "name": "Identity",
+          "storage": {
+            "prefix": "Identity",
+            "items": [
+              {
+                "name": "IdentityOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Registration",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information that is pertinent to identify the entity behind an account.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "SuperOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "(AccountId,Data)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The super-identity of an alternative \"sub\" identity together with its name, within that",
+                  " context. If the account is not some other account's sub-identity, then just `None`."
+                ]
+              },
+              {
+                "name": "SubsOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " Alternative \"sub\" identities of this account.",
+                  "",
+                  " The first item is the deposit, the second is a vector of the accounts.",
+                  "",
+                  " TWOX-NOTE: OK ― `AccountId` is a secure hash."
+                ]
+              },
+              {
+                "name": "Registrars",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Option<RegistrarInfo>>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of registrars. Not expected to get very big as can only be added through a",
+                  " special origin (likely a council motion).",
+                  "",
+                  " The index into this can be cast to `RegistrarIndex` to get a valid value."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_registrar",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a registrar to the system.",
+                "",
+                " The dispatch origin for this call must be `T::RegistrarOrigin`.",
+                "",
+                " - `account`: the account of the registrar.",
+                "",
+                " Emits `RegistrarAdded` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).",
+                " - One storage mutation (codec `O(R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_identity",
+              "args": [
+                {
+                  "name": "info",
+                  "type": "IdentityInfo"
+                }
+              ],
+              "docs": [
+                " Set an account's identity information and reserve the appropriate deposit.",
+                "",
+                " If the account already has identity information, the deposit is taken as part payment",
+                " for the new deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `info`: The identity information.",
+                "",
+                " Emits `IdentitySet` if successful.",
+                "",
+                " # <weight>",
+                " - `O(X + X' + R)`",
+                "   - where `X` additional-field-count (deposit-bounded and code-bounded)",
+                "   - where `R` judgements-count (registrar-count-bounded)",
+                " - One balance reserve operation.",
+                " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_subs",
+              "args": [
+                {
+                  "name": "subs",
+                  "type": "Vec<(AccountId,Data)>"
+                }
+              ],
+              "docs": [
+                " Set the sub-accounts of the sender.",
+                "",
+                " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned",
+                " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " - `subs`: The identity's (new) sub-accounts.",
+                "",
+                " # <weight>",
+                " - `O(P + S)`",
+                "   - where `P` old-subs-count (hard- and deposit-bounded).",
+                "   - where `S` subs-count (hard- and deposit-bounded).",
+                " - At most one balance operations.",
+                " - DB:",
+                "   - `P + S` storage mutations (codec complexity `O(1)`)",
+                "   - One storage read (codec complexity `O(P)`).",
+                "   - One storage write (codec complexity `O(S)`).",
+                "   - One storage-exists (`IdentityOf::contains_key`).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_identity",
+              "args": [],
+              "docs": [
+                " Clear an account's identity info and all sub-accounts and return all deposits.",
+                "",
+                " Payment: All reserved balances on the account are returned.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " identity.",
+                "",
+                " Emits `IdentityCleared` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`",
+                "   - where `R` registrar-count (governance-bounded).",
+                "   - where `S` subs-count (hard- and deposit-bounded).",
+                "   - where `X` additional-field-count (deposit-bounded and code-bounded).",
+                " - One balance-unreserve operation.",
+                " - `2` storage reads and `S + 2` storage deletions.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "request_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "max_fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Request a judgement from a registrar.",
+                "",
+                " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement",
+                " given.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is requested.",
+                " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:",
+                "",
+                " ```nocompile",
+                " Self::registrars().get(reg_index).unwrap().fee",
+                " ```",
+                "",
+                " Emits `JudgementRequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_request",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "RegistrarIndex"
+                }
+              ],
+              "docs": [
+                " Cancel a previous request.",
+                "",
+                " Payment: A previously reserved deposit is returned on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a",
+                " registered identity.",
+                "",
+                " - `reg_index`: The index of the registrar whose judgement is no longer requested.",
+                "",
+                " Emits `JudgementUnrequested` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-reserve operation.",
+                " - One storage mutation `O(R + X)`.",
+                " - One event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fee",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Set the fee required for a judgement to be requested from a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fee`: the new fee.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_account_id",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Change the account associated with a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `new`: the new account ID.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_fields",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "fields",
+                  "type": "IdentityFields"
+                }
+              ],
+              "docs": [
+                " Set the field information for a registrar.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `index`.",
+                "",
+                " - `index`: the index of the registrar whose fee is to be set.",
+                " - `fields`: the fields that the registrar concerns themselves with.",
+                "",
+                " # <weight>",
+                " - `O(R)`.",
+                " - One storage mutation `O(R)`.",
+                " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "provide_judgement",
+              "args": [
+                {
+                  "name": "reg_index",
+                  "type": "Compact<RegistrarIndex>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "judgement",
+                  "type": "IdentityJudgement"
+                }
+              ],
+              "docs": [
+                " Provide a judgement for an account's identity.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must be the account",
+                " of the registrar whose index is `reg_index`.",
+                "",
+                " - `reg_index`: the index of the registrar whose judgement is being made.",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.",
+                "",
+                " Emits `JudgementGiven` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + X)`.",
+                " - One balance-transfer operation.",
+                " - Up to one account-lookup operation.",
+                " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_identity",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove an account's identity and sub-account information and slash the deposits.",
+                "",
+                " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by",
+                " `Slash`. Verification request deposits are not returned; they should be cancelled",
+                " manually using `cancel_request`.",
+                "",
+                " The dispatch origin for this call must match `T::ForceOrigin`.",
+                "",
+                " - `target`: the account whose identity the judgement is upon. This must be an account",
+                "   with a registered identity.",
+                "",
+                " Emits `IdentityKilled` if successful.",
+                "",
+                " # <weight>",
+                " - `O(R + S + X)`.",
+                " - One balance-reserve operation.",
+                " - `S + 2` storage mutations.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "add_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "data",
+                  "type": "Data"
+                }
+              ],
+              "docs": [
+                " Add the given account to the sender's subs.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "rename_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "data",
+                  "type": "Data"
+                }
+              ],
+              "docs": [
+                " Alter the associated name of the given sub-account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "remove_sub",
+              "args": [
+                {
+                  "name": "sub",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove the given account from the sender's subs.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " sub identity of `sub`."
+              ]
+            },
+            {
+              "name": "quit_sub",
+              "args": [],
+              "docs": [
+                " Remove the sender as a sub-account.",
+                "",
+                " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated",
+                " to the sender (*not* the original depositor).",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have a registered",
+                " super-identity.",
+                "",
+                " NOTE: This should not normally be used, but is provided in the case that the non-",
+                " controller of an account is maliciously registered as a sub-account."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "IdentitySet",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A name was set or reset (which will remove all judgements). \\[who\\]"
+              ]
+            },
+            {
+              "name": "IdentityCleared",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was cleared, and the given balance returned. \\[who, deposit\\]"
+              ]
+            },
+            {
+              "name": "IdentityKilled",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was removed and the given balance slashed. \\[who, deposit\\]"
+              ]
+            },
+            {
+              "name": "JudgementRequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was asked from a registrar. \\[who, registrar_index\\]"
+              ]
+            },
+            {
+              "name": "JudgementUnrequested",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement request was retracted. \\[who, registrar_index\\]"
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "args": [
+                "AccountId",
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A judgement was given by a registrar. \\[target, registrar_index\\]"
+              ]
+            },
+            {
+              "name": "RegistrarAdded",
+              "args": [
+                "RegistrarIndex"
+              ],
+              "docs": [
+                " A registrar was added. \\[registrar_index\\]"
+              ]
+            },
+            {
+              "name": "SubIdentityAdded",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]"
+              ]
+            },
+            {
+              "name": "SubIdentityRemoved",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was removed from an identity and the deposit freed.",
+                " \\[sub, main, deposit\\]"
+              ]
+            },
+            {
+              "name": "SubIdentityRevoked",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A sub-identity was cleared, and the given deposit repatriated from the",
+                " main identity account to the sub-identity account. \\[sub, main, deposit\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "BasicDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The amount held on deposit for a registered identity"
+              ]
+            },
+            {
+              "name": "FieldDeposit",
+              "type": "BalanceOf",
+              "value": "0x00a031a95fe300000000000000000000",
+              "docs": [
+                " The amount held on deposit per additional field for a registered identity."
+              ]
+            },
+            {
+              "name": "SubAccountDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080f420e6b500000000000000000000",
+              "docs": [
+                " The amount held on deposit for a registered subaccount. This should account for the fact",
+                " that one storage item's value will increase by the size of an account ID, and there will be",
+                " another trie item whose value is the size of an account ID plus 32 bytes."
+              ]
+            },
+            {
+              "name": "MaxSubAccounts",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " The maximum number of sub-accounts allowed per identified account."
+              ]
+            },
+            {
+              "name": "MaxAdditionalFields",
+              "type": "u32",
+              "value": "0x64000000",
+              "docs": [
+                " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O",
+                " required to access an identity, but can be pretty high."
+              ]
+            },
+            {
+              "name": "MaxRegistrars",
+              "type": "u32",
+              "value": "0x14000000",
+              "docs": [
+                " Maxmimum number of registrars allowed in the system. Needed to bound the complexity",
+                " of, e.g., updating judgements."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "TooManySubAccounts",
+              "docs": [
+                " Too many subs-accounts."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Account isn't found."
+              ]
+            },
+            {
+              "name": "NotNamed",
+              "docs": [
+                " Account isn't named."
+              ]
+            },
+            {
+              "name": "EmptyIndex",
+              "docs": [
+                " Empty index."
+              ]
+            },
+            {
+              "name": "FeeChanged",
+              "docs": [
+                " Fee is changed."
+              ]
+            },
+            {
+              "name": "NoIdentity",
+              "docs": [
+                " No identity found."
+              ]
+            },
+            {
+              "name": "StickyJudgement",
+              "docs": [
+                " Sticky judgement."
+              ]
+            },
+            {
+              "name": "JudgementGiven",
+              "docs": [
+                " Judgement given."
+              ]
+            },
+            {
+              "name": "InvalidJudgement",
+              "docs": [
+                " Invalid judgement."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " The index is invalid."
+              ]
+            },
+            {
+              "name": "InvalidTarget",
+              "docs": [
+                " The target is invalid."
+              ]
+            },
+            {
+              "name": "TooManyFields",
+              "docs": [
+                " Too many additional fields."
+              ]
+            },
+            {
+              "name": "TooManyRegistrars",
+              "docs": [
+                " Maximum amount of registrars reached. Cannot add any more."
+              ]
+            },
+            {
+              "name": "AlreadyClaimed",
+              "docs": [
+                " Account ID is already named."
+              ]
+            },
+            {
+              "name": "NotSub",
+              "docs": [
+                " Sender is not a sub-account."
+              ]
+            },
+            {
+              "name": "NotOwned",
+              "docs": [
+                " Sub-account isn't owned by sender."
+              ]
+            }
+          ],
+          "index": 25
+        },
+        {
+          "name": "Society",
+          "storage": {
+            "prefix": "Society",
+            "items": [
+              {
+                "name": "Founder",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The first member."
+                ]
+              },
+              {
+                "name": "Rules",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A hash of the rules of this society concerning membership. Can only be set once and",
+                  " only by the founder."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of candidates; bidders that are attempting to become members."
+                ]
+              },
+              {
+                "name": "SuspendedCandidates",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(BalanceOf,BidKind)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended candidates."
+                ]
+              },
+              {
+                "name": "Pot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " Amount of our account balance that is specifically for the next round's bid(s)."
+                ]
+              },
+              {
+                "name": "Head",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The most primary from the most recently approved members."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of members, ordered."
+                ]
+              },
+              {
+                "name": "SuspendedMembers",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of suspended members."
+                ]
+              },
+              {
+                "name": "Bids",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Bid>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current bids, stored ordered by the value of the bid."
+                ]
+              },
+              {
+                "name": "Vouching",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "VouchingStatus",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Members currently vouching or banned from vouching again"
+                ]
+              },
+              {
+                "name": "Payouts",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "Vec<(BlockNumber,BalanceOf)>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending payouts; ordered by block number, with the amount that should be paid out."
+                ]
+              },
+              {
+                "name": "Strikes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "StrikeCount",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ongoing number of losing votes cast by the member."
+                ]
+              },
+              {
+                "name": "Votes",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "SocietyVote",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Double map from Candidate -> Voter -> (Maybe) Vote."
+                ]
+              },
+              {
+                "name": "Defender",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The defending member currently being challenged."
+                ]
+              },
+              {
+                "name": "DefenderVotes",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "SocietyVote",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes for the defender."
+                ]
+              },
+              {
+                "name": "MaxMembers",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The max number of members for the society at one time."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bid",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " A user outside of the society can make a bid for entry.",
+                "",
+                " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned",
+                " when the bid becomes a member, or if the bid calls `unbid`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `value`: A one time payment the bid would like to receive when joining the society.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)",
+                " - Storage Reads:",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " \t- One storage read to retrieve all members. O(M)",
+                " - Storage Writes:",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for new bid.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbid",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " A bidder can remove their bid for entry into society.",
+                " By doing so, they will have their candidate deposit returned or",
+                " they will unvouch their voucher.",
+                "",
+                " Payment: The bid deposit is unreserved if the user made a bid.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a bidder.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), X (balance unreserve)",
+                " - One storage read and write to retrieve and update the bids. O(B)",
+                " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "value",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "tip",
+                  "type": "BalanceOf"
+                }
+              ],
+              "docs": [
+                " As a member, vouch for someone to join society by placing a bid on their behalf.",
+                "",
+                " There is no deposit required to vouch for a new bid, but a member can only vouch for",
+                " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by",
+                " the suspension judgement origin, the member will be banned from vouching again.",
+                "",
+                " As a vouching member, you can claim a tip if the candidate is accepted. This tip will",
+                " be paid as a portion of the reward the member will receive for joining the society.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `who`: The user who you would like to vouch for.",
+                " - `value`: The total reward to be paid between you and the candidate if they become",
+                " a member in the society.",
+                " - `tip`: Your cut of the total `value` payout when the candidate is inducted into",
+                " the society. Tips larger than `value` will be saturated upon payout.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), C (len of candidates), M (len of members)",
+                " - Storage Reads:",
+                " \t- One storage read to retrieve all members. O(M)",
+                " \t- One storage read to check member is not already vouching. O(1)",
+                " \t- One storage read to check for suspended candidate. O(1)",
+                " \t- One storage read to check for suspended member. O(1)",
+                " \t- One storage read to retrieve all current bids. O(B)",
+                " \t- One storage read to retrieve all current candidates. O(C)",
+                " - Storage Writes:",
+                " \t- One storage write to insert vouching status to the member. O(1)",
+                " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)",
+                " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)",
+                " - Notable Computation:",
+                " \t- O(log M) search to check sender is a member.",
+                " \t- O(B + C + log M) search to check user is not already a part of society.",
+                " \t- O(log B) search to insert the new bid sorted.",
+                " - External Module Operations:",
+                " \t- One balance reserve operation. O(X)",
+                " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.",
+                " - Events:",
+                " \t- One event for vouch.",
+                " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.",
+                "",
+                " Total Complexity: O(M + B + C + logM + logB + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unvouch",
+              "args": [
+                {
+                  "name": "pos",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " As a vouching member, unvouch a bid. This only works while vouched user is",
+                " only a bidder (and not a candidate).",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a vouching member.",
+                "",
+                " Parameters:",
+                " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids)",
+                " - One storage read O(1) to check the signer is a vouching member.",
+                " - One storage mutate to retrieve and update the bids. O(B)",
+                " - One vouching storage removal. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "candidate",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on a candidate.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `candidate`: The candidate that the member would like to bid on.",
+                " - `approve`: A boolean which says if the candidate should be",
+                "              approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " Key: C (len of candidates), M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One account lookup.",
+                " - One storage read O(C) and O(C) search to check that user is a candidate.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM + C)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "defender_vote",
+              "args": [
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " As a member, vote on the defender.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member.",
+                "",
+                " Parameters:",
+                " - `approve`: A boolean which says if the candidate should be",
+                " approved (`true`) or rejected (`false`).",
+                "",
+                " # <weight>",
+                " - Key: M (len of members)",
+                " - One storage read O(M) and O(log M) search to check user is a member.",
+                " - One storage write to add vote to votes. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(M + logM)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "payout",
+              "args": [],
+              "docs": [
+                " Transfer the first matured payout for the sender and remove it from the records.",
+                "",
+                " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.",
+                "",
+                " Payment: The member will receive a payment equal to their first matured",
+                " payout to their free balance.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a member with",
+                " payouts remaining.",
+                "",
+                " # <weight>",
+                " Key: M (len of members), P (number of payouts for a particular member)",
+                " - One storage read O(M) and O(log M) search to check signer is a member.",
+                " - One storage read O(P) to get all payouts for a member.",
+                " - One storage read O(1) to get the current block number.",
+                " - One currency transfer call. O(X)",
+                " - One storage write or removal to update the member's payouts. O(P)",
+                "",
+                " Total Complexity: O(M + logM + P + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "found",
+              "args": [
+                {
+                  "name": "founder",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "max_members",
+                  "type": "u32"
+                },
+                {
+                  "name": "rules",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Found the society.",
+                "",
+                " This is done as a discrete action in order to allow for the",
+                " module to be included into a running chain and can only be done once.",
+                "",
+                " The dispatch origin for this call must be from the _FounderSetOrigin_.",
+                "",
+                " Parameters:",
+                " - `founder` - The first member and head of the newly founded society.",
+                " - `max_members` - The initial max number of members for the society.",
+                " - `rules` - The rules of this society concerning membership.",
+                "",
+                " # <weight>",
+                " - Two storage mutates to set `Head` and `Founder`. O(1)",
+                " - One storage write to add the first member to society. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unfound",
+              "args": [],
+              "docs": [
+                " Annul the founding of the society.",
+                "",
+                " The dispatch origin for this call must be Signed, and the signing account must be both",
+                " the `Founder` and the `Head`. This implies that it may only be done when there is one",
+                " member.",
+                "",
+                " # <weight>",
+                " - Two storage reads O(1).",
+                " - Four storage removals O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "forgive",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Allow suspension judgement origin to make judgement on a suspended member.",
+                "",
+                " If a suspended member is forgiven, we simply add them back as a member, not affecting",
+                " any of the existing storage items for that member.",
+                "",
+                " If a suspended member is rejected, remove all associated storage items, including",
+                " their payouts, and remove any vouched bids they currently have.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended member to be judged.",
+                " - `forgive` - A boolean representing whether the suspension judgement origin",
+                "               forgives (`true`) or rejects (`false`) a suspended member.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members)",
+                " - One storage read to check `who` is a suspended member. O(1)",
+                " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.",
+                " - Up to 3 storage removals O(1) to clean up a removed member.",
+                " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal. O(1)",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "judge_suspended_candidate",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "judgement",
+                  "type": "SocietyJudgement"
+                }
+              ],
+              "docs": [
+                " Allow suspended judgement origin to make judgement on a suspended candidate.",
+                "",
+                " If the judgement is `Approve`, we add them to society as a member with the appropriate",
+                " payment for joining society.",
+                "",
+                " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back",
+                " to the society treasury, or we ban the voucher from vouching again.",
+                "",
+                " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go",
+                " through the induction process again.",
+                "",
+                " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.",
+                "",
+                " Parameters:",
+                " - `who` - The suspended candidate to be judged.",
+                " - `judgement` - `Approve`, `Reject`, or `Rebid`.",
+                "",
+                " # <weight>",
+                " Key: B (len of bids), M (len of members), X (balance action)",
+                " - One storage read to check `who` is a suspended candidate.",
+                " - One storage removal of the suspended candidate.",
+                " - Approve Logic",
+                " \t- One storage read to get the available pot to pay users with. O(1)",
+                " \t- One storage write to update the available pot. O(1)",
+                " \t- One storage read to get the current block number. O(1)",
+                " \t- One storage read to get all members. O(M)",
+                " \t- Up to one unreserve currency action.",
+                " \t- Up to two new storage writes to payouts.",
+                " \t- Up to one storage write with O(log M) binary search to add a member to society.",
+                " - Reject Logic",
+                " \t- Up to one repatriate reserved currency action. O(X)",
+                " \t- Up to one storage write to ban the vouching member from vouching again.",
+                " - Rebid Logic",
+                " \t- Storage mutate with O(log B) binary search to place the user back into bids.",
+                " - Up to one additional event if unvouch takes place.",
+                " - One storage removal.",
+                " - One event for the judgement.",
+                "",
+                " Total Complexity: O(M + logM + B + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_max_members",
+              "args": [
+                {
+                  "name": "max",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Allows root origin to change the maximum number of members in society.",
+                " Max membership count must be greater than 1.",
+                "",
+                " The dispatch origin for this call must be from _ROOT_.",
+                "",
+                " Parameters:",
+                " - `max` - The maximum number of members for the society.",
+                "",
+                " # <weight>",
+                " - One storage write to update the max. O(1)",
+                " - One event.",
+                "",
+                " Total Complexity: O(1)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Founded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The society is founded by the given identity. \\[founder\\]"
+              ]
+            },
+            {
+              "name": "Bid",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A membership bid just happened. The given account is the candidate's ID and their offer",
+                " is the second. \\[candidate_id, offer\\]"
+              ]
+            },
+            {
+              "name": "Vouch",
+              "args": [
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A membership bid just happened by vouching. The given account is the candidate's ID and",
+                " their offer is the second. The vouching party is the third. \\[candidate_id, offer, vouching\\]"
+              ]
+            },
+            {
+              "name": "AutoUnbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] was dropped (due to an excess of bids in the system)."
+              ]
+            },
+            {
+              "name": "Unbid",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] was dropped (by their request)."
+              ]
+            },
+            {
+              "name": "Unvouch",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] was dropped (by request of who vouched for them)."
+              ]
+            },
+            {
+              "name": "Inducted",
+              "args": [
+                "AccountId",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A group of candidates have been inducted. The batch's primary is the first value, the",
+                " batch in full is the second. \\[primary, candidates\\]"
+              ]
+            },
+            {
+              "name": "SuspendedMemberJudgement",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A suspended member has been judged. \\[who, judged\\]"
+              ]
+            },
+            {
+              "name": "CandidateSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[candidate\\] has been suspended"
+              ]
+            },
+            {
+              "name": "MemberSuspended",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[member\\] has been suspended"
+              ]
+            },
+            {
+              "name": "Challenged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A \\[member\\] has been challenged"
+              ]
+            },
+            {
+              "name": "Vote",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed \\[candidate, voter, vote\\]"
+              ]
+            },
+            {
+              "name": "DefenderVote",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A vote has been placed for a defending member \\[voter, vote\\]"
+              ]
+            },
+            {
+              "name": "NewMaxMembers",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " A new \\[max\\] member count has been set"
+              ]
+            },
+            {
+              "name": "Unfounded",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " Society is unfounded. \\[founder\\]"
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds were deposited into the society account. \\[value\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "CandidateDeposit",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The minimum amount of a deposit required for a bid to be made."
+              ]
+            },
+            {
+              "name": "WrongSideDeduction",
+              "type": "BalanceOf",
+              "value": "0x0080f420e6b500000000000000000000",
+              "docs": [
+                " The amount of the unpaid reward that gets deducted in the case that either a skeptic",
+                " doesn't vote or someone votes in the wrong way."
+              ]
+            },
+            {
+              "name": "MaxStrikes",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)",
+                " before they become suspended."
+              ]
+            },
+            {
+              "name": "PeriodSpend",
+              "type": "BalanceOf",
+              "value": "0x0000c52ebca2b1000000000000000000",
+              "docs": [
+                " The amount of incentive paid within each period. Doesn't include VoterTip."
+              ]
+            },
+            {
+              "name": "RotationPeriod",
+              "type": "BlockNumber",
+              "value": "0x00770100",
+              "docs": [
+                " The number of blocks between candidate/membership rotation periods."
+              ]
+            },
+            {
+              "name": "ChallengePeriod",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": [
+                " The number of blocks between membership challenges."
+              ]
+            },
+            {
+              "name": "PalletId",
+              "type": "PalletId",
+              "value": "0x70792f736f636965",
+              "docs": [
+                " The societies's module id"
+              ]
+            },
+            {
+              "name": "MaxCandidateIntake",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " Maximum candidate intake per round."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "BadPosition",
+              "docs": [
+                " An incorrect position was provided."
+              ]
+            },
+            {
+              "name": "NotMember",
+              "docs": [
+                " User is not a member."
+              ]
+            },
+            {
+              "name": "AlreadyMember",
+              "docs": [
+                " User is already a member."
+              ]
+            },
+            {
+              "name": "Suspended",
+              "docs": [
+                " User is suspended."
+              ]
+            },
+            {
+              "name": "NotSuspended",
+              "docs": [
+                " User is not suspended."
+              ]
+            },
+            {
+              "name": "NoPayout",
+              "docs": [
+                " Nothing to payout."
+              ]
+            },
+            {
+              "name": "AlreadyFounded",
+              "docs": [
+                " Society already founded."
+              ]
+            },
+            {
+              "name": "InsufficientPot",
+              "docs": [
+                " Not enough in pot to accept candidate."
+              ]
+            },
+            {
+              "name": "AlreadyVouching",
+              "docs": [
+                " Member is already vouching or banned from vouching again."
+              ]
+            },
+            {
+              "name": "NotVouching",
+              "docs": [
+                " Member is not vouching."
+              ]
+            },
+            {
+              "name": "Head",
+              "docs": [
+                " Cannot remove the head of the chain."
+              ]
+            },
+            {
+              "name": "Founder",
+              "docs": [
+                " Cannot remove the founder."
+              ]
+            },
+            {
+              "name": "AlreadyBid",
+              "docs": [
+                " User has already made a bid."
+              ]
+            },
+            {
+              "name": "AlreadyCandidate",
+              "docs": [
+                " User is already a candidate."
+              ]
+            },
+            {
+              "name": "NotCandidate",
+              "docs": [
+                " User is not a candidate."
+              ]
+            },
+            {
+              "name": "MaxMembers",
+              "docs": [
+                " Too many members in the society."
+              ]
+            },
+            {
+              "name": "NotFounder",
+              "docs": [
+                " The caller is not the founder."
+              ]
+            },
+            {
+              "name": "NotHead",
+              "docs": [
+                " The caller is not the head."
+              ]
+            }
+          ],
+          "index": 26
+        },
+        {
+          "name": "Recovery",
+          "storage": {
+            "prefix": "Recovery",
+            "items": [
+              {
+                "name": "Recoverable",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "RecoveryConfig",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of recoverable accounts and their recovery configuration."
+                ]
+              },
+              {
+                "name": "ActiveRecoveries",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "AccountId",
+                    "value": "ActiveRecovery",
+                    "key2Hasher": "Twox64Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Active recovery attempts.",
+                  "",
+                  " First account is the account to be recovered, and the second account",
+                  " is the user trying to recover the account."
+                ]
+              },
+              {
+                "name": "Proxy",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The list of allowed proxy accounts.",
+                  "",
+                  " Map from the user who can access it to the recovered account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "as_recovered",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Send a call through a recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and registered to",
+                " be able to make calls on behalf of the recovered account.",
+                "",
+                " Parameters:",
+                " - `account`: The recovered account you want to make a call on-behalf-of.",
+                " - `call`: The call you want to make with the recovered account.",
+                "",
+                " # <weight>",
+                " - The weight of the `call` + 10,000.",
+                " - One storage lookup to check account is recovered by `who`. O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_recovered",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow ROOT to bypass the recovery process and set an a rescuer account",
+                " for a lost account directly.",
+                "",
+                " The dispatch origin for this call must be _ROOT_.",
+                "",
+                " Parameters:",
+                " - `lost`: The \"lost account\" to be recovered.",
+                " - `rescuer`: The \"rescuer account\" which can call as the lost account.",
+                "",
+                " # <weight>",
+                " - One storage write O(1)",
+                " - One event",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "create_recovery",
+              "args": [
+                {
+                  "name": "friends",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "delay_period",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Create a recovery configuration for your account. This makes your account recoverable.",
+                "",
+                " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance",
+                " will be reserved for storing the recovery configuration. This deposit is returned",
+                " in full when the user calls `remove_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `friends`: A list of friends you trust to vouch for recovery attempts.",
+                "   Should be ordered and contain no duplicate values.",
+                " - `threshold`: The number of friends that must vouch for a recovery attempt",
+                "   before the account can be recovered. Should be less than or equal to",
+                "   the length of the list of friends.",
+                " - `delay_period`: The number of blocks after a recovery attempt is initialized",
+                "   that needs to pass before the account can be recovered.",
+                "",
+                " # <weight>",
+                " - Key: F (len of friends)",
+                " - One storage read to check that account is not already recoverable. O(1).",
+                " - A check that the friends list is sorted and unique. O(F)",
+                " - One currency reserve operation. O(X)",
+                " - One storage write. O(1). Codec O(F).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "initiate_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Initiate the process for recovering a recoverable account.",
+                "",
+                " Payment: `RecoveryDeposit` balance will be reserved for initiating the",
+                " recovery process. This deposit will always be repatriated to the account",
+                " trying to be recovered. See `close_recovery`.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to recover. This account",
+                "   needs to be recoverable (i.e. have a recovery configuration).",
+                "",
+                " # <weight>",
+                " - One storage read to check that account is recoverable. O(F)",
+                " - One storage read to check that this recovery process hasn't already started. O(1)",
+                " - One currency reserve operation. O(X)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vouch_recovery",
+              "args": [
+                {
+                  "name": "lost",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a \"friend\" of a recoverable account to vouch for an active recovery",
+                " process for that account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"friend\"",
+                " for the recoverable account.",
+                "",
+                " Parameters:",
+                " - `lost`: The lost account that you want to recover.",
+                " - `rescuer`: The account trying to rescue the lost account that you",
+                "   want to vouch for.",
+                "",
+                " The combination of these two parameters must point to an active recovery",
+                " process.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One binary search to confirm caller is a friend. O(logF)",
+                " - One binary search to confirm caller has not already vouched. O(logV)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + logF + V + logV)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "claim_recovery",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Allow a successful rescuer to claim their recovered account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"",
+                " who has successfully completed the account recovery process: collected",
+                " `threshold` or more vouches, waited `delay_period` blocks since initiation.",
+                "",
+                " Parameters:",
+                " - `account`: The lost account that you want to claim has been successfully",
+                "   recovered by you.",
+                "",
+                " # <weight>",
+                " Key: F (len of friends in config), V (len of vouching friends)",
+                " - One storage read to get the recovery configuration. O(1), Codec O(F)",
+                " - One storage read to get the active recovery process. O(1), Codec O(V)",
+                " - One storage read to get the current block number. O(1)",
+                " - One storage write. O(1), Codec O(V).",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + V)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_recovery",
+              "args": [
+                {
+                  "name": "rescuer",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " As the controller of a recoverable account, close an active recovery",
+                " process for your account.",
+                "",
+                " Payment: By calling this function, the recoverable account will receive",
+                " the recovery deposit `RecoveryDeposit` placed by the rescuer.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account with an active recovery process for it.",
+                "",
+                " Parameters:",
+                " - `rescuer`: The account trying to rescue this recoverable account.",
+                "",
+                " # <weight>",
+                " Key: V (len of vouching friends)",
+                " - One storage read/remove to get the active recovery process. O(1), Codec O(V)",
+                " - One balance call to repatriate reserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(V + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_recovery",
+              "args": [],
+              "docs": [
+                " Remove the recovery process for your account. Recovered accounts are still accessible.",
+                "",
+                " NOTE: The user must make sure to call `close_recovery` on all active",
+                " recovery attempts before calling this function else it will fail.",
+                "",
+                " Payment: By calling this function the recoverable account will unreserve",
+                " their recovery configuration deposit.",
+                " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)",
+                "",
+                " The dispatch origin for this call must be _Signed_ and must be a",
+                " recoverable account (i.e. has a recovery configuration).",
+                "",
+                " # <weight>",
+                " Key: F (len of friends)",
+                " - One storage read to get the prefix iterator for active recoveries. O(1)",
+                " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)",
+                " - One balance call to unreserved. O(X)",
+                " - One event.",
+                "",
+                " Total Complexity: O(F + X)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_recovered",
+              "args": [
+                {
+                  "name": "account",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Cancel the ability to use `as_recovered` for `account`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and registered to",
+                " be able to make calls on behalf of the recovered account.",
+                "",
+                " Parameters:",
+                " - `account`: The recovered account you are able to call on-behalf-of.",
+                "",
+                " # <weight>",
+                " - One storage mutation to check account is recovered by `who`. O(1)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "RecoveryCreated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been set up for an \\[account\\]."
+              ]
+            },
+            {
+              "name": "RecoveryInitiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been initiated for lost account by rescuer account.",
+                " \\[lost, rescuer\\]"
+              ]
+            },
+            {
+              "name": "RecoveryVouched",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for lost account by rescuer account has been vouched for by sender.",
+                " \\[lost, rescuer, sender\\]"
+              ]
+            },
+            {
+              "name": "RecoveryClosed",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process for lost account by rescuer account has been closed.",
+                " \\[lost, rescuer\\]"
+              ]
+            },
+            {
+              "name": "AccountRecovered",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Lost account has been successfully recovered by rescuer account.",
+                " \\[lost, rescuer\\]"
+              ]
+            },
+            {
+              "name": "RecoveryRemoved",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A recovery process has been removed for an \\[account\\]."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ConfigDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a recovery configuration.",
+                "",
+                " This is held for an additional storage item whose value size is",
+                " `2 + sizeof(BlockNumber, Balance)` bytes."
+              ]
+            },
+            {
+              "name": "FriendDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x00203d88792d00000000000000000000",
+              "docs": [
+                " The amount of currency needed per additional user when creating a recovery configuration.",
+                "",
+                " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage value."
+              ]
+            },
+            {
+              "name": "MaxFriends",
+              "type": "u16",
+              "value": "0x0900",
+              "docs": [
+                " The maximum amount of friends allowed in a recovery configuration."
+              ]
+            },
+            {
+              "name": "RecoveryDeposit",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for starting a recovery.",
+                "",
+                " This is primarily held for deterring malicious recovery attempts, and should",
+                " have a value large enough that a bad actor would choose not to place this",
+                " deposit. It also acts to fund additional storage item whose value size is",
+                " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable",
+                " threshold."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotAllowed",
+              "docs": [
+                " User is not allowed to make a call on behalf of this account"
+              ]
+            },
+            {
+              "name": "ZeroThreshold",
+              "docs": [
+                " Threshold must be greater than zero"
+              ]
+            },
+            {
+              "name": "NotEnoughFriends",
+              "docs": [
+                " Friends list must be greater than zero and threshold"
+              ]
+            },
+            {
+              "name": "MaxFriends",
+              "docs": [
+                " Friends list must be less than max friends"
+              ]
+            },
+            {
+              "name": "NotSorted",
+              "docs": [
+                " Friends list must be sorted and free of duplicates"
+              ]
+            },
+            {
+              "name": "NotRecoverable",
+              "docs": [
+                " This account is not set up for recovery"
+              ]
+            },
+            {
+              "name": "AlreadyRecoverable",
+              "docs": [
+                " This account is already set up for recovery"
+              ]
+            },
+            {
+              "name": "AlreadyStarted",
+              "docs": [
+                " A recovery process has already started for this account"
+              ]
+            },
+            {
+              "name": "NotStarted",
+              "docs": [
+                " A recovery process has not started for this rescuer"
+              ]
+            },
+            {
+              "name": "NotFriend",
+              "docs": [
+                " This account is not a friend who can vouch"
+              ]
+            },
+            {
+              "name": "DelayPeriod",
+              "docs": [
+                " The friend must wait until the delay period to vouch for this recovery"
+              ]
+            },
+            {
+              "name": "AlreadyVouched",
+              "docs": [
+                " This user has already vouched for this recovery"
+              ]
+            },
+            {
+              "name": "Threshold",
+              "docs": [
+                " The threshold for recovering this account has not been met"
+              ]
+            },
+            {
+              "name": "StillActive",
+              "docs": [
+                " There are still active recovery attempts that need to be closed"
+              ]
+            },
+            {
+              "name": "AlreadyProxy",
+              "docs": [
+                " This account is already set up for recovery"
+              ]
+            },
+            {
+              "name": "BadState",
+              "docs": [
+                " Some internal state is broken."
+              ]
+            }
+          ],
+          "index": 27
+        },
+        {
+          "name": "Vesting",
+          "storage": {
+            "prefix": "Vesting",
+            "items": [
+              {
+                "name": "Vesting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AccountId",
+                    "value": "VestingInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information regarding the vesting of a given account."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vest",
+              "args": [],
+              "docs": [
+                " Unlock any vested funds of the sender account.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the sender must have funds still",
+                " locked under this pallet.",
+                "",
+                " Emits either `VestingCompleted` or `VestingUpdated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 2 Reads, 2 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, [Sender Account]",
+                "     - Writes: Vesting Storage, Balances Locks, [Sender Account]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vest_other",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Unlock any vested funds of a `target` account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `target`: The account whose vested funds should be unlocked. Must have funds still",
+                " locked under this pallet.",
+                "",
+                " Emits either `VestingCompleted` or `VestingUpdated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 3 Reads, 3 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vested_transfer",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "schedule",
+                  "type": "VestingInfo"
+                }
+              ],
+              "docs": [
+                " Create a vested transfer.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `target`: The account that should be transferred the vested funds.",
+                " - `amount`: The amount of funds to transfer and will be vested.",
+                " - `schedule`: The vesting schedule attached to the transfer.",
+                "",
+                " Emits `VestingCreated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 3 Reads, 3 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_vested_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "schedule",
+                  "type": "VestingInfo"
+                }
+              ],
+              "docs": [
+                " Force a vested transfer.",
+                "",
+                " The dispatch origin for this call must be _Root_.",
+                "",
+                " - `source`: The account whose funds should be transferred.",
+                " - `target`: The account that should be transferred the vested funds.",
+                " - `amount`: The amount of funds to transfer and will be vested.",
+                " - `schedule`: The vesting schedule attached to the transfer.",
+                "",
+                " Emits `VestingCreated`.",
+                "",
+                " # <weight>",
+                " - `O(1)`.",
+                " - DbWeight: 4 Reads, 4 Writes",
+                "     - Reads: Vesting Storage, Balances Locks, Target Account, Source Account",
+                "     - Writes: Vesting Storage, Balances Locks, Target Account, Source Account",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "VestingUpdated",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " The amount vested has been updated. This could indicate more funds are available. The",
+                " balance given is the amount which is left unvested (and thus locked).",
+                " \\[account, unvested\\]"
+              ]
+            },
+            {
+              "name": "VestingCompleted",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An \\[account\\] has become fully vested. No further vesting can happen."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "MinVestedTransfer",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount transferred to call `vested_transfer`."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotVesting",
+              "docs": [
+                " The account given is not vesting."
+              ]
+            },
+            {
+              "name": "ExistingVestingSchedule",
+              "docs": [
+                " An existing vesting schedule already exists for this account that cannot be clobbered."
+              ]
+            },
+            {
+              "name": "AmountLow",
+              "docs": [
+                " Amount being transferred is too low to create a vesting schedule."
+              ]
+            }
+          ],
+          "index": 28
+        },
+        {
+          "name": "Scheduler",
+          "storage": {
+            "prefix": "Scheduler",
+            "items": [
+              {
+                "name": "Agenda",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BlockNumber",
+                    "value": "Vec<Option<Scheduled>>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Items to be executed, indexed by the block number that they should be executed on."
+                ]
+              },
+              {
+                "name": "Lookup",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Bytes",
+                    "value": "TaskAddress",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Lookup from identity to the block number and index of the task."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Releases"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage version of the pallet.",
+                  "",
+                  " New networks start with last version."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "schedule",
+              "args": [
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Anonymously schedule a task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 22.29 + .126 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda",
+                "     - Write: Agenda",
+                " - Will use base weight of 25 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel",
+              "args": [
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "index",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Cancel an anonymously scheduled task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 22.15 + 2.869 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 100 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_named",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Schedule a named task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 29.6 + .159 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda, Lookup",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 35 which should be good for more than 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_named",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Cancel a named scheduled task.",
+                "",
+                " # <weight>",
+                " - S = Number of already scheduled calls",
+                " - Base Weight: 24.91 + 2.907 * S µs",
+                " - DB Weight:",
+                "     - Read: Agenda, Lookup",
+                "     - Write: Agenda, Lookup",
+                " - Will use base weight of 100 which should be good for up to 30 scheduled calls",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_after",
+              "args": [
+                {
+                  "name": "after",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Anonymously schedule a task after a delay.",
+                "",
+                " # <weight>",
+                " Same as [`schedule`].",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "schedule_named_after",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "after",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "maybe_periodic",
+                  "type": "Option<Period>"
+                },
+                {
+                  "name": "priority",
+                  "type": "Priority"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Schedule a named task after a delay.",
+                "",
+                " # <weight>",
+                " Same as [`schedule_named`](Self::schedule_named).",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Scheduled",
+              "args": [
+                "BlockNumber",
+                "u32"
+              ],
+              "docs": [
+                " Scheduled some task. \\[when, index\\]"
+              ]
+            },
+            {
+              "name": "Canceled",
+              "args": [
+                "BlockNumber",
+                "u32"
+              ],
+              "docs": [
+                " Canceled some task. \\[when, index\\]"
+              ]
+            },
+            {
+              "name": "Dispatched",
+              "args": [
+                "TaskAddress",
+                "Option<Bytes>",
+                "DispatchResult"
+              ],
+              "docs": [
+                " Dispatched some task. \\[task, id, result\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "MaximumWeight",
+              "type": "Weight",
+              "value": "0x00806e8774010000",
+              "docs": [
+                " The maximum weight that may be scheduled per block for any dispatchables of less priority",
+                " than `schedule::HARD_DEADLINE`."
+              ]
+            },
+            {
+              "name": "MaxScheduledPerBlock",
+              "type": "u32",
+              "value": "0x32000000",
+              "docs": [
+                " The maximum number of scheduled calls in the queue for a single block.",
+                " Not strictly enforced, but used for weight estimation."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "FailedToSchedule",
+              "docs": [
+                " Failed to schedule a call"
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Cannot find the scheduled call."
+              ]
+            },
+            {
+              "name": "TargetBlockNumberInPast",
+              "docs": [
+                " Given target block number is in the past."
+              ]
+            },
+            {
+              "name": "RescheduleNoChange",
+              "docs": [
+                " Reschedule failed because it does not change scheduled time."
+              ]
+            }
+          ],
+          "index": 29
+        },
+        {
+          "name": "Proxy",
+          "storage": {
+            "prefix": "Proxy",
+            "items": [
+              {
+                "name": "Proxies",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(Vec<ProxyDefinition>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " The set of account proxies. Maps the account which has delegated to the accounts",
+                  " which are being delegated to, together with the amount held on deposit."
+                ]
+              },
+              {
+                "name": "Announcements",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(Vec<ProxyAnnouncement>,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000",
+                "docs": [
+                  " The announcements made by the proxy (key)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "proxy",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "force_proxy_type",
+                  "type": "Option<ProxyType>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Dispatch the given `call` from an account that the sender is authorised for through",
+                " `add_proxy`.",
+                "",
+                " Removes any corresponding announcement(s).",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
+                " - `call`: The call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "add_proxy",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Register a proxy account for the sender that is able to make calls on its behalf.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `proxy`: The account that the `caller` would like to make a proxy.",
+                " - `proxy_type`: The permissions allowed for this proxy account.",
+                " - `delay`: The announcement period required of the initial proxy. Will generally be",
+                " zero.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxy",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Unregister a proxy account for the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `proxy`: The account that the `caller` would like to remove as a proxy.",
+                " - `proxy_type`: The permissions currently enabled for the removed proxy account.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxies",
+              "args": [],
+              "docs": [
+                " Unregister all proxy accounts for the sender.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " WARNING: This may be called on accounts created by `anonymous`, however if done, then",
+                " the unreserved fees will be inaccessible. **All access to this account will be lost.**",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "anonymous",
+              "args": [
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "index",
+                  "type": "u16"
+                }
+              ],
+              "docs": [
+                " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and",
+                " initialize it with a proxy of `proxy_type` for `origin` sender.",
+                "",
+                " Requires a `Signed` origin.",
+                "",
+                " - `proxy_type`: The type of the proxy that the sender will be registered as over the",
+                " new account. This will almost always be the most permissive `ProxyType` possible to",
+                " allow for maximum flexibility.",
+                " - `index`: A disambiguation index, in case this is called multiple times in the same",
+                " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just",
+                " want to use `0`.",
+                " - `delay`: The announcement period required of the initial proxy. Will generally be",
+                " zero.",
+                "",
+                " Fails with `Duplicate` if this has already been called in this transaction, from the",
+                " same sender, with the same parameters.",
+                "",
+                " Fails if there are insufficient funds to pay for deposit.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>",
+                " TODO: Might be over counting 1 read"
+              ]
+            },
+            {
+              "name": "kill_anonymous",
+              "args": [
+                {
+                  "name": "spawner",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "proxy_type",
+                  "type": "ProxyType"
+                },
+                {
+                  "name": "index",
+                  "type": "u16"
+                },
+                {
+                  "name": "height",
+                  "type": "Compact<BlockNumber>"
+                },
+                {
+                  "name": "ext_index",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " Removes a previously spawned anonymous proxy.",
+                "",
+                " WARNING: **All access to this account will be lost.** Any funds held in it will be",
+                " inaccessible.",
+                "",
+                " Requires a `Signed` origin, and the sender account must have been created by a call to",
+                " `anonymous` with corresponding parameters.",
+                "",
+                " - `spawner`: The account that originally called `anonymous` to create this account.",
+                " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.",
+                " - `proxy_type`: The proxy type originally passed to `anonymous`.",
+                " - `height`: The height of the chain when the call to `anonymous` was processed.",
+                " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.",
+                "",
+                " Fails with `NoPermission` in case the caller is not a previously created anonymous",
+                " account whose `anonymous` call has corresponding parameters.",
+                "",
+                " # <weight>",
+                " Weight is a function of the number of proxies the user has (P).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "announce",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Publish the hash of a proxy-call that will be made in the future.",
+                "",
+                " This must be called some number of blocks before the corresponding `proxy` is attempted",
+                " if the delay associated with the proxy relationship is greater than zero.",
+                "",
+                " No more than `MaxPending` announcements may be made at any one time.",
+                "",
+                " This will take a deposit of `AnnouncementDepositFactor` as well as",
+                " `AnnouncementDepositBase` if there are no other pending announcements.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and a proxy of `real`.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `call_hash`: The hash of the call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_announcement",
+              "args": [
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Remove a given announcement.",
+                "",
+                " May be called by a proxy account to remove a call they previously announced and return",
+                " the deposit.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `call_hash`: The hash of the call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_announcement",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "CallHashOf"
+                }
+              ],
+              "docs": [
+                " Remove the given announcement of a delegate.",
+                "",
+                " May be called by a target (proxied) account to remove a call that one of their delegates",
+                " (`delegate`) has announced they want to execute. The deposit is returned.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `delegate`: The account that previously announced the call.",
+                " - `call_hash`: The hash of the call to be made.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "proxy_announced",
+              "args": [
+                {
+                  "name": "delegate",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "real",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "force_proxy_type",
+                  "type": "Option<ProxyType>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Dispatch the given `call` from an account that the sender is authorized for through",
+                " `add_proxy`.",
+                "",
+                " Removes any corresponding announcement(s).",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Parameters:",
+                " - `real`: The account that the proxy will make a call on behalf of.",
+                " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.",
+                " - `call`: The call to be made by the `real` account.",
+                "",
+                " # <weight>",
+                " Weight is a function of:",
+                " - A: the number of announcements made.",
+                " - P: the number of proxies the user has.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ProxyExecuted",
+              "args": [
+                "DispatchResult"
+              ],
+              "docs": [
+                " A proxy was executed correctly, with the given \\[result\\]."
+              ]
+            },
+            {
+              "name": "AnonymousCreated",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "ProxyType",
+                "u16"
+              ],
+              "docs": [
+                " Anonymous account has been created by new proxy with given",
+                " disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"
+              ]
+            },
+            {
+              "name": "Announced",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Hash"
+              ],
+              "docs": [
+                " An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProxyDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f09e544c3900000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a proxy.",
+                "",
+                " This is held for an additional storage item whose value size is",
+                " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes."
+              ]
+            },
+            {
+              "name": "ProxyDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x0060aa7714b400000000000000000000",
+              "docs": [
+                " The amount of currency needed per proxy added.",
+                "",
+                " This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing",
+                " storage value. Thus, when configuring `ProxyDepositFactor` one should take into account",
+                " `32 + proxy_type.encode().len()` bytes of data."
+              ]
+            },
+            {
+              "name": "MaxProxies",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum amount of proxies allowed for a single account."
+              ]
+            },
+            {
+              "name": "MaxPending",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum amount of time-delayed announcements that are allowed to be pending."
+              ]
+            },
+            {
+              "name": "AnnouncementDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f09e544c3900000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating an announcement.",
+                "",
+                " This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."
+              ]
+            },
+            {
+              "name": "AnnouncementDepositFactor",
+              "type": "BalanceOf",
+              "value": "0x00c054ef286801000000000000000000",
+              "docs": [
+                " The amount of currency needed per announcement made.",
+                "",
+                " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)",
+                " into a pre-existing storage value."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "TooMany",
+              "docs": [
+                " There are too many proxies registered or too many announcements pending."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Proxy registration not found."
+              ]
+            },
+            {
+              "name": "NotProxy",
+              "docs": [
+                " Sender is not a proxy of the account to be proxied."
+              ]
+            },
+            {
+              "name": "Unproxyable",
+              "docs": [
+                " A call which is incompatible with the proxy type's filter was attempted."
+              ]
+            },
+            {
+              "name": "Duplicate",
+              "docs": [
+                " Account is already a proxy."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " Call may not be made by proxy because it may escalate its privileges."
+              ]
+            },
+            {
+              "name": "Unannounced",
+              "docs": [
+                " Announcement, if made at all, was made too recently."
+              ]
+            },
+            {
+              "name": "NoSelfProxy",
+              "docs": [
+                " Cannot add self as proxy."
+              ]
+            }
+          ],
+          "index": 30
+        },
+        {
+          "name": "Multisig",
+          "storage": {
+            "prefix": "Multisig",
+            "items": [
+              {
+                "name": "Multisigs",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "AccountId",
+                    "key2": "[u8;32]",
+                    "value": "Multisig",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The set of open multisig operations."
+                ]
+              },
+              {
+                "name": "Calls",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "[u8;32]",
+                    "value": "(OpaqueCall,AccountId,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": []
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "as_multi_threshold_1",
+              "args": [
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Immediately dispatch a multi-signature call using a single approval from the caller.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `other_signatories`: The accounts (other than the sender) who are part of the",
+                " multi-signature, but do not participate in the approval process.",
+                " - `call`: The call to be executed.",
+                "",
+                " Result is equivalent to the dispatched result.",
+                "",
+                " # <weight>",
+                " O(Z + C) where Z is the length of the call and C its execution weight.",
+                " -------------------------------",
+                " - DB Weight: None",
+                " - Plus Call Weight",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call",
+                  "type": "OpaqueCall"
+                },
+                {
+                  "name": "store_call",
+                  "type": "bool"
+                },
+                {
+                  "name": "max_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " If there are enough, then dispatch the call.",
+                "",
+                " Payment: `DepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `DepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call`: The call to be executed.",
+                "",
+                " NOTE: Unless this is the final approval, you will generally want to use",
+                " `approve_as_multi` instead, since it only requires a hash of the call.",
+                "",
+                " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise",
+                " on success, result is `Ok` and the result from the interior call, if it was executed,",
+                " may be found in the deposited `MultisigExecuted` event.",
+                "",
+                " # <weight>",
+                " - `O(S + Z + Call)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - The weight of the `call`.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `DepositBase + threshold * DepositFactor`.",
+                " -------------------------------",
+                " - DB Weight:",
+                "     - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)",
+                "     - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)",
+                " - Plus Call Weight",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "maybe_timepoint",
+                  "type": "Option<Timepoint>"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                },
+                {
+                  "name": "max_weight",
+                  "type": "Weight"
+                }
+              ],
+              "docs": [
+                " Register approval for a dispatch to be made from a deterministic composite account if",
+                " approved by a total of `threshold - 1` of `other_signatories`.",
+                "",
+                " Payment: `DepositBase` will be reserved if this is the first approval, plus",
+                " `threshold` times `DepositFactor`. It is returned once this dispatch happens or",
+                " is cancelled.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is",
+                " not the first approval, then it must be `Some`, with the timepoint (block number and",
+                " transaction index) of the first approval transaction.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " NOTE: If this is the final approval, you will want to use `as_multi` instead.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - Up to one binary search and insert (`O(logS + S)`).",
+                " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
+                " - One event.",
+                " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
+                "   deposit taken for its lifetime of",
+                "   `DepositBase + threshold * DepositFactor`.",
+                " ----------------------------------",
+                " - DB Weight:",
+                "     - Read: Multisig Storage, [Caller Account]",
+                "     - Write: Multisig Storage, [Caller Account]",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_as_multi",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "u16"
+                },
+                {
+                  "name": "other_signatories",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "timepoint",
+                  "type": "Timepoint"
+                },
+                {
+                  "name": "call_hash",
+                  "type": "[u8;32]"
+                }
+              ],
+              "docs": [
+                " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously",
+                " for this operation will be unreserved on success.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " - `threshold`: The total number of approvals for this dispatch before it is executed.",
+                " - `other_signatories`: The accounts (other than the sender) who can approve this",
+                " dispatch. May not be empty.",
+                " - `timepoint`: The timepoint (block number and transaction index) of the first approval",
+                " transaction for this dispatch.",
+                " - `call_hash`: The hash of the call to be executed.",
+                "",
+                " # <weight>",
+                " - `O(S)`.",
+                " - Up to one balance-reserve or unreserve operation.",
+                " - One passthrough operation, one insert, both `O(S)` where `S` is the number of",
+                "   signatories. `S` is capped by `MaxSignatories`, with weight being proportional.",
+                " - One encode & hash, both of complexity `O(S)`.",
+                " - One event.",
+                " - I/O: 1 read `O(S)`, one remove.",
+                " - Storage: removes one item.",
+                " ----------------------------------",
+                " - DB Weight:",
+                "     - Read: Multisig Storage, [Caller Account], Refund Account, Calls",
+                "     - Write: Multisig Storage, [Caller Account], Refund Account, Calls",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewMultisig",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A new multisig operation has begun. \\[approving, multisig, call_hash\\]"
+              ]
+            },
+            {
+              "name": "MultisigApproval",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A multisig operation has been approved by someone.",
+                " \\[approving, timepoint, multisig, call_hash\\]"
+              ]
+            },
+            {
+              "name": "MultisigExecuted",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash",
+                "DispatchResult"
+              ],
+              "docs": [
+                " A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]"
+              ]
+            },
+            {
+              "name": "MultisigCancelled",
+              "args": [
+                "AccountId",
+                "Timepoint",
+                "AccountId",
+                "CallHash"
+              ],
+              "docs": [
+                " A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "DepositBase",
+              "type": "BalanceOf",
+              "value": "0x00f01c0adbed01000000000000000000",
+              "docs": [
+                " The base amount of currency needed to reserve for creating a multisig execution or to store",
+                " a dispatch call for later.",
+                "",
+                " This is held for an additional storage item whose value size is",
+                " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is",
+                " `32 + sizeof(AccountId)` bytes."
+              ]
+            },
+            {
+              "name": "DepositFactor",
+              "type": "BalanceOf",
+              "value": "0x0000cc7b9fae00000000000000000000",
+              "docs": [
+                " The amount of currency needed per unit threshold when creating a multisig execution.",
+                "",
+                " This is held for adding 32 bytes more into a pre-existing storage value."
+              ]
+            },
+            {
+              "name": "MaxSignatories",
+              "type": "u16",
+              "value": "0x6400",
+              "docs": [
+                " The maximum amount of signatories allowed in the multisig."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "MinimumThreshold",
+              "docs": [
+                " Threshold must be 2 or greater."
+              ]
+            },
+            {
+              "name": "AlreadyApproved",
+              "docs": [
+                " Call is already approved by this signatory."
+              ]
+            },
+            {
+              "name": "NoApprovalsNeeded",
+              "docs": [
+                " Call doesn't need any (more) approvals."
+              ]
+            },
+            {
+              "name": "TooFewSignatories",
+              "docs": [
+                " There are too few signatories in the list."
+              ]
+            },
+            {
+              "name": "TooManySignatories",
+              "docs": [
+                " There are too many signatories in the list."
+              ]
+            },
+            {
+              "name": "SignatoriesOutOfOrder",
+              "docs": [
+                " The signatories were provided out of order; they should be ordered."
+              ]
+            },
+            {
+              "name": "SenderInSignatories",
+              "docs": [
+                " The sender was contained in the other signatories; it shouldn't be."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " Multisig operation not found when attempting to cancel."
+              ]
+            },
+            {
+              "name": "NotOwner",
+              "docs": [
+                " Only the account that originally created the multisig is able to cancel it."
+              ]
+            },
+            {
+              "name": "NoTimepoint",
+              "docs": [
+                " No timepoint was given, yet the multisig operation is already underway."
+              ]
+            },
+            {
+              "name": "WrongTimepoint",
+              "docs": [
+                " A different timepoint was given to the multisig operation that is underway."
+              ]
+            },
+            {
+              "name": "UnexpectedTimepoint",
+              "docs": [
+                " A timepoint was given, yet no multisig operation is underway."
+              ]
+            },
+            {
+              "name": "MaxWeightTooLow",
+              "docs": [
+                " The maximum weight information provided was too low."
+              ]
+            },
+            {
+              "name": "AlreadyStored",
+              "docs": [
+                " The data to be stored is already stored."
+              ]
+            }
+          ],
+          "index": 31
+        },
+        {
+          "name": "Bounties",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "BountyCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BountyIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Number of bounty proposals that have been made."
+                ]
+              },
+              {
+                "name": "Bounties",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BountyIndex",
+                    "value": "Bounty",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Bounties that have been made."
+                ]
+              },
+              {
+                "name": "BountyDescriptions",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BountyIndex",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The description of each bounty."
+                ]
+              },
+              {
+                "name": "BountyApprovals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<BountyIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Bounty indices that have been approved but not yet funded."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose_bounty",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "description",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Propose a new bounty.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
+                " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,",
+                " or slashed when rejected.",
+                "",
+                " - `curator`: The curator account whom will manage this bounty.",
+                " - `fee`: The curator fee.",
+                " - `value`: The total payment amount of this bounty, curator fee included.",
+                " - `description`: The description of this bounty."
+              ]
+            },
+            {
+              "name": "approve_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Approve a bounty proposal. At a later time, the bounty will be funded and become active",
+                " and the original deposit will be returned.",
+                "",
+                " May only be called from `T::ApproveOrigin`.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "propose_curator",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                },
+                {
+                  "name": "curator",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "fee",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Assign a curator to a funded bounty.",
+                "",
+                " May only be called from `T::ApproveOrigin`.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unassign_curator",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Unassign curator from a bounty.",
+                "",
+                " This function can only be called by the `RejectOrigin` a signed origin.",
+                "",
+                " If this function is called by the `RejectOrigin`, we assume that the curator is malicious",
+                " or inactive. As a result, we will slash the curator when possible.",
+                "",
+                " If the origin is the curator, we take this as a sign they are unable to do their job and",
+                " they willingly give up. We could slash them, but for now we allow them to recover their",
+                " deposit and exit without issue. (We may want to change this if it is abused.)",
+                "",
+                " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows",
+                " anyone in the community to call out that a curator is not doing their due diligence, and",
+                " we should pick a new curator. In this case the curator should also be slashed.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "accept_curator",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Accept the curator role for a bounty.",
+                " A deposit will be reserved from curator and refund upon successful payout.",
+                "",
+                " May only be called from the curator.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "award_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.",
+                "",
+                " The dispatch origin for this call must be the curator of this bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to award.",
+                " - `beneficiary`: The beneficiary account whom will receive the payout.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "claim_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Claim the payout from an awarded bounty after payout delay.",
+                "",
+                " The dispatch origin for this call must be the beneficiary of this bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to claim.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_bounty",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                }
+              ],
+              "docs": [
+                " Cancel a proposed or active bounty. All the funds will be sent to treasury and",
+                " the curator deposit will be unreserved if possible.",
+                "",
+                " Only `T::RejectOrigin` is able to cancel a bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to cancel.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "extend_bounty_expiry",
+              "args": [
+                {
+                  "name": "bounty_id",
+                  "type": "Compact<BountyIndex>"
+                },
+                {
+                  "name": "_remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Extend the expiry time of an active bounty.",
+                "",
+                " The dispatch origin for this call must be the curator of this bounty.",
+                "",
+                " - `bounty_id`: Bounty ID to extend.",
+                " - `remark`: additional information.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BountyProposed",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " New bounty proposal. \\[index\\]"
+              ]
+            },
+            {
+              "name": "BountyRejected",
+              "args": [
+                "BountyIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A bounty proposal was rejected; funds were slashed. \\[index, bond\\]"
+              ]
+            },
+            {
+              "name": "BountyBecameActive",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " A bounty proposal is funded and became active. \\[index\\]"
+              ]
+            },
+            {
+              "name": "BountyAwarded",
+              "args": [
+                "BountyIndex",
+                "AccountId"
+              ],
+              "docs": [
+                " A bounty is awarded to a beneficiary. \\[index, beneficiary\\]"
+              ]
+            },
+            {
+              "name": "BountyClaimed",
+              "args": [
+                "BountyIndex",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]"
+              ]
+            },
+            {
+              "name": "BountyCanceled",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " A bounty is cancelled. \\[index\\]"
+              ]
+            },
+            {
+              "name": "BountyExtended",
+              "args": [
+                "BountyIndex"
+              ],
+              "docs": [
+                " A bounty expiry is extended. \\[index\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "DataDepositPerByte",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount held on deposit per byte within bounty description."
+              ]
+            },
+            {
+              "name": "BountyDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The amount held on deposit for placing a bounty proposal."
+              ]
+            },
+            {
+              "name": "BountyDepositPayoutDelay",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " The delay period for which a bounty beneficiary need to wait before claim the payout."
+              ]
+            },
+            {
+              "name": "BountyUpdatePeriod",
+              "type": "BlockNumber",
+              "value": "0x00270600",
+              "docs": [
+                " Bounty duration in blocks."
+              ]
+            },
+            {
+              "name": "BountyCuratorDeposit",
+              "type": "Permill",
+              "value": "0x20a10700",
+              "docs": [
+                " Percentage of the curator fee that will be reserved upfront as deposit for bounty curator."
+              ]
+            },
+            {
+              "name": "BountyValueMinimum",
+              "type": "BalanceOf",
+              "value": "0x00406352bfc601000000000000000000",
+              "docs": [
+                " Minimum value for a bounty."
+              ]
+            },
+            {
+              "name": "MaximumReasonLength",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " Maximum acceptable reason length."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "InsufficientProposersBalance",
+              "docs": [
+                " Proposer's balance is too low."
+              ]
+            },
+            {
+              "name": "InvalidIndex",
+              "docs": [
+                " No proposal or bounty at that index."
+              ]
+            },
+            {
+              "name": "ReasonTooBig",
+              "docs": [
+                " The reason given is just too big."
+              ]
+            },
+            {
+              "name": "UnexpectedStatus",
+              "docs": [
+                " The bounty status is unexpected."
+              ]
+            },
+            {
+              "name": "RequireCurator",
+              "docs": [
+                " Require bounty curator."
+              ]
+            },
+            {
+              "name": "InvalidValue",
+              "docs": [
+                " Invalid bounty value."
+              ]
+            },
+            {
+              "name": "InvalidFee",
+              "docs": [
+                " Invalid bounty fee."
+              ]
+            },
+            {
+              "name": "PendingPayout",
+              "docs": [
+                " A bounty payout is pending.",
+                " To cancel the bounty, you must unassign and slash the curator."
+              ]
+            },
+            {
+              "name": "Premature",
+              "docs": [
+                " The bounties cannot be claimed/closed because it's still in the countdown period."
+              ]
+            }
+          ],
+          "index": 32
+        },
+        {
+          "name": "Tips",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "Tips",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "Hash",
+                    "value": "OpenTip",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.",
+                  " This has the insecure enumerable hash function since the key itself is already",
+                  " guaranteed to be a secure hash."
+                ]
+              },
+              {
+                "name": "Reasons",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "Hash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Simple preimage lookup from the reason's hash to the original data. Again, has an",
+                  " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_awesome",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Report something `reason` that deserves a tip and claim any eventual the finder's fee.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as",
+                " `DataDepositPerByte` for each byte in `reason`.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R)` where `R` length of `reason`.",
+                "   - encoding and hashing of 'reason'",
+                " - DbReads: `Reasons`, `Tips`",
+                " - DbWrites: `Reasons`, `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "retract_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.",
+                "",
+                " If successful, the original deposit will be unreserved.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`",
+                " must have been reported by the signing account through `report_awesome` (and not",
+                " through `tip_new`).",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " Emits `TipRetracted` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(1)`",
+                "   - Depends on the length of `T::Hash` which is fixed.",
+                " - DbReads: `Tips`, `origin account`",
+                " - DbWrites: `Reasons`, `Tips`, `origin account`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip_new",
+              "args": [
+                {
+                  "name": "reason",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Give a tip for something new; no finder's fee will be taken.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be",
+                "   a UTF-8-encoded URL.",
+                " - `who`: The account which should be credited for the tip.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `NewTip` if successful.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.",
+                "   - `O(T)`: decoding `Tipper` vec of length `T`",
+                "     `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "     The actual cost depends on the implementation of `T::Tippers`.",
+                "   - `O(R)`: hashing and encoding of reason of length `R`",
+                " - DbReads: `Tippers`, `Reasons`",
+                " - DbWrites: `Reasons`, `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "tip_value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Declare a tip value for an already-open tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_ and the signing account must be a",
+                " member of the `Tippers` set.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the hash of the original tip `reason` and the beneficiary",
+                "   account ID.",
+                " - `tip_value`: The amount of tip that the sender would like to give. The median tip",
+                "   value of active tippers will be given to the `who`.",
+                "",
+                " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period",
+                " has started.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(T)` where `T` is the number of tippers.",
+                "   decoding `Tipper` vec of length `T`, insert tip and check closing,",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                "",
+                "   Actually weight could be lower as it depends on how many tips are in `OpenTip` but it",
+                "   is weighted as if almost full i.e of length `T-1`.",
+                " - DbReads: `Tippers`, `Tips`",
+                " - DbWrites: `Tips`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "close_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Close and payout a tip.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " The tip identified by `hash` must have finished its countdown period.",
+                "",
+                " - `hash`: The identity of the open tip for which a tip value is declared. This is formed",
+                "   as the hash of the tuple of the original tip `reason` and the beneficiary account ID.",
+                "",
+                " # <weight>",
+                " - Complexity: `O(T)` where `T` is the number of tippers.",
+                "   decoding `Tipper` vec of length `T`.",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                " - DbReads: `Tips`, `Tippers`, `tip finder`",
+                " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "slash_tip",
+              "args": [
+                {
+                  "name": "hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Remove and slash an already-open tip.",
+                "",
+                " May only be called from `T::RejectOrigin`.",
+                "",
+                " As a result, the finder is slashed and the deposits are lost.",
+                "",
+                " Emits `TipSlashed` if successful.",
+                "",
+                " # <weight>",
+                "   `T` is charged as upper bound given by `ContainsLengthBound`.",
+                "   The actual cost depends on the implementation of `T::Tippers`.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewTip",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A new tip suggestion has been opened. \\[tip_hash\\]"
+              ]
+            },
+            {
+              "name": "TipClosing",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has reached threshold and is closing. \\[tip_hash\\]"
+              ]
+            },
+            {
+              "name": "TipClosed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A tip suggestion has been closed. \\[tip_hash, who, payout\\]"
+              ]
+            },
+            {
+              "name": "TipRetracted",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A tip suggestion has been retracted. \\[tip_hash\\]"
+              ]
+            },
+            {
+              "name": "TipSlashed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "TipCountdown",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " The period for which a tip remains open after is has achieved threshold tippers."
+              ]
+            },
+            {
+              "name": "TipFindersFee",
+              "type": "Percent",
+              "value": "0x14",
+              "docs": [
+                " The amount of the final tip which goes to the original reporter of the tip."
+              ]
+            },
+            {
+              "name": "TipReportDepositBase",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The amount held on deposit for placing a tip report."
+              ]
+            },
+            {
+              "name": "DataDepositPerByte",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount held on deposit per byte within the tip report reason."
+              ]
+            },
+            {
+              "name": "MaximumReasonLength",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " Maximum acceptable reason length."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "ReasonTooBig",
+              "docs": [
+                " The reason given is just too big."
+              ]
+            },
+            {
+              "name": "AlreadyKnown",
+              "docs": [
+                " The tip was already found/started."
+              ]
+            },
+            {
+              "name": "UnknownTip",
+              "docs": [
+                " The tip hash is unknown."
+              ]
+            },
+            {
+              "name": "NotFinder",
+              "docs": [
+                " The account attempting to retract the tip is not the finder of the tip."
+              ]
+            },
+            {
+              "name": "StillOpen",
+              "docs": [
+                " The tip cannot be claimed/closed because there are not enough tippers yet."
+              ]
+            },
+            {
+              "name": "Premature",
+              "docs": [
+                " The tip cannot be claimed/closed because it's still in the countdown period."
+              ]
+            }
+          ],
+          "index": 33
+        },
+        {
+          "name": "Assets",
+          "storage": {
+            "prefix": "Assets",
+            "items": [
+              {
+                "name": "Asset",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AssetId",
+                    "value": "AssetDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Details of an asset."
+                ]
+              },
+              {
+                "name": "Account",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_128Concat",
+                    "key1": "AssetId",
+                    "key2": "AccountId",
+                    "value": "AssetBalance",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00000000000000000000",
+                "docs": [
+                  " The number of units of assets held by any given account."
+                ]
+              },
+              {
+                "name": "Approvals",
+                "modifier": "Optional",
+                "type": {
+                  "nMap": {
+                    "keyVec": [
+                      "AssetId",
+                      "AccountId",
+                      "AccountId"
+                    ],
+                    "hashers": [
+                      "Blake2_128Concat",
+                      "Blake2_128Concat",
+                      "Blake2_128Concat"
+                    ],
+                    "value": "AssetApproval"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Approved balance transfers. First balance is the amount approved for transfer. Second",
+                  " is the amount of `T::Currency` reserved for storing this.",
+                  " First key is the asset ID, second key is the owner and third key is the delegate."
+                ]
+              },
+              {
+                "name": "Metadata",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "AssetId",
+                    "value": "AssetMetadata",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000",
+                "docs": [
+                  " Metadata of an asset."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "create",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "min_balance",
+                  "type": "TAssetBalance"
+                }
+              ],
+              "docs": [
+                " Issue a new class of fungible assets from a public origin.",
+                "",
+                " This new asset class has no assets initially and its owner is the origin.",
+                "",
+                " The origin must be Signed and the sender must have sufficient funds free.",
+                "",
+                " Funds of sender are reserved by `AssetDeposit`.",
+                "",
+                " Parameters:",
+                " - `id`: The identifier of the new asset. This must not be currently in use to identify",
+                " an existing asset.",
+                " - `admin`: The admin of this class of assets. The admin is the initial address of each",
+                " member of the asset class's admin team.",
+                " - `min_balance`: The minimum balance of this new asset that any single account must",
+                " have. If an account's balance is reduced below this, then it collapses to zero.",
+                "",
+                " Emits `Created` event when successful.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_create",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "is_sufficient",
+                  "type": "bool"
+                },
+                {
+                  "name": "min_balance",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Issue a new class of fungible assets from a privileged origin.",
+                "",
+                " This new asset class has no assets initially.",
+                "",
+                " The origin must conform to `ForceOrigin`.",
+                "",
+                " Unlike `create`, no funds are reserved.",
+                "",
+                " - `id`: The identifier of the new asset. This must not be currently in use to identify",
+                " an existing asset.",
+                " - `owner`: The owner of this class of assets. The owner has full superuser permissions",
+                " over this asset, but may later change and configure the permissions using `transfer_ownership`",
+                " and `set_team`.",
+                " - `min_balance`: The minimum balance of this new asset that any single account must",
+                " have. If an account's balance is reduced below this, then it collapses to zero.",
+                "",
+                " Emits `ForceCreated` event when successful.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "destroy",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "witness",
+                  "type": "AssetDestroyWitness"
+                }
+              ],
+              "docs": [
+                " Destroy a class of fungible assets.",
+                "",
+                " The origin must conform to `ForceOrigin` or must be Signed and the sender must be the",
+                " owner of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be destroyed. This must identify an existing",
+                " asset.",
+                "",
+                " Emits `Destroyed` event when successful.",
+                "",
+                " NOTE: It can be helpful to first freeze an asset before destroying it so that you",
+                " can provide accurate witness information and prevent users from manipulating state",
+                " in a way that can make it harder to destroy.",
+                "",
+                " Weight: `O(c + p + a)` where:",
+                " - `c = (witness.accounts - witness.sufficients)`",
+                " - `s = witness.sufficients`",
+                " - `a = witness.approvals`"
+              ]
+            },
+            {
+              "name": "mint",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Mint assets of a particular class.",
+                "",
+                " The origin must be Signed and the sender must be the Issuer of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to have some amount minted.",
+                " - `beneficiary`: The account to be credited with the minted assets.",
+                " - `amount`: The amount of the asset to be minted.",
+                "",
+                " Emits `Issued` event when successful.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."
+              ]
+            },
+            {
+              "name": "burn",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.",
+                "",
+                " Origin must be Signed and the sender should be the Manager of the asset `id`.",
+                "",
+                " Bails with `BalanceZero` if the `who` is already dead.",
+                "",
+                " - `id`: The identifier of the asset to have some amount burned.",
+                " - `who`: The account to be debited from.",
+                " - `amount`: The maximum amount by which `who`'s balance should be reduced.",
+                "",
+                " Emits `Burned` with the actual amount burned. If this takes the balance to below the",
+                " minimum for the asset, then the amount burned is increased to take it to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Post-existence of `who`; Pre & post Zombie-status of `who`."
+              ]
+            },
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Move some assets from the sender account to another.",
+                "",
+                " Origin must be Signed.",
+                "",
+                " - `id`: The identifier of the asset to have some amount transferred.",
+                " - `target`: The account to be credited.",
+                " - `amount`: The amount by which the sender's balance of assets should be reduced and",
+                " `target`'s balance increased. The amount actually transferred may be slightly greater in",
+                " the case that the transfer would otherwise take the sender balance above zero but below",
+                " the minimum balance. Must be greater than zero.",
+                "",
+                " Emits `Transferred` with the actual amount transferred. If this takes the source balance",
+                " to below the minimum for the asset, then the amount transferred is increased to take it",
+                " to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of",
+                " `target`."
+              ]
+            },
+            {
+              "name": "transfer_keep_alive",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Move some assets from the sender account to another, keeping the sender account alive.",
+                "",
+                " Origin must be Signed.",
+                "",
+                " - `id`: The identifier of the asset to have some amount transferred.",
+                " - `target`: The account to be credited.",
+                " - `amount`: The amount by which the sender's balance of assets should be reduced and",
+                " `target`'s balance increased. The amount actually transferred may be slightly greater in",
+                " the case that the transfer would otherwise take the sender balance above zero but below",
+                " the minimum balance. Must be greater than zero.",
+                "",
+                " Emits `Transferred` with the actual amount transferred. If this takes the source balance",
+                " to below the minimum for the asset, then the amount transferred is increased to take it",
+                " to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of",
+                " `target`."
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Move some assets from one account to another.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to have some amount transferred.",
+                " - `source`: The account to be debited.",
+                " - `dest`: The account to be credited.",
+                " - `amount`: The amount by which the `source`'s balance of assets should be reduced and",
+                " `dest`'s balance increased. The amount actually transferred may be slightly greater in",
+                " the case that the transfer would otherwise take the `source` balance above zero but",
+                " below the minimum balance. Must be greater than zero.",
+                "",
+                " Emits `Transferred` with the actual amount transferred. If this takes the source balance",
+                " to below the minimum for the asset, then the amount transferred is increased to take it",
+                " to zero.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of",
+                " `dest`."
+              ]
+            },
+            {
+              "name": "freeze",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Disallow further unprivileged transfers from an account.",
+                "",
+                " Origin must be Signed and the sender should be the Freezer of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                " - `who`: The account to be frozen.",
+                "",
+                " Emits `Frozen`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "thaw",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Allow unprivileged transfers from an account again.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                " - `who`: The account to be unfrozen.",
+                "",
+                " Emits `Thawed`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "freeze_asset",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Disallow further unprivileged transfers for the asset class.",
+                "",
+                " Origin must be Signed and the sender should be the Freezer of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                "",
+                " Emits `Frozen`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "thaw_asset",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Allow unprivileged transfers for the asset again.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be thawed.",
+                "",
+                " Emits `Thawed`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "transfer_ownership",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Change the Owner of an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `owner`: The new Owner of this asset.",
+                "",
+                " Emits `OwnerChanged`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_team",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "issuer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "freezer",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Change the Issuer, Admin and Freezer of an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " - `id`: The identifier of the asset to be frozen.",
+                " - `issuer`: The new Issuer of this asset.",
+                " - `admin`: The new Admin of this asset.",
+                " - `freezer`: The new Freezer of this asset.",
+                "",
+                " Emits `TeamChanged`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "name",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "symbol",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "decimals",
+                  "type": "u8"
+                }
+              ],
+              "docs": [
+                " Set the metadata for an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " Funds of sender are reserved according to the formula:",
+                " `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into",
+                " account any already reserved funds.",
+                "",
+                " - `id`: The identifier of the asset to update.",
+                " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.",
+                " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.",
+                " - `decimals`: The number of decimals this asset uses to represent one unit.",
+                "",
+                " Emits `MetadataSet`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "clear_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Clear the metadata for an asset.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `id`.",
+                "",
+                " Any deposit is freed for the asset owner.",
+                "",
+                " - `id`: The identifier of the asset to clear.",
+                "",
+                " Emits `MetadataCleared`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_set_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "name",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "symbol",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "decimals",
+                  "type": "u8"
+                },
+                {
+                  "name": "is_frozen",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Force the metadata for an asset to some value.",
+                "",
+                " Origin must be ForceOrigin.",
+                "",
+                " Any deposit is left alone.",
+                "",
+                " - `id`: The identifier of the asset to update.",
+                " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.",
+                " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.",
+                " - `decimals`: The number of decimals this asset uses to represent one unit.",
+                "",
+                " Emits `MetadataSet`.",
+                "",
+                " Weight: `O(N + S)` where N and S are the length of the name and symbol respectively."
+              ]
+            },
+            {
+              "name": "force_clear_metadata",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                }
+              ],
+              "docs": [
+                " Clear the metadata for an asset.",
+                "",
+                " Origin must be ForceOrigin.",
+                "",
+                " Any deposit is returned.",
+                "",
+                " - `id`: The identifier of the asset to clear.",
+                "",
+                " Emits `MetadataCleared`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_asset_status",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "issuer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "freezer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "min_balance",
+                  "type": "Compact<TAssetBalance>"
+                },
+                {
+                  "name": "is_sufficient",
+                  "type": "bool"
+                },
+                {
+                  "name": "is_frozen",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Alter the attributes of a given asset.",
+                "",
+                " Origin must be `ForceOrigin`.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `owner`: The new Owner of this asset.",
+                " - `issuer`: The new Issuer of this asset.",
+                " - `admin`: The new Admin of this asset.",
+                " - `freezer`: The new Freezer of this asset.",
+                " - `min_balance`: The minimum balance of this new asset that any single account must",
+                " have. If an account's balance is reduced below this, then it collapses to zero.",
+                " - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient",
+                " value to account for the state bloat associated with its balance storage. If set to",
+                " `true`, then non-zero balances may be stored without a `consumer` reference (and thus",
+                " an ED in the Balances pallet or whatever else is used to control user-account state",
+                " growth).",
+                " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin",
+                " instructions.",
+                "",
+                " Emits `AssetStatusChanged` with the identity of the asset.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "approve_transfer",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "delegate",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Approve an amount of asset for transfer by a delegated third-party account.",
+                "",
+                " Origin must be Signed.",
+                "",
+                " Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account",
+                " for the purpose of holding the approval. If some non-zero amount of assets is already",
+                " approved from signing account to `delegate`, then it is topped up or unreserved to",
+                " meet the right value.",
+                "",
+                " NOTE: The signing account does not need to own `amount` of assets at the point of",
+                " making this call.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `delegate`: The account to delegate permission to transfer asset.",
+                " - `amount`: The amount of asset that may be transferred by `delegate`. If there is",
+                " already an approval in place, then this acts additively.",
+                "",
+                " Emits `ApprovedTransfer` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "cancel_approval",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "delegate",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Cancel all of some asset approved for delegated transfer by a third-party account.",
+                "",
+                " Origin must be Signed and there must be an approval in place between signer and",
+                " `delegate`.",
+                "",
+                " Unreserves any deposit previously reserved by `approve_transfer` for the approval.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `delegate`: The account delegated permission to transfer asset.",
+                "",
+                " Emits `ApprovalCancelled` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_cancel_approval",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "delegate",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Cancel all of some asset approved for delegated transfer by a third-party account.",
+                "",
+                " Origin must be either ForceOrigin or Signed origin with the signer being the Admin",
+                " account of the asset `id`.",
+                "",
+                " Unreserves any deposit previously reserved by `approve_transfer` for the approval.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `delegate`: The account delegated permission to transfer asset.",
+                "",
+                " Emits `ApprovalCancelled` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "transfer_approved",
+              "args": [
+                {
+                  "name": "id",
+                  "type": "Compact<AssetId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "destination",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "amount",
+                  "type": "Compact<TAssetBalance>"
+                }
+              ],
+              "docs": [
+                " Transfer some asset balance from a previously delegated account to some third-party",
+                " account.",
+                "",
+                " Origin must be Signed and there must be an approval in place by the `owner` to the",
+                " signer.",
+                "",
+                " If the entire amount approved for transfer is transferred, then any deposit previously",
+                " reserved by `approve_transfer` is unreserved.",
+                "",
+                " - `id`: The identifier of the asset.",
+                " - `owner`: The account which previously approved for a transfer of at least `amount` and",
+                " from which the asset balance will be withdrawn.",
+                " - `destination`: The account to which the asset balance of `amount` will be transferred.",
+                " - `amount`: The amount of assets to transfer.",
+                "",
+                " Emits `TransferredApproved` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Created",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some asset class was created. \\[asset_id, creator, owner\\]"
+              ]
+            },
+            {
+              "name": "Issued",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " Some assets were issued. \\[asset_id, owner, total_supply\\]"
+              ]
+            },
+            {
+              "name": "Transferred",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " Some assets were transferred. \\[asset_id, from, to, amount\\]"
+              ]
+            },
+            {
+              "name": "Burned",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " Some assets were destroyed. \\[asset_id, owner, balance\\]"
+              ]
+            },
+            {
+              "name": "TeamChanged",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " The management team changed \\[asset_id, issuer, admin, freezer\\]"
+              ]
+            },
+            {
+              "name": "OwnerChanged",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " The owner changed \\[asset_id, owner\\]"
+              ]
+            },
+            {
+              "name": "Frozen",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some account `who` was frozen. \\[asset_id, who\\]"
+              ]
+            },
+            {
+              "name": "Thawed",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some account `who` was thawed. \\[asset_id, who\\]"
+              ]
+            },
+            {
+              "name": "AssetFrozen",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " Some asset `asset_id` was frozen. \\[asset_id\\]"
+              ]
+            },
+            {
+              "name": "AssetThawed",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " Some asset `asset_id` was thawed. \\[asset_id\\]"
+              ]
+            },
+            {
+              "name": "Destroyed",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " An asset class was destroyed."
+              ]
+            },
+            {
+              "name": "ForceCreated",
+              "args": [
+                "AssetId",
+                "AccountId"
+              ],
+              "docs": [
+                " Some asset class was force-created. \\[asset_id, owner\\]"
+              ]
+            },
+            {
+              "name": "MetadataSet",
+              "args": [
+                "AssetId",
+                "Bytes",
+                "Bytes",
+                "u8",
+                "bool"
+              ],
+              "docs": [
+                " New metadata has been set for an asset. \\[asset_id, name, symbol, decimals, is_frozen\\]"
+              ]
+            },
+            {
+              "name": "MetadataCleared",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " Metadata has been cleared for an asset. \\[asset_id\\]"
+              ]
+            },
+            {
+              "name": "ApprovedTransfer",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " (Additional) funds have been approved for transfer to a destination account.",
+                " \\[asset_id, source, delegate, amount\\]"
+              ]
+            },
+            {
+              "name": "ApprovalCancelled",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An approval for account `delegate` was cancelled by `owner`.",
+                " \\[id, owner, delegate\\]"
+              ]
+            },
+            {
+              "name": "TransferredApproved",
+              "args": [
+                "AssetId",
+                "AccountId",
+                "AccountId",
+                "AccountId",
+                "TAssetBalance"
+              ],
+              "docs": [
+                " An `amount` was transferred in its entirety from `owner` to `destination` by",
+                " the approved `delegate`.",
+                " \\[id, owner, delegate, destination\\]"
+              ]
+            },
+            {
+              "name": "AssetStatusChanged",
+              "args": [
+                "AssetId"
+              ],
+              "docs": [
+                " An asset has had its attributes changed by the `Force` origin.",
+                " \\[id\\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "AssetDeposit",
+              "type": "DepositBalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The basic amount of funds that must be reserved for an asset."
+              ]
+            },
+            {
+              "name": "MetadataDepositBase",
+              "type": "DepositBalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The basic amount of funds that must be reserved when adding metadata to your asset."
+              ]
+            },
+            {
+              "name": "MetadataDepositPerByte",
+              "type": "DepositBalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The additional funds that must be reserved for the number of bytes you store in your",
+                " metadata."
+              ]
+            },
+            {
+              "name": "ApprovalDeposit",
+              "type": "DepositBalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The amount of funds that must be reserved when creating a new approval."
+              ]
+            },
+            {
+              "name": "StringLimit",
+              "type": "u32",
+              "value": "0x32000000",
+              "docs": [
+                " The maximum length of a name or symbol stored on-chain."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "BalanceLow",
+              "docs": [
+                " Account balance must be greater than or equal to the transfer amount."
+              ]
+            },
+            {
+              "name": "BalanceZero",
+              "docs": [
+                " Balance should be non-zero."
+              ]
+            },
+            {
+              "name": "NoPermission",
+              "docs": [
+                " The signing account has no permission to do the operation."
+              ]
+            },
+            {
+              "name": "Unknown",
+              "docs": [
+                " The given asset ID is unknown."
+              ]
+            },
+            {
+              "name": "Frozen",
+              "docs": [
+                " The origin account is frozen."
+              ]
+            },
+            {
+              "name": "InUse",
+              "docs": [
+                " The asset ID is already taken."
+              ]
+            },
+            {
+              "name": "BadWitness",
+              "docs": [
+                " Invalid witness data given."
+              ]
+            },
+            {
+              "name": "MinBalanceZero",
+              "docs": [
+                " Minimum balance should be non-zero."
+              ]
+            },
+            {
+              "name": "NoProvider",
+              "docs": [
+                " No provider reference exists to allow a non-zero balance of a non-self-sufficient asset."
+              ]
+            },
+            {
+              "name": "BadMetadata",
+              "docs": [
+                " Invalid metadata given."
+              ]
+            },
+            {
+              "name": "Unapproved",
+              "docs": [
+                " No approval exists that would allow the transfer."
+              ]
+            },
+            {
+              "name": "WouldDie",
+              "docs": [
+                " The source account would not survive the transfer and it needs to stay alive."
+              ]
+            }
+          ],
+          "index": 34
+        },
+        {
+          "name": "Mmr",
+          "storage": {
+            "prefix": "Mmr",
+            "items": [
+              {
+                "name": "RootHash",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Latest MMR Root hash."
+                ]
+              },
+              {
+                "name": "NumberOfLeaves",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current size of the MMR (number of leaves)."
+                ]
+              },
+              {
+                "name": "Nodes",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Identity",
+                    "key": "u64",
+                    "value": "Hash",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Hashes of the nodes in the MMR.",
+                  "",
+                  " Note this collection only contains MMR peaks, the inner nodes (and leaves)",
+                  " are pruned and only stored in the Offchain DB."
+                ]
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [],
+          "errors": [],
+          "index": 35
+        },
+        {
+          "name": "Lottery",
+          "storage": {
+            "prefix": "Lottery",
+            "items": [
+              {
+                "name": "LotteryIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": []
+              },
+              {
+                "name": "Lottery",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "LotteryConfig"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The configuration for the current lottery."
+                ]
+              },
+              {
+                "name": "Participants",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "AccountId",
+                    "value": "(u32,Vec<CallIndex>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000",
+                "docs": [
+                  " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)"
+                ]
+              },
+              {
+                "name": "TicketsCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Total number of tickets sold."
+                ]
+              },
+              {
+                "name": "Tickets",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "u32",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Each ticket's owner.",
+                  "",
+                  " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones",
+                  " are actually valid ticket mappings."
+                ]
+              },
+              {
+                "name": "CallIndices",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<CallIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The calls stored in this pallet to be used in an active lottery if configured",
+                  " by `Config::ValidateCall`."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "buy_ticket",
+              "args": [
+                {
+                  "name": "call",
+                  "type": "Call"
+                }
+              ],
+              "docs": [
+                " Buy a ticket to enter the lottery.",
+                "",
+                " This extrinsic acts as a passthrough function for `call`. In all",
+                " situations where `call` alone would succeed, this extrinsic should",
+                " succeed.",
+                "",
+                " If `call` is successful, then we will attempt to purchase a ticket,",
+                " which may fail silently. To detect success of a ticket purchase, you",
+                " should listen for the `TicketBought` event.",
+                "",
+                " This extrinsic must be called by a signed origin."
+              ]
+            },
+            {
+              "name": "set_calls",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Set calls in storage which can be used to purchase a lottery ticket.",
+                "",
+                " This function only matters if you use the `ValidateCall` implementation",
+                " provided by this pallet, which uses storage to determine the valid calls.",
+                "",
+                " This extrinsic must be called by the Manager origin."
+              ]
+            },
+            {
+              "name": "start_lottery",
+              "args": [
+                {
+                  "name": "price",
+                  "type": "BalanceOf"
+                },
+                {
+                  "name": "length",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "repeat",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Start a lottery using the provided configuration.",
+                "",
+                " This extrinsic must be called by the `ManagerOrigin`.",
+                "",
+                " Parameters:",
+                "",
+                " * `price`: The cost of a single ticket.",
+                " * `length`: How long the lottery should run for starting at the current block.",
+                " * `delay`: How long after the lottery end we should wait before picking a winner.",
+                " * `repeat`: If the lottery should repeat when completed."
+              ]
+            },
+            {
+              "name": "stop_repeat",
+              "args": [],
+              "docs": [
+                " If a lottery is repeating, you can use this to stop the repeat.",
+                " The lottery will continue to run to completion.",
+                "",
+                " This extrinsic must be called by the `ManagerOrigin`."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "LotteryStarted",
+              "args": [],
+              "docs": [
+                " A lottery has been started!"
+              ]
+            },
+            {
+              "name": "CallsUpdated",
+              "args": [],
+              "docs": [
+                " A new set of calls have been set!"
+              ]
+            },
+            {
+              "name": "Winner",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A winner has been chosen!"
+              ]
+            },
+            {
+              "name": "TicketBought",
+              "args": [
+                "AccountId",
+                "CallIndex"
+              ],
+              "docs": [
+                " A ticket has been bought!"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "PalletId",
+              "type": "PalletId",
+              "value": "0x70792f6c6f74746f",
+              "docs": [
+                " The Lottery's pallet id"
+              ]
+            },
+            {
+              "name": "MaxCalls",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " The max number of calls available in a single lottery."
+              ]
+            },
+            {
+              "name": "MaxGenerateRandom",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " Number of time we should try to generate a random number that has no modulo bias.",
+                " The larger this number, the more potential computation is used for picking the winner,",
+                " but also the more likely that the chosen winner is done fairly."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NotConfigured",
+              "docs": [
+                " A lottery has not been configured."
+              ]
+            },
+            {
+              "name": "InProgress",
+              "docs": [
+                " A lottery is already in progress."
+              ]
+            },
+            {
+              "name": "AlreadyEnded",
+              "docs": [
+                " A lottery has already ended."
+              ]
+            },
+            {
+              "name": "InvalidCall",
+              "docs": [
+                " The call is not valid for an open lottery."
+              ]
+            },
+            {
+              "name": "AlreadyParticipating",
+              "docs": [
+                " You are already participating in the lottery with this call."
+              ]
+            },
+            {
+              "name": "TooManyCalls",
+              "docs": [
+                " Too many calls for a single lottery."
+              ]
+            },
+            {
+              "name": "EncodingFailed",
+              "docs": [
+                " Failed to encode calls"
+              ]
+            }
+          ],
+          "index": 36
+        },
+        {
+          "name": "Gilt",
+          "storage": {
+            "prefix": "Gilt",
+            "items": [
+              {
+                "name": "QueueTotals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(u32,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The totals of items and balances within each queue. Saves a lot of storage reads in the",
+                  " case of sparsely packed queues.",
+                  "",
+                  " The vector is indexed by duration in `Period`s, offset by one, so information on the queue",
+                  " whose duration is one `Period` would be storage `0`."
+                ]
+              },
+              {
+                "name": "Queues",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "u32",
+                    "value": "Vec<GiltBid>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The queues of bids ready to become gilts. Indexed by duration (in `Period`s)."
+                ]
+              },
+              {
+                "name": "ActiveTotal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ActiveGiltsTotal"
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Information relating to the gilts currently active."
+                ]
+              },
+              {
+                "name": "Active",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "ActiveIndex",
+                    "value": "ActiveGilt",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The currently active gilts, indexed according to the order of creation."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "place_bid",
+              "args": [
+                {
+                  "name": "amount",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "duration",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Place a bid for a gilt to be issued.",
+                "",
+                " Origin must be Signed, and account must have at least `amount` in free balance.",
+                "",
+                " - `amount`: The amount of the bid; these funds will be reserved. If the bid is",
+                " successfully elevated into an issued gilt, then these funds will continue to be",
+                " reserved until the gilt expires. Must be at least `MinFreeze`.",
+                " - `duration`: The number of periods for which the funds will be locked if the gilt is",
+                " issued. It will expire only after this period has elapsed after the point of issuance.",
+                " Must be greater than 1 and no more than `QueueCount`.",
+                "",
+                " Complexities:",
+                " - `Queues[duration].len()` (just take max)."
+              ]
+            },
+            {
+              "name": "retract_bid",
+              "args": [
+                {
+                  "name": "amount",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "duration",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Retract a previously placed bid.",
+                "",
+                " Origin must be Signed, and the account should have previously issued a still-active bid",
+                " of `amount` for `duration`.",
+                "",
+                " - `amount`: The amount of the previous bid.",
+                " - `duration`: The duration of the previous bid."
+              ]
+            },
+            {
+              "name": "set_target",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "Compact<Perquintill>"
+                }
+              ],
+              "docs": [
+                " Set target proportion of gilt-funds.",
+                "",
+                " Origin must be `AdminOrigin`.",
+                "",
+                " - `target`: The target proportion of effective issued funds that should be under gilts",
+                " at any one time."
+              ]
+            },
+            {
+              "name": "thaw",
+              "args": [
+                {
+                  "name": "index",
+                  "type": "Compact<ActiveIndex>"
+                }
+              ],
+              "docs": [
+                " Remove an active but expired gilt. Reserved funds under gilt are freed and balance is",
+                " adjusted to ensure that the funds grow or shrink to maintain the equivalent proportion",
+                " of effective total issued funds.",
+                "",
+                " Origin must be Signed and the account must be the owner of the gilt of the given index.",
+                "",
+                " - `index`: The index of the gilt to be thawed."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BidPlaced",
+              "args": [
+                "AccountId",
+                "BalanceOf",
+                "u32"
+              ],
+              "docs": [
+                " A bid was successfully placed.",
+                " \\[ who, amount, duration \\]"
+              ]
+            },
+            {
+              "name": "BidRetracted",
+              "args": [
+                "AccountId",
+                "BalanceOf",
+                "u32"
+              ],
+              "docs": [
+                " A bid was successfully removed (before being accepted as a gilt).",
+                " \\[ who, amount, duration \\]"
+              ]
+            },
+            {
+              "name": "GiltIssued",
+              "args": [
+                "ActiveIndex",
+                "BlockNumber",
+                "AccountId",
+                "BalanceOf"
+              ],
+              "docs": [
+                " A bid was accepted as a gilt. The balance may not be released until expiry.",
+                " \\[ index, expiry, who, amount \\]"
+              ]
+            },
+            {
+              "name": "GiltThawed",
+              "args": [
+                "ActiveIndex",
+                "AccountId",
+                "BalanceOf",
+                "BalanceOf"
+              ],
+              "docs": [
+                " An expired gilt has been thawed.",
+                " \\[ index, who, original_amount, additional_amount \\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "IgnoredIssuance",
+              "type": "BalanceOf",
+              "value": "0x00000000000000000000000000000000",
+              "docs": [
+                " The issuance to ignore. This is subtracted from the `Currency`'s `total_issuance` to get",
+                " the issuance by which we inflate or deflate the gilt."
+              ]
+            },
+            {
+              "name": "QueueCount",
+              "type": "u32",
+              "value": "0x2c010000",
+              "docs": [
+                " Number of duration queues in total. This sets the maximum duration supported, which is",
+                " this value multiplied by `Period`."
+              ]
+            },
+            {
+              "name": "MaxQueueLen",
+              "type": "u32",
+              "value": "0xe8030000",
+              "docs": [
+                " Maximum number of items that may be in each duration queue."
+              ]
+            },
+            {
+              "name": "FifoQueueLen",
+              "type": "u32",
+              "value": "0xf4010000",
+              "docs": [
+                " Portion of the queue which is free from ordering and just a FIFO.",
+                "",
+                " Must be no greater than `MaxQueueLen`."
+              ]
+            },
+            {
+              "name": "Period",
+              "type": "BlockNumber",
+              "value": "0x002f0d00",
+              "docs": [
+                " The base period for the duration queues. This is the common multiple across all",
+                " supported freezing durations that can be bid upon."
+              ]
+            },
+            {
+              "name": "MinFreeze",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount of funds that may be offered to freeze for a gilt. Note that this",
+                " does not actually limit the amount which may be frozen in a gilt since gilts may be",
+                " split up in order to satisfy the desired amount of funds under gilts.",
+                "",
+                " It should be at least big enough to ensure that there is no possible storage spam attack",
+                " or queue-filling attack."
+              ]
+            },
+            {
+              "name": "IntakePeriod",
+              "type": "BlockNumber",
+              "value": "0x0a000000",
+              "docs": [
+                " The number of blocks between consecutive attempts to issue more gilts in an effort to",
+                " get to the target amount to be frozen.",
+                "",
+                " A larger value results in fewer storage hits each block, but a slower period to get to",
+                " the target."
+              ]
+            },
+            {
+              "name": "MaxIntakeBids",
+              "type": "u32",
+              "value": "0x0a000000",
+              "docs": [
+                " The maximum amount of bids that can be turned into issued gilts each block. A larger",
+                " value here means less of the block available for transactions should there be a glut of",
+                " bids to make into gilts to reach the target."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "DurationTooSmall",
+              "docs": [
+                " The duration of the bid is less than one."
+              ]
+            },
+            {
+              "name": "DurationTooBig",
+              "docs": [
+                " The duration is the bid is greater than the number of queues."
+              ]
+            },
+            {
+              "name": "AmountTooSmall",
+              "docs": [
+                " The amount of the bid is less than the minimum allowed."
+              ]
+            },
+            {
+              "name": "BidTooLow",
+              "docs": [
+                " The queue for the bid's duration is full and the amount bid is too low to get in through",
+                " replacing an existing bid."
+              ]
+            },
+            {
+              "name": "Unknown",
+              "docs": [
+                " Gilt index is unknown."
+              ]
+            },
+            {
+              "name": "NotOwner",
+              "docs": [
+                " Not the owner of the gilt."
+              ]
+            },
+            {
+              "name": "NotExpired",
+              "docs": [
+                " Gilt not yet at expiry date."
+              ]
+            },
+            {
+              "name": "NotFound",
+              "docs": [
+                " The given bid for retraction is not found."
+              ]
+            }
+          ],
+          "index": 37
+        },
+        {
+          "name": "Uniques",
+          "storage": {
+            "prefix": "Uniques",
+            "items": [
+              {
+                "name": "Class",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "ClassId",
+                    "value": "ClassDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Details of an asset class."
+                ]
+              },
+              {
+                "name": "Account",
+                "modifier": "Optional",
+                "type": {
+                  "nMap": {
+                    "keyVec": [
+                      "AccountId",
+                      "ClassId",
+                      "InstanceId"
+                    ],
+                    "hashers": [
+                      "Blake2_128Concat",
+                      "Blake2_128Concat",
+                      "Blake2_128Concat"
+                    ],
+                    "value": "()"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The assets held by any given account; set out this way so that assets owned by a single",
+                  " account can be enumerated."
+                ]
+              },
+              {
+                "name": "Asset",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_128Concat",
+                    "key1": "ClassId",
+                    "key2": "InstanceId",
+                    "value": "InstanceDetails",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The assets in existence and their ownership details."
+                ]
+              },
+              {
+                "name": "ClassMetadataOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "ClassId",
+                    "value": "ClassMetadata",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Metadata of an asset class."
+                ]
+              },
+              {
+                "name": "InstanceMetadataOf",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_128Concat",
+                    "key1": "ClassId",
+                    "key2": "InstanceId",
+                    "value": "InstanceMetadata",
+                    "key2Hasher": "Blake2_128Concat"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Metadata of an asset instance."
+                ]
+              },
+              {
+                "name": "Attribute",
+                "modifier": "Optional",
+                "type": {
+                  "nMap": {
+                    "keyVec": [
+                      "ClassId",
+                      "Option<InstanceId>",
+                      "Bytes"
+                    ],
+                    "hashers": [
+                      "Blake2_128Concat",
+                      "Blake2_128Concat",
+                      "Blake2_128Concat"
+                    ],
+                    "value": "(Bytes,DepositBalanceOf)"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Metadata of an asset class."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "create",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Issue a new class of non-fungible assets from a public origin.",
+                "",
+                " This new asset class has no assets initially and its owner is the origin.",
+                "",
+                " The origin must be Signed and the sender must have sufficient funds free.",
+                "",
+                " `AssetDeposit` funds of sender are reserved.",
+                "",
+                " Parameters:",
+                " - `class`: The identifier of the new asset class. This must not be currently in use.",
+                " - `admin`: The admin of this class of assets. The admin is the initial address of each",
+                " member of the asset class's admin team.",
+                "",
+                " Emits `Created` event when successful.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_create",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "free_holding",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Issue a new class of non-fungible assets from a privileged origin.",
+                "",
+                " This new asset class has no assets initially.",
+                "",
+                " The origin must conform to `ForceOrigin`.",
+                "",
+                " Unlike `create`, no funds are reserved.",
+                "",
+                " - `class`: The identifier of the new asset. This must not be currently in use.",
+                " - `owner`: The owner of this class of assets. The owner has full superuser permissions",
+                " over this asset, but may later change and configure the permissions using",
+                " `transfer_ownership` and `set_team`.",
+                "",
+                " Emits `ForceCreated` event when successful.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "destroy",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "witness",
+                  "type": "DestroyWitness"
+                }
+              ],
+              "docs": [
+                " Destroy a class of fungible assets.",
+                "",
+                " The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the",
+                " owner of the asset `class`.",
+                "",
+                " - `class`: The identifier of the asset class to be destroyed.",
+                " - `witness`: Information on the instances minted in the asset class. This must be",
+                " correct.",
+                "",
+                " Emits `Destroyed` event when successful.",
+                "",
+                " Weight: `O(n + m)` where:",
+                " - `n = witness.instances`",
+                " - `m = witness.instance_metadatas`",
+                " - `a = witness.attributes`"
+              ]
+            },
+            {
+              "name": "mint",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Mint an asset instance of a particular class.",
+                "",
+                " The origin must be Signed and the sender must be the Issuer of the asset `class`.",
+                "",
+                " - `class`: The class of the asset to be minted.",
+                " - `instance`: The instance value of the asset to be minted.",
+                " - `beneficiary`: The initial owner of the minted asset.",
+                "",
+                " Emits `Issued` event when successful.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "burn",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                },
+                {
+                  "name": "check_owner",
+                  "type": "Option<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Destroy a single asset instance.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `class`.",
+                "",
+                " - `class`: The class of the asset to be burned.",
+                " - `instance`: The instance of the asset to be burned.",
+                " - `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the",
+                "   asset is owned by this value.",
+                "",
+                " Emits `Burned` with the actual amount burned.",
+                "",
+                " Weight: `O(1)`",
+                " Modes: `check_owner.is_some()`."
+              ]
+            },
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Move an asset from the sender account to another.",
+                "",
+                " Origin must be Signed and the signing account must be either:",
+                " - the Admin of the asset `class`;",
+                " - the Owner of the asset `instance`;",
+                " - the approved delegate for the asset `instance` (in this case, the approval is reset).",
+                "",
+                " Arguments:",
+                " - `class`: The class of the asset to be transferred.",
+                " - `instance`: The instance of the asset to be transferred.",
+                " - `dest`: The account to receive ownership of the asset.",
+                "",
+                " Emits `Transferred`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "redeposit",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instances",
+                  "type": "Vec<InstanceId>"
+                }
+              ],
+              "docs": [
+                " Reevaluate the deposits on some assets.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `class`.",
+                "",
+                " - `class`: The class of the asset to be frozen.",
+                " - `instances`: The instances of the asset class whose deposits will be reevaluated.",
+                "",
+                " NOTE: This exists as a best-effort function. Any asset instances which are unknown or",
+                " in the case that the owner account does not have reservable funds to pay for a",
+                " deposit increase are ignored. Generally the owner isn't going to call this on instances",
+                " whose existing deposit is less than the refreshed deposit as it would only cost them,",
+                " so it's of little consequence.",
+                "",
+                " It will still return an error in the case that the class is unknown of the signer is",
+                " not permitted to call it.",
+                "",
+                " Weight: `O(instances.len())`"
+              ]
+            },
+            {
+              "name": "freeze",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                }
+              ],
+              "docs": [
+                " Disallow further unprivileged transfer of an asset instance.",
+                "",
+                " Origin must be Signed and the sender should be the Freezer of the asset `class`.",
+                "",
+                " - `class`: The class of the asset to be frozen.",
+                " - `instance`: The instance of the asset to be frozen.",
+                "",
+                " Emits `Frozen`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "thaw",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                }
+              ],
+              "docs": [
+                " Re-allow unprivileged transfer of an asset instance.",
+                "",
+                " Origin must be Signed and the sender should be the Freezer of the asset `class`.",
+                "",
+                " - `class`: The class of the asset to be thawed.",
+                " - `instance`: The instance of the asset to be thawed.",
+                "",
+                " Emits `Thawed`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "freeze_class",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                }
+              ],
+              "docs": [
+                " Disallow further unprivileged transfers for a whole asset class.",
+                "",
+                " Origin must be Signed and the sender should be the Freezer of the asset `class`.",
+                "",
+                " - `class`: The asset class to be frozen.",
+                "",
+                " Emits `ClassFrozen`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "thaw_class",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                }
+              ],
+              "docs": [
+                " Re-allow unprivileged transfers for a whole asset class.",
+                "",
+                " Origin must be Signed and the sender should be the Admin of the asset `class`.",
+                "",
+                " - `class`: The class to be thawed.",
+                "",
+                " Emits `ClassThawed`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "transfer_ownership",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Change the Owner of an asset class.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `class`.",
+                "",
+                " - `class`: The asset class whose owner should be changed.",
+                " - `owner`: The new Owner of this asset class.",
+                "",
+                " Emits `OwnerChanged`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_team",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "issuer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "freezer",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Change the Issuer, Admin and Freezer of an asset class.",
+                "",
+                " Origin must be Signed and the sender should be the Owner of the asset `class`.",
+                "",
+                " - `class`: The asset class whose team should be changed.",
+                " - `issuer`: The new Issuer of this asset class.",
+                " - `admin`: The new Admin of this asset class.",
+                " - `freezer`: The new Freezer of this asset class.",
+                "",
+                " Emits `TeamChanged`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "approve_transfer",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                },
+                {
+                  "name": "delegate",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Approve an instance to be transferred by a delegated third-party account.",
+                "",
+                " Origin must be Signed and must be the owner of the asset `instance`.",
+                "",
+                " - `class`: The class of the asset to be approved for delegated transfer.",
+                " - `instance`: The instance of the asset to be approved for delegated transfer.",
+                " - `delegate`: The account to delegate permission to transfer the asset.",
+                "",
+                " Emits `ApprovedTransfer` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "cancel_approval",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                },
+                {
+                  "name": "maybe_check_delegate",
+                  "type": "Option<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Cancel the prior approval for the transfer of an asset by a delegate.",
+                "",
+                " Origin must be either:",
+                " - the `Force` origin;",
+                " - `Signed` with the signer being the Admin of the asset `class`;",
+                " - `Signed` with the signer being the Owner of the asset `instance`;",
+                "",
+                " Arguments:",
+                " - `class`: The class of the asset of whose approval will be cancelled.",
+                " - `instance`: The instance of the asset of whose approval will be cancelled.",
+                " - `maybe_check_delegate`: If `Some` will ensure that the given account is the one to",
+                "   which permission of transfer is delegated.",
+                "",
+                " Emits `ApprovalCancelled` on success.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "force_asset_status",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "owner",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "issuer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "admin",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "freezer",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "free_holding",
+                  "type": "bool"
+                },
+                {
+                  "name": "is_frozen",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Alter the attributes of a given asset.",
+                "",
+                " Origin must be `ForceOrigin`.",
+                "",
+                " - `class`: The identifier of the asset.",
+                " - `owner`: The new Owner of this asset.",
+                " - `issuer`: The new Issuer of this asset.",
+                " - `admin`: The new Admin of this asset.",
+                " - `freezer`: The new Freezer of this asset.",
+                " - `free_holding`: Whether a deposit is taken for holding an instance of this asset",
+                "   class.",
+                " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin",
+                " instructions.",
+                "",
+                " Emits `AssetStatusChanged` with the identity of the asset.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_attribute",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "maybe_instance",
+                  "type": "Option<InstanceId>"
+                },
+                {
+                  "name": "key",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "value",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set an attribute for an asset class or instance.",
+                "",
+                " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
+                " asset `class`.",
+                "",
+                " If the origin is Signed, then funds of signer are reserved according to the formula:",
+                " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into",
+                " account any already reserved funds.",
+                "",
+                " - `class`: The identifier of the asset class whose instance's metadata to set.",
+                " - `maybe_instance`: The identifier of the asset instance whose metadata to set.",
+                " - `key`: The key of the attribute.",
+                " - `value`: The value to which to set the attribute.",
+                "",
+                " Emits `AttributeSet`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "clear_attribute",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "maybe_instance",
+                  "type": "Option<InstanceId>"
+                },
+                {
+                  "name": "key",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set an attribute for an asset class or instance.",
+                "",
+                " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
+                " asset `class`.",
+                "",
+                " If the origin is Signed, then funds of signer are reserved according to the formula:",
+                " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into",
+                " account any already reserved funds.",
+                "",
+                " - `class`: The identifier of the asset class whose instance's metadata to set.",
+                " - `instance`: The identifier of the asset instance whose metadata to set.",
+                " - `key`: The key of the attribute.",
+                " - `value`: The value to which to set the attribute.",
+                "",
+                " Emits `AttributeSet`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_metadata",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "is_frozen",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Set the metadata for an asset instance.",
+                "",
+                " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
+                " asset `class`.",
+                "",
+                " If the origin is Signed, then funds of signer are reserved according to the formula:",
+                " `MetadataDepositBase + DepositPerByte * data.len` taking into",
+                " account any already reserved funds.",
+                "",
+                " - `class`: The identifier of the asset class whose instance's metadata to set.",
+                " - `instance`: The identifier of the asset instance whose metadata to set.",
+                " - `data`: The general information of this asset. Limited in length by `StringLimit`.",
+                " - `is_frozen`: Whether the metadata should be frozen against further changes.",
+                "",
+                " Emits `MetadataSet`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "clear_metadata",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "instance",
+                  "type": "Compact<InstanceId>"
+                }
+              ],
+              "docs": [
+                " Clear the metadata for an asset instance.",
+                "",
+                " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the",
+                " asset `instance`.",
+                "",
+                " Any deposit is freed for the asset class owner.",
+                "",
+                " - `class`: The identifier of the asset class whose instance's metadata to clear.",
+                " - `instance`: The identifier of the asset instance whose metadata to clear.",
+                "",
+                " Emits `MetadataCleared`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "set_class_metadata",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "is_frozen",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " Set the metadata for an asset class.",
+                "",
+                " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
+                " the asset `class`.",
+                "",
+                " If the origin is `Signed`, then funds of signer are reserved according to the formula:",
+                " `MetadataDepositBase + DepositPerByte * data.len` taking into",
+                " account any already reserved funds.",
+                "",
+                " - `class`: The identifier of the asset whose metadata to update.",
+                " - `data`: The general information of this asset. Limited in length by `StringLimit`.",
+                " - `is_frozen`: Whether the metadata should be frozen against further changes.",
+                "",
+                " Emits `ClassMetadataSet`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            },
+            {
+              "name": "clear_class_metadata",
+              "args": [
+                {
+                  "name": "class",
+                  "type": "Compact<ClassId>"
+                }
+              ],
+              "docs": [
+                " Clear the metadata for an asset class.",
+                "",
+                " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of",
+                " the asset `class`.",
+                "",
+                " Any deposit is freed for the asset class owner.",
+                "",
+                " - `class`: The identifier of the asset class whose metadata to clear.",
+                "",
+                " Emits `ClassMetadataCleared`.",
+                "",
+                " Weight: `O(1)`"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Created",
+              "args": [
+                "ClassId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An asset class was created. \\[ class, creator, owner \\]"
+              ]
+            },
+            {
+              "name": "ForceCreated",
+              "args": [
+                "ClassId",
+                "AccountId"
+              ],
+              "docs": [
+                " An asset class was force-created. \\[ class, owner \\]"
+              ]
+            },
+            {
+              "name": "Destroyed",
+              "args": [
+                "ClassId"
+              ],
+              "docs": [
+                " An asset `class` was destroyed. \\[ class \\]"
+              ]
+            },
+            {
+              "name": "Issued",
+              "args": [
+                "ClassId",
+                "InstanceId",
+                "AccountId"
+              ],
+              "docs": [
+                " An asset `instace` was issued. \\[ class, instance, owner \\]"
+              ]
+            },
+            {
+              "name": "Transferred",
+              "args": [
+                "ClassId",
+                "InstanceId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An asset `instace` was transferred. \\[ class, instance, from, to \\]"
+              ]
+            },
+            {
+              "name": "Burned",
+              "args": [
+                "ClassId",
+                "InstanceId",
+                "AccountId"
+              ],
+              "docs": [
+                " An asset `instance` was destroyed. \\[ class, instance, owner \\]"
+              ]
+            },
+            {
+              "name": "Frozen",
+              "args": [
+                "ClassId",
+                "InstanceId"
+              ],
+              "docs": [
+                " Some asset `instance` was frozen. \\[ class, instance \\]"
+              ]
+            },
+            {
+              "name": "Thawed",
+              "args": [
+                "ClassId",
+                "InstanceId"
+              ],
+              "docs": [
+                " Some asset `instance` was thawed. \\[ class, instance \\]"
+              ]
+            },
+            {
+              "name": "ClassFrozen",
+              "args": [
+                "ClassId"
+              ],
+              "docs": [
+                " Some asset `class` was frozen. \\[ class \\]"
+              ]
+            },
+            {
+              "name": "ClassThawed",
+              "args": [
+                "ClassId"
+              ],
+              "docs": [
+                " Some asset `class` was thawed. \\[ class \\]"
+              ]
+            },
+            {
+              "name": "OwnerChanged",
+              "args": [
+                "ClassId",
+                "AccountId"
+              ],
+              "docs": [
+                " The owner changed \\[ class, new_owner \\]"
+              ]
+            },
+            {
+              "name": "TeamChanged",
+              "args": [
+                "ClassId",
+                "AccountId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " The management team changed \\[ class, issuer, admin, freezer \\]"
+              ]
+            },
+            {
+              "name": "ApprovedTransfer",
+              "args": [
+                "ClassId",
+                "InstanceId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An `instance` of an asset `class` has been approved by the `owner` for transfer by a",
+                " `delegate`.",
+                " \\[ class, instance, owner, delegate \\]"
+              ]
+            },
+            {
+              "name": "ApprovalCancelled",
+              "args": [
+                "ClassId",
+                "InstanceId",
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An approval for a `delegate` account to transfer the `instance` of an asset `class` was",
+                " cancelled by its `owner`.",
+                " \\[ class, instance, owner, delegate \\]"
+              ]
+            },
+            {
+              "name": "AssetStatusChanged",
+              "args": [
+                "ClassId"
+              ],
+              "docs": [
+                " An asset `class` has had its attributes changed by the `Force` origin.",
+                " \\[ class \\]"
+              ]
+            },
+            {
+              "name": "ClassMetadataSet",
+              "args": [
+                "ClassId",
+                "Bytes",
+                "bool"
+              ],
+              "docs": [
+                " New metadata has been set for an asset class. \\[ class, data, is_frozen \\]"
+              ]
+            },
+            {
+              "name": "ClassMetadataCleared",
+              "args": [
+                "ClassId"
+              ],
+              "docs": [
+                " Metadata has been cleared for an asset class. \\[ class \\]"
+              ]
+            },
+            {
+              "name": "MetadataSet",
+              "args": [
+                "ClassId",
+                "InstanceId",
+                "Bytes",
+                "bool"
+              ],
+              "docs": [
+                " New metadata has been set for an asset instance.",
+                " \\[ class, instance, data, is_frozen \\]"
+              ]
+            },
+            {
+              "name": "MetadataCleared",
+              "args": [
+                "ClassId",
+                "InstanceId"
+              ],
+              "docs": [
+                " Metadata has been cleared for an asset instance. \\[ class, instance \\]"
+              ]
+            },
+            {
+              "name": "Redeposited",
+              "args": [
+                "ClassId",
+                "Vec<InstanceId>"
+              ],
+              "docs": [
+                " Metadata has been cleared for an asset instance. \\[ class, successful_instances \\]"
+              ]
+            },
+            {
+              "name": "AttributeSet",
+              "args": [
+                "ClassId",
+                "Option<InstanceId>",
+                "Bytes",
+                "Bytes"
+              ],
+              "docs": [
+                " New attribute metadata has been set for an asset class or instance.",
+                " \\[ class, maybe_instance, key, value \\]"
+              ]
+            },
+            {
+              "name": "AttributeCleared",
+              "args": [
+                "ClassId",
+                "Option<InstanceId>",
+                "Bytes"
+              ],
+              "docs": [
+                " Attribute metadata has been cleared for an asset class or instance.",
+                " \\[ class, maybe_instance, key, maybe_value \\]"
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ClassDeposit",
+              "type": "DepositBalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The basic amount of funds that must be reserved for an asset class."
+              ]
+            },
+            {
+              "name": "InstanceDeposit",
+              "type": "DepositBalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The basic amount of funds that must be reserved for an asset instance."
+              ]
+            },
+            {
+              "name": "MetadataDepositBase",
+              "type": "DepositBalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The basic amount of funds that must be reserved when adding metadata to your asset."
+              ]
+            },
+            {
+              "name": "AttributeDepositBase",
+              "type": "DepositBalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": [
+                " The basic amount of funds that must be reserved when adding an attribute to an asset."
+              ]
+            },
+            {
+              "name": "DepositPerByte",
+              "type": "DepositBalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The additional funds that must be reserved for the number of bytes store in metadata,",
+                " either \"normal\" metadata or attribute metadata."
+              ]
+            },
+            {
+              "name": "StringLimit",
+              "type": "u32",
+              "value": "0x32000000",
+              "docs": [
+                " The maximum length of data stored on-chain."
+              ]
+            },
+            {
+              "name": "KeyLimit",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum length of an attribute key."
+              ]
+            },
+            {
+              "name": "ValueLimit",
+              "type": "u32",
+              "value": "0x00010000",
+              "docs": [
+                " The maximum length of an attribute value."
+              ]
+            }
+          ],
+          "errors": [
+            {
+              "name": "NoPermission",
+              "docs": [
+                " The signing account has no permission to do the operation."
+              ]
+            },
+            {
+              "name": "Unknown",
+              "docs": [
+                " The given asset ID is unknown."
+              ]
+            },
+            {
+              "name": "AlreadyExists",
+              "docs": [
+                " The asset instance ID has already been used for an asset."
+              ]
+            },
+            {
+              "name": "WrongOwner",
+              "docs": [
+                " The owner turned out to be different to what was expected."
+              ]
+            },
+            {
+              "name": "BadWitness",
+              "docs": [
+                " Invalid witness data given."
+              ]
+            },
+            {
+              "name": "InUse",
+              "docs": [
+                " The asset ID is already taken."
+              ]
+            },
+            {
+              "name": "Frozen",
+              "docs": [
+                " The asset instance or class is frozen."
+              ]
+            },
+            {
+              "name": "WrongDelegate",
+              "docs": [
+                " The delegate turned out to be different to what was expected."
+              ]
+            },
+            {
+              "name": "NoDelegate",
+              "docs": [
+                " There is no delegate approved."
+              ]
+            },
+            {
+              "name": "Unapproved",
+              "docs": [
+                " No approval exists that would allow the transfer."
+              ]
+            }
+          ],
+          "index": 38
+        },
+        {
+          "name": "TransactionStorage",
+          "storage": {
+            "prefix": "TransactionStorage",
+            "items": [
+              {
+                "name": "Transactions",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "BlockNumber",
+                    "value": "Vec<TransactionInfo>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Collection of transaction metadata by block number."
+                ]
+              },
+              {
+                "name": "ChunkCount",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_128Concat",
+                    "key": "BlockNumber",
+                    "value": "u32",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Count indexed chunks for each block."
+                ]
+              },
+              {
+                "name": "ByteFee",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage fee per byte."
+                ]
+              },
+              {
+                "name": "EntryFee",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Storage fee per transaction."
+                ]
+              },
+              {
+                "name": "MaxTransactionSize",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Maximum data set in a single transaction in bytes."
+                ]
+              },
+              {
+                "name": "MaxBlockTransactions",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Maximum number of indexed transactions in the block."
+                ]
+              },
+              {
+                "name": "StoragePeriod",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`",
+                  " for block authoring."
+                ]
+              },
+              {
+                "name": "BlockTransactions",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<TransactionInfo>"
+                },
+                "fallback": "0x00",
+                "docs": []
+              },
+              {
+                "name": "ProofChecked",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Was the proof checked in this block?"
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "store",
+              "args": [
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Index and store data on chain. Minimum data size is 1 bytes, maximum is `MaxTransactionSize`.",
+                " Data will be removed after `STORAGE_PERIOD` blocks, unless `renew` is called.",
+                " # <weight>",
+                " - n*log(n) of data size, as all data is pushed to an in-memory trie.",
+                " Additionally contains a DB write.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "renew",
+              "args": [
+                {
+                  "name": "block",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "index",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Renew previously stored data. Parameters are the block number that contains",
+                " previous `store` or `renew` call and transaction index within that block.",
+                " Transaction index is emitted in the `Stored` or `Renewed` event.",
+                " Applies same fees as `store`.",
+                " # <weight>",
+                " - Constant.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "check_proof",
+              "args": [
+                {
+                  "name": "proof",
+                  "type": "TransactionStorageProof"
+                }
+              ],
+              "docs": [
+                " Check storage proof for block number `block_number() - StoragePeriod`.",
+                " If such block does not exist the proof is expected to be `None`.",
+                " # <weight>",
+                " - Linear w.r.t the number of indexed transactions in the proved block for random probing.",
+                " There's a DB read for each transaction.",
+                " Here we assume a maximum of 100 probed transactions.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Stored",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " Stored data under specified index."
+              ]
+            },
+            {
+              "name": "Renewed",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " Renewed data under specified index."
+              ]
+            },
+            {
+              "name": "ProofChecked",
+              "args": [],
+              "docs": [
+                " Storage proof was successfully checked."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "InsufficientFunds",
+              "docs": [
+                " Insufficient account balance."
+              ]
+            },
+            {
+              "name": "NotConfigured",
+              "docs": [
+                " Invalid configuration."
+              ]
+            },
+            {
+              "name": "RenewedNotFound",
+              "docs": [
+                " Renewed extrinsic is not found."
+              ]
+            },
+            {
+              "name": "EmptyTransaction",
+              "docs": [
+                " Attempting to store empty transaction"
+              ]
+            },
+            {
+              "name": "UnexpectedProof",
+              "docs": [
+                " Proof was not expected in this block."
+              ]
+            },
+            {
+              "name": "InvalidProof",
+              "docs": [
+                " Proof failed verification."
+              ]
+            },
+            {
+              "name": "MissingProof",
+              "docs": [
+                " Missing storage proof."
+              ]
+            },
+            {
+              "name": "MissingStateData",
+              "docs": [
+                " Unable to verify proof becasue state data is missing."
+              ]
+            },
+            {
+              "name": "DoubleCheck",
+              "docs": [
+                " Double proof check in the block."
+              ]
+            },
+            {
+              "name": "ProofNotChecked",
+              "docs": [
+                " Storage proof was not checked in the block."
+              ]
+            },
+            {
+              "name": "TransactionTooLarge",
+              "docs": [
+                " Transaction is too large."
+              ]
+            },
+            {
+              "name": "TooManyTransactions",
+              "docs": [
+                " Too many transactions in the block."
+              ]
+            },
+            {
+              "name": "BadContext",
+              "docs": [
+                " Attempted to call `store` outside of block execution."
+              ]
+            }
+          ],
+          "index": 39
+        }
+      ],
+      "extrinsic": {
+        "version": 4,
+        "signedExtensions": [
+          "CheckSpecVersion",
+          "CheckTxVersion",
+          "CheckGenesis",
+          "CheckMortality",
+          "CheckNonce",
+          "CheckWeight",
+          "ChargeTransactionPayment"
+        ]
+      }
+    }
+  }
+}
diff --git a/tests/meta/v9.hex b/tests/meta/v9.hex
new file mode 100644
--- /dev/null
+++ b/tests/meta/v9.hex
@@ -0,0 +1,1 @@
+0x6d65746109641853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e010400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e011c2866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737304304469737061746368496e666f049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f045420416e2065787472696e736963206661696c65642e000c4c526571756972655369676e65644f726967696e004452657175697265526f6f744f726967696e003c526571756972654e6f4f726967696e001c5574696c697479000104146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e04b02053656e642061206261746368206f662064697370617463682063616c6c7320286f6e6c7920726f6f74292e0104344261746368457865637574656404785665633c526573756c743c28292c2044697370617463684572726f723e3e0000001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e0000001c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742ce82069742077696c6c20726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e73666572010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e00485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e001c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449643856616c696461746f72507265667301040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2902040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e02040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f7250726566732ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1c45012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279206569746865722074686520726f6f74206f726967696e206f7270207468652060543a3a536c61736843616e63656c4f726967696e602e05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e001c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002041c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002041c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e002444656d6f6372616379012444656d6f6372616379403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e24507265696d616765730001011c543a3a48617368d4285665633c75383e2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d62657229000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578a4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173683e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010438543a3a426c6f636b4e756d6265729c5665633c4f7074696f6e3c28543a3a486173682c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01541c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f7175657565640c107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e107768617460436f6d706163743c5265666572656e64756d496e6465783e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300040101205665746f20616e6420626c61636b6c697374207468652070726f706f73616c20686173682e204d7573742062652066726f6d20526f6f74206f726967696e2e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e586e6f74655f696d6d696e656e745f707265696d6167650c40656e636f6465645f70726f706f73616c1c5665633c75383e107768656e38543a3a426c6f636b4e756d6265721477686963680c7533320845012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265b420696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e34726561705f707265696d616765043470726f706f73616c5f686173681c543a3a4861736804f42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e01402050726f706f736564082450726f70496e6465781c42616c616e636504c02041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e04dc2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404602041207265666572656e64756d2068617320626567756e2e18506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f74506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c6564043c5265666572656e64756d496e64657804842041207265666572656e64756d20686173206265656e2063616e63656c6c65642e204578656375746564083c5265666572656e64756d496e64657810626f6f6c047420412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408244163636f756e744964244163636f756e74496404e020416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404244163636f756e74496404e820416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572049820416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504e020412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636504150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964045d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c6563746564206279207468652072656170657220286c617374206974656d292e1c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e001c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e000048546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e000024456c656374696f6e73014050687261676d656e456c656374696f6e181c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742069642e20412063757272656e74206d656d6265722063616e206e6576657220656e7465720101207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379002451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722075702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64842020206f726967696e2069732072656d6f76656420617320612072756e6e65722e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a02041206d656d626572206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d626572108013030000004c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0114286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e286368616e67655f6b6579040c6e657730543a3a4163636f756e7449640cd82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904b4727374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e001c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e0000205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01182050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e103050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0024436f6e7472616374730120436f6e74726163741c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365046901205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060696e7374616e7469617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c75333210080000000851012053697a65206f66206120636f6e7472616374206174207468652074696d65206f6620696e7374616e746961696f6e2e205468697320697320612073696d706c652077617920746f20656e737572652074686174a420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4000407a10f35a00000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e4000008a5d7845630100000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e400080a1a76b4a3500000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000084101205468652066656520726571756972656420746f20696e7374616e7469617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e48496e7374616e7469617465426173654665650c47617320e80300000000000008390120546865206261736520666565206368617267656420666f7220696e7374616e74696174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e00105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e000020496d4f6e6c696e650120496d4f6e6c696e651020476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000048417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000144e69636b7301105375646f04184e616d654f6600010130543a3a4163636f756e7449645c285665633c75383e2c2042616c616e63654f663c543e29000400047020546865206c6f6f6b7570207461626c6520666f72206e616d65732e0110207365745f6e616d6504106e616d651c5665633c75383e405d012053657420616e206163636f756e742773206e616d652e20546865206e616d652073686f756c642062652061205554462d382d656e636f64656420737472696e6720627920636f6e76656e74696f6e2c2074686f7567684c20776520646f6e277420636865636b2069742e00610120546865206e616d65206d6179206e6f74206265206d6f7265207468616e2060543a3a4d61784c656e677468602062797465732c206e6f72206c657373207468616e2060543a3a4d696e4c656e677468602062797465732e005d0120496620746865206163636f756e7420646f65736e277420616c726561647920686176652061206e616d652c207468656e206120666565206f6620605265736572766174696f6e466565602069732072657365727665644020696e20746865206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28636c6561725f6e616d650028510120436c65617220616e206163636f756e742773206e616d6520616e642072657475726e20746865206465706f7369742e204661696c7320696620746865206163636f756e7420776173206e6f74206e616d65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e246b696c6c5f6e616d6504187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636534e42052656d6f766520616e206163636f756e742773206e616d6520616e642074616b6520636861726765206f6620746865206465706f7369742e004901204661696c73206966206077686f6020686173206e6f74206265656e206e616d65642e20546865206465706f736974206973206465616c742077697468207468726f7567682060543a3a536c6173686564604c20696d62616c616e63652068616e646c65722e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292edc202d204f6e6520756e62616c616e6365642068616e646c6572202870726f6261626c7920612062616c616e6365207472616e736665722968202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28666f7263655f6e616d6508187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106e616d651c5665633c75383e30c82053657420612074686972642d7061727479206163636f756e742773206e616d652077697468206e6f206465706f7369742e00a0204e6f206c656e67746820636865636b696e6720697320646f6e65206f6e20746865206e616d652e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e01141c4e616d6553657404244163636f756e74496404402041206e616d6520776173207365742e284e616d65466f7263656404244163636f756e74496404642041206e616d652077617320666f726369626c79207365742e2c4e616d654368616e67656404244163636f756e74496404502041206e616d6520776173206368616e6765642e2c4e616d65436c656172656408244163636f756e7449641c42616c616e636504d02041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e284e616d654b696c6c656408244163636f756e7449641c42616c616e636504c82041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e0c385265736572766174696f6e4665653042616c616e63654f663c543e4000407a10f35a000000000000000000000444205265736572766174696f6e206665652e244d696e4c656e6774680c7533321003000000048820546865206d696e696d756d206c656e6774682061206e616d65206d61792062652e244d61784c656e6774680c7533321010000000048820546865206d6178696d756d206c656e6774682061206e616d65206d61792062652e00
diff --git a/tests/meta/v9.json b/tests/meta/v9.json
new file mode 100644
--- /dev/null
+++ b/tests/meta/v9.json
@@ -0,0 +1,4896 @@
+{
+  "magicNumber": 1635018093,
+  "metadata": {
+    "v9": {
+      "modules": [
+        {
+          "name": "System",
+          "storage": {
+            "prefix": "System",
+            "items": [
+              {
+                "name": "AccountNonce",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Index",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Extrinsics nonce for accounts."
+                ]
+              },
+              {
+                "name": "ExtrinsicCount",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total extrinsics count for the current block."
+                ]
+              },
+              {
+                "name": "AllExtrinsicsWeight",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "Weight"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total weight for all extrinsics put together, for the current block."
+                ]
+              },
+              {
+                "name": "AllExtrinsicsLen",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Total length (in bytes) for all extrinsics put together, for the current block."
+                ]
+              },
+              {
+                "name": "BlockHash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "BlockNumber",
+                    "value": "Hash",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Map of block numbers to block hashes."
+                ]
+              },
+              {
+                "name": "ExtrinsicData",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "u32",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Extrinsics data for the current block (maps an extrinsic's index to its data)."
+                ]
+              },
+              {
+                "name": "Number",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The current block number being processed. Set by `execute_block`."
+                ]
+              },
+              {
+                "name": "ParentHash",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Hash of the previous block."
+                ]
+              },
+              {
+                "name": "ExtrinsicsRoot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Hash"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Extrinsics root of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Digest",
+                "modifier": "Default",
+                "type": {
+                  "plain": "DigestOf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Digest of the current block, also part of the block header."
+                ]
+              },
+              {
+                "name": "Events",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<EventRecord>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Events deposited for the current block."
+                ]
+              },
+              {
+                "name": "EventCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EventIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of events in the `Events<T>` list."
+                ]
+              },
+              {
+                "name": "EventTopics",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "()",
+                    "key2": "Hash",
+                    "value": "Vec<(BlockNumber,EventIndex)>",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Mapping between a topic (represented by T::Hash) and a vector of indexes",
+                  " of events in the `<Events<T>>` list.",
+                  "",
+                  " The first key serves no purpose. This field is declared as double_map just",
+                  " for convenience of using `remove_prefix`.",
+                  "",
+                  " All topic vectors have deterministic storage locations depending on the topic. This",
+                  " allows light-clients to leverage the changes trie storage tracking mechanism and",
+                  " in case of changes fetch the list of events of interest.",
+                  "",
+                  " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just",
+                  " the `EventIndex` then in case if the topic has the same contents on the next block",
+                  " no notification will be triggered thus the event might be lost."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "fill_block",
+              "args": [],
+              "docs": [
+                " A big dispatch that will disallow any other transaction to be included."
+              ]
+            },
+            {
+              "name": "remark",
+              "args": [
+                {
+                  "name": "_remark",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Make some on-chain remark."
+              ]
+            },
+            {
+              "name": "set_heap_pages",
+              "args": [
+                {
+                  "name": "pages",
+                  "type": "u64"
+                }
+              ],
+              "docs": [
+                " Set the number of pages in the WebAssembly environment's heap."
+              ]
+            },
+            {
+              "name": "set_code",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set the new code."
+              ]
+            },
+            {
+              "name": "set_storage",
+              "args": [
+                {
+                  "name": "items",
+                  "type": "Vec<KeyValue>"
+                }
+              ],
+              "docs": [
+                " Set some items of storage."
+              ]
+            },
+            {
+              "name": "kill_storage",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Vec<Key>"
+                }
+              ],
+              "docs": [
+                " Kill some items from storage."
+              ]
+            },
+            {
+              "name": "kill_prefix",
+              "args": [
+                {
+                  "name": "prefix",
+                  "type": "Key"
+                }
+              ],
+              "docs": [
+                " Kill all storage items with a key that starts with the given prefix."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "ExtrinsicSuccess",
+              "args": [
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic completed successfully."
+              ]
+            },
+            {
+              "name": "ExtrinsicFailed",
+              "args": [
+                "DispatchError",
+                "DispatchInfo"
+              ],
+              "docs": [
+                " An extrinsic failed."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": [
+            {
+              "name": "RequireSignedOrigin",
+              "docs": []
+            },
+            {
+              "name": "RequireRootOrigin",
+              "docs": []
+            },
+            {
+              "name": "RequireNoOrigin",
+              "docs": []
+            }
+          ]
+        },
+        {
+          "name": "Utility",
+          "storage": null,
+          "calls": [
+            {
+              "name": "batch",
+              "args": [
+                {
+                  "name": "calls",
+                  "type": "Vec<Call>"
+                }
+              ],
+              "docs": [
+                " Send a batch of dispatch calls (only root)."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "BatchExecuted",
+              "args": [
+                "Vec<Result<(),DispatchError>>"
+              ],
+              "docs": []
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Babe",
+          "storage": {
+            "prefix": "Babe",
+            "items": [
+              {
+                "name": "EpochIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current epoch index."
+                ]
+              },
+              {
+                "name": "Authorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Current epoch authorities."
+                ]
+              },
+              {
+                "name": "GenesisSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The slot at which the first epoch actually started. This is 0",
+                  " until the first block of the chain."
+                ]
+              },
+              {
+                "name": "CurrentSlot",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current slot number."
+                ]
+              },
+              {
+                "name": "Randomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "[u8;32]"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The epoch randomness for the *current* epoch.",
+                  "",
+                  " # Security",
+                  "",
+                  " This MUST NOT be used for gambling, as it can be influenced by a",
+                  " malicious validator in the short term. It MAY be used in many",
+                  " cryptographic protocols, however, so long as one remembers that this",
+                  " (like everything else on-chain) it is public. For example, it can be",
+                  " used where a number is needed that cannot have been chosen by an",
+                  " adversary, for purposes such as public-coin zero-knowledge proofs."
+                ]
+              },
+              {
+                "name": "NextRandomness",
+                "modifier": "Default",
+                "type": {
+                  "plain": "[u8;32]"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Next epoch randomness."
+                ]
+              },
+              {
+                "name": "SegmentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Randomness under construction.",
+                  "",
+                  " We make a tradeoff between storage accesses and list length.",
+                  " We store the under-construction randomness in segments of up to",
+                  " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.",
+                  "",
+                  " Once a segment reaches this length, we begin the next one.",
+                  " We reset all segments and return to `0` at the beginning of every",
+                  " epoch."
+                ]
+              },
+              {
+                "name": "UnderConstruction",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "u32",
+                    "value": "Vec<[u8;32]>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": []
+              },
+              {
+                "name": "Initialized",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "MaybeVrf"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Temporary value (cleared at block finalization) which is `Some`",
+                  " if per-block initialization has already been called for current block."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": null,
+          "constants": [
+            {
+              "name": "EpochDuration",
+              "type": "u64",
+              "value": "0xc800000000000000",
+              "docs": [
+                " The number of **slots** that an epoch takes. We couple sessions to",
+                " epochs, i.e. we start a new session once the new epoch begins."
+              ]
+            },
+            {
+              "name": "ExpectedBlockTime",
+              "type": "Moment",
+              "value": "0xb80b000000000000",
+              "docs": [
+                " The expected average block time at which BABE should be creating",
+                " blocks. Since BABE is probabilistic it is not trivial to figure out",
+                " what the expected average block time should be based on the slot",
+                " duration and the security parameter `c` (where `1 - c` represents",
+                " the probability of a slot being empty)."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Timestamp",
+          "storage": {
+            "prefix": "Timestamp",
+            "items": [
+              {
+                "name": "Now",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Moment"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Current time for the current block."
+                ]
+              },
+              {
+                "name": "DidUpdate",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Did the timestamp get updated in this block?"
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set",
+              "args": [
+                {
+                  "name": "now",
+                  "type": "Compact<Moment>"
+                }
+              ],
+              "docs": [
+                " Set the current time.",
+                "",
+                " This call should be invoked exactly once per block. It will panic at the finalization",
+                " phase, if this call hasn't been invoked by that time.",
+                "",
+                " The timestamp should be greater than the previous one by the amount specified by",
+                " `MinimumPeriod`.",
+                "",
+                " The dispatch origin for this call must be `Inherent`."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "MinimumPeriod",
+              "type": "Moment",
+              "value": "0xdc05000000000000",
+              "docs": [
+                " The minimum period between blocks. Beware that this is different to the *expected* period",
+                " that the block production apparatus provides. Your chosen consensus system will generally",
+                " work with this to determine a sensible block time. e.g. For Aura, it will be double this",
+                " period on default settings."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Authorship",
+          "storage": {
+            "prefix": "Authorship",
+            "items": [
+              {
+                "name": "Uncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<UncleEntryItem>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Uncles"
+                ]
+              },
+              {
+                "name": "Author",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Author of current block."
+                ]
+              },
+              {
+                "name": "DidSetUncles",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Whether uncles were already set in this block."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_uncles",
+              "args": [
+                {
+                  "name": "new_uncles",
+                  "type": "Vec<Header>"
+                }
+              ],
+              "docs": [
+                " Provide a set of uncles."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Indices",
+          "storage": {
+            "prefix": "Indices",
+            "items": [
+              {
+                "name": "NextEnumSet",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AccountIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next free enumeration set."
+                ]
+              },
+              {
+                "name": "EnumSet",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountIndex",
+                    "value": "Vec<AccountId>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The enumeration sets."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": [
+            {
+              "name": "NewAccountIndex",
+              "args": [
+                "AccountId",
+                "AccountIndex"
+              ],
+              "docs": [
+                " A new account index was assigned.",
+                "",
+                " This event is not triggered when an existing index is reassigned",
+                " to another `AccountId`."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Balances",
+          "storage": {
+            "prefix": "Balances",
+            "items": [
+              {
+                "name": "TotalIssuance",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Balance"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The total units issued in the system."
+                ]
+              },
+              {
+                "name": "Vesting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "VestingSchedule",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information regarding the vesting of a given account."
+                ]
+              },
+              {
+                "name": "FreeBalance",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Balance",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The 'free' balance of a given account.",
+                  "",
+                  " This is the only balance that matters in terms of most operations on tokens. It",
+                  " alone is used to determine the balance when in the contract execution environment. When this",
+                  " balance falls below the value of `ExistentialDeposit`, then the 'current account' is",
+                  " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback",
+                  " is invoked, giving a chance to external modules to clean up data associated with",
+                  " the deleted account.",
+                  "",
+                  " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets",
+                  " collapsed to zero if it ever becomes less than `ExistentialDeposit`."
+                ]
+              },
+              {
+                "name": "ReservedBalance",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Balance",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of the balance of a given account that is externally reserved; this can still get",
+                  " slashed, but gets slashed last of all.",
+                  "",
+                  " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens",
+                  " that are still 'owned' by the account holder, but which are suspendable.",
+                  "",
+                  " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'",
+                  " is deleted: specifically, `ReservedBalance`.",
+                  "",
+                  " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets",
+                  " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"
+                ]
+              },
+              {
+                "name": "Locks",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Vec<BalanceLock>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any liquidity locks on some account balances."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "transfer",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Transfer some liquid free balance to another account.",
+                "",
+                " `transfer` will set the `FreeBalance` of the sender and receiver.",
+                " It will decrease the total issuance of the system by the `TransferFee`.",
+                " If the sender's account is below the existential deposit as a result",
+                " of the transfer, the account will be reaped.",
+                "",
+                " The dispatch origin for this call must be `Signed` by the transactor.",
+                "",
+                " # <weight>",
+                " - Dependent on arguments but not critical, given proper implementations for",
+                "   input config types. See related functions below.",
+                " - It contains a limited number of reads and writes internally and no complex computation.",
+                "",
+                " Related functions:",
+                "",
+                "   - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
+                "   - Transferring balances to accounts that did not exist before will cause",
+                "      `T::OnNewAccount::on_new_account` to be called.",
+                "   - Removing enough funds from an account will trigger",
+                "     `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.",
+                "   - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
+                "     check that the transfer will not kill the origin account.",
+                "",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_balance",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "new_free",
+                  "type": "Compact<Balance>"
+                },
+                {
+                  "name": "new_reserved",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Set the balances of a given account.",
+                "",
+                " This will alter `FreeBalance` and `ReservedBalance` in storage. it will",
+                " also decrease the total issuance of the system (`TotalIssuance`).",
+                " If the new free or reserved balance is below the existential deposit,",
+                " it will reset the account nonce (`system::AccountNonce`).",
+                "",
+                " The dispatch origin for this call is `root`.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments.",
+                " - Contains a limited number of reads and writes.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_transfer",
+              "args": [
+                {
+                  "name": "source",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Exactly as `transfer`, except the origin must be root and the source account may be",
+                " specified."
+              ]
+            },
+            {
+              "name": "transfer_keep_alive",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<Balance>"
+                }
+              ],
+              "docs": [
+                " Same as the [`transfer`] call, but with a check that the transfer will not kill the",
+                " origin account.",
+                "",
+                " 99% of the time you want [`transfer`] instead.",
+                "",
+                " [`transfer`]: struct.Module.html#method.transfer"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewAccount",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A new account was created."
+              ]
+            },
+            {
+              "name": "ReapedAccount",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An account was reaped."
+              ]
+            },
+            {
+              "name": "Transfer",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " Transfer succeeded (from, to, value, fees)."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ExistentialDeposit",
+              "type": "Balance",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The minimum amount required to keep an account open."
+              ]
+            },
+            {
+              "name": "TransferFee",
+              "type": "Balance",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to make a transfer."
+              ]
+            },
+            {
+              "name": "CreationFee",
+              "type": "Balance",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to create an account."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "TransactionPayment",
+          "storage": {
+            "prefix": "Balances",
+            "items": [
+              {
+                "name": "NextFeeMultiplier",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Multiplier"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": []
+              }
+            ]
+          },
+          "calls": null,
+          "events": null,
+          "constants": [
+            {
+              "name": "TransactionBaseFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the base."
+              ]
+            },
+            {
+              "name": "TransactionByteFee",
+              "type": "BalanceOf",
+              "value": "0x00e40b54020000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the per-byte portion."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Staking",
+          "storage": {
+            "prefix": "Staking",
+            "items": [
+              {
+                "name": "ValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The ideal number of staking participants."
+                ]
+              },
+              {
+                "name": "MinimumValidatorCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x04000000",
+                "docs": [
+                  " Minimum number of staking participants before emergency conditions are imposed."
+                ]
+              },
+              {
+                "name": "Invulnerables",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're",
+                  " easy to initialize and the performance hit is minimal (we expect no more than four",
+                  " invulnerables) and restricted to testnets."
+                ]
+              },
+              {
+                "name": "Bonded",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all locked \"stash\" accounts to the controller account."
+                ]
+              },
+              {
+                "name": "Ledger",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "StakingLedger",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map from all (unlocked) \"controller\" accounts to the info regarding the staking."
+                ]
+              },
+              {
+                "name": "Payee",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "RewardDestination",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Where the reward payment should be made. Keyed by stash."
+                ]
+              },
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "ValidatorPrefs",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from (wannabe) validator stash key to the preferences of that validator."
+                ]
+              },
+              {
+                "name": "Nominators",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Nominations",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The map from nominator stash key to the set of stash keys of all validators to nominate.",
+                  "",
+                  " NOTE: is private so that we can ensure upgraded before all typical accesses.",
+                  " Direct storage APIs can still bypass this protection."
+                ]
+              },
+              {
+                "name": "Stakers",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Exposure",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x000000",
+                "docs": [
+                  " Nominators for a particular account that is in action right now. You can't iterate",
+                  " through validators here, but you can find them in the Session module.",
+                  "",
+                  " This is keyed by the stash account."
+                ]
+              },
+              {
+                "name": "CurrentElected",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The currently elected validator set keyed by stash account ID."
+                ]
+              },
+              {
+                "name": "CurrentEra",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The current era index."
+                ]
+              },
+              {
+                "name": "CurrentEraStart",
+                "modifier": "Default",
+                "type": {
+                  "plain": "MomentOf"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The start of the current era."
+                ]
+              },
+              {
+                "name": "CurrentEraStartSessionIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The session index at which the current era started."
+                ]
+              },
+              {
+                "name": "CurrentEraPointsEarned",
+                "modifier": "Default",
+                "type": {
+                  "plain": "EraPoints"
+                },
+                "fallback": "0x0000000000",
+                "docs": [
+                  " Rewards for the current era. Using indices of current elected set."
+                ]
+              },
+              {
+                "name": "SlotStake",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of balance actively at stake for each validator slot, currently.",
+                  "",
+                  " This is used to derive rewards and punishments."
+                ]
+              },
+              {
+                "name": "ForceEra",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Forcing"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the next session change will be a new era regardless of index."
+                ]
+              },
+              {
+                "name": "SlashRewardFraction",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Perbill"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The percentage of the slash that is distributed to reporters.",
+                  "",
+                  " The rest of the slashed value is handled by the `Slash`."
+                ]
+              },
+              {
+                "name": "CanceledSlashPayout",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " The amount of currency given to reporters of a slash event which was",
+                  " canceled by extraordinary circumstances (e.g. governance)."
+                ]
+              },
+              {
+                "name": "UnappliedSlashes",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "EraIndex",
+                    "value": "Vec<UnappliedSlash>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All unapplied slashes that are queued for later."
+                ]
+              },
+              {
+                "name": "BondedEras",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(EraIndex,SessionIndex)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from still-bonded eras to the first session index of that era."
+                ]
+              },
+              {
+                "name": "ValidatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "(Perbill,BalanceOf)",
+                    "key2Hasher": "Twox128"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on validators, mapped by era to the highest slash proportion",
+                  " and slash value of the era."
+                ]
+              },
+              {
+                "name": "NominatorSlashInEra",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "EraIndex",
+                    "key2": "AccountId",
+                    "value": "BalanceOf",
+                    "key2Hasher": "Twox128"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " All slashing events on nominators, mapped by era to the highest slash value of the era."
+                ]
+              },
+              {
+                "name": "SlashingSpans",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "SlashingSpans",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Slashing spans for stash accounts."
+                ]
+              },
+              {
+                "name": "SpanSlash",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "(AccountId,SpanIndex)",
+                    "value": "SpanRecord",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Records information about the maximum slash of a stash within a slashing span,",
+                  " as well as how much reward has been paid out."
+                ]
+              },
+              {
+                "name": "EarliestUnappliedSlash",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "EraIndex"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The earliest era for which we have a pending, unapplied slash."
+                ]
+              },
+              {
+                "name": "StorageVersion",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The version of storage for upgrade."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "bond",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " Take the origin account as a stash and lock up `value` of its balance. `controller` will",
+                " be the account that controls it.",
+                "",
+                " `value` must be more than the `minimum_balance` specified by `T::Currency`.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash account.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Moderate complexity.",
+                " - O(1).",
+                " - Three extra DB entries.",
+                "",
+                " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless",
+                " the `origin` falls below _existential deposit_ and gets removed as dust.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "bond_extra",
+              "args": [
+                {
+                  "name": "max_additional",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Add some extra amount that have appeared in the stash `free_balance` into the balance up",
+                " for staking.",
+                "",
+                " Use this if there are additional funds in your stash account that you wish to bond.",
+                " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount",
+                " that can be added.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - O(1).",
+                " - One DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "unbond",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Schedule a portion of the stash to be unlocked ready for transfer out after the bond",
+                " period ends. If this leaves an amount actively bonded less than",
+                " T::Currency::minimum_balance(), then it is increased to the full amount.",
+                "",
+                " Once the unlock period is done, you can call `withdraw_unbonded` to actually move",
+                " the funds out of management ready for transfer.",
+                "",
+                " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)",
+                " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need",
+                " to be called first to remove some of the chunks (if possible).",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " See also [`Call::withdraw_unbonded`].",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Limited but potentially exploitable complexity.",
+                " - Contains a limited number of reads.",
+                " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)",
+                "   will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.",
+                "   The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.",
+                " - One DB entry.",
+                " </weight>"
+              ]
+            },
+            {
+              "name": "withdraw_unbonded",
+              "args": [],
+              "docs": [
+                " Remove any unlocked chunks from the `unlocking` queue from our management.",
+                "",
+                " This essentially frees up that balance to be used by the stash account to do",
+                " whatever it wants.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " See also [`Call::unbond`].",
+                "",
+                " # <weight>",
+                " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.",
+                "  It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is",
+                "  indirectly user-controlled. See [`unbond`] for more detail.",
+                " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "validate",
+              "args": [
+                {
+                  "name": "prefs",
+                  "type": "ValidatorPrefs"
+                }
+              ],
+              "docs": [
+                " Declare the desire to validate for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "nominate",
+              "args": [
+                {
+                  "name": "targets",
+                  "type": "Vec<LookupSource>"
+                }
+              ],
+              "docs": [
+                " Declare the desire to nominate `targets` for the origin controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - The transaction's complexity is proportional to the size of `targets`,",
+                " which is capped at `MAX_NOMINATIONS`.",
+                " - Both the reads and writes follow a similar pattern.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "chill",
+              "args": [],
+              "docs": [
+                " Declare no desire to either validate or nominate.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains one read.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_payee",
+              "args": [
+                {
+                  "name": "payee",
+                  "type": "RewardDestination"
+                }
+              ],
+              "docs": [
+                " (Re-)set the payment target for a controller.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the controller, not the stash.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_controller",
+              "args": [
+                {
+                  "name": "controller",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " (Re-)set the controller of a stash.",
+                "",
+                " Effects will be felt at the beginning of the next era.",
+                "",
+                " The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
+                "",
+                " # <weight>",
+                " - Independent of the arguments. Insignificant complexity.",
+                " - Contains a limited number of reads.",
+                " - Writes are limited to the `origin` account key.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_validator_count",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "Compact<u32>"
+                }
+              ],
+              "docs": [
+                " The ideal number of validators."
+              ]
+            },
+            {
+              "name": "force_no_eras",
+              "args": [],
+              "docs": [
+                " Force there to be no new eras indefinitely.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_new_era",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of the next session. After this, it will be",
+                " reset to normal (non-forced) behaviour.",
+                "",
+                " # <weight>",
+                " - No arguments.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_invulnerables",
+              "args": [
+                {
+                  "name": "validators",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the validators who cannot be slashed (if any)."
+              ]
+            },
+            {
+              "name": "force_unstake",
+              "args": [
+                {
+                  "name": "stash",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Force a current staker to become completely unstaked, immediately."
+              ]
+            },
+            {
+              "name": "force_new_era_always",
+              "args": [],
+              "docs": [
+                " Force there to be a new era at the end of sessions indefinitely.",
+                "",
+                " # <weight>",
+                " - One storage write",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "cancel_deferred_slash",
+              "args": [
+                {
+                  "name": "era",
+                  "type": "EraIndex"
+                },
+                {
+                  "name": "slash_indices",
+                  "type": "Vec<u32>"
+                }
+              ],
+              "docs": [
+                " Cancel enactment of a deferred slash. Can be called by either the root origin or",
+                " the `T::SlashCancelOrigin`.",
+                " passing the era and indices of the slashes for that era to kill.",
+                "",
+                " # <weight>",
+                " - One storage write.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Reward",
+              "args": [
+                "Balance",
+                "Balance"
+              ],
+              "docs": [
+                " All validators have been rewarded by the first balance; the second is the remainder",
+                " from the maximum amount of reward."
+              ]
+            },
+            {
+              "name": "Slash",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " One validator (and its nominators) has been slashed by the given amount."
+              ]
+            },
+            {
+              "name": "OldSlashingReportDiscarded",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " An old slashing report from a prior era was discarded because it could",
+                " not be processed."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SessionsPerEra",
+              "type": "SessionIndex",
+              "value": "0x06000000",
+              "docs": [
+                " Number of sessions per era."
+              ]
+            },
+            {
+              "name": "BondingDuration",
+              "type": "EraIndex",
+              "value": "0xa0020000",
+              "docs": [
+                " Number of eras that staked funds must remain bonded for."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Session",
+          "storage": {
+            "prefix": "Session",
+            "items": [
+              {
+                "name": "Validators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ValidatorId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of validators."
+                ]
+              },
+              {
+                "name": "CurrentIndex",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SessionIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Current index of the session."
+                ]
+              },
+              {
+                "name": "QueuedChanged",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the underlying economic identities or weighting behind the validators",
+                  " has changed in the queued validator set."
+                ]
+              },
+              {
+                "name": "QueuedKeys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(ValidatorId,Keys)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The queued keys for the next session. When the next session begins, these keys",
+                  " will be used to determine the validator's session keys."
+                ]
+              },
+              {
+                "name": "DisabledValidators",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<u32>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Indices of disabled validators.",
+                  "",
+                  " The set is cleared when `on_session_ending` returns a new set of identities."
+                ]
+              },
+              {
+                "name": "NextKeys",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "Bytes",
+                    "key2": "ValidatorId",
+                    "value": "Keys",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The next session keys for a validator.",
+                  "",
+                  " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
+                  " the trie. Having all data in the same branch should prevent slowing down other queries."
+                ]
+              },
+              {
+                "name": "KeyOwner",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Twox64Concat",
+                    "key1": "Bytes",
+                    "key2": "(KeyTypeId,Bytes)",
+                    "value": "ValidatorId",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The owner of a key. The second key is the `KeyTypeId` + the encoded key.",
+                  "",
+                  " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of",
+                  " the trie. Having all data in the same branch should prevent slowing down other queries."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_keys",
+              "args": [
+                {
+                  "name": "keys",
+                  "type": "Keys"
+                },
+                {
+                  "name": "proof",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Sets the session key(s) of the function caller to `key`.",
+                " Allows an account to set its session key prior to becoming a validator.",
+                " This doesn't take effect until the next session.",
+                "",
+                " The dispatch origin of this function must be signed.",
+                "",
+                " # <weight>",
+                " - O(log n) in number of accounts.",
+                " - One extra DB entry.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewSession",
+              "args": [
+                "SessionIndex"
+              ],
+              "docs": [
+                " New session has happened. Note that the argument is the session index, not the block",
+                " number as the type might suggest."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "DEDUP_KEY_PREFIX",
+              "type": "Bytes",
+              "value": "0x343a73657373696f6e3a6b657973",
+              "docs": [
+                " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch",
+                " of the trie."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Democracy",
+          "storage": {
+            "prefix": "Democracy",
+            "items": [
+              {
+                "name": "PublicPropCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "PropIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The number of (public) proposals that have been made so far."
+                ]
+              },
+              {
+                "name": "PublicProps",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(PropIndex,Hash,AccountId)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The public proposals. Unsorted. The second item is the proposal's hash."
+                ]
+              },
+              {
+                "name": "Preimages",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "(Bytes,AccountId,BalanceOf,BlockNumber)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Map of hashes to the proposal preimage, along with who registered it and their deposit.",
+                  " The block number is the block at which it was deposited."
+                ]
+              },
+              {
+                "name": "DepositOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "PropIndex",
+                    "value": "(BalanceOf,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Those who have locked a deposit."
+                ]
+              },
+              {
+                "name": "ReferendumCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next free referendum index, aka the number of referenda started so far."
+                ]
+              },
+              {
+                "name": "NextTally",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ReferendumIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The next referendum index that should be tallied."
+                ]
+              },
+              {
+                "name": "ReferendumInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ReferendumIndex",
+                    "value": "ReferendumInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Information concerning any given referendum."
+                ]
+              },
+              {
+                "name": "DispatchQueue",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Twox64Concat",
+                    "key": "BlockNumber",
+                    "value": "Vec<Option<(Hash,ReferendumIndex)>>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Queue of successful referenda to be dispatched."
+                ]
+              },
+              {
+                "name": "VotersFor",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ReferendumIndex",
+                    "value": "Vec<AccountId>",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Get the voters for the current proposal."
+                ]
+              },
+              {
+                "name": "VoteOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "(ReferendumIndex,AccountId)",
+                    "value": "Vote",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Get the vote in a given referendum of a particular voter. The result is meaningful only",
+                  " if `voters_for` includes the voter when called with the referendum (you'll get the",
+                  " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can",
+                  " also check for simple existence with `VoteOf::exists` first."
+                ]
+              },
+              {
+                "name": "Proxy",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "AccountId",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Who is able to vote for whom. Value is the fund-holding account, key is the",
+                  " vote-transaction-sending account."
+                ]
+              },
+              {
+                "name": "Delegations",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "(AccountId,Conviction)",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " Get the account (and lock periods) to which another account is delegating vote."
+                ]
+              },
+              {
+                "name": "LastTabledWasExternal",
+                "modifier": "Default",
+                "type": {
+                  "plain": "bool"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " True if the last referendum tabled was submitted externally. False if it was a public",
+                  " proposal."
+                ]
+              },
+              {
+                "name": "NextExternal",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(Hash,VoteThreshold)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The referendum to be tabled whenever it would be valid to table an external proposal.",
+                  " This happens when a referendum needs to be tabled and one of two conditions are met:",
+                  " - `LastTabledWasExternal` is `false`; or",
+                  " - `PublicProps` is empty."
+                ]
+              },
+              {
+                "name": "Blacklist",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "(BlockNumber,Vec<AccountId>)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A record of who vetoed what. Maps proposal hash to a possible existent block number",
+                  " (until when it may not be resubmitted) and who vetoed it."
+                ]
+              },
+              {
+                "name": "Cancellations",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "bool",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Record of all proposals that have been subject to emergency cancellation."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Propose a sensitive action to be taken.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Two DB changes, one DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "second",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Compact<PropIndex>"
+                }
+              ],
+              "docs": [
+                " Propose a sensitive action to be taken.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                },
+                {
+                  "name": "vote",
+                  "type": "Vote"
+                }
+              ],
+              "docs": [
+                " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;",
+                " otherwise it is a vote to keep the status quo.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One DB change, one DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "proxy_vote",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                },
+                {
+                  "name": "vote",
+                  "type": "Vote"
+                }
+              ],
+              "docs": [
+                " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact",
+                " the proposal;  otherwise it is a vote to keep the status quo.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One DB change, one DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "emergency_cancel",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "ReferendumIndex"
+                }
+              ],
+              "docs": [
+                " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same",
+                " referendum."
+              ]
+            },
+            {
+              "name": "external_propose",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a referendum to be tabled once it is legal to schedule an external",
+                " referendum."
+              ]
+            },
+            {
+              "name": "external_propose_majority",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a majority-carries referendum to be tabled next once it is legal to schedule",
+                " an external referendum.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call."
+              ]
+            },
+            {
+              "name": "external_propose_default",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to",
+                " schedule an external referendum.",
+                "",
+                " Unlike `external_propose`, blacklisting has no effect on this and it may replace a",
+                " pre-scheduled `external_propose` call."
+              ]
+            },
+            {
+              "name": "fast_track",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                },
+                {
+                  "name": "voting_period",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "delay",
+                  "type": "BlockNumber"
+                }
+              ],
+              "docs": [
+                " Schedule the currently externally-proposed majority-carries referendum to be tabled",
+                " immediately. If there is no externally-proposed referendum currently, or if there is one",
+                " but it is not a majority-carries referendum then it fails.",
+                "",
+                " - `proposal_hash`: The hash of the current external proposal.",
+                " - `voting_period`: The period that is allowed for voting on this proposal. Increased to",
+                "   `EmergencyVotingPeriod` if too low.",
+                " - `delay`: The number of block after voting has ended in approval and this should be",
+                "   enacted. This doesn't have a minimum amount."
+              ]
+            },
+            {
+              "name": "veto_external",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Veto and blacklist the external proposal hash."
+              ]
+            },
+            {
+              "name": "cancel_referendum",
+              "args": [
+                {
+                  "name": "ref_index",
+                  "type": "Compact<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Remove a referendum."
+              ]
+            },
+            {
+              "name": "cancel_queued",
+              "args": [
+                {
+                  "name": "when",
+                  "type": "Compact<BlockNumber>"
+                },
+                {
+                  "name": "which",
+                  "type": "Compact<u32>"
+                },
+                {
+                  "name": "what",
+                  "type": "Compact<ReferendumIndex>"
+                }
+              ],
+              "docs": [
+                " Cancel a proposal queued for enactment."
+              ]
+            },
+            {
+              "name": "set_proxy",
+              "args": [
+                {
+                  "name": "proxy",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Specify a proxy. Called by the stash.",
+                "",
+                " # <weight>",
+                " - One extra DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "resign_proxy",
+              "args": [],
+              "docs": [
+                " Clear the proxy. Called by the proxy.",
+                "",
+                " # <weight>",
+                " - One DB clear.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_proxy",
+              "args": [
+                {
+                  "name": "proxy",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Clear the proxy. Called by the stash.",
+                "",
+                " # <weight>",
+                " - One DB clear.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "delegate",
+              "args": [
+                {
+                  "name": "to",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "conviction",
+                  "type": "Conviction"
+                }
+              ],
+              "docs": [
+                " Delegate vote.",
+                "",
+                " # <weight>",
+                " - One extra DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "undelegate",
+              "args": [],
+              "docs": [
+                " Undelegate vote.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_public_proposals",
+              "args": [],
+              "docs": [
+                " Veto and blacklist the proposal hash. Must be from Root origin."
+              ]
+            },
+            {
+              "name": "note_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This doesn't require the proposal to be",
+                " in the dispatch queue but does require a deposit, returned once enacted."
+              ]
+            },
+            {
+              "name": "note_imminent_preimage",
+              "args": [
+                {
+                  "name": "encoded_proposal",
+                  "type": "Bytes"
+                },
+                {
+                  "name": "when",
+                  "type": "BlockNumber"
+                },
+                {
+                  "name": "which",
+                  "type": "u32"
+                }
+              ],
+              "docs": [
+                " Register the preimage for an upcoming proposal. This requires the proposal to be",
+                " in the dispatch queue. No deposit is needed."
+              ]
+            },
+            {
+              "name": "reap_preimage",
+              "args": [
+                {
+                  "name": "proposal_hash",
+                  "type": "Hash"
+                }
+              ],
+              "docs": [
+                " Remove an expired proposal preimage and collect the deposit."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "PropIndex",
+                "Balance"
+              ],
+              "docs": [
+                " A motion has been proposed by a public account."
+              ]
+            },
+            {
+              "name": "Tabled",
+              "args": [
+                "PropIndex",
+                "Balance",
+                "Vec<AccountId>"
+              ],
+              "docs": [
+                " A public proposal has been tabled for referendum vote."
+              ]
+            },
+            {
+              "name": "ExternalTabled",
+              "args": [],
+              "docs": [
+                " An external proposal has been tabled."
+              ]
+            },
+            {
+              "name": "Started",
+              "args": [
+                "ReferendumIndex",
+                "VoteThreshold"
+              ],
+              "docs": [
+                " A referendum has begun."
+              ]
+            },
+            {
+              "name": "Passed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been approved by referendum."
+              ]
+            },
+            {
+              "name": "NotPassed",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal has been rejected by referendum."
+              ]
+            },
+            {
+              "name": "Cancelled",
+              "args": [
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A referendum has been cancelled."
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "ReferendumIndex",
+                "bool"
+              ],
+              "docs": [
+                " A proposal has been enacted."
+              ]
+            },
+            {
+              "name": "Delegated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " An account has delegated their vote to another account."
+              ]
+            },
+            {
+              "name": "Undelegated",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " An account has cancelled a previous delegation operation."
+              ]
+            },
+            {
+              "name": "Vetoed",
+              "args": [
+                "AccountId",
+                "Hash",
+                "BlockNumber"
+              ],
+              "docs": [
+                " An external proposal has been vetoed."
+              ]
+            },
+            {
+              "name": "PreimageNoted",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal's preimage was noted, and the deposit taken."
+              ]
+            },
+            {
+              "name": "PreimageUsed",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A proposal preimage was removed and used (the deposit was returned)."
+              ]
+            },
+            {
+              "name": "PreimageInvalid",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was invalid."
+              ]
+            },
+            {
+              "name": "PreimageMissing",
+              "args": [
+                "Hash",
+                "ReferendumIndex"
+              ],
+              "docs": [
+                " A proposal could not be executed because its preimage was missing."
+              ]
+            },
+            {
+              "name": "PreimageReaped",
+              "args": [
+                "Hash",
+                "AccountId",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " A registered preimage was removed and the deposit collected by the reaper (last item)."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "EnactmentPeriod",
+              "type": "BlockNumber",
+              "value": "0x002f0d00",
+              "docs": [
+                " The minimum period of locking and the period between a proposal being approved and enacted.",
+                "",
+                " It should generally be a little more than the unstake period to ensure that",
+                " voting stakers have an opportunity to remove themselves from the system in the case where",
+                " they are on the losing side of a vote."
+              ]
+            },
+            {
+              "name": "LaunchPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) new public referenda are launched."
+              ]
+            },
+            {
+              "name": "VotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " How often (in blocks) to check for new votes."
+              ]
+            },
+            {
+              "name": "MinimumDeposit",
+              "type": "BalanceOf",
+              "value": "0x0000c16ff28623000000000000000000",
+              "docs": [
+                " The minimum amount to be used as a deposit for a public referendum proposal."
+              ]
+            },
+            {
+              "name": "EmergencyVotingPeriod",
+              "type": "BlockNumber",
+              "value": "0x80510100",
+              "docs": [
+                " Minimum voting period allowed for an emergency referendum."
+              ]
+            },
+            {
+              "name": "CooloffPeriod",
+              "type": "BlockNumber",
+              "value": "0x004e0c00",
+              "docs": [
+                " Period in blocks where an external proposal may not be re-submitted after being vetoed."
+              ]
+            },
+            {
+              "name": "PreimageByteDeposit",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The amount of balance that must be deposited per byte of preimage stored."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Council",
+          "storage": {
+            "prefix": "Instance1Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership manually to `new_members`. Be nice to the chain and",
+                " provide it pre-sorted.",
+                "",
+                " Requires root origin."
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective."
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage reads and writes.",
+                " - Argument `threshold` has bearing on weight.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage read and writes.",
+                " - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A motion was executed; `bool` is true if returned without error."
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A single member did some action; `bool` is true if returned without error."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "TechnicalCommittee",
+          "storage": {
+            "prefix": "Instance2Collective",
+            "items": [
+              {
+                "name": "Proposals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The hashes of the active proposals."
+                ]
+              },
+              {
+                "name": "ProposalOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Proposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Actual proposal for a given hash, if it's current."
+                ]
+              },
+              {
+                "name": "Voting",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Hash",
+                    "value": "Votes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes on a given proposal, if it is ongoing."
+                ]
+              },
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Proposals so far."
+                ]
+              },
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current members of the collective. This is stored sorted (just by value)."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_members",
+              "args": [
+                {
+                  "name": "new_members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Set the collective's membership manually to `new_members`. Be nice to the chain and",
+                " provide it pre-sorted.",
+                "",
+                " Requires root origin."
+              ]
+            },
+            {
+              "name": "execute",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Dispatch a proposal from a member using the `Member` origin.",
+                "",
+                " Origin must be a member of the collective."
+              ]
+            },
+            {
+              "name": "propose",
+              "args": [
+                {
+                  "name": "threshold",
+                  "type": "Compact<MemberCount>"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage reads and writes.",
+                " - Argument `threshold` has bearing on weight.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Hash"
+                },
+                {
+                  "name": "index",
+                  "type": "Compact<ProposalIndex>"
+                },
+                {
+                  "name": "approve",
+                  "type": "bool"
+                }
+              ],
+              "docs": [
+                " # <weight>",
+                " - Bounded storage read and writes.",
+                " - Will be slightly heavier if the proposal is approved / disapproved after the vote.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "AccountId",
+                "ProposalIndex",
+                "Hash",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been proposed (by given account) with a threshold (given",
+                " `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Voted",
+              "args": [
+                "AccountId",
+                "Hash",
+                "bool",
+                "MemberCount",
+                "MemberCount"
+              ],
+              "docs": [
+                " A motion (given hash) has been voted on by given account, leaving",
+                " a tally (yes votes and no votes given respectively as `MemberCount`)."
+              ]
+            },
+            {
+              "name": "Approved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Disapproved",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " A motion was not approved by the required threshold."
+              ]
+            },
+            {
+              "name": "Executed",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A motion was executed; `bool` is true if returned without error."
+              ]
+            },
+            {
+              "name": "MemberExecuted",
+              "args": [
+                "Hash",
+                "bool"
+              ],
+              "docs": [
+                " A single member did some action; `bool` is true if returned without error."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Elections",
+          "storage": {
+            "prefix": "PhragmenElection",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current elected membership. Sorted based on account id."
+                ]
+              },
+              {
+                "name": "RunnersUp",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<(AccountId,BalanceOf)>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current runners_up. Sorted based on low to high merit (worse to best runner)."
+                ]
+              },
+              {
+                "name": "ElectionRounds",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u32"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The total number of vote rounds that have happened, excluding the upcoming one."
+                ]
+              },
+              {
+                "name": "VotesOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "Vec<AccountId>",
+                    "linked": true
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Votes of a particular voter, with the round index of the votes."
+                ]
+              },
+              {
+                "name": "StakeOf",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "BalanceOf",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00000000000000000000000000000000",
+                "docs": [
+                  " Locked stake of a voter."
+                ]
+              },
+              {
+                "name": "Candidates",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The present candidate list. Sorted based on account id. A current member can never enter",
+                  " this vector and is always implicitly assumed to be a candidate."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "vote",
+              "args": [
+                {
+                  "name": "votes",
+                  "type": "Vec<AccountId>"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                }
+              ],
+              "docs": [
+                " Vote for a set of candidates for the upcoming round of election.",
+                "",
+                " The `votes` should:",
+                "   - not be empty.",
+                "   - be less than the number of candidates.",
+                "",
+                " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.",
+                " It is the responsibility of the caller to not place all of their balance into the lock",
+                " and keep some for further transactions.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(1)",
+                " Writes: O(V) given `V` votes. V is bounded by 16.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "remove_voter",
+              "args": [],
+              "docs": [
+                " Remove `origin` as a voter. This removes the lock and returns the bond.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(1)",
+                " Writes: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "report_defunct_voter",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Report `target` for being an defunct voter. In case of a valid report, the reporter is",
+                " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and",
+                " their bond is slashed.",
+                "",
+                " A defunct voter is defined to be:",
+                "   - a voter whose current submitted votes are all invalid. i.e. all of them are no",
+                "     longer a candidate nor an active member.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(NLogM) given M current candidates and N votes for `target`.",
+                " Writes: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "submit_candidacy",
+              "args": [],
+              "docs": [
+                " Submit oneself for candidacy.",
+                "",
+                " A candidate will either:",
+                "   - Lose at the end of the term and forfeit their deposit.",
+                "   - Win and become a member. Members will eventually get their stash back.",
+                "   - Become a runner-up. Runners-ups are reserved members in case one gets forcefully",
+                "     removed.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(LogN) Given N candidates.",
+                " Writes: O(1)",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "renounce_candidacy",
+              "args": [],
+              "docs": [
+                " Renounce one's intention to be a candidate for the next election round. 3 potential",
+                " outcomes exist:",
+                " - `origin` is a candidate and not elected in any set. In this case, the bond is",
+                "   unreserved, returned and origin is removed as a candidate.",
+                " - `origin` is a current runner up. In this case, the bond is unreserved, returned and",
+                "   origin is removed as a runner.",
+                " - `origin` is a current member. In this case, the bond is unreserved and origin is",
+                "   removed as a member, consequently not being a candidate for the next round anymore.",
+                "   Similar to [`remove_voter`], if replacement runners exists, they are immediately used."
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove a particular member from the set. This is effective immediately and the bond of",
+                " the outgoing member is slashed.",
+                "",
+                " If a runner-up is available, then the best runner-up will be removed and replaces the",
+                " outgoing member. Otherwise, a new phragmen round is started.",
+                "",
+                " Note that this does not affect the designated block number of the next election.",
+                "",
+                " # <weight>",
+                " #### State",
+                " Reads: O(do_phragmen)",
+                " Writes: O(do_phragmen)",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewTerm",
+              "args": [
+                "Vec<(AccountId,Balance)>"
+              ],
+              "docs": [
+                " A new term with new members. This indicates that enough candidates existed, not that",
+                " enough have has been elected. The inner value must be examined for this purpose."
+              ]
+            },
+            {
+              "name": "EmptyTerm",
+              "args": [],
+              "docs": [
+                " No (or not enough) candidates existed for this round."
+              ]
+            },
+            {
+              "name": "MemberKicked",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A member has been removed. This should always be followed by either `NewTerm` ot",
+                " `EmptyTerm`."
+              ]
+            },
+            {
+              "name": "MemberRenounced",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A member has renounced their candidacy."
+              ]
+            },
+            {
+              "name": "VoterReported",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A voter (first element) was reported (byt the second element) with the the report being",
+                " successful or not (third element)."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "CandidacyBond",
+              "type": "BalanceOf",
+              "value": "0x0080c6a47e8d03000000000000000000",
+              "docs": []
+            },
+            {
+              "name": "VotingBond",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": []
+            },
+            {
+              "name": "DesiredMembers",
+              "type": "u32",
+              "value": "0x0d000000",
+              "docs": []
+            },
+            {
+              "name": "DesiredRunnersUp",
+              "type": "u32",
+              "value": "0x07000000",
+              "docs": []
+            },
+            {
+              "name": "TermDuration",
+              "type": "BlockNumber",
+              "value": "0x80130300",
+              "docs": []
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "TechnicalMembership",
+          "storage": {
+            "prefix": "Instance1Membership",
+            "items": [
+              {
+                "name": "Members",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AccountId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current membership, stored as an ordered Vec."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "add_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Add a member `who` to the set.",
+                "",
+                " May only be called from `AddOrigin` or root."
+              ]
+            },
+            {
+              "name": "remove_member",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Remove a member `who` from the set.",
+                "",
+                " May only be called from `RemoveOrigin` or root."
+              ]
+            },
+            {
+              "name": "swap_member",
+              "args": [
+                {
+                  "name": "remove",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "add",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out one member `remove` for another `add`.",
+                "",
+                " May only be called from `SwapOrigin` or root."
+              ]
+            },
+            {
+              "name": "reset_members",
+              "args": [
+                {
+                  "name": "members",
+                  "type": "Vec<AccountId>"
+                }
+              ],
+              "docs": [
+                " Change the membership to a new set, disregarding the existing membership. Be nice and",
+                " pass `members` pre-sorted.",
+                "",
+                " May only be called from `ResetOrigin` or root."
+              ]
+            },
+            {
+              "name": "change_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "AccountId"
+                }
+              ],
+              "docs": [
+                " Swap out the sending member for some other key `new`.",
+                "",
+                " May only be called from `Signed` origin of a current member."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "MemberAdded",
+              "args": [],
+              "docs": [
+                " The given member was added; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MemberRemoved",
+              "args": [],
+              "docs": [
+                " The given member was removed; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersSwapped",
+              "args": [],
+              "docs": [
+                " Two members were swapped; see the transaction for who."
+              ]
+            },
+            {
+              "name": "MembersReset",
+              "args": [],
+              "docs": [
+                " The membership was reset; see the transaction for who the new set is."
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [],
+              "docs": [
+                " One of the members' keys changed."
+              ]
+            },
+            {
+              "name": "Dummy",
+              "args": [
+                "PhantomData"
+              ],
+              "docs": [
+                " Phantom member, never used."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "FinalityTracker",
+          "storage": null,
+          "calls": [
+            {
+              "name": "final_hint",
+              "args": [
+                {
+                  "name": "hint",
+                  "type": "Compact<BlockNumber>"
+                }
+              ],
+              "docs": [
+                " Hint that the author of this block thinks the best finalized",
+                " block is the given number."
+              ]
+            }
+          ],
+          "events": null,
+          "constants": [
+            {
+              "name": "WindowSize",
+              "type": "BlockNumber",
+              "value": "0x65000000",
+              "docs": [
+                " The number of recent samples to keep from this chain. Default is 101."
+              ]
+            },
+            {
+              "name": "ReportLatency",
+              "type": "BlockNumber",
+              "value": "0xe8030000",
+              "docs": [
+                " The delay after which point things become suspicious. Default is 1000."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Grandpa",
+          "storage": {
+            "prefix": "GrandpaFinality",
+            "items": [
+              {
+                "name": "Authorities",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AuthorityList"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " DEPRECATED",
+                  "",
+                  " This used to store the current authority set, which has been migrated to the well-known",
+                  " GRANDPA_AUTHORITES_KEY unhashed key."
+                ]
+              },
+              {
+                "name": "State",
+                "modifier": "Default",
+                "type": {
+                  "plain": "StoredState"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " State of the current authority set."
+                ]
+              },
+              {
+                "name": "PendingChange",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "StoredPendingChange"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Pending change: (signaled at, scheduled change)."
+                ]
+              },
+              {
+                "name": "NextForced",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " next block number where we can force a change."
+                ]
+              },
+              {
+                "name": "Stalled",
+                "modifier": "Optional",
+                "type": {
+                  "plain": "(BlockNumber,BlockNumber)"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " `true` if we are currently stalled."
+                ]
+              },
+              {
+                "name": "CurrentSetId",
+                "modifier": "Default",
+                "type": {
+                  "plain": "SetId"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The number of changes (both in terms of keys and underlying economic responsibilities)",
+                  " in the \"set\" of Grandpa validators from genesis."
+                ]
+              },
+              {
+                "name": "SetIdSession",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "SetId",
+                    "value": "SessionIndex",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "report_misbehavior",
+              "args": [
+                {
+                  "name": "_report",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Report some misbehavior."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NewAuthorities",
+              "args": [
+                "AuthorityList"
+              ],
+              "docs": [
+                " New authority set has been applied."
+              ]
+            },
+            {
+              "name": "Paused",
+              "args": [],
+              "docs": [
+                " Current authority set has been paused."
+              ]
+            },
+            {
+              "name": "Resumed",
+              "args": [],
+              "docs": [
+                " Current authority set has been resumed."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Treasury",
+          "storage": {
+            "prefix": "Treasury",
+            "items": [
+              {
+                "name": "ProposalCount",
+                "modifier": "Default",
+                "type": {
+                  "plain": "ProposalIndex"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " Number of proposals that have been made."
+                ]
+              },
+              {
+                "name": "Proposals",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ProposalIndex",
+                    "value": "TreasuryProposal",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposals that have been made."
+                ]
+              },
+              {
+                "name": "Approvals",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<ProposalIndex>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Proposal indices that have been approved but not yet awarded."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "propose_spend",
+              "args": [
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "beneficiary",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Put forward a suggestion for spending. A deposit proportional to the value",
+                " is reserved and slashed if the proposal is rejected. It is returned once the",
+                " proposal is awarded.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change, one extra DB entry.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "reject_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Reject a proposed spend. The original deposit will be slashed.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB clear.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "approve_proposal",
+              "args": [
+                {
+                  "name": "proposal_id",
+                  "type": "Compact<ProposalIndex>"
+                }
+              ],
+              "docs": [
+                " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary",
+                " and the original deposit will be returned.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Proposed",
+              "args": [
+                "ProposalIndex"
+              ],
+              "docs": [
+                " New proposal."
+              ]
+            },
+            {
+              "name": "Spending",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " We have ended a spend period and will now allocate funds."
+              ]
+            },
+            {
+              "name": "Awarded",
+              "args": [
+                "ProposalIndex",
+                "Balance",
+                "AccountId"
+              ],
+              "docs": [
+                " Some funds have been allocated."
+              ]
+            },
+            {
+              "name": "Burnt",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some of our funds have been burnt."
+              ]
+            },
+            {
+              "name": "Rollover",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Spending has finished; this is the amount that rolls over until next spend."
+              ]
+            },
+            {
+              "name": "Deposit",
+              "args": [
+                "Balance"
+              ],
+              "docs": [
+                " Some funds have been deposited."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ProposalBond",
+              "type": "Permill",
+              "value": "0x50c30000",
+              "docs": [
+                " Fraction of a proposal's value that should be bonded in order to place the proposal.",
+                " An accepted proposal gets these back. A rejected proposal does not."
+              ]
+            },
+            {
+              "name": "ProposalBondMinimum",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Minimum amount of funds that should be placed in a deposit for making a proposal."
+              ]
+            },
+            {
+              "name": "SpendPeriod",
+              "type": "BlockNumber",
+              "value": "0x80700000",
+              "docs": [
+                " Period between successive spends."
+              ]
+            },
+            {
+              "name": "Burn",
+              "type": "Permill",
+              "value": "0x20a10700",
+              "docs": [
+                " Percentage of spare funds (if any) that are burnt per spend period."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Contracts",
+          "storage": {
+            "prefix": "Contract",
+            "items": [
+              {
+                "name": "GasSpent",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Gas"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " Gas spent so far in this block."
+                ]
+              },
+              {
+                "name": "CurrentSchedule",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Schedule"
+                },
+                "fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000",
+                "docs": [
+                  " Current cost schedule for contracts."
+                ]
+              },
+              {
+                "name": "PristineCode",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "CodeHash",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping from an original code hash to the original code, untouched by instrumentation."
+                ]
+              },
+              {
+                "name": "CodeStorage",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "CodeHash",
+                    "value": "PrefabWasmModule",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A mapping between an original code hash and instrumented wasm code, ready for execution."
+                ]
+              },
+              {
+                "name": "AccountCounter",
+                "modifier": "Default",
+                "type": {
+                  "plain": "u64"
+                },
+                "fallback": "0x0000000000000000",
+                "docs": [
+                  " The subtrie counter."
+                ]
+              },
+              {
+                "name": "ContractInfoOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "ContractInfo",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The code associated with a given account."
+                ]
+              },
+              {
+                "name": "GasPrice",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BalanceOf"
+                },
+                "fallback": "0x01000000000000000000000000000000",
+                "docs": [
+                  " The price of one unit of gas."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "update_schedule",
+              "args": [
+                {
+                  "name": "schedule",
+                  "type": "Schedule"
+                }
+              ],
+              "docs": [
+                " Updates the schedule for metering contracts.",
+                "",
+                " The schedule must have a greater version than the stored schedule."
+              ]
+            },
+            {
+              "name": "put_code",
+              "args": [
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "code",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.",
+                " You can instantiate contracts only with stored code."
+              ]
+            },
+            {
+              "name": "call",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "value",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Makes a call to an account, optionally transferring some balance.",
+                "",
+                " * If the account is a smart-contract account, the associated code will be",
+                " executed and any value will be transferred.",
+                " * If the account is a regular account, any value will be transferred.",
+                " * If no account exists and the call value is not less than `existential_deposit`,",
+                " a regular account will be created and any value will be transferred."
+              ]
+            },
+            {
+              "name": "instantiate",
+              "args": [
+                {
+                  "name": "endowment",
+                  "type": "Compact<BalanceOf>"
+                },
+                {
+                  "name": "gas_limit",
+                  "type": "Compact<Gas>"
+                },
+                {
+                  "name": "code_hash",
+                  "type": "CodeHash"
+                },
+                {
+                  "name": "data",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.",
+                "",
+                " Instantiation is executed as follows:",
+                "",
+                " - The destination address is computed based on the sender and hash of the code.",
+                " - The smart-contract account is created at the computed address.",
+                " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned",
+                "   after the execution is saved as the `code` of the account. That code will be invoked",
+                "   upon any call received by this account.",
+                " - The contract is initialized."
+              ]
+            },
+            {
+              "name": "claim_surcharge",
+              "args": [
+                {
+                  "name": "dest",
+                  "type": "AccountId"
+                },
+                {
+                  "name": "aux_sender",
+                  "type": "Option<AccountId>"
+                }
+              ],
+              "docs": [
+                " Allows block producers to claim a small reward for evicting a contract. If a block producer",
+                " fails to do so, a regular users will be allowed to claim the reward.",
+                "",
+                " If contract is not evicted as a result of this call, no actions are taken and",
+                " the sender is not eligible for the reward."
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Transfer",
+              "args": [
+                "AccountId",
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`."
+              ]
+            },
+            {
+              "name": "Instantiated",
+              "args": [
+                "AccountId",
+                "AccountId"
+              ],
+              "docs": [
+                " Contract deployed by address at the specified address."
+              ]
+            },
+            {
+              "name": "CodeStored",
+              "args": [
+                "Hash"
+              ],
+              "docs": [
+                " Code with the specified hash has been stored."
+              ]
+            },
+            {
+              "name": "ScheduleUpdated",
+              "args": [
+                "u32"
+              ],
+              "docs": [
+                " Triggered when the current schedule is updated."
+              ]
+            },
+            {
+              "name": "Dispatched",
+              "args": [
+                "AccountId",
+                "bool"
+              ],
+              "docs": [
+                " A call was dispatched from the given account. The bool signals whether it was",
+                " successful execution or not."
+              ]
+            },
+            {
+              "name": "Contract",
+              "args": [
+                "AccountId",
+                "Bytes"
+              ],
+              "docs": [
+                " An event from contract of account."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "SignedClaimHandicap",
+              "type": "BlockNumber",
+              "value": "0x02000000",
+              "docs": [
+                " Number of block delay an extrinsic claim surcharge has.",
+                "",
+                " When claim surcharge is called by an extrinsic the rent is checked",
+                " for current_block - delay"
+              ]
+            },
+            {
+              "name": "TombstoneDeposit",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " The minimum amount required to generate a tombstone."
+              ]
+            },
+            {
+              "name": "StorageSizeOffset",
+              "type": "u32",
+              "value": "0x08000000",
+              "docs": [
+                " Size of a contract at the time of instantiaion. This is a simple way to ensure that",
+                " empty contracts eventually gets deleted."
+              ]
+            },
+            {
+              "name": "RentByteFee",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Price of a byte of storage per one block interval. Should be greater than 0."
+              ]
+            },
+            {
+              "name": "RentDepositOffset",
+              "type": "BalanceOf",
+              "value": "0x00008a5d784563010000000000000000",
+              "docs": [
+                " The amount of funds a contract should deposit in order to offset",
+                " the cost of one byte.",
+                "",
+                " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,",
+                " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.",
+                " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,",
+                " then it would pay 500 BU/day."
+              ]
+            },
+            {
+              "name": "SurchargeReward",
+              "type": "BalanceOf",
+              "value": "0x0080a1a76b4a35000000000000000000",
+              "docs": [
+                " Reward that is received by the party whose touch has led",
+                " to removal of a contract."
+              ]
+            },
+            {
+              "name": "TransferFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to make a transfer."
+              ]
+            },
+            {
+              "name": "CreationFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to create an account."
+              ]
+            },
+            {
+              "name": "TransactionBaseFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the base."
+              ]
+            },
+            {
+              "name": "TransactionByteFee",
+              "type": "BalanceOf",
+              "value": "0x00e40b54020000000000000000000000",
+              "docs": [
+                " The fee to be paid for making a transaction; the per-byte portion."
+              ]
+            },
+            {
+              "name": "ContractFee",
+              "type": "BalanceOf",
+              "value": "0x0010a5d4e80000000000000000000000",
+              "docs": [
+                " The fee required to instantiate a contract instance. A reasonable default value",
+                " is 21."
+              ]
+            },
+            {
+              "name": "CallBaseFee",
+              "type": "Gas",
+              "value": "0xe803000000000000",
+              "docs": [
+                " The base fee charged for calling into a contract. A reasonable default",
+                " value is 135."
+              ]
+            },
+            {
+              "name": "InstantiateBaseFee",
+              "type": "Gas",
+              "value": "0xe803000000000000",
+              "docs": [
+                " The base fee charged for instantiating a contract. A reasonable default value",
+                " is 175."
+              ]
+            },
+            {
+              "name": "MaxDepth",
+              "type": "u32",
+              "value": "0x20000000",
+              "docs": [
+                " The maximum nesting level of a call/instantiate stack. A reasonable default",
+                " value is 100."
+              ]
+            },
+            {
+              "name": "MaxValueSize",
+              "type": "u32",
+              "value": "0x00400000",
+              "docs": [
+                " The maximum size of a storage value in bytes. A reasonable default is 16 KiB."
+              ]
+            },
+            {
+              "name": "BlockGasLimit",
+              "type": "Gas",
+              "value": "0x8096980000000000",
+              "docs": [
+                " The maximum amount of gas that could be expended per block. A reasonable",
+                " default value is 10_000_000."
+              ]
+            }
+          ],
+          "errors": []
+        },
+        {
+          "name": "Sudo",
+          "storage": {
+            "prefix": "Sudo",
+            "items": [
+              {
+                "name": "Key",
+                "modifier": "Default",
+                "type": {
+                  "plain": "AccountId"
+                },
+                "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000",
+                "docs": [
+                  " The `AccountId` of the sudo key."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "sudo",
+              "args": [
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Root` origin.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Unknown weight of derivative `proposal` execution.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "set_key",
+              "args": [
+                {
+                  "name": "new",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB change.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "sudo_as",
+              "args": [
+                {
+                  "name": "who",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "proposal",
+                  "type": "Proposal"
+                }
+              ],
+              "docs": [
+                " Authenticates the sudo key and dispatches a function call with `Signed` origin from",
+                " a given account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - Limited storage reads.",
+                " - One DB write (event).",
+                " - Unknown weight of derivative `proposal` execution.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "Sudid",
+              "args": [
+                "bool"
+              ],
+              "docs": [
+                " A sudo just took place."
+              ]
+            },
+            {
+              "name": "KeyChanged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " The sudoer just switched identity; the old key is supplied."
+              ]
+            },
+            {
+              "name": "SudoAsDone",
+              "args": [
+                "bool"
+              ],
+              "docs": [
+                " A sudo just took place."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "ImOnline",
+          "storage": {
+            "prefix": "ImOnline",
+            "items": [
+              {
+                "name": "GossipAt",
+                "modifier": "Default",
+                "type": {
+                  "plain": "BlockNumber"
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " The block number when we should gossip."
+                ]
+              },
+              {
+                "name": "Keys",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<AuthorityId>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The current set of keys that may issue a heartbeat."
+                ]
+              },
+              {
+                "name": "ReceivedHeartbeats",
+                "modifier": "Optional",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "SessionIndex",
+                    "key2": "AuthIndex",
+                    "value": "Bytes",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " For each session index, we keep a mapping of `AuthIndex`",
+                  " to `offchain::OpaqueNetworkState`."
+                ]
+              },
+              {
+                "name": "AuthoredBlocks",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "SessionIndex",
+                    "key2": "ValidatorId",
+                    "value": "u32",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00000000",
+                "docs": [
+                  " For each session index, we keep a mapping of `T::ValidatorId` to the",
+                  " number of blocks authored by the given authority."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "heartbeat",
+              "args": [
+                {
+                  "name": "heartbeat",
+                  "type": "Heartbeat"
+                },
+                {
+                  "name": "_signature",
+                  "type": "Signature"
+                }
+              ],
+              "docs": []
+            }
+          ],
+          "events": [
+            {
+              "name": "HeartbeatReceived",
+              "args": [
+                "AuthorityId"
+              ],
+              "docs": [
+                " A new heartbeat was received from `AuthorityId`"
+              ]
+            },
+            {
+              "name": "AllGood",
+              "args": [],
+              "docs": [
+                " At the end of the session, no offence was committed."
+              ]
+            },
+            {
+              "name": "SomeOffline",
+              "args": [
+                "Vec<IdentificationTuple>"
+              ],
+              "docs": [
+                " At the end of the session, at least once validator was found to be offline."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "AuthorityDiscovery",
+          "storage": null,
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Offences",
+          "storage": {
+            "prefix": "Offences",
+            "items": [
+              {
+                "name": "Reports",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "ReportIdOf",
+                    "value": "OffenceDetails",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The primary structure that holds all offence records keyed by report identifiers."
+                ]
+              },
+              {
+                "name": "ConcurrentReportsIndex",
+                "modifier": "Default",
+                "type": {
+                  "doubleMap": {
+                    "hasher": "Blake2_256",
+                    "key1": "Kind",
+                    "key2": "OpaqueTimeSlot",
+                    "value": "Vec<ReportIdOf>",
+                    "key2Hasher": "Blake2_256"
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " A vector of reports of the same kind that happened at the same time slot."
+                ]
+              },
+              {
+                "name": "ReportsByKindIndex",
+                "modifier": "Default",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "Kind",
+                    "value": "Bytes",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Enumerates all reports of a kind along with the time they happened.",
+                  "",
+                  " All reports are sorted by the time of offence.",
+                  "",
+                  " Note that the actual type of this mapping is `Vec<u8>`, this is because values of",
+                  " different types are not supported at the moment so we are doing the manual serialization."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": [
+            {
+              "name": "Offence",
+              "args": [
+                "Kind",
+                "OpaqueTimeSlot"
+              ],
+              "docs": [
+                " There is an offence reported of the given `kind` happened at the `session_index` and",
+                " (kind-specific) time slot. This event is not deposited for duplicate slashes."
+              ]
+            }
+          ],
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "RandomnessCollectiveFlip",
+          "storage": {
+            "prefix": "RandomnessCollectiveFlip",
+            "items": [
+              {
+                "name": "RandomMaterial",
+                "modifier": "Default",
+                "type": {
+                  "plain": "Vec<Hash>"
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " Series of block headers from the last 81 blocks that acts as random seed material. This",
+                  " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of",
+                  " the oldest hash."
+                ]
+              }
+            ]
+          },
+          "calls": [],
+          "events": null,
+          "constants": [],
+          "errors": []
+        },
+        {
+          "name": "Nicks",
+          "storage": {
+            "prefix": "Sudo",
+            "items": [
+              {
+                "name": "NameOf",
+                "modifier": "Optional",
+                "type": {
+                  "map": {
+                    "hasher": "Blake2_256",
+                    "key": "AccountId",
+                    "value": "(Bytes,BalanceOf)",
+                    "linked": false
+                  }
+                },
+                "fallback": "0x00",
+                "docs": [
+                  " The lookup table for names."
+                ]
+              }
+            ]
+          },
+          "calls": [
+            {
+              "name": "set_name",
+              "args": [
+                {
+                  "name": "name",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set an account's name. The name should be a UTF-8-encoded string by convention, though",
+                " we don't check it.",
+                "",
+                " The name may not be more than `T::MaxLength` bytes, nor less than `T::MinLength` bytes.",
+                "",
+                " If the account doesn't already have a name, then a fee of `ReservationFee` is reserved",
+                " in the account.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - At most one balance operation.",
+                " - One storage read/write.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "clear_name",
+              "args": [],
+              "docs": [
+                " Clear an account's name and return the deposit. Fails if the account was not named.",
+                "",
+                " The dispatch origin for this call must be _Signed_.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One balance operation.",
+                " - One storage read/write.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "kill_name",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                }
+              ],
+              "docs": [
+                " Remove an account's name and take charge of the deposit.",
+                "",
+                " Fails if `who` has not been named. The deposit is dealt with through `T::Slashed`",
+                " imbalance handler.",
+                "",
+                " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - One unbalanced handler (probably a balance transfer)",
+                " - One storage read/write.",
+                " - One event.",
+                " # </weight>"
+              ]
+            },
+            {
+              "name": "force_name",
+              "args": [
+                {
+                  "name": "target",
+                  "type": "LookupSource"
+                },
+                {
+                  "name": "name",
+                  "type": "Bytes"
+                }
+              ],
+              "docs": [
+                " Set a third-party account's name with no deposit.",
+                "",
+                " No length checking is done on the name.",
+                "",
+                " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.",
+                "",
+                " # <weight>",
+                " - O(1).",
+                " - At most one balance operation.",
+                " - One storage read/write.",
+                " - One event.",
+                " # </weight>"
+              ]
+            }
+          ],
+          "events": [
+            {
+              "name": "NameSet",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A name was set."
+              ]
+            },
+            {
+              "name": "NameForced",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A name was forcibly set."
+              ]
+            },
+            {
+              "name": "NameChanged",
+              "args": [
+                "AccountId"
+              ],
+              "docs": [
+                " A name was changed."
+              ]
+            },
+            {
+              "name": "NameCleared",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was cleared, and the given balance returned."
+              ]
+            },
+            {
+              "name": "NameKilled",
+              "args": [
+                "AccountId",
+                "Balance"
+              ],
+              "docs": [
+                " A name was removed and the given balance slashed."
+              ]
+            }
+          ],
+          "constants": [
+            {
+              "name": "ReservationFee",
+              "type": "BalanceOf",
+              "value": "0x00407a10f35a00000000000000000000",
+              "docs": [
+                " Reservation fee."
+              ]
+            },
+            {
+              "name": "MinLength",
+              "type": "u32",
+              "value": "0x03000000",
+              "docs": [
+                " The minimum length a name may be."
+              ]
+            },
+            {
+              "name": "MaxLength",
+              "type": "u32",
+              "value": "0x10000000",
+              "docs": [
+                " The maximum length a name may be."
+              ]
+            }
+          ],
+          "errors": []
+        }
+      ]
+    }
+  }
+}
diff --git a/web3-polkadot.cabal b/web3-polkadot.cabal
--- a/web3-polkadot.cabal
+++ b/web3-polkadot.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.12
 name:          web3-polkadot
-version:       1.1.0.0
+version:       1.1.0.1
 license:       Apache-2.0
 license-file:  LICENSE
 copyright:     (c) Aleksandr Krupenkin 2016-2026
@@ -12,6 +12,17 @@
 description:   Client library for Third Generation of Web.
 category:      Network
 build-type:    Simple
+data-files:
+    tests/meta/v10.hex
+    tests/meta/v11.hex
+    tests/meta/v12.hex
+    tests/meta/v13.hex
+    tests/meta/v9.hex
+    tests/meta/v10.json
+    tests/meta/v11.json
+    tests/meta/v12.json
+    tests/meta/v13.json
+    tests/meta/v9.json
 
 source-repository head
     type:     git
