XRPLトランザクションのオフライン検証

2024/01/16に公開

XRP Ledgerとは

XRP Ledgerは、XRPをネイティブなトークンとして持つブロックチェーンです。XRPLのトランザクションは各ノードによって共謀しないと信頼されているバリデータの検証を通じてネットワークに適用されます。

この記事ではXRPL(mainnet)からXahau Networkにトークンをブリッジする際にも利用されているXPOP(Proof of Payment)について説明します。

原文:

0041 XLS-41d: XRPL Proof of Payment Standard (XPOP)

概要

XRP Ledger Proof of Payment(XPOP)とは、トランザクションがXRP Ledgerに正常に送信され、どのような影響があったかをオフラインで検証するための、オフラインの暗号化証明です。

背景

XRPLは、Unique Node List(UNL)として知られる社会的に信頼されたグループで活動するrippledノード(バリデータ)の集合体によって、協調的かつ決定論的に計算され、共有され、署名(検証)されたブロック(レジャー)のチェーンで構成されています。UNLは通常、バリデータリスト(VL)として知られるフォーマットで信頼できるサードパーティによって公開されます。(例: vl.xrplf.org, vl.ripple.com)。各VLはマスター公開鍵によって暗号的に署名されます。ネットワークの利用者は最終的にこの発行者(鍵)を信頼し、UNLに適切なバリデータを選び、そのバリデータは協力し合って前進し、詐欺を働くことはないと考えます。

証明

各VLには、VL公開鍵で署名されたバリデータのリストが含まれます。

各バリデータは、各レジャーヘッダに対する検証メッセージに署名する鍵を持っています。

各レジャーヘッダには、次の2つのPatricia Merkle Triesのルートハッシュが含まれます。

  • レジャーの現在の("アカウント") 状態
  • そのレジャーにおけるトランザクションとそのメタデータ

(ある VLの)定足数の署名された検証メッセージは、レジャーが正しくクローズされ、ブロックチェーンの一部となったことを証明します。

このように、VL発行者の鍵を信頼すれば、インターネットに接続することなく、VL鍵からトランザクションとそのメタデータまでの完全な検証チェーンを形成することができます。これがXPOPです。

フォーマット

XPOPは以下のスキーマを持つJSONオブジェクトです。

{
  "ledger": {
    "acroot": merkle root of account state map | hex string,
    "txroot": merkle root of transaction map | hex string ,
    "close": close time | int,
    "coins": total drops | int or string,
    "cres": close time resolution | int,
    "flags": ledger flags | int,
    "pclose": parent close time | int,
    "phash": parent hash | hex string,
  },
  "transaction": {
    "blob": serialized transaction | hex string,
    "meta": serialized metadata | hex string,
    "proof": <下記参照>
  },
  "validation": {
    "data": {
      validator pub key or master key | base58 string : serialized validation message | hex string
      ... for each validation message
    },
    "unl": {
      "blob": base64 encoded VL blob as appearing on vl site | base64 string,
      ... remaining fields from vl site
    }
  }
}

トランザクションセクション内の証明キーには、以下の2つの形式があります:

  1. リスト形式:

この形式では、マークル証明は、マークル証明を形成する最小数の要素を含むリスト(および文字列)のリストです。各リストには16の要素(ブランチ0からFまで)が含まれます。各ブランチに対して、そのブランチのルートハッシュが64nibble(=256bytes)の16進文字列として設定されるか、証明が証明するトランザクションに達するまで、さらに16の要素からなるリストが用意されます。リストに含まれる要素数が16未満の場合、XPOPの検証者は残りの要素がすべてNULL要素(0の連続であるハッシュ文字列)であると判断しなければなりません。

# list form
"proof": [
  hex string for branch '0',
  ...
        hex string for branch 'A',
  # branch 'B' is a list
  [ 
      hex string for branch 'B0',
      ... ,
      hex string for branch 'BE',
      # branch 'BF' is a list
      [
        hex string for branch 'BF0',
        ...
      ]
  ],
  hex string for branch 'C',
  ...
]
  1. ツリー形式:

この形式では、レジャーのトランザクションマップ全体を含むオブジェクトのオブジェクトです。

この形式は、同じレジャーのリスト形式のXPOPに比べて多くのデータサイズとなり、個々のXPOPのサイズがXPOPの作成と保存の作業量よりも重要でない場合に便利です。各オブジェクトには、children、hash、keyの3つのキーがあります。

childrenキーは常に空のオブジェクトか、実際に存在するブランチだけをキーにしたもので、それぞれ16進数の0~Fです。
ハッシュキーは常に64nibble(=256byte)の16進文字列で、childrenのハッシュ(適切な名前空間付き)か、リーフノードの場合はノードのハッシュ(適切な名前空間付き)です。
キーは常に64nibble(=256bytes)の16進文字列で、この位置にあるオブジェクトのキーレット(インデックス)です。

# tree form
"proof": {
  "hash" : hex string,
  "key" : hex string,
  "children" : {
    "0":
    {
      "children": {},
      "hash": hex string,
      "key": hex string
    },
    ...
    "F":
    { ...}
  }
}

XPOPの検証ライブラリとして次のようなものがあります。

https://github.com/RichardAH/xpop-verifier-py

XPOPサンプル

XPOPの例
{
  "ledger": {
    "index": 85287462,
    "coins": "99987983865719626",
    "phash": "1499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B",
    "txroot": "762832CF8C9CF522EB42F898F45842065305B615E6919E50EE369CFA524EA7D6",
    "acroot": "A84FA35A50A96C22C8EF942FBE6775AF9ADAEAB6DD1424E5CDE0C841EA7EF2C8",
    "pclose": 758608391,
    "close": 758608400,
    "cres": 10,
    "flags": 0
  },
  "validation": {
    "data": {
      "n943ozDG74swHRmAjzY6A4KVFBhEirF4Sh1ACqvDePE3CZTgkMqn": "22800000012605156226292D37720E3A7D03C4CC85748D9E5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732103D8FFA541AB3C3625EB725D595B2A6C758305D27D1F9ECD54BE362CEEA02F0A35764630440220018BD09D0A02BF15C3E5D93EC3BC9B33F290B96F7CBD7E2C763F98E0286FF96D02205AAE75E30BEC23EBFAA91F9BE19C52A291471B4CD5BA30136F5C204F9270516F",
      "n94RkpbJYRYQrWUmL8PAVQ1XTVKtfyKkLm8C6SWzWPcKEbuNb6EV": "22800000012605156226292D37720E3AE230EFD2B2B864D85136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732103FF71B7890D04DA6835AE8AC92EF0DEF1B711BB5657E961E193B4246D03E277BB76463044022042137F798602D39C5C47D23451436649FCFAE16884D383E5E61135D4C15D7D120220091F410374464A804BD05D4156EBBAF434F95831D14095B8D20CF0E355222EF3",
      "n94a894ARPe5RdcaRgdMBB9gG9ukS5mqsd7q2oNmC1NKqtZqEJnb": "22800000012605156226292D37720D3A598AE571FABD24725136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732103D462A07256F0ACFA2239C738E92D6EF6DA1EC66AC096FCA2D82822EFB8E906D676473045022100CDB3CC81F5CE03BE503704150784E964BC02C3017B26127E775C5D5B41D57ECD02200F17980E7B5EB67C4D469A04E218E724D3118486A0A120AB7C485B4EF8FDB835",
      "n9J1GJHtua77TBEzir3FvsgWX68xBFeC8os3s5TkCg97E1cwxKfH": "22800000012605156226292D37720D3A1717A7F8ACA2EA675136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321022A9C45D7B7310674EF97DAE1934DC9169824631D04D9019E7DDB42B2AC7810D076473045022100D379EE9742EA859B7FD8B77D8B153139EE26504751F7444EFC325AA6287CF8C902207BD92521EFC337752155979EE1452CB55243C3F5CE3418BA7E47B46B47925543",
      "n9JgxBLdCHii4xnRNMk7WJhD2qmfJGRvCxmmNNivBZXPRVpeZkH3": "22800000012605156226292D37720D3AA4D6B1BA93CD75885136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321021331E19770572D6DC7ED9940B95E2683DEC7A52043339F72AE085EEF89ED1720764630440220713DFF4C6568B59E9FB20DAF74A0F6311D3D3C9993D493A1EAF02E788398CDD60220161D65AED201788FDE4CA4D814077C4C4704C0E8E170A23B2DA1814D00412C87",
      "n9Jk38y9XCznqiLq53UjREJQbZWnz4Pvmph55GP5ofUPg3RG8eVr": "22800000012605156226292D37720E3AD3FFDD5F3690E15B5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321021A6C18A866B93660717D557CBC222703BABB7039B08E657695E9C2F6B15370CD7646304402204AF921743CB83F3F33D0457CA74C5B8BAC5B2C726C973F16040A2E138CCD895C02202AAA332D21E8F24E8522EBAE3782437006F3113D420E0CD9468FA24785730113",
      "n9JtY9MqUcwKWenHp8WoRobFRmB2mmBEJd1ruJmhKGKAwtFQkQjb": "22800000012605156226292D37720D3A254CF575DD8059845136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321022D805C9420A3F26E5B7AFB7FFE82715B06375626223D751A220448706741293C764630440220144FEEBD8D97BB9AAA655B1EF2ABCC88D7147924ACADEADF9E58AA4288EEF6A902206131E22D1A0E930C21725641D78192F883B4119881A384B0453BEAC06EE1AB44",
      "n9JvsY3yhCdsHe3JsVTwvCtvKnchg2eridHLWdBdWf8VkpZSqqS9": "22800000012605156226292D37720E3A88EDDA81B5C0D7E95136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B73210230EC376FC7AA70726B1F63F40F875A9461018C7DC14D5C37EE1761005C7AD4D77646304402205A700B2D991F4F249BCF516A3CF285A304BDE4897173FAAAA8D07F3C4B10DCA1022003FAEEBF57A987485058673D2FDD2074BDB39D5F060BCE4E3B9849307232D16F",
      "n9KAE7DUEB62ZQ3yWzygKWWqsj7ZqchW5rXg63puZA46k7WzGfQu": "22800000012605156226292D37720D3AD9C681A959CD42D95136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102B75B48497F3A16B8239548D2A57199CD73056A116F9627BAD722382D25F8E61D7646304402205D903D135FEA5C54F56B40BDE5413925FD2ECE53EE4215BE836C1275815DD2AD022050E47C9A3D92745AC6EDEF15EF7BFDF5C645D5074DC0E36DF7FAB0C06B2BBEEB",
      "n9KQ2DVL7QhgovChk81W8idxm7wDsYzXutDMQzwUBKuxb9WTWBVG": "22800000012605156226292D37720D3AB1C3D4A4B4633E885136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B73210271B37FB1793EABF42356628A2E1E3A5F7583880CF2817847A91A35B26876A6787646304402205701E9E09A325A8658ACA0E87F30BED571026905B5E459965B28B74EE437E463022026FFF534C124FF56ED4B3942D6B7D210E2DD859FAF23A038571F0E19C369C71F",
      "n9KSXAVPy6ac8aX88fRsJN6eSrJ2gEfGrfskUVJJ7XkopGsKNg9X": "22800000012605156226292D37720E3ABA8B67F4589220A25136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B73210276273FB120E9580D9C4513444DBD77AE23413FE205C59342D36B533C83E8C27E764630440220389AFD9688B19167B7652A9CEE2D8D2D1C47359C454219C315868B3DCE0E8672022043FD53918DAC54102B5A1CDFB049CFF32FE558C31F6F307C9BC23FAC5F55DA52",
      "n9KY4JZY11ndNbg55dThnoQdU9dii5q3egzoESVXw4Z7hu3maCba": "22800000012605156226292D37720D3A4710CB4A3AD2FDBE5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321028366585D9556A2ED3291D503A7DBA11B3725AD660CC8CC41C2E701DD83F200887646304402205102B6F45775CE5F1431637C1CBF458D854D0E6789531FA17B3A5FB0CB957039022062B2006B5DAC8B056307B4FC625B514BFCC4AB6CC9A03A6AA11A76D1C491856D",
      "n9KaxgJv69FucW5kkiaMhCqS6sAR1wUVxpZaZmLGVXxAcAse9YhR": "22800000012605156226292D37720D3A256AE26911957D6E5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B73210249B5973D1CF105D67C9F5BD6F07BD9D2DA6F0F3060877C32D9E9B071C1102F297646304402206524F8F2BB03C0257B48ED9D17C9A49766FC53975240590473F60DB9EC302E840220200098469552909708D3CBCC0FB4758DD7BB84C868C2CD2DE0C8960C5C07FA99",
      "n9KeTQ3UyMtaJJD78vT7QiGRMv1GcWHEnhNbwKfdbW2HfRqtvUUt": "22800000012605156226292D37720E3AB67E8005D9F1C4C85136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102913917B68EEB924A9127E9E943329C86A4F0C76E6123B3A3A2972EF4048E5070764630440220474348E7F391A0840CAA8A28584BFF5BA30CD9A69E467DF370FE17D4F91EE23C02201E94F5F6AAAC53DAA0EE54535F43A4F983934CC162DE1A65812B699D6221DA8D",
      "n9Km4Xz53K9kcTaVn3mYAHsXqNuAo7A2HazSr34SFufvNwBxYGLn": "22800000012605156226292D37720D3A1CCF53032FCBFF025136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102A0ED4C2E4120107AEFA8B74D3E7BAFDC98A88FDB68827751AFEDDFC25F088A5376473045022100E2FE41410DB2B6A913AFA33D6CE5C3020F816FFD17B1EE06F708BFF791F9C57E0220020691DAF40C02E1F140B79C87F0E26F0556F26ED3124442631BB0612542867E",
      "n9L3GcKLGWoz79RPfYq9GjEVyh57vpe1wM45i2tdczJ9u15ajAFB": "22800000012605156226292D37720E3ABFA33F8D450A08065136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102D060C70E143420389752E2512A90613ACFAA7E04D15D2624DEC919088048BFC176473045022100A53C7205910F53FBD67849C3EA35B001332903839F5D0A4B5E84B541BC4AED7A02204FBFBEB7D4A8208FC4BB09F94D4276C9FEAFEF0D3E7AC2AF0C9F2EBFD61FA6F0",
      "n9LFSE8fQ6Ljnc97ToHVtv1sYZ3GpzrXKpT94eFDk8jtdbfoBe7N": "22800000012605156226292D37720E3ADCBDC3BC9A475FF35136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321032B949F3659D67DBF19A4E61359BB1FFBFD6256720C4C076378121D40372022FD764730450221008722AF709FD9B823BB955D02DF47AE16E689B453DC090E0F0A19178AC995B2D602206C59E108291E09D458019A71B91798DC8338B50538D15847658AE4A5E883E0E8",
      "n9LL7K3Ubnob3ExqmgpigL3AgzKKhTaVvnZiXqsvz85VjbY3KqFp": "22800000012605156226292D37720D3A06D829D0B3FD913E5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102EC156C63123D804C5AA03BF8EA5E25BFBFE65ECE05701C687E51DC64433D0EB47646304402206FA1801AAEF66BAF9F4BC0D693799E042509AD1D50AA47E33C931485F85B85130220079581791BF58F4873115CA36D7B2870EE44DCADFF8C1C65E232491587960E9E",
      "n9LMfcjE6dMyshCqiftLFXpB9K3Mnd2r5bG7K8osmrkFpHUoR3c1": "22800000012605156226292D37720E3AB177B2A3E79A162B5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102ED8B480C191109E6FE6ABD2BAB126499392646DC282BFA0BBBD05B60BC46765576463044022044EB5BFE430A26F6CCBC156675030BDE09F61443651CEA409DD9C28A67EF1FE80220588D81AC88C3E9025FC2F896B834AE283CEC8B2BD5506B29702FF66486866887",
      "n9LPSEVyNTApMuchFeTE1GD9qhsH9Umagnpu3NLC9zb358KNfiZV": "22800000012605156226292D37720D3A18CFA5D80BAD46615136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102F2D097458131ED174A31503DBA945D2891050C1CCA936ED3623759030D8FFF7376473045022100BE013DF4928DC124DB92F408C9B9B80F399BF4A3876A4C9B59894525AF58594F02204322573E2E342E51DBA2FE9BFD060F4A6718F5407A732D3BE15200FDAC78AF0C",
      "n9LabXG8Vo7SfrUcZudeDCuFvWXW5TXbhUSYwgqmgYMFpUYuMN87": "22800000012605156226292D37720D3A73A37360BB3C67805136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102CC93C43610606DAB9CE5BBD1E85A22C6CD8277176196710D02C4E7F114F0AC1276463044022001904F6E0CDD900DC2C1FF6B0DC3069A76650B1645FA568F8285FDC05DF4886202204047D064401B198E3380B1AFFB167B4E6E3BF1A719AAFF095F774F8009FB51A5",
      "n9LbDLg9F7ExZCeMw1QZqsd1Ejs9uYpwd8bPUStF5hBJdd6B5aWj": "22800000012605156226292D37720E3AEF934DC137C69F615136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321030D8E8CDEC4DC07D6C78B0037B93EF12747CA957A3CABFF2DD9C2B753A209FF917646304402203BE5270B677E76948631CC38BCF14C0C07FF4EC2EC7AE462F88940D81FC3084F022024BB753EE73992E3B593F2768C180C970860562CC84B457C2F9871F632BB1EE9",
      "n9LbM9S5jeGopF5J1vBDoGxzV6rNS8K1T5DzhNynkFLqR9N2fywX": "22800000012605156226292D37720D3A029E3769A6E3A9935136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321030DDCC935E52EE00366E7B35650DD4697F4CEECDE53A607343CC113417EC579B5764730450221009C07EEFE3B996C43E186A93DEA365F288D1876EC12A0B3A7AD10C0416451156B022000D196F66F1B6F3CC288C63F25078AF9ED18551FCEF3A9650ABCB76368906267",
      "n9LkAv98aaGupypuLMH5ogjJ3rTEX178s9EnmRvmySL9k3cVuxTu": "22800000012605156226292D37720E3A252E4560031D33385136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B73210323A8C668E7F99A7FF13714D8FFAA24010A466820DB3896F1E3FF06C84ECCCE5C764630440220156CA354543EFBF4F4984A96B7C93A4FD7A0DB9E33F45973B62CC0EE19E2A78702200C120EFE0A7EEC2173EDD0DB02DF62B16DAA77FA624E98416397F9223F01F4D1",
      "n9Lqr4YZxk7WYRDTBZjjmoAraikLCjAgAswaPaZ6LaGW6Q4Y2eoo": "22800000012605156226292D37720D3A7CB043BC019F03B35136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321032CE084DEC33CF6FA0D093E0BC8C3E95C6702DBEB30FDF06F87545AF8A43B26FA764630440220249090CE1D1770887BA20A38511AB1C3CF4A08514A5447A55D8B8C4BB5D248F702205F7FD9DCC031EDBDD35BF4CE0FB26E98B8AFB2263B8E8E05ABB060044BC193F3",
      "n9Ls4GcrofTvLvymKh1wCqxw1aLzXUumyBBD9fAtbkk9WtdQ4TUH": "22800000012605156226292D37720D3AF5295BDB340A89285136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B732102C53F1B6CF5DE3EEFD1BA96AFCEB5401F032F92812A07C78F4FC32C86C858811A7646304402206210A4FDEEE1D1F161B69277A4DEDAC8A92773600AFAEBFDA6EB35FE57B9837B022058951A844DEA459A34D41066EA4AA895200121A796172D4D87EC35540F6D1500",
      "n9M2UqXLK25h9YEQTskmCXbWPGhQmB1pFVqeXia38UwLaL838VbG": "22800000012605156226292D37720D3AFA65593CC2A1DCAE5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321038EF66F1E48E3CA5CD7F4CAC610B717D84043D03EAF997956AE7449FA5E356A1876463044022059D3542A45872DB1519EB2C9EA567FD6610092B84821039E79067CA21ECD2047022065A77A4CE619EA3D6EC7E01DF9EC9D909338165C917432BA6715ECC9E4D857E8",
      "n9MSTcx1fmfyKpaDTtpXucugcqM7yxpaggmwRxcyA3Nr4pE1pN3x": "22800000012605156226292D37720E3A40B61A732111B4B45136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321037D605C3078C15174E973D03377D27317D61E4A11139920802FD21305C26121C376463044022100E23A27A2E45980DD75C0A2124C698403CE318963ED57EFDD90AD76208E75A676021F0C36FDD038A1AF09BD1D73D9AC8F9C1F05C3A22B5C9FDCE0BD1BA343EF2688",
      "n9McDrz9tPujrQK3vMXJXzuEJv1B8UG3opfZEsFA8t6QxdZh1H6m": "22800000012605156226292D37720E3A333BD58CD2DD2CED5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321039382CCEFCAC1E5960385751A11A9E7BE18AC8DABE75E3E639E99F335510780E876463044022003B2430E5418F0D07BE633A5AF3F13DE8FF981DF83D9B26D64CA7D214D735F62022068D4CBF6D5A14185273F7CF9A6CFAC3F353DE50AE4C633DCE9F7AC6254E47046",
      "n9MfeCuZK2ra5eJtFDtuCTnvxfsi85k4J3GXJ1TvRVr2o4EQeHMF": "22800000012605156226292D37720E3A05D2EF64A9B04A8E5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B73210352AACDE31714880E7EA63677E27BAB3AB6E28AEE0130A49A8A4250C18938406576473045022100FA953B86A24A17D6266472D8D3C3FB01A37DD7DEEC9104CB96578E8FF7CD3DD0022051F2CE30C2EB5D1C0150E35AA628B8D1ADB3598135F62300BBAC8C4601CDD25F",
      "n9MhLZsK7Av6ny2gV5SAGLDsnFXE9p85aYR8diD8xvuvuucqad85": "22800000012605156226292D37720E3AFF8CACF2BFF2278E5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321034B2562011A5A06608454583621331D1234FC597177321E276242124CD1DF111A764730450221009AA1CD8ECDD2853480FF2C81681C49A324A6B8D33BB1BAFEC6ED99F1A417CC7502205C9C6C677E1A2E758DADE9C3865AF648589DDA2CF6FDB236EFBE81CBB31F29AC",
      "n9MngHUqEeJXd8cgeEGsjvm9FqQRm4DwhCrTYCtrfnm5FWGFaR6m": "22800000012605156226292D37720D3A305630F1314451ED5136A35A3CCA718A6619158747C246851DD515B358D7AF5497E7C9A6DDB6E007A45017089F35B31B47E4B73FBDB7D0CAAEEF624DD64D54F36F4092BB9B87BB354BFD0850191499269FE7C090BB3D53416850133325E7CDA51E893C50B2590AE5E71DCA220B7321034E305DEEEF38A71F800EB48D80F8FDA50D3948E8BBD60C7D802A7CDD707FC286764630440220482FF4988F50AB4F8A06CC7FFCEE2D03B8A466BCA62090C091678A96CD2E50FD02205D6D004F2F6AA8F06F0F95B63F4B45936676421A95E2763ECF4D685F4343AED9"
    },
    "unl": {
      "blob": "eyJzZXF1ZW5jZSI6MjAyMzEwMjEwMSwiZXhwaXJhdGlvbiI6NzY2NzEzNjAwLCJ2YWxpZGF0b3JzIjpbeyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDEzQUFGQ0I2QTg3QkNCNUQwOTNDMkVGMzdGMDQ0MzFDMjkxMTI2RDY3NDI5MzMwNTE1MkQ5Nzc2QzZBQkE0RDYiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwVHF2eTJxSHZMWFFrOEx2Ti9CRU1jS1JFbTFuUXBNd1VWTFpkMnhxdWsxbk1oQTlSaW9ISlc4S3o2SWpuSE9Pa3RidmJhSHNacXdKYjhvdGdvSXUrNDZRYldka1l3UkFJZ0UwcHo4SHBTS3JVc0o4RTM5MEs4S0N3bXZFeEIwMGpMdnFQdjlMWnI2cm9DSUFsOXpMV2VJUlNzQlJJYU9sNWFsYmxZTVlNWHJwYnhKWjd0K2p0YmlUOUxkd2Q0Y25BdWRtVjBjQkpBREVaT1FQUUpjV2owelBqdWxjdkgxbzhXaFE5anJLeldWL21rWFNIR2pteklpZWtrT3pVY0Vuem1KWHdKWVdaWm5BMGpUTEUzME9ZbXhDUlhmQ205Qmc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQyQzE0NjhCNEExMUQyODFGOTNFRjMzN0M5NUU0QTA4REYwMDAwRkRFRkI2RDBFQTlCQzA1RkJENUQ2MUExRjVBIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMHNGR2kwb1Iwb0g1UHZNM3lWNUtDTjhBQVAzdnR0RHFtOEJmdlYxaG9mV25NaEFrTVVtQ0QyYVBtZ0ZERFJtaW12U2ljU0lTY3c2WU5yNDJEdzRSQWR3ck9BZGtjd1JRSWhBSkZPSE1nNnFURzh2NjBkaHJlbllZazZjd09hUlhxMFJObUxqeXlDaXo1bEFpQWRVMFlrRFVKUWhuTjhSeThzKzZ6VEpMaU5MYnRNOG9PL2NMbnVyVnBSTTNBU1FHQUxhckhBc0prU1pRdEdkTTJBYVIvam9GSy9qaERVNTcrbCtSU1lqcmkveWRFMjBEYUthbndrTUVvVmxCVGc3bFg0aFlqRW5ta3FvNzN3SXRoTE9BUT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENDI0NkFBM0FFOUQyOTg2Mzk0NDgwMENDQTkxODI5RTQ0NDc0OThBMjBDRDlDMzk3M0E2QjU5MzQ2Qzc1QUI5NSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTFDUnFvNjZkS1lZNVJJQU15cEdDbmtSSFNZb2d6Wnc1YzZhMWswYkhXcmxYTWhBa20xbHowYzhRWFdmSjliMXZCNzJkTGFidzh3WUlkOE10bnBzSEhCRUM4cGRrWXdSQUlnUWxiNkhKNTNoc1RBZlZpZCtBT2RCVnZNRjdyYWhJS05MQkhVZ241MnpCRUNJR0xVcUZ1OGExQUFIUkpjVm9uS1lFbm1oSndiQ1hMbitqZTduYTFXRDEvb2NCSkFFNHZmdnJHU21aQzJ1QVVHbU01ZElCdG9TZ0VVZXkrMlZsZURZRXNjZTk0dHhZY2pSOFo3UUxOYWxpRDh3L2JENS9odllROG1lVjFXZzFqSkZOZTBDQT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDU3ODRBNDNBQTg0QjVCREFGRDBBRkVGNjRBREE1NTgzQTMxMjkxODJDNkE3NDY0OTUwRkQ2QkYyRDlGQUU1QjAiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxWGhLUTZxRXRiMnYwSy92WksybFdEb3hLUmdzYW5Sa2xRL1d2eTJmcmxzSE1oQXJkYlNFbC9PaGE0STVWSTBxVnhtYzF6QldvUmI1WW51dGNpT0MwbCtPWWRka2N3UlFJaEFJcWx1SWd0ekdKWkpHOXM3dDI1NThpcG5HZmdYT1p4T0JOK1ZYZXk0aVNtQWlBV0p6emFuWGpYSW1NQi9WdEhIcnFzMVY0eG5sZzh1Rit5N01zKzF2TUdabkFTUUNaWW5OUjNhU2x3ZFlwUmtQNXYxVjlhNUJlc0pVWkQ2VUoxbk1yNWI1Vm9PbWwrRGpWdERVWnlzckNJeDAwYStnTHordGg4NmdUZXk3VW5DcnFnUWdrPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ1ODNFQ0QwNkMzQjczNjk5ODBFNjVDNzhDNDQwQTUyOTMwMEY1NTdFRDgxMjU2MjgzRjdERDVBQTM1MTNBMzM0IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMVlQczBHdzdjMm1ZRG1YSGpFUUtVcE1BOVZmdGdTVmlnL2ZkV3FOUk9qTkhNaEF5dVVuelpaMW4yL0dhVG1FMW03SC92OVlsWnlERXdIWTNnU0hVQTNJQ0w5ZGtZd1JBSWdIeDJQSHZpZG9OKzV5RzlXZUFTMms3bndJTThhanhRVzZ3anZ0OGtCZW5BQ0lETnhRUFFrRHlESkg5c2VTNUM2Mm1BYXJRbWdpTjg5WVMzamhOdG52RUlxY0JKQWo3SmgwS2FjK2FKZHBvZXB1LytlSktubkZRN1lCeVpCOGVNWitTUzF6TGhFK2xpcC80OXFxVk5jcEF4RXFmYUd0eEp6b0RERDEvUWJ1VTdOT1NQa0NnPT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENUU4MjI3NkJDQzI3ODQ5OUU0Mjg1Mzk5Nzg5RjVBOTMxOTYxNjZCNTUyOTU3OTk3QTYxNTk5RDRGODYxMzk1OSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTFlZ2lkcnpDZUVtZVFvVTVsNG4xcVRHV0ZtdFZLVmVaZW1GWm5VK0dFNVdYTWhBdzJPak43RTNBZld4NHNBTjdrKzhTZEh5cFY2UEt2L0xkbkN0MU9pQ2YrUmRrWXdSQUlnZjVoSXFsaENzRFhVbUpxZHJVNkNhTSt0bDM0eXFSbzdRek9ZQjJKRXlvOENJRmZNQnZhN2pzL1BNOXl5Sm85NWp4RStWVHBXQ3hYZDlvN2M3cWp5aXR1VGNCSkErYmlDWmNoa2JyaWNvUUtNU2J0VUZSaWgxMEtob2I0bHZhK1NNejZsZEE4YzV3WFdVbk9scVo3V1d5RzF5K0ZhTTdDekRBeDRpRWczS01RbTQ0blVDUT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDY5MTMwMzk5MkZFQzY0RTZCQzRCQUNEMzZBRTZFNUFFREMyM0YyODYxQjZEOEVGQjlGRDc3RUUzRUFERTM0MzUiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxcEV3T1pMK3hrNXJ4THJOTnE1dVd1M0NQeWhodHRqdnVmMTM3ajZ0NDBOWE1oQWkyQVhKUWdvL0p1VzNyN2YvNkNjVnNHTjFZbUlqMTFHaUlFU0hCblFTazhka2N3UlFJaEFOQ0RFUXltcmQ2dmVUM291YWNGNmZoQnI1d0x3M0dtWGcxck1DTFZ2QnpaQWlBOHVXUSt0cWQ0NldtZkJleGpTQlEySmQ2VUFHZHJIdmpjQ1EyWmdTb29DbkFTUUZrSGwrRDcvVTNXQnlZUDM4NCtwY0ZEZjJHaTRXSVJIVlRvNThjcWRrNUNEaXdjMVQwckRvTGhtbzQxYTNmK2RzZnRmd1I0YU1td0ZjUFhMbnJqckFJPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ4MjUyQzJGOTE1MjMxMjZFRUY5QTIxOTY0QzdFNDg3QTEwRDZENjNENDU5MTM5NzAwREJDNzBEOUY3QkFENTQyIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMkNVc0w1RlNNU2J1K2FJWlpNZmtoNkVOYldQVVdST1hBTnZIRFo5N3JWUW5NaEE0MUxvR0c0NGQ5VFpxVDBiYWtyOWRwRkNxTCtmZ1hDSU5tQVlDZVhmNGFjZGtZd1JBSWdkTWdjVmxWUElmZmIxSVRCYVdqU0orQXN5N1A5OEdPOVdEbWlCbTQyZXBzQ0lBRFNabXhsdU4vTlBuN253S1o2RzN4ZmVGOGxINWVjSXRQV05yV1dPdVc0Y0JKQXRzdHY4SVVVTW5UWmRVemptOFlRREFHcW9vV0NpazV0dGpZbWs0NnFxMlRzV1JUSUw3M0twOVZMSGJHckV2TmRrbjVZTEJtZHdmVHdoV21CcmlRdkF3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEOTVDNTE3MkIyQUQ3RDM5NDM0RUVCQzQzNkI2NUIzQkI3RTU4RDVDMUNFRkM4MjBCNjk3MkFDQUQ3NzZFMjg2QSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTJWeFJjckt0ZlRsRFR1dkVOclpiTzdmbGpWd2M3OGdndHBjcXl0ZDI0b2FuTWhBaXFjUmRlM01RWjA3NWZhNFpOTnlSYVlKR01kQk5rQm5uM2JRcktzZUJEUWRrWXdSQUlnVStMZmNFNzFEUFZyTytLdFVCalE5RDJ1MGsvUHI3bHVrTzFuUFJqNmhTQUNJRE5MWUMvSkZnb2JDc0lhMEJHdys2YlVuT3c5bWVVM0ZkWGdSN1E3U29xSmNCSkFYUWFrT29RblBwM3BjTEw3emRLQ1BVWDRiKy9GQzlVbmhxcCtPOXhRRm5SYUNXVkdtazVNSk9JTXM0V09RZHBNMWozT2dTc0FCbVJ1Q1hZdndvL25Edz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREE0MDc0RkQwMzk0MDdCRDI0NjRGMTRDMzc4NDQwRDVCMDJDQThGQkE2NjFCMjg2RDFDODJBM0Q1OUU4RTZFQzAiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUya0IwL1FPVUI3MGtaUEZNTjRSQTFiQXNxUHVtWWJLRzBjZ3FQVm5vNXV3SE1oQXlPb3htam4rWnAvOFRjVTJQK3FKQUVLUm1nZzJ6aVc4ZVAvQnNoT3pNNWNka2N3UlFJaEFKeGJXL2Jlb01sODExaWdTSSs1UDNCNEZuZDl3VlljOXNkMFhiS2hJbUZvQWlCbVRIN2tucnczeFdpZk1GQ2xabTA5QkwwVFl1bDJjKzVvOFpwNDNNRXhSM0FTUU5tQ3dJZ2tNb3FhN2lxcUkzOVhUTUxGV2xycVNRV3NNZEhjcXZ4WnVWTVUrWUIyY1NzQUZrZXBlL1Jpc2tmUEMzeUpzYzJrNFVTNW5DUXlxWGRaNVFRPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURBOEQyOUY0MENFQjI4OTk1NjE3NjQxQTNCQzQyNjkyRTFERTg4MzIxNEY2MTJGQkI2MjA4N0ExNDhFNUY2RjlBIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMm8wcDlBenJLSmxXRjJRYU84UW1rdUhlaURJVTloTDd0aUNIb1VqbDl2bW5NaEFuWW5QN0VnNlZnTm5FVVRSRTI5ZDY0alFUL2lCY1dUUXROclV6eUQ2TUorZGtjd1JRSWhBT0VzVjVhblRrbG9TbVRaUmJpbU15QktxSG9KWVhjQkJlOGxMaVBZQzdtVUFpQXoyYU5PcGZRLzFMeWNXbG9JTXZkaHh6aW5xNVg3VWFzL3VPU2I5d2g4ZDNBU1FMVmtmcFcvR082d2RUNkF1dVNKNTZUdE0zNDNwRE5IK2lTenhsdElmZHJQaVV4VDVyZjRrMjFsUVF1UENsWG05K1NmS3JDaVVYWks3ZGowL0dXVFlRZz0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERkU2NUZCMzg1QjZCQjE2OTUxMTUzRDJBMEYzMkJENkQ4Q0M0NTMyQzg3QkIzRTE5MDA5MTNBN0JFMzRGNUVGNyIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTMrWmZzNFcydXhhVkVWUFNvUE1yMXRqTVJUTEllN1Boa0FrVHA3NDA5ZTkzTWhBMzFnWERCNHdWRjA2WFBRTTNmU2N4ZldIa29SRTVrZ2dDL1NFd1hDWVNIRGRrY3dSUUloQU1TRXY3a2ExZDcwelRlM2N0d0JiOWQraHgrd1pqdmVaYmNWdXBoZnpSZy9BaUJPanllVE4wZnZiam11citsVi9vdkcxQTlaZmtuN0htTzduYnJGaW9yTHdYQVNRTEFITGdLcGxlSHlhU1F2ME80ZENJMHJTdXZQUjRTdnc5RmtNQ29yVlpLRzd5d0FtS04yaFJXOFVyYVVmcW0ySHBRQ3E0QUFTZ1JvUjIvWWhCUUNFZ289In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREMxODk3Q0U4M0I2RENGNTg4NTg1NzRFQzlGRTAyN0Q0QjE1MzhBMEYyMDgyMzgwMEE1NTI5RTEyMUU4N0E5M0IiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUzQmlYem9PMjNQV0lXRmRPeWY0Q2ZVc1ZPS0R5Q0NPQUNsVXA0U0hvZXBPM01oQXl6Z2hON0RQUGI2RFFrK0M4akQ2VnhuQXR2ck1QM3diNGRVV3Zpa095YjZka2N3UlFJaEFObXB2bkpuTkFCbXNWVlRnWkdHOS9nSjJnTzEwK3JlSXZqMVJtQ04yN2t1QWlCcUc1VE1qSEtkU0hEbzJrUlgveUljNlpiek14Q2VRTmcwcC9WUVlIQjcwSEFTUUVFV2VRM0VKS2lmci9yRlFSR1lUQVRLdEsvS21TeVIyNDZEQVlHRGtNd21xWjlNVWhqQWFsV1BkU2tzK3E4RThsbXhua0VsbUo5SVJMODBlZnNsQ0FRPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDMkExMzhCMzc3MUMyMDg5NjU1OTZENEQzNzIzMzFDMTdBNTQ3NkJEMkNFMkJDN0E2RDNDRDI3M0RGMzMwRDk5IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM0NvVGl6ZHh3Z2lXVlpiVTAzSXpIQmVsUjJ2U3ppdkhwdFBOSnozek1ObVhNaEE5ai9wVUdyUERZbDYzSmRXVnNxYkhXREJkSjlINTdOVkw0MkxPNmdMd28xZGtjd1JRSWhBSmVUeXhkSzFLWXB4eEk4a0x2aHpDejVPaEdaNDJsRkNZTVN3TW1hdkk0cEFpQnNXc3Z4ZXQ0SkJoWnVuOVpvWkpwQ1ovVnVOSXQxMFlsbnJ0Y05jRUJlNTNBU1FIREpKZUM0TkpabHZtMVdJNXkvYnlPaDRodlk4ZnFzbUQwYlhac1NOOUczVFJBTFNMZUNrZExSR2JKWk5NT0RYZmxjcCt0SGZVN0ZYNEpPZFJWTXhRMD0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEMzhCMDI4OEVBMjQwQjRDREVDMThBMUE2Mjg5RUI0OTAwN0U0RUJDMERFOTQ0ODAzRUI3RUYxNDFDNTY2NDA3MyIsIm1hbmlmZXN0IjoiSkFBQUFBSnhJZTA0c0NpT29rQzB6ZXdZb2FZb25yU1FCK1Ryd042VVNBUHJmdkZCeFdaQWMzTWhBcEU1RjdhTzY1SktrU2ZwNlVNeW5JYWs4TWR1WVNPem82S1hMdlFFamxCd2RrWXdSQUlnS20yQTExQTJNNEZxekVXK3Zyb1V5VGJIU3BramQzZWxRL04wc1FUaHcwc0NJQktsWDAzM2tYZGFpSjU0bDdTaUJvUW53SG5TYVFmVDRieTAwWW5jS1d6VmR3dGlhWFJvYjIxd0xtTnZiWEFTUUFzbC9TaGtRNFJFN2FydlRvd0Q4NHNPUGhpekNRbEgzSXpxdmFDNy81MldMOTJGekg0czJNUnpzc0lCVUN3RWg0ak5BcmN4RnkvZ0ErTU8yNFFRMWc4PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQyNDg3QzAyN0FFQjU5MjIxMURGNTY0NzRFODQxQUFEQTBDMUY0RjA2MjhFODA0RUU5RjEyRUM0RTdDNTUxOUI5IiwibWFuaWZlc3QiOiJKQUFBQUFKeEllMGtoOEFucnJXU0lSMzFaSFRvUWFyYURCOVBCaWpvQk82ZkV1eE9mRlVadVhNaEExS3F6ZU1YRklnT2ZxWTJkK0o3cXpxMjRvcnVBVENrbW9wQ1VNR0pPRUJsZGtZd1JBSWdDd2EzVkxKYi9EemtiMnZ5WC9aK3VUUUpVM1ArS2RDamFnd0tTTEVndWo0Q0lGMDArOXp0eXAzS2dWN01RbUFpK25vZ3M0ZjhyUGJjRzNTUUFrdFdtc2NvZHhSNGNuQjJZV3hwWkdGMGIzSXVablJ6Ynk1bGRYQVNRSjRJY3d4RE42OVE0bWtqZW1TbEZYK21yTmhzSVR2bWVUeUVQNGY1RTZXY0UxdS9XbEROQ2Rxcy9SRFRHOThlcXlKRTZNR1VCNzZRbnhxYjhaaTcxUVU9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDZBNTQ5NzVBOTRFQjk3MTVFNEY0RTNGQ0QxNjYxRkNENDBDMDY1RTZDMjJFNDYxRkVFODcyNjdERDczQTJENkEiLCJtYW5pZmVzdCI6IkpBQUFBQUp4SWUxcVZKZGFsT3VYRmVUMDQvelJaaC9OUU1CbDVzSXVSaC91aHlaOTF6b3Rhbk1oQXN5VHhEWVFZRzJybk9XNzBlaGFJc2JOZ25jWFlaWnhEUUxFNS9FVThLd1Nka2N3UlFJaEFJNUpGK2xBcTZpMmRERC9kL0g4amhJT29CTnZXbVkzZ3lueWt5NS9sTUdCQWlBaEt1Ty8yWWUxTnhrZitORkJrNnYxWm1pd2h6MjJQZUdBN2ZqMDFzQkZHM2NMZUhKd1oyOWhkQzVqYjIxd0VrQ2xwekdjT0hTWElZYTcxL01QUFVLMlQvMWJrQ0Y5VnhuRC9qakZwc3lPSFFqMXRSOG9TSGl4aDlyRzBmbktNNTQ3ZU9XYnkzbTljQVR6M3VIQjR2RUwifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEOURBNzQzQjc2OTA0NUE5MUFDNDFDQTVDNTZGQkQwOTAxNjhDQjc3MUU5NTU4REQ5RDFDNEZFOEIzRjRDODQyRSIsIm1hbmlmZXN0IjoiSkFBQUFBSnhJZTJkcDBPM2FRUmFrYXhCeWx4Vys5Q1FGb3kzY2VsVmpkblJ4UDZMUDB5RUxuTWhBNDcyYng1STQ4cGMxL1RLeGhDM0Y5aEFROUErcjVsNVZxNTBTZnBlTldvWWRrWXdSQUlnWmJwOENYandEUFFVTjRRSlJGUE5maE5xVDBzZ2tRR2pyM0RMYndMd1Zmc0NJSHVVbEtvY1l0TW5Ebm5teFVIYzE5U2N1eUc1T1pMWmRwSy93RlEyWjdVamR4VjJZV3hwWkdGMGIzSXVaMkYwWldoMVlpNXVaWFJ3RWtEYThnbmVLVmkweDh4amw2WHRaNWdSNUpDN1pubU1EdHRhZE5zR2dFLzBHNTA5TjhSckc3eFhhd0RQaXVzZjh5QWtTNlQzUkZOWmZYSjV6ZXNWK0tBRiJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURBMUVGQzgxMDU4RUVDQjQ4REVCNEZFQjdGQUZBQ0VBRUE0MkMzRTAwQzBCRkIzMUY4NUVDMTE2RjMxQTEzREFEIiwibWFuaWZlc3QiOiJKQUFBQUFKeEllMmg3OGdRV083TFNONjAvcmY2K3M2dXBDdytBTUMvc3grRjdCRnZNYUU5clhNaEEwc2xZZ0VhV2daZ2hGUllOaUV6SFJJMC9GbHhkekllSjJKQ0VrelIzeEVhZGtjd1JRSWhBTTRQY0RwVTJEcWtpREZsVTA4TFhua3I1WGJKaGphMUQ2TkJFQ2p3dWFXckFpQVhyeVV3WUtaZnJBazJFZERaM1ZPOFZlVEVqVnFPclBPS09GUTliZE5uazNjUmRtVnlkVzB1WlcxcGJtVnVZMlV1YVcxd0VrQ0JRRkd5WUVVVERhOXVxUHI5VjdBK3QrZ2M5elhUeXZ2L1V0TVZ6VWtwdVZJMXNOdzZsbEg2d0xJbmxFbnM4aVRad3g2amwrVWpFeGkxY1VVOGM4VUoifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQUY0Q0JDRjRBOUJFRTMwNjY0NjU0OTMwMUUyMjc3MEQ1RTYyRDhDMDNERDlGRjQyQjY1QTgzQjJCRTFDNzBGMyIsIm1hbmlmZXN0IjoiSkFBQUFBSnhJZTJ2VEx6MHFiN2pCbVJsU1RBZUluY05YbUxZd0QzWi8wSzJXb095dmh4dzgzTWhBdXdWYkdNU1BZQk1XcUE3K09wZUpiKy81bDdPQlhBY2FINVIzR1JEUFE2MGRrY3dSUUloQU5ZSHRENkNPM3dpZFhtZWlST25jbUJwb0lyWVZOQ2kwR2M5ZXhMOFB2NkFBaUF3WG4wZlFEVm1BSTM2aTVtV3BrWTBCVkhzajkyQUo2ODhCWkVCeHRlMlpuY09hMkYwWTNwNWJuTnJhUzV1WlhSd0VrQm1hTTRDNE1rQjhnb0pOQTZVb2RDSGZodDZxZ3FEdjJzRkx3Y1VTTy9XU0p2MUZOVncrNjJLMGRKSjhyclpKaHdLalI4TnlPK2lQVWw2VjdVMWFnZ0EifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQ0FENkUwMkFBRkY1NDY3NDY1Q0JCOUU2MkUwMjFCRjRCOEUyM0Y3NDg0QTZGMEY2NzM4NzU0OTczMzg2NUNDQSIsIm1hbmlmZXN0IjoiSkFBQUFBSnhJZTNLMXVBcXIvVkdkR1hMdWVZdUFodjB1T0kvZElTbThQWnpoMVNYTTRaY3luTWhBaHNaU0dHcnBhaG95VUcxY05McjZTZTNsazl4RlgybzdyeW5rUVcwTk13U2RrWXdSQUlnUTU3RHc1ZVc2aTFxNXZVZ0RkdEo5dFVFNHRrNEFyK25IU2pnUXFscThPd0NJQVdRbkFUNW9kTDVFUnB2SWVxUjA5c2FjS1NnczRabVMrZ3Izb3hmc3IzN2R3eDBiM2R2YkdGaWN5NWpiMjF3RWtEUVFQQnA0YzlGZi84aEoyNVk1T0RKYWJ2OVY0S1dwTmRKdjFva1hFQ2JaYmN6Z1U3MkVscGhrR3NwckNJaGQzQTFKc29oQ3ZsbE9iL3NTMFU1UTBNRSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDRkU2NTEyMUUzOUEyOTU1RjA0RDZENzg0RTNCMDIxNzkxRTg4RDEzOTNEQTRBRkFCODlGOTlBOTI5QTcyOTI0IiwibWFuaWZlc3QiOiJKQUFBQUFKeEllM1A1bEVoNDVvcFZmQk5iWGhPT3dJWGtlaU5FNVBhU3ZxNG41bXBLYWNwSkhNaEFvTm1XRjJWVnFMdE1wSFZBNmZib1JzM0phMW1ETWpNUWNMbkFkMkQ4Z0NJZGtjd1JRSWhBTDkwZlc2S0tLY1FFZ25WemMrSFZYSkdwQ1ZnMkxla0dQOERWekdjeUNRYkFpQlc3ZCt0WWxoQzRjQlZiK1pRU2FUSUoxRDVJY25odHZ3VTY3K3QrU01zR1hjS1pHbG5hV1pwYmk1MWEzQVNRSnp0UEVaRytvRVMyVHNKbUh1NkVaaHhNQTBCNWpMOGFYZG8ycjJSYlNZeG40akwrclVxVkFUNkI1N1JvdXBWWi9OVUVWV01VSDJGTTdLakViZC8rUWM9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREYxMDA3NEY1RkJCQjk3NUE4RUE4RTlDNDIzMDY4NTRFNkE0OUM3MUI3RDMzQjAyOTNBQjE4MzBGRUNGMkM0MDAiLCJtYW5pZmVzdCI6IkpBQUFBQUp4SWUzeEFIVDErN3VYV282bzZjUWpCb1ZPYWtuSEczMHpzQ2s2c1lNUDdQTEVBSE1oQWhwc0dLaG11VFpnY1gxVmZMd2lKd082dTNBNXNJNWxkcFhwd3ZheFUzRE5ka2N3UlFJaEFOZGkvSHpOTnp3T3A2bWNjazNXL0Z1eWUyY0l2a1RFc2JwMk1nc1RPUW9WQWlBbkRBMFZuT0tFZm4zaVRiOUF5S0x3ZExSRWw3cTAvVjAvODliOElGc3ZGbmNMZUhKd2MyTmhiaTVqYjIxd0VrQWRrZUN5elVRdWoxVkdWRW5hY1FxZjFjSVN4bWFPdm9qWEpnaTRRRVZiZ3Y2K3FiV0RGem5kREs3TWVmYTZpb0pNTFJUZmt1d2xLRGR0d0p2b2NWd0gifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENTgwQzQyODI5NTBDQjNGN0UwMTg1RjM3RjJDRkIyMTY4ODJDNUVEREQzQkIxRUU0OUMzMDRBMUFBM0M1REI5MiIsIm1hbmlmZXN0IjoiSkFBQUFBTnhJZTFZREVLQ2xReXo5K0FZWHpmeXo3SVdpQ3hlM2RPN0h1U2NNRW9hbzhYYmtuTWhBakRzTjIvSHFuQnlheDlqOUErSFdwUmhBWXg5d1UxY04rNFhZUUJjZXRUWGRrY3dSUUloQUlCVHhSdkZJL29iMnQ4alU5VUxlbzFuWWUwbEc0ZDdyS3RYSWZzZlppWXZBaUFOemFiZlVEbGFUV3k5UHNPUzVUOEZ6THlLRFNLVWFLWnNQQ0pXamZnVHVuY1ZkbUZzYVdSaGRHOXlMbkJ2YkdrdWRYTndMbUp5Y0JKQUFpMjRtSnU1Y1BQd0tZemxQTDcrUHJObnFSL2k2aVJuT2wrYnRUSmFFTjIyZkJsbzNTd0J3UHBjcDBzbGl4WjIvNjRFeWRsOGluTXVidG4yMnRwdUNBPT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQThCMUQ4QTA3MUU4NUE2RTM2RENBQzc5OTlBQjgxNEU0Q0RDNjY0NjY4Mzg1MTczNzY3QzVCODk1NTQyNDNDMCIsIm1hbmlmZXN0IjoiSkFBQUFBTnhJZTJvc2RpZ2NlaGFiamJjckhtWnE0Rk9UTnhtUm1nNFVYTjJmRnVKVlVKRHdITWhBLzl4dDRrTkJOcG9OYTZLeVM3dzN2RzNFYnRXVitsaDRaTzBKRzBENG5lN2RrWXdSQUlnZFVSSytvck9yTkRQdXJVSDNJTXFpenVuRDN0VUhsNys3YnNqQk96ZmVYTUNJSDhJdU9FR2UzMm1IUFZIejAxczV2WlJrVGVsbmYxWmtMYy9MMDhDd0I4MWR5SjJZV3hwWkdGMGIzSXVlSEp3YkM1eWIySmxjblJ6ZDJGeWRHaHZkWFF1WTI5dGNCSkFtelJQNlhnQlpjWlowKzF1d0pWZ2JCSVpDUWUxSVc4djFqb0srYmtWY0RSeFZqYnh6MXlxSjNncFArZGk4Q3VLTjRkNlU4L2hDemFxbjZQRVZjNStEQT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDYzQ0Y5MjlCRTg1QjI2NkE2NjU4NEIzRkUyRUI5N0ZDMjQ4MjAzRjAyNzFEQzlDODMzNTYzRTYwNDE4RTc4MTgiLCJtYW5pZmVzdCI6IkpBQUFBQVJ4SWUxano1S2I2RnNtYW1aWVN6L2k2NWY4SklJRDhDY2R5Y2d6Vmo1Z1FZNTRHSE1oQTA0d1hlN3ZPS2NmZ0E2MGpZRDQvYVVOT1Vqb3U5WU1mWUFxZk4xd2Y4S0dka2N3UlFJaEFJRThnTmovTGt6TWpjWE16S2VTT2ZMREZpRGpRa0grY3hXWWhjOE9iQjJJQWlBSFJQMnRBUXdmYlFTbXk3Vno3MTBIVGJlVUU1Tll3cWFHTUFVUFRvQkhiM2NPZUhKd0xuVnVhV011WVdNdVkzbHdFa0FUdW5aelA2bXdDZXZ6d2dYWHhYSG9nbDQwdmxHVGJCZnZzQ0dNdXJNQmpkTkpxM3NGZ3N6WG9KRUNvcUE0bkFOR2ozMUR3bWF2ZnBxakladlJMeHdBIn0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREMwOTA5ODBFQ0FBQjM3Q0JFNTJFODgwMjM2RUM1N0Y3MzJCN0RCQjdDN0JCOUEzNzY4RDNBNkU3MTg0QTc5NUUiLCJtYW5pZmVzdCI6IkpBQUFBQVJ4SWUzQWtKZ095cXMzeStVdWlBSTI3RmYzTXJmYnQ4ZTdtamRvMDZibkdFcDVYbk1oQXUyTFNBd1pFUW5tL21xOUs2c1NaSms1SmtiY0tDdjZDN3ZRVzJDOFJuWlZka2N3UlFJaEFJOXV3UTFwNThveW9iMUUrRGFGTHdqVGRpUmJWSUtTTVBxYWFVd25KZE4yQWlCNzlEbFBYSHd6dE5VTHJhVlRrZWhiRHNDQXlEZGYzVlpCM0Z2a0NaTk9GSGNJWVd4c2Iza3VaV1Z3RWtCZjZBOWt0Y2oySDRhNjFBdjh1alFGTDJLTmNtci9GdUVLYndsWkVuaUp2aGYwVXFOaVljMmJBc1RKRTV3TW4wMEUwSkJidzJtOU9Gd3RvNTBEY2RrQyJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDRjA4MDUzREZGMEYwMEFDNkU3OEI2MUY3QjdGRDE4N0FGNzQwNTJERUI1MDc0MjA3NTA2RDNBMkNEQ0Q5RTVDIiwibWFuaWZlc3QiOiJKQUFBQUFSeEllM1BDQVU5L3c4QXJHNTR0aDk3ZjlHSHIzUUZMZXRRZENCMUJ0T2l6YzJlWEhNaEFuR3pmN0Y1UHF2MEkxWmlpaTRlT2w5MWc0Z004b0Y0UjZrYU5iSm9kcVo0ZGtZd1JBSWdGV1lrdGV3VW9QczFxZlVEeGhYZ215K2FQV3BHWEdDaXM3NmdBeW41Qk5zQ0lIZnlHeit5S3J1RW9FUldxb1FBaWZPcmVMcjlMT0Y0UlduZCtjamxRWWpPZHcxcWIyNHRibWxzYzJWdUxtNXZjQkpBM1hEYjk5QjlGT3BxbDdBOE5McGVqMnF2VjF1L3k4TWpWQmFuQWhrZVJ6WXVRejR2enQ3Z001ZnMxL3FZOFkxT0prM3N3eitreDR3Z0dtMWNra0txQVE9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ1ODBBRDRGQTVEQTk4OUZBOTk5NTM1RUNDMjAxOTdBNUI1M0ExQTQ5QTk3MUY2NjUyRUQ4RDVENDY2Q0E2MDVEIiwibWFuaWZlc3QiOiJKQUFBQUFWeEllMVlDdFQ2WGFtSitwbVZOZXpDQVplbHRUb2FTYWx4OW1VdTJOWFVac3BnWFhNaEF2TFFsMFdCTWUwWFNqRlFQYnFVWFNpUkJRd2N5cE51MDJJM1dRTU5qLzl6ZGtZd1JBSWdTVjJrZkZzMXIxVGFIWC9TVWJ4Nzh2SXExbmh5QWlOUzBHR3U4bklhTmk0Q0lHYkNyL2RYS2RLanJkd29KWU5EZ2Y0dGxNVDA5NGJoVVVucFR6a05IV0xQZHd4NGMzQmxZM1JoY2k1amIyMXdFa0FwVG93UWlaUmE4WFhJRGxFWjJSVXFmRjZKSzFuTnpNYUFIejR6TEJ3YStlZDE3K2txbXlPTStoYW9zV0JKTzZvcXdpS2w0NnA3Ulc3NTNYa3JaOGdGIn0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDY3NTM1MzkwMjA3ODJBNzc3QjhGNEJGNjkzMUE3REIxM0Y5RDI1OTQ4NkUzMzdDNjM5Qjk5RTBDNTdDRDVGRjIiLCJtYW5pZmVzdCI6IkpBQUFBQVp4SWUxblUxT1FJSGdxZDN1UFMvYVRHbjJ4UDUwbGxJYmpOOFk1dVo0TVY4MWY4bk1oQWhNeDRaZHdWeTF0eCsyWlFMbGVKb1BleDZVZ1F6T2ZjcTRJWHUrSjdSY2dka2N3UlFJaEFQVjRiL2cza2RLMzJ4TVNhR2pvd0xzU1RHeHowdjVnVEJBcXBwUDhFWmZzQWlBb1dLdGVSQ2JvUHRpNGdoQkw3NURxRkZMWTV0ZkNCNktpelJtS21maTZvM2NTZUhKd2JDNWhaWE4wYUdWMFpYTXVZWEowY0JKQTJpV1AzSXVCN2RoWks0djVCWjRkZ0RMMDlaekYrNEJmQmdid1AycnEwZjMzUzdUdStobVFacVdWNUhFVHd4R1VhRXJkd0NmdjdrajNBZTVTUTJTbUR3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENThGNjc3MERCNURENzdFNTlEMjhDQjY1MEVDMzgxNkUyRkM5NTAyMUJCNTZFNzIwQzlBMTJEQTc5QzU4QTNBQiIsIm1hbmlmZXN0IjoiSkFBQUFBaHhJZTFZOW5jTnRkMTM1WjBveTJVT3c0RnVMOGxRSWJ0VzV5REpvUzJubkZpanEzTWhBc1UvRzJ6MTNqN3YwYnFXcjg2MVFCOERMNUtCS2dmSGowL0RMSWJJV0lFYWRrWXdSQUlnQ2o5dXpRSVl3azJVenhLSkwydjBHLzBiZmxoNVBRWGJRYUdpZG5LUWpCRUNJR0loQVU1L3FZMWI1RElEd0EyWlJvbndmQ096UlZHS01wZTltc2NPb0F5RWNCSkFRVHA1aW1SU3huVWFtYUE1ZXNYWmg4ZE1YOGFhaUEzU09iUzdDNU9SV0lvSzNIVXFJcHFVOC93RnFUZC9pdW1GdlZTY1lGMzErSDZwdm5OS1JIdkREZz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDlBRTRGNTg4N0JBMDI5RUI3QzA4ODQ0ODZEMjNDRjI4MTk3NUY3NzNGNDRCRDIxMzA1NDIxOTg4MkM0MTFDQzciLCJtYW5pZmVzdCI6IkpBQUFBQXh4SWUyYTVQV0llNkFwNjN3SWhFaHRJODhvR1hYM2MvUkwwaE1GUWhtSUxFRWN4M01oQTVPQ3pPL0t3ZVdXQTRWMUdoR3A1NzRZckkycjUxNCtZNTZaOHpWUkI0RG9ka1l3UkFJZ0FoUTRzdnUxZDEwait0MzltZklxZUdjQTFwZUpJYURXVW84NnVudnhuNzBDSUcrVmQyWGptR20wdGRMaWlubkx3aUVlRzhzcVVzWFRnU1h1enFTQkFTZU9keGQyWVd4cFpHRjBiM0l1ZUhKd2JDMXNZV0p6TG1OdmJYQVNRRWcwRTF6cGhtS3pXU3E0bnV2L3J1RWk2YzBZRjM3M1hlZnJ4eDUrTjd2NGFXbE1TdzNFbys1K1RrKys2U2JXMWRWUjR5OUlqL0JYWU1MTkRIRWg5UTQ9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDg2NTFCNjcyQkNFMjcyN0JEOTNBNjI0MzE1OTI0NDdENjYzN0U1RDBFNzY4NTk1RUNDMTlFNUU0QUVBQ0FGM0IiLCJtYW5pZmVzdCI6IkpBRlFkbUZ4SWUyR1ViWnl2T0p5ZTlrNllrTVZra1I5WmpmbDBPZG9XVjdNR2VYa3JxeXZPM01oQXczY3lUWGxMdUFEWnVlelZsRGRScGYwenV6ZVU2WUhORHpCRTBGK3hYbTFka1l3UkFJZ2JTeW95a25ydDRWdGlibU1meFIxb0UzYnBJc0pEY3M1bmtxYnVnUEZmaHNDSUFpc0xUUW9pb3NIaHJYallVbEI1Y0ZsdEkrVjZOOUNFeGdtRDFaZ0NqZmJkd3B5YVhCd2JHVXVZMjl0Y0JKQW1BQ2NqU1hiQmQ0MzhZY0xyYjcva2xUdU54bjJIa3AwdW1adWY0V0ZhMVlJWlJ5WkVwR0JFMStBaHVsSFZzUS81L085eURINlRoS3pwMTJvNVlaU0RnPT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQTU0Qzg1RjkxMjE5RkQyNTkxMzRCNkIxMjZBRDY0QUU3MjA0QjgxREQ0MDUyNTEwNjU3RTFBNTY5NzI0NkFEMiIsIm1hbmlmZXN0IjoiSkgxZEUydHhJZTJsVElYNUVobjlKWkUwdHJFbXJXU3VjZ1M0SGRRRkpSQmxmaHBXbHlScTBuTWhBdEJneHc0VU5DQTRsMUxpVVNxUVlUclBxbjRFMFYwbUpON0pHUWlBU0wvQmRrY3dSUUloQUxEWmNrUEd2NE40M3MyMUlkb01FSXRXWUVEdEVwT3ZHKzhCSXd0ckU2Ym5BaUJFelZPdHZMY29nOUxNQVgzSmJidWxzRDkvc1JGVHlGSnBobDZKQVRqUDBIY0xZMkZpWW1sMExuUmxZMmh3RWtCWVJXV3JhMmRSUFd0TXBZVjJzMnltemF0ZFZNbE8rS1pORkF4Q1lsWk0vWXh0NmJvNkcxTUIvbkFZVDZudHlnMEZCRUpEZ1ZmTVR4bGlBcXpZMDA4SCJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ3NTk0MEVDMDkxMzBGOUM1NTNEOEFGMEZFMzU0QTExMkNDMjcyNTE0NzJBRjFBOTA5MTc1OTc0ODkxOTIxMzVGIiwibWFuaWZlc3QiOiJKSGhuL2pGeEllMTFsQTdBa1RENXhWUFlydy9qVktFU3pDY2xGSEt2R3BDUmRaZElrWklUWDNNaEFxRHRUQzVCSUJCNjc2aTNUVDU3cjl5WXFJL2JhSUozVWEvdDM4SmZDSXBUZGtZd1JBSWdZbkI3SHJFYTlyY2ZNWkpoMkptZGxsVkttWUhCc3pZUUhxQzQ5OXdpdUxVQ0lEQ3pyRzFtYWdTRlIra3lKU3RGOTQveWxFbnhDYkJSYWg2eEM0cWpHOEc1ZHlWaGNuSnBibWQwYjI0dGVISndMV05oY0dsMFlXd3VZbXh2WTJ0a1lXVnRiMjR1WTI5dGNCSkFWQkoydkRTcmczdDd6bzRPSk5zbmkrSkxGdGowRG9sWlhpakJKYWpRbkMvYnZXSnViMDE1Z09VYW9Ya0xBLzlKN3JzaldXa3k2QmcyWklGK0ZVK2tCQT09In1dfQ==",
      "manifest": "JAAAAAFxIe1F0YQO5yS+Mnq+kUZQPVhI79Xzi21f7ecegKzOXm5zi3Mh7RiCXiUBmFIhZUbZfHHGCftCtcsPeSU01cwAt0hkhs0UdkAQnI9+pUYXskMF1Er1SPrem9zMEOxDx24aS+88WIgXpslXVyRPehFwtnTTb+LwUx7yUXoH3h31Qkruu2RZG70NcBJAy3pkPr9jhqyPvB7T4Nz8j/MjEaNa9ohMLztonxAAZDpcB+zX8QVvQ4GUiAePLCKF/fqTKfhUkSfobozPOi/bCQ==",
      "signature": "5B2D6E3738FD83806E6E2AF266714B10FDC00452C4BEDA7321F3D4A1A62FD8AA5F0667831A9DF4EB68D5E9D1D4D6ADBCD1E039654273037AC458BEC1F779880B",
      "version": 1,
      "public_key": "ED45D1840EE724BE327ABE9146503D5848EFD5F38B6D5FEDE71E80ACCE5E6E738B"
    }
  },
  "transaction": {
    "blob": "1200032403AAE617201D000053596840000000068E7780732103A0353E37C07C36924838E0624EDA603CCC89A7D180C14A20CCEFA4FE44055AD474473045022100ED4635DCF238A0E634EB4A1B2170DFBBCB17F12D0FAC488AA1BBD548990A647D022018163877294B189AF10AB580719473BDD26071789E0E5240148EAE9C39199DC58114046D18FE322220FB5538108533015D485EA2D12E",
    "meta": "201C00000005F8E511006125051561F255D16C84A12803A29B9F661A600979AE00FF06585D5BBC297A58BC80B1BB559C80566A6192D86708D68A1678859E30F945F3179F55838CB9E56935F618FF103FF113E62403AAE617624000000021064C44E1E722000100002403AAE6182D0000000D202B00000002202C0000000141DCA87D72C399A1993247F6BE6E3C929E62400000001A77D4C47708746571752E6465768114046D18FE322220FB5538108533015D485EA2D12E88141030027B2DCB9F19B4652556EDE63A7472C5C73CE1E1F1031000",
    "proof": [
      "4F95B7B178367A180E2C4E1BFA0C9FF01A53984F1AF2C4AF920C4AF205EAE5E7",
      "131FBEE20B1DAFA55B14FAAB402CF38A2AD5BB64391A42FFFB220E2F84599F78",
      "F81215A6FFA769C250564B48F6290B68B27F95BA744D3058F9D4467F2BC1651B",
      "A7C31B3C39C06ABB35AC7863A0FA21CC7B1D7660B16522497C26AEF7ECBE3D94",
      "56C9D5BDE31BB4749EF0758B34CB0A9666AC90A476712338F4E41C908C35EB5E",
      "DD166C856616A4F07D3C109B59FB289EC20F9600D73B33ECBADA982566F0C53F",
      "65BD1043FBEBFFB14BD607D5E2C23217132A4653AB827E3999A37CEC5BD74BD1",
      "D13CA6FEBB8DE368F29CEEB603F1EFFFDE722E1CA20B1F4203D7A3785FAF7EDB",
      "0E4040D696432CA749C38AE90360BB45340478656F35CD213D3380A426CE3ABF",
      "799569B86CD3EB2CD0342FD5E1025396853E75FEB5CEBA32BE09F58713024819",
      "A72524390AD52C69D0B04AFC6479C1DDD7225BE92322B673B8EA1C86BD5AADFB",
      [
        "0000000000000000000000000000000000000000000000000000000000000000",
        "61976816DC3EA658B442B86AAFB466CC43E473600F07ACE66146C1C3429B3BDC",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "33BB56E1FBD054D58E9836C2D3C781E0E487CED8935C9CA5BEF9FA3CE9476DAE",
        "BEF0FF1E5934DE3DFD10FB6DF1269A388A7DAE573E4EB879C6A4B941C97E3972",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "D37D9B05EA0106096B341540BC1E31D5466DD674A7E98A3456239BD3F73EFBEA",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "C073E94DD0C7E8B3376D497ED5D04581D203C0ED7228DB45E95564D2A08ED36D",
        "6C3D5F9FB004567D06724D148299D4727ACC1E72C24328B0F579B6EDA7BC307C",
        [
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "61D215A016FD5F6B56EDA594EECF12DB7A2A8243BD2E79B09E34806D93ECE318",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "79A6776F3C18543DF58D35DB59241F819B499067E1CA9CE2A0A1E0585090F936",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000",
          "0000000000000000000000000000000000000000000000000000000000000000"
        ],
        "639096F51512E32EB9654254D227772F3101A05B9CB7D5804802676A3931B1B9",
        "0000000000000000000000000000000000000000000000000000000000000000",
        "59C39E6AEF8EFDFBDC8D28A96189FD524C70E86D23016D95C74F811A913B564C",
        "76803A47AAE7D1B07EA0D63712DF6CB15B9B79474807F95361B14642DA907747"
      ],
      "7BBE8325F5873F38B3B56FAF49CB1EFAE043D7916C8CECDE2A9D3124D59E8A7E",
      "424790523E4523F3C3553D6983C8072988F134F165D09053BAC21091B6E09AA9",
      "A0BAD17D910710C8EF3D3BA23E906304AD4B786C6B08FA50FB7B3F9095982C40",
      "21B34D25608BD0A8011FE8BFD7E89F7FFF16CFA73AC3F846B087C6EB4615B077"
    ]
  }
}

まとめ

今回は、XRPLエコシステムのマルチチェーン化にとって非常に重要な技術であるXPOPの概要について説明しました。

今後Xahau Networkではこの仕組みを利用し、mainnetの発行トークンやNFTをXahauへブリッジするようなことも可能になっていきます。

XRP Ledgerに興味を持たれた方は開発者のDiscordチャンネルへ是非お越しください!
日本語チャンネルもありますので、英語ができなくても大丈夫です!
https://xrpldevs.org

また、XRPL JapanのDiscordサーバもありますので、こちらもぜひご参加ください!
https://discord.gg/invite/xrpljapan

私のX/Twitterアカウントはこちら!

Discussion