title: ZEDEC / ZXV ブルーブック:オリジナルの耐量子カーネル、NEAR 上で融合されたサテライト群、そしてそのすべてを検証する方法
tags:
- 耐量子計算機暗号
- 矛盾許容論理
- ブロックチェーン
- スマートコントラクト
- 自作OS
private: false
updated_at: ''
id: null
organization_url_name: null
slide: false
ignorePublish: false
- 版: 第 I 巻、初版(一般公開版)
- 著者: Michael Laurence Curzi(Scenic Bypass Consulting, LLC および 36N9 Genetics, LLC)
-
公共財の管理主体: ILLUMAHEART Foundation(
illumaheart.near、illumaheart.sputnik-dao.near) - ライセンス: Apache-2.0(ソースコード、ドキュメント、デプロイ済みコントラクト)
-
関連する DevHub 提出物:
#400(アーキテクチャ・ホワイトペーパー)、#401(遡及的公共財助成金)、#402〜#405(補遺)、#406(ターミナルログ証明スイート) -
ライブ状態のスナップショット: NEAR メインネットのブロック
222,354,590〜222,354,624。本版の作成時に、ガス不要の RPC view 呼び出しで読み取ったもの
本書の読み方
本書は、私たちを知らず、私たちを信頼する理由もないレビュアーに向けて書かれている。重要な記述にはすべて次の 5 種類のラベルのいずれかが付いており、読者はその記述の裏付けがどの種類の証拠なのかを常に把握できる。
| ラベル | 意味 |
|---|---|
| [LIVE] | 上記スナップショットの時点で、公開されたガス不要の RPC 呼び出しにより NEAR メインネットから読み取ったもの。誰でも再現できる。 |
| [REPO] | プロジェクトのソースツリーに存在するもの。ファイルパスを併記する。 |
| [MEASURED] | プロジェクトが明示したハードウェア上またはオンチェーンで測定した数値。私たち自身による測定であり、独立した監査ではない。 |
| [ATTESTED] | 作業の進め方について著者が述べたもので、本書はそれを独立して裏付ける証拠を含まない。 |
| [OPEN] | 未構築、未測定、または未解決の問題。主張と誤解されないよう明記している。 |
本書のいかなる記述も認証ではない。システムのどの部分も、NIST CMVP、ISO、EMVCo、SWIFT、カードブランド、銀行規制当局の認証を受けていない。規格名を挙げる箇所では、何が実装されていて何が実装されていないかを明記する。
目次
- エグゼクティブサマリー
- NEAR の方向性との整合
- 設計思想
- 矛盾許容論理:4 つの値と 145 状態のラダー
- 144 次元行列とその 145 座標コンテナの数学
- オリジナルカーネル(ZXV M5)
- 1 つのソース、6 つのプラットフォーム:クロスコンパイルされたカーネル
- 方法論:フリースタンディング C を Wasm にコンパイルすることが NEAR 上で重要インフラを構築する効率的な方法である理由
- 融合:サテライトが NEAR 上でオリジナルカーネルに結合する仕組み
- ライブのコードハッシュを含むオンチェーンレジストリ
- 機能カタログ
- ビルド、保証メカニズム、検証ハンドブック
- 正直な限界、訂正事項、未解決事項
- このアーキテクチャがもたらす意味
- NEP-662 と NEP-663
- プロフェッショナルサービス:Scenic Bypass Consulting, LLC
- 付録
- ターミナルログ:収録ファイル一覧と検証方法
- ターミナルログ:8 レーン・フルマトリクス実証(決定版)
- ターミナルログ:144 レーン・マトリクスと中断からの再開
- ターミナルログ:統合実証と view メソッドの全数実行
- ターミナルログ:リファイナリー(4,096 判定の畳み込み)
- ターミナルログ:研究ラン デモ 2
- ターミナルログ:研究ラン デモ 3(ゴールデンベクタ)
- ターミナルログ:デモ 5 フェイルクローズの probe
- ターミナルログ:公開鍵・署名データとゴールデンベクタ
1. エグゼクティブサマリー
ZEDEC Xero Vulpine(ZXV)は、耐量子計算機暗号、厳密な有理数演算、そして 4 値の矛盾許容論理(パラコンシステント論理)を基盤に持つ、フリースタンディングな C11 製オペレーティングシステムカーネルである。同一のソースツリーが x86-64、AArch64、RISC-V 64、RISC-V 32、ARMv7(32 ビット)、WebAssembly(wasm32)向けにクロスコンパイルされる。NEAR のコントラクトは独立した製品ではない。それらはカーネルの NEAR アーキテクチャ向けターゲットであり、固定されたコードハッシュと起動時の振る舞いチェックによってカーネルに融合されたサテライトコントラクト群である。
レビュアーが数分で確認できること:
-
デプロイ済みのバイト列はソースのビルド成果物と一致する。 プロジェクトのローカル Wasm 成果物
zxv_gate_contract.wasm(46,981 バイト)の SHA-256 は9051f96a…6039cc3aであり、これはカーネルのゲートアカウントのライブのコードハッシュAiND1AEhrQVhEBpAdpkpRUcLjthf18qswYwobideWSKBと完全に一致する。成果物zxv_near_contract.wasm(453,307 バイト)の SHA-256 は667d44d1…1bbbc119であり、統合コアのライブのコードハッシュ7u5NfeW6zUyJ7pM4Cr5yzL8JP44rgNgRA2JCG81cNxRvと完全に一致する。[LIVE] [REPO] -
封印済みコントラクトにはアクセスキーがない。
zedec.near、scp144.near、zedei.near、および kernel-1 の 13 のサテライトのうち 12 はアクセスキーが 0 個であると報告しており、著者を含め誰もそれらを再デプロイしたり変更したりできない。[LIVE] 例外は第 10 章に記載する。 -
耐量子カーネルは自身を正常と報告している。
scp144.nearはlifecycle: LOCKED、boot: TRUEを返し、10 項目のセルフテスト(sha3、shake、sha256、keccak、lpres、bind、fee、ed25519、vm、cobol)はすべてTRUEである。[LIVE] - 決済されるのは TRUE のみ。 カーネル内のすべての決済経路は第 4 章の 4 値論理によってゲートされる。矛盾はパニックや暗黙の上書きを引き起こすのではなく、証拠として保持される。[REPO] [LIVE]
-
金額は決して浮動小数点数にならない。 値は固定スケールの整数か、オーバーフローチェック付きの既約有理数である。そのため COBOL のパック 10 進数(
COMP-3)やゾーン 10 進数を誤差なく変換できる。[REPO] [LIVE]
本成果は Apache-2.0 の下、公共インフラとして NEAR エコシステムに提供される。関連する助成金提案(#401)は、すでに提供済みの成果に対する遡及的な評価を求めるものであり、本書はその要求を証拠に基づいて判断できるようにするために存在する。
2. NEAR の方向性との整合
NEAR は自らを少数のテーマで公に説明している。チェーンアブストラクション(ユーザーやエージェントが自分がどのチェーン上にいるかを意識する必要がないこと)、ユーザー所有の AI と自律エージェント、インテントベースの決済、他チェーン上で動作するためのチェーンシグネチャ、そしてスケールするシャーディングされた非同期ランタイムである。本書は NEAR を代弁するものではない。テーマごとに、このカーネルがその方向性にどこで貢献できるかを対応付けるものである。
| NEAR のテーマ | カーネルが提供するもの | 該当箇所 |
|---|---|---|
| チェーンアブストラクション | 1 つのカーネルソースを 6 つのマシンターゲットと NEAR Wasm にコンパイルし、それぞれでバイト単位で同一の結果を得る。同じ検証ロジックがスマートフォン、サーバー、ブラウザ、コントラクト上で動作できる。 | 第 6 章、第 7 章 |
| ユーザー所有の AI とエージェント | 厳密な演算による上限付きのエージェント予算(フィボナッチ水準の配分、最大剰余法による分割、繰り越しなし)、支出上限付きのウォレットガード、そして誰でもエージェントの計算を再検証できる決定論的な整数テンソルエンジン。 | 第 11 章 |
| インテントとソルバー | コントラクトがパニックしたり最後の書き込み者を採用したりする代わりに、「これらの情報源は食い違っている。資金を保留し、証拠を保持せよ」と表明するための標準的な方法。これが NEP-662 の主題である。 | 第 4 章、第 15 章 |
| シャーディングされた非同期実行 | 食い違うクロスシャードのコールバックは BOTH として記録・保留されるため、それ以前のレシートはコミットされたまま残り、連鎖的なロールバックは起こらない。 |
4.7 節 |
| 数十年にわたるセキュリティ | NIST FIPS 203、204、205 のアルゴリズムを、通常の NEAR Wasm 内で、プロトコル変更なしに、今日から検証できる。 | 11.1 節 |
| 機関向けのオンランプ | COBOL の COMP-3 とゾーン 10 進数の厳密な処理、ISO 20022 形式のメッセージ、三式簿記の台帳により、既存の金融記録を丸め誤差のずれなくオンチェーンに持ち込める。 |
11.3 節 |
私たちの意図は協調的なものである。本書のいかなる内容も NEAR のプロトコル開発と競合しない。コントラクトはランタイムの通常の利用者にすぎず、すべての機能は私たちの許可なく採用、フォーク、または無視することができる。
3. 設計思想
カーネルは、ブートローダーからブラウザに至るまで適用される 1 つのルールセットに従って構築された。それらはリポジトリの作業ルール(CLAUDE.md、docs/CODING_ENGINE.md)に記録され、ビルドチェックによって強制されている。[REPO]
-
矛盾は爆発ではなく値である。 古典論理では、1 つの矛盾から何でも証明できてしまう。数百のアプリ、多数の言語、多数の独立したオラクルを持つシステムは、日常的に矛盾に遭遇する。ZXV は矛盾を値(
BOTH)として表現し、それはローカルに保持され、決してアクションを承認しない。 - 承認できるのは TRUE のみ。 TRUE 以外の値をどう組み合わせても TRUE にはならない(承認禁止ガード)。決済、資金の解放、鍵の使用、起動はすべて TRUE を待つ。
-
厳密な演算。 金額、トークン、決済、台帳、厳密な測定に
floatやdoubleを使わない。コンパイラには、カーネルコード内での浮動小数点の使用をコンパイルエラーにするよう指示している(-mgeneral-regs-only、-Werror=double-promotion、-Werror=float-conversion)。 - 切り捨てない。 データの切り捨ては、金額の丸めと同じ種類のエラーとして扱う。長い入力は分割され、ダイジェストのチェックの下で結合される。決して切り捨てられることはない。
- 有界、順序付き、階層化。 満杯チェックを明示した事前確保の有界バッファを使う。すべての操作の順序は「チェック、予約、計算、変更、コミット」である。すべてのモジュールは層(S0〜S8)に属し、自分より上位の層をインクルードしてはならない。
-
アロケータなし、隠れた状態なし。 カーネルイメージは
malloc、free、mmap、dlopen、スレッドをリンクしない。すべてのバッファのサイズはコンパイル時に確定している。 - ツリーに秘密情報を置かない。 コンパイルに組み込まれるのは公開識別子のみである。鍵やパスフレーズはツリーの外に置かれる。
-
完全なコードのみ。
TODOもスタブもない。変更はチェックがすべて通った時点で完了とし、新しいテストは、まず失敗することを示してから信頼する。 - エラーは地図である。 失敗は欠けている辺を指し示す。それは情報として調査され、決して握りつぶされない。
- 状態互換な進化。 デプロイ済みの状態を決して壊さない。新しい機能は予約済みの名前空間か新しいサテライトコントラクトとして追加され、封印済みのものを編集することはない。
これらのルールこそが、見知らぬ第三者がシステムを検証できる理由である。決定性、有界性、厳密性によって、あらゆる結果が再現可能になる。
4. 矛盾許容論理:4 つの値と 145 状態のラダー
4.1 なぜ矛盾許容なのか
分散システムは、互いに協調しない多数の主体(オラクル、ソルバー、シャード、署名者、デバイス)から証拠を受け取る。それらは時に食い違う。古典的なプログラムには 3 つの悪い選択肢しかない。パニックする(作業とガスを失う)、最後の回答を採用する(証拠を失う)、永遠に待つ(活性を失う)である。矛盾許容論理は 4 つ目の選択肢を加える。証拠が衝突していることを記録し、アクションを保留し、処理を続行するのである。[REPO] kernel/src/lpres/lpres.h
4.2 4 つの基礎値(凍結済み)
| 値 | コード | 意味 | アクションを承認できるか |
|---|---|---|---|
NEITHER |
0 |
まだ証拠がない。不明、保留中 | 不可:保留 |
TRUE |
1 |
存在し有効であることが証明された | 可:決済できる唯一の値 |
FALSE |
2 |
存在しない、または無効であることが証明された | 不可:拒否 |
BOTH |
3 |
賛否両方の証拠がある:矛盾 | 不可:証拠として保留 |
数値コードは凍結されている。文法、チェック、Wasm エンジン、コントラクトのすべてがこれらを名前で参照する。
4.3 演算子:1 本の鎖上の meet と join
カーネルは値を、低いものから高いものへと 1 本の鎖(全順序)上に並べる。
FALSE < NEITHER < BOTH < TRUE
conjoin(論理積。すべて成立しなければならない証拠を結合する)は、この鎖上の最小値である。disjoin(論理和)は最大値である。どちらも 1 回のランク比較で済むため、それぞれ O(1) のコストと 1 バイトの状態しか要しない。[REPO] lpres_rank[]、lpres_conjoin、lpres_disjoin
conjoin の表(行 AND 列):
| AND | NEITHER | TRUE | FALSE | BOTH |
|---|---|---|---|---|
| NEITHER | NEITHER | NEITHER | FALSE | NEITHER |
| TRUE | NEITHER | TRUE | FALSE | BOTH |
| FALSE | FALSE | FALSE | FALSE | FALSE |
| BOTH | NEITHER | BOTH | FALSE | BOTH |
disjoin の表(行 OR 列):
| OR | NEITHER | TRUE | FALSE | BOTH |
|---|---|---|---|---|
| NEITHER | NEITHER | TRUE | NEITHER | BOTH |
| TRUE | TRUE | TRUE | TRUE | TRUE |
| FALSE | NEITHER | TRUE | FALSE | BOTH |
| BOTH | BOTH | TRUE | BOTH | BOTH |
レビュアーが手計算またはリファレンステスト(reference-implementation/nep_gate.rs、8 件のテスト)で確認できる性質:
-
FALSEは conjoin において支配的であり、TRUEはその単位元である。 - 演算子は結合的かつ可換である(鎖は束である)。
-
承認禁止ガード: TRUE 以外の値を含む空でないリストの conjoin は、TRUE にならない。プロジェクトの QC ハーネスで、リスト長 1〜8 のすべて(
4^n通りの組み合わせ)について網羅的に検査済みである。[MEASURED] - 空の入力の conjoin は
NEITHERになる(証拠の欠如は決して承認しない)。 - 範囲外の入力はフェイルクローズして
NEITHERになる。
4.4 Belnap からの意図的な逸脱
Belnap と Dunn の 4 値論理(FOUR)は、同じ 4 つの値を双束上に配置し、そこでは BOTH AND NEITHER = FALSE、BOTH OR NEITHER = TRUE となる。後者の恒等式は、TRUE でない 2 つの値が組み合わさって TRUE になり得ることを意味する。決済エンジンにとってそれは許容できないため、ZXV は代わりに 1 本の鎖を用いる。その代償として ZXV の論理は Belnap の論理ではなくなるが、矛盾と無知の組み合わせが決して資金を解放できないという構造的な保証が得られる。この選択はソースコードとリポジトリのルールに記録されており、誰かがそれを「修正」して元に戻すことのないようにしている。[REPO]
4.5 ゲートウェイと 145 状態のラダー
凍結された 4 つの値の上に、5 つ目の値 GATEWAY(コード 4)、すなわち拡張ポートがあり、さらにその上に 145 状態(コード 0〜144)まで生成されたフェーズのラダーがある。節目はフィボナッチ数(5、8、13、21、34、55、89、144)に置かれる。すべての表、ループ、テストはアリティ(項数)に沿って反復するため、フェーズの追加はランクのエントリを 1 つ加えるだけで済み、演算子の再設計は必要ない。[REPO] kernel/src/lpres/lpres_phases.h(tools/agent_loop/mk_lpres_phases.py により生成)
-
lpres_bridge(foundation, phase)はフェーズ 4 である。値をゲートウェイ経由で受け入れるが、矛盾は保留する。bridge(BOTH, GATEWAY)はBOTHであり、決してTRUEにはならない。 -
lpres_tandem(a, b)はフェーズ 5 である。2 つのフェーズを組にし、昇順のランクでは join、降順のランクでは meet を取る。 -
lpres_holds_paradox(x)はガードを呼び出し可能な述語として公開する。
145 状態のラダーは、第 5 章の 145 座標コンテナの論理的な対応物である。どちらも 0 から 144 まで(両端を含む)の範囲を取る。
4.6 記録された欠陥とその修正
初期の素朴な「知識結合」kjoin(a, b) = (a | b) & 3 は、範囲外の入力に対して TRUE を返していた(例:kjoin(0, 5) = TRUE)。これは初期のサテライト上でライブで観測された。カーネルの決済証拠には範囲チェック付きの lpres_conjoin のみが使われており、修正は封印済みコードの編集ではなく新しいサテライト(判定ガード)として提供された。矛盾を保持すると謳う論理は自らの履歴も保持すべきであると考え、私たちはこれを公開している。[LIVE] [REPO] dist/near/FORENSIC_SYSTEM_RECORD.md 第 2 節
4.7 論理が使われる場所
| サブシステム | 振る舞い |
|---|---|
| 決済ゲート |
TRUE の場合のみ価値を解放する。BOTH と NEITHER は保留、FALSE は拒否。 |
| RTGS のグリッドロック解消 |
TRUE の支払いは対象となり、FALSE は除外、BOTH と NEITHER はキューに入る。 |
| オラクル | 食い違うフィードは BOTH を生成する。資金はエスクローに留まり、食い違いはジャーナルに記録される。 |
| クロスシャードのコールバック | 係争中のコールバックは BOTH として隔離される。それ以前のレシートはコミットされたまま残る。 |
| 耐量子行列 | すべてのレーンが TRUE でなければならない。1 つでも壊れたレーンがあればシールは TRUE にならない(フェイルクローズ。ライブで 2 回確認済み)。 |
| 起動 | カーネルは、すべてのセルフチェックが TRUE になって初めて [BOOT_OK] を出力する。そうでなければ [FAULT] を 1 行出力して停止する。 |
| アテステーションレジストリ | 各対象(ソース、方言、依存関係、モデルパック、鍵、ファームウェア)は、肯定・否定の証拠数と 4 値の状態を持つ。 |
5. 144 次元行列とその 145 座標コンテナの数学
5.1 名称についての注記
ソースの一部では、SCP-144 モジュールを物理学的な言葉で説明している。「カシミール空洞」「プレート」「スロート」「ワームホールトンネル」「AC プッシュプル」などである。これらは、著者が工学的な比喩として選んだ整数演算の名称である。いかなる物理デバイスもシミュレートしておらず、いかなる物理的効果も主張しない。以下はすべて、どのレビュアーでも再計算できる通常の厳密な整数演算である。[REPO] kernel/src/scp144/scp144.h、scp144.c、scp144_embed.c
5.2 フィボナッチラダー
モジュールは 12 個のフィボナッチ数
F1..F12 = 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
と、拡張ラダー F0..F13 = 0, 1, …, 144, 233 を用いる。ラダーは記憶から信頼されることはない。起動時にカーネルがそれを再計算し、埋め込み ROM と比較する。
5.3 カッシーニの恒等式:すべてのステップはユニモジュラーである
すべての段 k について、カッシーニの恒等式が厳密に成り立つ。
F(k+1) · F(k-1) - F(k)^2 = (-1)^k
例えば 233 · 89 - 144^2 = 20737 - 20736 = +1、13 · 5 - 8^2 = +1 である。2×2 のフィボナッチ行列 Q = [[1,1],[1,0]] の行列式は -1 なので、Q^k の行列式は (-1)^k となる。すなわち、ラダーのすべてのステップは情報を失わない可逆な整数変換である。起動時のセルフチェックは、12 個の行列式がすべて ±1 であり ROM と一致することを検証する。これが「厳密な整数上の全単射・無損失な変換」という表現の正確な中身である。
5.4 ゼッケンドルフモードとモードエネルギー
ゼッケンドルフの定理により、すべての非負整数は、連続しないフィボナッチ数の和としてただ 1 通りに表せる。座標値 v を 145 で割った剰余に縮約して v ∈ {0, …, 144} とし、カーネルは次を計算する。
ラダーを 0 始まりの配列 ℓ[0..11] = (1, 1, 2, …, 144) と書き、ℓ[p] = F(p+1) とする。p = 11 から下向きに貪欲法で走査すると:
- 12 ビットのモードマスク
Z(v):ℓ[p]が表現に採用されたときにビットpが立つ。1 つ選ぶたびに走査は 1 つ位置を飛ばし、これにより「連続しない」ことが保証される。 -
モードエネルギー
E(v):選ばれた各位置pについて、pが奇数ならℓ[p] · (p + 1)を、偶数ならℓ[p] · (13 - p)を加算する。最後に剰余 1 が残った場合はビット 0 を立て、1 を加える。
ライブで確認できる計算例:v = 144 は単一の項 ℓ[11] = 144 なので、Z(144) = 2^11 = 2048 であり、11 は奇数なので E(144) = 144 · 12 = 1728 となる。view scp144.near zeckendorf{"v":144} は {"mask":2048,"energy":1728,"tier":11} を返す。[LIVE]
重みは固定の公開された整数関数であり、物理的なエネルギーではない。各座標に、計算が安価で相互検証の容易な決定論的シグネチャを与えるものである。
5.5 145 座標コンテナ
座標は集合 {0, 1, …, 144}、すなわち 145 個の値に属する。そのためゼッケンドルフの表は 145 エントリを持ち(SCP144_BLOB_ZECK_N = 145)、一方で行列は 144 行 144 列である(SCP144_BLOB_DIM = 144)。145 エントリの表が、144 次元行列を配置するコンテナとなる。
この選択は装飾ではない。行列の各行は 145 エントリの表を巡回窓を通して読み取る。そして
gcd(144, 145) = 1
であるため、144 個の行オフセットは長さ 145 の巡回上の 144 個の相異なる位置となる。どの行も、144 を割り切る周期で他の行をシフトしたコピーにはならず、1 つ余分な座標(145 番目)が対称性を破る。同じ数は論理にも現れる。4.5 節のフェーズラダーは 145 状態(コード 0〜144)を持つ。
5.6 144×144 の折り畳み行列
折り畳み行列のエントリ (c, j)(c, j ∈ {0, …, 143})は次のとおりである。
d = (c + j) mod 145
s(c) = +1 if c is even, -1 if c is odd
M[c][j] = s(c) · E(d) · F(12 - (c mod 12)) + Z(d) · F(1 + (c mod 12))
(1 始まりのラダーを用いるので、F(12) = 144、F(1) = 1 である。)行の偶奇で符号が交互に変わり、上位のギャップはラダーを下り、下位のギャップはラダーを上る。窓で取り出した座標のゼッケンドルフマスクとエネルギーが値を与える。すべてのエントリは 64 ビット整数である。行列はビルド時に zxv_scp144_blob.h に生成され、起動時にカーネルがまさにこの式で再計算する。[REPO] scp144_embed.c、check_matrix()
5.7 格子バインディング
2 つのピアは、それぞれの公開 32 バイトのノード識別子から 32 バイトのバインディングを導出する。識別子を SHAKE-256(FIPS 202)のシードとし、144 バイト(1 次元につき 1 座標)を絞り出す。各座標は Z と E で写像され、総モードエネルギーと交代モードエネルギーを含むトランスクリプトが 32 バイトのバインディングにダイジェストされる。この関数は決定論的で、コミットする内容に関して対称であり、標準的なプリミティブのみを用いる。NEAR 上では scp144.near の bind レーンとして公開され、ライブのセルフテストの一部となっている。[REPO] [LIVE]
5.8 起動時のセルフチェック(7 ステップ)
[BOOT_OK] の前に、すべてのアーキテクチャで、カーネルは埋め込まれた格子 ROM を証明する。[REPO] scp144_embed.c
- 再計算したフィボナッチラダーとそのカッシーニ行列式が ROM と一致する。
- 0〜144 のすべての
vについて、Z(v)とE(v)が ROM と一致する。 - 上記の式で再計算した 144×144 の折り畳み行列が ROM と一致する。
- ROM のリトルエンディアン直列化の SHA-256 が、ROM にコミットされたダイジェストと一致する。
- ライブチェック:すべての段でのカッシーニの恒等式、縮約してから展開する往復、バインディングの決定性、クロックの不変条件。
- フラクタルシードチェーン:シードのダイジェストが、リリースルート、カリキュラム、格子 ROM、前回のシードにコミットする。
- ステージ 0 の展開:シードを有界なアリーナ内で 1 リングずつ成長させ、トランスクリプトがコミット済みのルートに到達しなければならない。
いずれかが失敗すると [FAULT] を 1 行出力して停止する。フリースタンディングであり、libc なし、メモリ確保なし、浮動小数点なしである。
検証用ハッシュ。 コミット済みの ROM ダイジェストは
92a92a56e2f137a3319fc19b9518c3c3e9dac31be2bd09482704b964e2f5c981
であり、生成されたヘッダ zxv_scp144_blob.h(146,231 バイト)は、x86-64、AArch64、RISC-V 32、wasm32 のビルドツリーで同一の SHA-256 を持つ。
7619a5a78a9924ad174df4dab91ca2364064dc82d516550e2373e41f7f8c59c9
4 つのアーキテクチャにまたがるこの一致は、格子がプラットフォームに依存しないことの直接的な証拠である。[REPO] フラクタルシードのヘッダはビルド構成によって異なる(x86-64 と AArch64 のツリーでは 2,834 バイト、RISC-V 32、ユニバーサル、wasm32 のツリーでは 1,871 バイト)。これは異なるリリースルートにコミットしているためであり、ずれと誤解されないようここに記しておく。
5.9 格子の幾何学:背景と正直な境界
プロジェクトのアーキテクチャ文書は、ラダーを数の幾何学の中に位置付けている。以下は標準的な数学の事実である。
- 偶ユニモジュラー格子(II 型)は、8 で割り切れる次元にのみ存在する。
- フィボナッチ数列の 8 を法とするピサノ周期は 12 であり、
F(n)が 8 で割り切れるのはnが 6 で割り切れるときに限る。したがって 144 以下で 8 で割り切れるフィボナッチ次元はF6 = 8とF12 = 144のみである。 - 8 次元における唯一の偶ユニモジュラー格子は E8 であり、最小ベクトルを 240 本持つ。Viazovska は 2016 年に、これが 8 次元で最密な球充填を与えることを証明した。
- 144 次元には偶ユニモジュラー格子が存在する(例えば E8 の 18 個の直和)。極値的なものであれば、最小二乗ノルムは
2·⌊144/24⌋ + 2 = 14となる。
境界: 私たちの知る限り、144 次元の極値的偶ユニモジュラー格子はまだ構成されておらず、その存在は未解決問題である。以前のプロジェクト文書では、そのような格子を既知のものであるかのように「Γ144」と呼んでいた。ここでそれを訂正する。カーネルはそれに依存していない。5.6 節の 144×144 行列は明示的な整数構成であり、その正しさは格子理論から推論されるのではなく、起動時に検査される。E8 と 144 という拠り所は、次元選択の設計上の動機であって、セキュリティ上の仮定ではない。[OPEN]
5.10 SCP-144 とは何か、何ではないか
SCP-144 は、バインディング、フレーミング(24 バイトのヘッダと 16 バイトの Poly1305 タグによる「パートシーリング」)、自己検証、144 レーンの検証行列に用いられる、決定論的で整数として厳密な構成である。機密性と真正性に関するその安全性は、組み合わせて用いている標準プリミティブ(SHAKE-256、SHA-256、ChaCha20-Poly1305、ML-KEM、ML-DSA、SLH-DSA)に依拠しており、フィボナッチ構造に依拠するものではない。それ自体を独立したプリミティブとして第三者が暗号解析したことはなく、私たちもそのように提示しない。[OPEN]
6. オリジナルカーネル(ZXV M5)
カーネルは、システムの振る舞いが定義される場所である。NEAR のコントラクトは 1 つのコンパイルターゲットとサテライト群にすぎない。本章ではカーネルそのものを説明する。
6.1 全体像
-
言語: C11、フリースタンディング(
-ffreestanding -nostdlib -fno-builtin)。必要な libc の名前はカーネル独自の有界な実装に再マップしている(-Dmemcpy=fs_memcpy、固定アリーナ上の-Dmalloc=fs_mallocなど)。 -
規模:
kernel/src以下に 261 のモジュールディレクトリと 1,977 の C ソースおよびヘッダファイル。[REPO] -
浮動小数点なし:
-mgeneral-regs-onlyにより、カーネルコード内のfloatやdoubleはすべてコンパイルエラーになる。AArch64 では、IRQ 経路が汎用レジスタのみを退避するため、これは正しさの要件でもある。 -
デッドコードは隠さず測定する: x86-64 のリンクには
--gc-sectionsを使う。ビルドノートには、本リリース時点で x86-64 のテキストの約 10%、AArch64 のテキストの約 29% のみがブートグラフから到達可能であり、残りは将来の呼び出し元のために準備されていると記録されている。水増ししたシンボル数を示すのではなく、この数値を公開する。[REPO] [MEASURED]build_system/Makefile.x86_64 - ドライバ: NVMe、AHCI、xHCI と USB、VirtIO、Intel e1000/igb/igc、Realtek r8169、VMware vmxnet3 向けのポーリング方式 PCIe クラスドライバ、および HDA オーディオ。[REPO]
-
起動: x86-64 では multiboot2、x86-64 と AArch64 では UEFI、AArch64 と RISC-V では QEMU の
virtマシン。起動に成功すると[AI_OK] SWARM+TENSOR SELFCHECK …と[BOOT_OK] PHASE E0082 COMPLETEを出力し、イベントループに入る。
6.2 9 つの層
すべてのモジュールは build_system/strata.txt で層に固定されている。build_system/verify_layers.sh は、ソースが未対応付けの場合や、いずれかのインクルードが上位の層に到達する場合にビルドを失敗させる。[REPO]
| 層 | 名称 | 対応付けられたエントリ数 | 主な内容 |
|---|---|---|---|
| S0 | base | 33 | 有理数、LPRES、E8、SHA-2/SHA-3/Keccak、ChaCha20-Poly1305、HKDF、X25519、P-256/P-384 ECDSA、RSA 検証、資本型、QR |
| S1 | kernel | 53 | メモリ、物理フレーム、割り込み、スケジューラ、ファイルシステム、ブロックデバイス、ドライバ、ディスプレイ、EL0 ユーザー空間、クラッシュ記録 |
| S2 | transport | 16 | ネットワーク、Vinea メッシュ、フレーミング |
| S3 | trust | 30 | 耐量子スイート、アイデンティティ、PQ セキュリティ、IPFS、アテステーション |
| S4 | logic | 12 | 障害処理、パラドックスエンジンと矛盾許容エンジン |
| S5 | ai | 15 | スウォーム、テンソルエンジン、エージェント予算、AI 層 |
| S6 | settlement | 47 | 支払い台帳、カードネットワークモデル、中央銀行向けツール、グリッドロック、トレジャリー、剰余 |
| S7 | adapters | 36 | COBOL、FORTRAN、ISO 20022、ISO 8583、EMV、法域、ファイル形式、レガシー言語ブリッジ |
| S8 | products | 45 | アプリケーション、デスクトップ、ソーシャルスペース、ユーザーインターフェース |
| 合計 | 287 |
6.3 カーネル独自の言語とデュアルインターフェース
カーネルは 5 つの小さな言語ランタイム(「柱」:範囲を扱う Ada から Eve、厳密な配列を扱う APL/K から KRON、レコードを扱う MUMPS から MYRA、レコード手続きを扱う COBOL から Sutra、厳密な数値計算を扱う FORTRAN から Trebago)と、多数のレガシー言語を 1 つの中間表現に変換する多言語コンパイラのフロントエンド(kernel/src/lingua)を備えている。アプリケーションは .zxapp マニフェストで記述され、そのエントリは人間向けインターフェースからも AI エージェントからも、同じ状態機械を通じて呼び出すことができる。1 つの振る舞い、2 つのプレーンである。[REPO]
7. 1 つのソース、6 つのプラットフォーム:クロスコンパイルされたカーネル
7.1 ターゲット
1 つのソースツリー、アーキテクチャごとの Makefile、1 つのスクリプト(sh build_system/build_six.sh)から、次のものが生成される。[REPO]
| ターゲット | ツールチェーン | 出力 |
|---|---|---|
| x86-64 | x86_64-elf-gcc |
kernel_x86_64.elf、BOOTX64.EFI、UEFI ディスク |
| AArch64 | aarch64-linux-gnu-gcc |
kernel_arm64.elf、BOOTAA64.EFI、UEFI ディスク |
| RISC-V 64 | RISC-V GCC | kernel_riscv.elf |
| RISC-V 32 | RISC-V GCC / LLVM | kernel_riscv32.elf |
| ARMv7 32 ビット | ARM GCC | zedec_xero_arm32.elf |
| wasm32 | Clang / LLVM |
zxv_boot.wasm(ブラウザエンジン) |
NEAR コントラクトは、NEAR ホストインターフェースをターゲット環境として、同じカーネルソースからビルドされる(第 9 章)。ホスト型ビルドでは、開発とベンチマークのためにカーネルを通常の macOS または Linux プロセスとして実行する。
7.2 リリース成果物とそのハッシュ
リリース zxv-release-20261019(85 個のオブジェクト。それぞれが固有の IPFS CID を持つ。マニフェストは dist/RELEASE-manifest.json)。SHA-256 値は本版のためにファイルから計算したものである。[REPO]
| 成果物 | バイト数 | SHA-256 | IPFS CID |
|---|---|---|---|
kernel_x86_64.elf |
59,693,808 | 4b6a84be6f10714e40c12b60947745319f207b32fc2755f4d3315ba95d9f6c75 |
QmSxFQeE4zkE6t6n3VSR1tE1ksDUZ98XTFpZd7RVm1bBtG |
kernel_arm64.elf |
2,009,448 | 3ef3ad810cfc3f341b335b5c2b02422f7a01abd4c824b266cf4e80d2f3cba0b8 |
QmUdJcdsnuNeW2EgZdbRZfYEkNRdhsCxnbNdtPgUzoNgKp |
kernel_riscv.elf(RISC-V 64) |
1,359,512 | 045063c4ef57404045a04776b519aee55afdcc8bef8b7cc773b3f4618e9272a7 |
QmdSNzMWxEQmukL5BzWUbqpw5SHRS8AgJk9inEujjUc8Lo |
kernel_riscv32.elf |
1,358,156 | 8c95decb1654ebb9ca42151511f898190e908f3c6ad29feeabb1e27e360ac861 |
QmWhfe8NYBjcscVgYGWcdahQShGc9TxgKdS1avGoNHchYW |
zedec_xero_arm32.elf |
1,357,008 | 8388ac3a76d951714a16b98897c393144bce3a01a7dda702dec2b653e3c97b99 |
QmaiAhevy1a9VHycB9MpSJ2Xn6UqWR3aKe1mV3jWVjxz6J |
zxv_boot.wasm |
218,526 | 3d7584ff04aab7dabd692d3c1f72316ef3d7be16f17dc73727df918239dac7e9 |
QmcURDmtF3oAAM91c355At8c6uTeQM5vW63JtsLy5S71N7 |
zxv_app.wasm(アプリエンジン) |
327,908 | e1ab28b64b1d85b85d221d18780fb968d6eb6a5c2b2fc365a44ca7992d5da7e4 |
(取得した成果物) |
BOOTX64.EFI |
59,600,896 | QmY2LBvtKvJycSgP2HQEWUZC1o6dDT3q1FzdHmoS9mPRLE |
|
BOOTAA64.EFI |
1,789,952 | QmXVJ1eio4HtfJUPdzxkdqx8eewVY4n8A8PMrjSpysxrCq |
|
zxv-x86_64-uefi.img |
316,669,952 | QmZuGLz7TM9pK5uAnpk4RGWKotT89AK5yzjebk4ephKRj3 |
|
zxv-arm64-uefi.img |
316,669,952 | QmayYeYLjU7aJ9USpACT3Rwoe4xSEgLNzQLna371dJfEYy |
|
zxv-wasm-web.tar.gz |
276,448 | Qmb31HnFLENii3Lv6n6kWxh1iQyMAPPwxtjRkhrnW3vM8F |
x86-64 イメージが大きいのは、イメージ内シードバンク(アイコン、フォント、シードコンテンツ、約 55 MB)を埋め込んでいるためである。カーネルのテキスト自体は他のターゲットと同程度である。
7.3 全アーキテクチャの起動証拠
リリースには、QEMU 上で取得した各ターゲットのシリアルログとレジスタダンプが含まれている。[REPO]
| ターゲット | シリアルログ CID | レジスタダンプ CID |
|---|---|---|
| x86-64 | QmfPyWf4j5CWrQuSFmxWxtooG84gUuqeNavmjFUAiiEMsm |
QmPRBMJtxXu7JFYGhabJRHf1vmUU8a5cmgVE4tpqtW5MZp |
| AArch64 | QmbiBu6eq1aHoaLJ7UH3LqkqJGjUAiW9H7CPGXbgoeYU44 |
QmckHeukgcE5Fabdbqg6S1YE7b23z2Z6Tp6sitqAMfvVCJ |
| RISC-V 64 | QmUQibUUfcdYkEa6dyUj8SAd2xvqsoeZoe4my1E4B4ZxCY |
QmWLowNVLhRz3RXS4uB6J6XosoQX6t3uXGen7mEYjP3xhD |
| RISC-V 32 | QmWXdtWbyYDLbRrifmjGwKU9SLkebPBWDDKuHzUag5jcJJ |
QmVSZB5LypAqVfwRTrZk7h96Ng2kgjeJwnp4tdVb4E2cQ5 |
| ARMv7 32 | QmduC7JJRhtGULjs5kXAfAoQhr4TS9UY35ptL8voVTN52k |
QmUXTtppHuHd4LvA6jaZG8V1WmGUzPudFAG8JRedKW6qau |
7.4 自分で再現する
# bare-metal UEFI discs (any OS with Docker)
docker build -f build_system/Dockerfile.baremetal -t zxv-baremetal .
docker run --rm -v "$PWD:/src" -w /src zxv-baremetal bash build_system/baremetal_images.sh
bash build_system/uefi_boot_check.sh x86_64 "" 90 "[AI_OK]"
bash build_system/uefi_boot_check.sh arm64 "" 90 "[AI_OK]"
# check any artefact against this book
shasum -a 256 kernel_arm64.elf
ipfs cat QmbiBu6eq1aHoaLJ7UH3LqkqJGjUAiW9H7CPGXbgoeYU44 | tail # the AArch64 boot log
起動チェッカーは、シリアルログが [BOOT_OK] と [AI_OK] に到達し、かつ障害マーカーがない場合を除き、0 以外の終了コードで終了する。QEMU は snapshot=on で実行されるため、ディスクイメージが変更されることはない。特定のハッシュをビット単位で再現するには、リリースビルドと同じバージョンのツールチェーンが必要であり、Docker ファイルがそれらを固定している。
8. 方法論:フリースタンディング C を Wasm にコンパイルすることが NEAR 上で重要インフラを構築する効率的な方法である理由
NEAR のコントラクトの大半は near-sdk を用いて Rust で書かれており、それは優れた標準的選択である。本章では、その標準を批判することなく、ベアメタルでも動作しなければならないカーネルのために著者がなぜフリースタンディング C を選んだのか、そしてレビュアーがなぜそれを懸念する必要がないのかを説明する。
8.1 理由
- 多数のマシンに対する唯一の信頼できる情報源。 NEAR コントラクト内で動作する検証ロジックは、PC、RISC-V ボード、ブラウザで起動するのと同じ C である。一度修正したルールはあらゆる場所で修正され、結果をマシン間でビット単位で比較できる。
-
Wasm は NEAR ランタイムのネイティブターゲットである。 NEAR は WebAssembly を実行する。LLVM で wasm32 にコンパイルされた C は第一級の入力であり、コントラクトは Rust SDK がラップしているのと同じホスト関数(
input、value_return、storage_write、promise_*)を呼び出す。 - 予測可能なガス。 アロケータなし、ガベージなし、隠れたランタイムなし。すべてのバッファは固定で、すべてのループは入力によって上限が決まるため、ガスは入力サイズの関数となり、測定し明示できる(例えば ML-DSA-87 の検証は約 7.4 TGas、SLH-DSA-SHAKE-256s は約 53.6 TGas と記録されている)。[MEASURED]
- 小さく監査可能なバイナリ。 封印済みの kernel-2 コントラクトは約 78 KB、ゲートは 46,981 バイトである。小さなバイナリは保存コストが低く、監査や逆アセンブルも容易である。
- 構造による決定性。 浮動小数点なし、スレッドなし、ホストから渡されるもの以外に時間依存の振る舞いなし。同じ入力は常に同じ出力を生み、それによって見知らぬ者同士が互いを検証できる。
- 長期にわたる暗号。 耐量子検証器は大規模で演算負荷が高く、構造が一定でなければならない。C はメモリレイアウトと演算順序を直接制御できる。
8.2 C のリスクと、それぞれの封じ込め方
| リスク | 封じ込め方 |
|---|---|
| メモリ安全性のエラー | ヒープなし。すべての書き込みの前に明示的な境界チェックを行う固定サイズバッファ。有界なリーダーによる入力の解析。Wasm の線形メモリサンドボックスが第 2 の壁となる。 |
| 未定義動作 |
-Wall -Wextra を用い、実質的な警告は抑制せず修正する。ホスト型ビルドでのサニタイザ実行(scripts/verify-local.sh --san)。パーサーのファジング。 |
| 隠れた依存関係 | フリースタンディング:ツリーにないものは何もリンクされない。層チェックが上向きのインクルードを禁止する。 |
| ターゲット間のずれ | 起動時のセルフチェックが表を再計算する。クロスアーキテクチャテストが出力を比較する。格子 ROM のハッシュはターゲット間で同一である(5.8 節)。 |
| 未テストの経路 | テストはまず失敗することを示してから信頼する。ミューテーションテスト(tests/harness/mutator)。QC ハーネスがコントラクトを C リファレンスと相互検証する。 |
| デプロイ後の可変性 | 封印済みコントラクトはアクセスキーが 0 個:レビューされたコードが、永遠に実行されるコードである。 |
8.3 カーネルの作成方法:アテステーション
[ATTESTED] 著者は、カーネルの初期の本体が、CPU ワークステーション上で 1 行ずつ書かれたのではなく、NVIDIA H100 GPU 計算クラスタ上で AI の支援を受けて、非線形な構築プロセス(多数のコンポーネントを並行して開発し、その後統合する)により生成されたと述べている。リポジトリにはそのクラスタのログが含まれていないため、本書はこれを独立して証明することはできず、私たちはそのことを率直に述べる。
レビュアーがここから受け取るべきは、完全に検証可能な系(コロラリー)のほうである。コードが決定論的で、有界で、リファレンスに対してテストされているなら、生成されたコードの出自はその正しさに関係しない。 本書のあらゆる主張は、最初の草稿がどう作られたかではなく、5.8 節、第 7 章、第 12 章のチェックに依拠している。カーネルイメージ自体は GPU コードを含まず、CPU 上で整数のみで動作する。GPU バックエンドはホスト型ツールにのみ存在する(例えば Apple M3 Max で測定した Metal のテンソル経路)。[REPO] docs/GPU_STRATEGY.md
9. 融合:サテライトが NEAR 上でオリジナルカーネルに結合する仕組み
9.1 原則
封印済みコントラクトは変更できず、私たちもそれを変更したくない。それこそが信頼性の源だからである。そのためシステムは、マシン上のカーネルが成長するのと同じ方法、つまりデバイスを追加することで成長する。新しい機能はそれぞれ新しいコントラクト(サテライト)であり、カーネルはそれをコードハッシュで認識し、振る舞いで検査する。デプロイ済みのものは何も編集されず、保存済みのものは何も移行されない。[REPO] [LIVE]
9.2 NEAR 上の層
| 層 | アカウント | 役割 |
|---|---|---|
| Kernel-1(最初のデプロイ) |
zedec.near(正規ルーター)と、暗黙的アカウントでアドレス指定される 13 のサテライト |
カーネルの NEAR アーキテクチャ:ゲート(不変条件と台帳)、コア(統合キット)、レジストリ(ディスカバリ)、オラクル、バス、シールド、マイクロ推論、モデルレジストリ、コンシューマー、矛盾許容オラクル、決済ルーター、ラッパー、AI 判定 |
| Kernel-2(ZEDEI) | scp144.near |
kernel-1 の 1 段上の抽象化である耐量子層:暗号レーン、行列、リファイナリー、ガード、ポストオフィス、レール、シールド、サービスバス、ブリッジ |
| インターフェースカーネル | zedei.near |
封印済みのインターフェース兼自動化コントラクト(キー 0 個) |
| アプリケーション | 36n9.zedei.near |
ダッチオークション方式のバウンティボード(終了済み。第 13 章参照) |
| ガバナンス | illumaheart.sputnik-dao.near |
サードパーティの Sputnik DAO ファクトリー(sputnik-dao.near)を通じて作成された DAO。私たちが作成したコードではない |
9.3 デバイスバス:コードハッシュによる固定、振る舞いによる検査
ZEDEI は、ハードワイヤードされたデバイステーブル contract/devices.h を持つ。そこには、すべての kernel-1 アカウントと、それが認定された正確な Wasm の base58 形式の SHA-256、さらに接続先のエコシステムコントラクト(wrap.near、meta-pool.near、linear-protocol.near、v2.ref-finance.near、priceoracle.near、pyth-oracle.near、contract.main.burrow.near、intents.near、omni.bridge.near、v1.signer、usdt.tether-token.near、ネイティブ USDC、social.near)が列挙されている。オフチェーンでは、誰でも固定されたハッシュを view_account と比較できる。オンチェーンでは、boot() が 4 つの kernel-1 プロトコル(ゲート、コア、レジストリ、正規ルーター)を呼び出し、それぞれが認定どおりに振る舞った場合にのみ TRUE を記録する。ライブのステータスは boot: TRUE を示し、4 つすべてが TRUE である。[REPO] [LIVE]
9.4 ブリッジメソッド
| メソッド | 機能 |
|---|---|
settle{inputs} |
kernel-1 のゲートを通じて決済する。ローカルとリモートの判定が一致しなければならない |
gate{op,a,b} |
封印済みゲート上で 4 値の演算を評価する |
bus{dev|service|account, method, args} |
登録済みのデバイスまたはサービスを呼び出す(例:Meta Pool からのライブの stNEAR 価格) |
probe{…, expect_sha256} |
任意のコントラクトを呼び出し、その応答を期待ハッシュと照合して 4 値の判定を返す |
devices |
デバイステーブルを一覧表示する |
shield_call{…, deadline_ns, SIG?} |
期限で保護された呼び出し。期限を過ぎると呼び出しはフェイルクローズする |
9.5 状態互換な進化の実際
統合コアは、複数回のデプロイを経て 33 から 110 のキットへと成長したが、その最上位のストレージ構造は一度も変わっていない。新しいキットは予約済みの名前空間に置かれる。欠陥が見つかったとき(4.6 節)、修正は新しいサテライトとして提供された。耐量子層が必要になったとき、それは kernel-1 のアップグレードではなく kernel-2 として提供された。これは、ベアメタルカーネルが起動を壊さずにモジュールを段階的に追加できるのと同じ規律である。[REPO] dist/near/FORENSIC_SYSTEM_RECORD.md 第 10 節
9.6 NEAR の外へ
同じコアにはさらに 2 つのシムがあり、どちらもコンパイルは実証済みだがデプロイされていない。CosmWasm ビルド(zxv_cosmwasm.wasm、7,209 バイト、SHA-256 9b4608cf56d4ab8db21c0285cdafb1d633ae9de69c24c0b510256ff6dac2c353)と、EVM チェーン向けの 4 値論理の Solidity 検証器である。これとは別に、2,622 件の ML-KEM で封印されたレコードが、アドレス 0x5ed5ea87da3d5313d37f2812fc70782407dd1eaf から Base、Arbitrum、Polygon 上にバインドされた。[REPO] [MEASURED] docs/AGENT.md
10. ライブのコードハッシュを含むオンチェーンレジストリ
ブロック 222,354,590〜222,354,624 において view_account と view_access_key_list で読み取ったもの。コードハッシュはデプロイ済み Wasm の base58 形式の SHA-256 である。[LIVE]
| アカウント | 役割 | コードハッシュ | キー数 | 残高(NEAR) | ストレージ(バイト) |
|---|---|---|---|---|---|
zedec.near |
正規ルーター(kernel-1) | ATUV46Keb91L32RGU5X858nNtTZ6csH9HARfE86MtMo |
0 | 1.4089 | 90,729 |
scp144.near |
ZEDEI、kernel-2 | DDQ4uJXM26WhRoYfRPgQcUKPybzhGrBXmCbK7e85dmN9 |
0 | 1.6133 | 92,322 |
zedei.near |
インターフェースカーネル | CRZgm89Yo8JsU6WgFjFmkrU8BRDZfMvieKQ2hozDLwjZ |
0 | 2.3141 | 61,983 |
6ca890f7…c64a8 |
ゲートと台帳 | AiND1AEhrQVhEBpAdpkpRUcLjthf18qswYwobideWSKB |
0 | 10.0042 | 950,298 |
f18889ea…9bcf |
コア(110 キット) | 7u5NfeW6zUyJ7pM4Cr5yzL8JP44rgNgRA2JCG81cNxRv |
0 | 5.3508 | 487,216 |
7eaa2c6f…f01a |
レジストリ | 2BcSRPA6a595K5ssEs3pa9iZMN414mN6YHGNHxB1dRvQ |
1 | 2.1537 | 213,864 |
6a57f581…98aa |
オラクル | 21YGXMWPd6UbHPD1aKbXZAAihdLde9iZu6cL6VdK3Uz3 |
0 | 1.8912 | 139,079 |
3c70e9c6…276e |
バス | 3xTMP7jMQs6aSBqMdco7CDkcqzVuibXC8MFRpxrkrGco |
0 | 1.9570 | 145,612 |
789457e6…9846 |
シールド | 2aen5APJyQr2eG81upAaSrFxdLQG9GusvqY6iRgGbJYj |
0 | 1.7752 | 127,431 |
86f80143…4dbe |
マイクロ推論 | GRfG8sM4NtM7XurqxzJGpsLBA14aY9AboZD5btMH1X9a |
0 | 1.5484 | 104,745 |
77361b15…9c65 |
モデルレジストリ | DdkAsDPhcGnaroTiq2dKtGd1qwwiRSCZRWvdHR2Q16tj |
0 | 1.8486 | 134,762 |
8947dcb7…654 |
コンシューマー | 22cAvYAVWJLGu42gGBjfEB6doFcnNKR1UMEFFz6raTQg |
0 | 1.7119 | 121,094 |
ea85f538…c2f7 |
矛盾許容オラクル | EBRvtNQEJwnJ4H7sEWamhSoBrcAxUzzdjEh74DxccWjX |
0 | 1.9749 | 147,372 |
8bf17701…effae |
決済ルーター | BaDa5xhHteDHC4x34QGuy7kujJkBfdhysdQVFriacttJ |
0 | 1.9987 | 151,201 |
1a051ac2…ecf1 |
ラッパー | 8cNkuuYH2XX4gmoDPVQ6vrLUhjhQZHB7rDQRQq5KXVsQ |
0 | 1.6969 | 137,959 |
781fc03d…966e |
AI 判定 | 3B9ZyctEyzoB6ab792ZBWVbQ9D7wLjnktt97KTYFU2wF |
0 | 1.9988 | 140,288 |
36n9.zedei.near |
バウンティボード(終了済み) | 3H4dqcbN2TEkrgsSWFEMovVWGhvVgatqUuGKLP5ji5US |
1 | 11.5177 | 525,427 |
illumaheart.sputnik-dao.near |
DAO トレジャリー |
view_account の報告値 11111111111111111111111111111111
|
0 | 13.2831 | 26,851 |
暗黙的アカウントの完全な名前は 17.2 節に記載する。2 つのハッシュの一致が、デプロイ済みのバイト列をプロジェクトの成果物に結び付ける。[LIVE] [REPO]
| デプロイ済みアカウント | ライブのコードハッシュ | ローカルの成果物 | 成果物の SHA-256(16 進) |
|---|---|---|---|
ゲート 6ca890f7…
|
AiND1AEh… |
zxv_gate_contract.wasm、46,981 バイト |
9051f96a3a3119de80c4eaca1ffc07fddecb5197edcf03f717f7454e6039cc3a |
コア f18889ea…
|
7u5NfeW6… |
zxv_near_contract.wasm、453,307 バイト |
667d44d1d8035ab8309912c815e1e11b9c8464b8ff9fa25af576030e1bbbc119 |
scp144.near の base58 形式のコードハッシュをデコードすると SHA-256 b5794b89ddf54d1957c7f1d2e01ab3fc073cdd434c9f96545f8245ead6ce787a となり、これは封印済みの 77,823 バイトの ZEDEI ビルドについて記録された値である。
11. 機能カタログ
このカタログでは、まずデプロイ済みのコントラクト、次にカーネル、最後にツール群を扱う。各項目には、その機能がどこにあるかを明記する。設計段階のもの、または一部のみ構築済みのものにはラベルを付ける。
11.1 耐量子暗号と古典暗号
オンチェーン、scp144.near 内(すべての view はガス不要):[LIVE]
| メソッド | 規格 | 備考 |
|---|---|---|
sha256{hex} |
FIPS 180-4 | |
sha3_256{hex}、shake256{hex,n}
|
FIPS 202 | |
keccak256{hex} |
Keccak(Ethereum) | |
ed25519_verify{pk,sig,msg} |
RFC 8032 | |
mldsa87_verify{pk,sig,msg,ctx?} |
FIPS 204、ML-DSA-87 | 約 7.4 TGas [MEASURED] |
slhdsa256s_verify{pk,sig,msg,ctx?} |
FIPS 205、SLH-DSA-SHAKE-256s | 約 53.6 TGas。署名は 29,792 バイト [MEASURED] |
pqm_verify{pk,sig,msg,ctx?} |
ML-DSA-87 と SLH-DSA の併用 | 両方の検証に成功する必要がある |
bind{init,resp} |
SHAKE-256 上の SCP-144 格子バインディング | 5.7 節 |
kem_publish、kem_get、hs_offer、hs_ct、hs_confirm、hs_reject、hs_cancel、env_post
|
FIPS 203、ML-KEM-1024(ポストオフィス) | コントラクトは KEM 公開鍵を公開し、ハンドシェイクとエンベロープを記録する。秘密情報はエンドポイント側に留まる |
カーネル内(kernel/src/pqsec、mlkem、tls、robin_debanks):[REPO]
-
PQ 行列(3 レベル):STANDARD(ML-KEM-768 + X25519、ML-DSA-65)、HIGH(ML-KEM-1024 + X25519、ML-DSA-87)、MATRIX(ML-KEM-1024 + HQC-5 + X25519、ML-DSA-87 + SLH-DSA-SHAKE-256s)。MATRIX は格子、符号、楕円曲線、ハッシュのすべてに同時に依拠する。NIST ACVP のテストベクタ、公式の HQC v5.0.0 の既知解テスト、RFC 7748 に対してテスト済みである。MATRIX の署名には約 1.5 秒、検証には約 2.5 ミリ秒かかるため、長期間有効なアンカー(アイデンティティ鍵、リリース、決済バッチ、憲章)用に限定している。[MEASURED]
docs/PQ_MATRIX.md - 古典暗号スイート: SHA-2(224〜512)、SHA-3、HMAC、HKDF(RFC 5869)、ChaCha20-Poly1305、X25519(RFC 7748)、Ed25519、P-256 と P-384 の ECDSA、RFC 6979 の決定論的署名、RSA PKCS #1 v1.5 と PSS の検証、定数時間のモンゴメリ演算。
-
TLS 1.3 クライアント: サーバー証明書の検証(
TLS_VERIFY_REQUIRED)と、証明書の有効期限判定のための実時間サポートを備える。docs/TLS_CERTIFICATES.md、docs/TIME.md -
エンディアンホッピング: 鍵付きスケジュールで駆動される、バイト順を交互に切り替えるフレーミング層。これは難読化とフレーミングの層であり、暗号化の代替ではない。
docs/ENDIAN_HOPPING.md - エントロピー: 利用可能な場合はハードウェア乱数生成器を使い、AArch64 ではフォールバックとして誠実なジッタ収集器を使う。
11.2 検証行列とリファイナリー
-
行列(
matrix_open、matrix_lane、matrix_probe、matrix_seal、matrix_get):セッションは必要なレーン数を宣言する。各レーンは暗号チェックか、他のコントラクトへのプローブである。セッションは、すべてのレーンがTRUEの場合にのみTRUEでシールされる。記録済みのセッション:8 レーンのセッションがTRUE、ティア 5、密度 1/1 でシールされた(セッション7f9df02a…efbb8a、シールトランザクション7emQZNJU1aczdpkHmbRJ4ogrxNmY5Sk56gEZFxSRez1Z)。また 144 レーンのセッションがTRUE、ティア 11 でシールされた(セッション93813f52…a4d19、シールトランザクション5Z2z2wa5FKoJ5r8FD9f3gPsN39uushWE4uSR8rNCizN2)。[LIVE] -
リファイナリー(
x):バイナリ形式の SCP-O-144 プログラムインタープリタ。1 回の呼び出しで検証プログラム全体を実行する。プロジェクトは、1 回の呼び出しで最大 4,096 個の 4 値判定を約 0.69 TGas で畳み込めることを測定し、これを自らの以前の呼び出しごとの決済ベースラインに対する 3,836 倍の改善と報告している。[MEASURED] この比較はプロジェクト自身のベースラインに対するものであり、他のシステムとの比較ではない。 -
シール(
seal_commit、seal_check):32 バイトのコミットメントを今コミットし、後で証明する。
11.3 厳密な演算、レガシー金融、規格
-
有理数(
kernel/src/rational):rat_t { int64_t num; int64_t den; bool valid; }。常に既約形で保持され、オーバーフローやゼロ除算はラップアラウンドせず無効化される。支払い台帳の境界は、実際のビット幅におけるすべての値について Lean 4 で証明されている(12.3 節)。[REPO] -
COBOL(
kernel/src/legacy/cobol.h):COMP-3のパック 10 進数、ゾーン 10 進数(EBCDIC)、COMP/COMP-4/COMP-5のバイナリ、PIC X、有界なコピーブックパーサー。オンチェーンでは、cobol_comp3{"hex":"12345c"}とcobol_zoned{"hex":"f1f2f3f4c5"}がいずれも{"state":"TRUE","value":"12345"}を返す。[LIVE] -
FORTRAN(
kernel/src/legacy/fortran.h):レコードのフレーミングと、IBM 16 進浮動小数点のビットパターン変換。IEEE から 10 進への損失のある方向は、隠さずフラグを立てる。 -
表現アダプタ(
lightningrod)と、COBOL、FORTRAN、C、Sutra、Rust、Zig、Python、Wasm、通信データのための正規中間形式(orbital_compat)。正規形は厳密な有理数である。未登録の言語はフェイルクローズする。 -
ISO 20022 形式のメッセージ(
pacs、pain、camt系)と、ISO 8583:1987 / EMV BER-TLV 形式のエンコーディング。相互運用のためのコンテナである。認証は受けていない(第 13 章参照)。 -
支払い台帳(
kernel/src/pay):内部帳簿 Debit 555、Credit 777、Equity 888(ISO 4217 の通貨ではなく内部コード)にまたがる貸借の釣り合った記帳、冪等性キー、最大 1 回の取り消し、50/25/15/10 で分配される 0.08889% の保証手数料。不変条件 P1〜P11 はモデル検査済みである(12.3 節)。 - RTGS キュー向けのグリッドロック解消(
kernel/src/gridlock)、サイクル相殺型ネッティング(qnet)、厳密なポートフォリオ損失分布(xrisk)、中央銀行向けツールモジュール(cbank、実際の決済システムへの接続なし)、確率・戦術・戦略・財務分析のための矛盾許容型意思決定エンジン(pce)、パラドックスエンジン、矛盾耐性のある台帳(paradox)。docs/GRIDLOCK_RESOLUTION.md、QUANTUM_NETTING.md、EXACT_RISK.md、CENTRAL_BANK.md、PARACONSISTENT_ENGINES.md、PARADOX_ENGINE.md、PARACONSISTENT_LEDGER.md -
9 種類の資本(
zcapital):譲渡可能な 5 種類と譲渡不能な 4 種類。譲渡不能アカウントは、他の所有者から価値を受け取ることがない(不変条件 P8)。 - 会計基準、法域プラグイン、AI のインテント、プライバシーのためのアダプタ。助言型の法域ルーター(デフォルトでは無効。法律顧問の確認待ち)。
docs/ADAPTERS.md、JURISDICTION_ROUTER.md -
オンチェーンのレガシー補助機能:
categorize、controls、piv_verify{pk,sig,subject}(FIPS 201 方式の署名チェックであり、PIV カードの実装ではない)、zeckendorf{v}、rail_check{number}。
11.4 アイデンティティ、ガード、リカバリー
-
scp144.near上のウォレットガード(guard_enroll、guard_get、guard_check、guard_use、guard_rotate、guard_set_recovery、guard_recover、guard_recover_finish、guard_cancel_recovery)。3 つのレベルがある:LEGACY(Ed25519)、HIGH(耐量子鍵)、MATRIX(耐量子鍵と共同署名者)。すべての署名は、操作、両方のアカウント名、ビッグエンディアンのノンス、ペイロードの SHA3 を含むドメイン分離されたメッセージを対象とするため、署名を操作やアカウントをまたいでリプレイすることはできない。[LIVE](オンチェーンの ABI による) -
カーネルのアイデンティティ(
kernel/src/ident):任意の KYC、パスキー、アカウントリカバリー。ユーザー向けとコンプライアンスチーム向けに別々に文書化されている。docs/IDENTITY_AND_RECOVERY.md
11.5 レール:Dragon、Phoenix、Thunderbird
チェックディジットの代数がそれぞれ異なる 3 つの自社決済レールであり、1 つの転記ミスが複数のレールを通過することはない。
| レール | プレフィックス(オンチェーンモデル) | 内側のチェック | 外側のチェック |
|---|---|---|---|
| Dragon | 8809 |
ISO/IEC 7064 MOD 11,10 | Luhn |
| Phoenix | 8829 |
Damm 準群 | Luhn |
| Thunderbird | 8849 |
Verhoeff(二面体群 D5) | Luhn |
scp144.near 上では、カードは 32 バイトのコミットメントとして登録され(20 桁の番号とそのソルトは保有者のデバイスに留まる)、デポジットでチャージされ、ガード署名付きのオーソリ、売上確定、取り消しによって使用される。ノンスはカードごとに管理される。rail_check は番号を無料で検証する。[LIVE] プレフィックスは意図的に ISO/IEC 7812 の発行者番号範囲の外にある。これらは銀行カードではなく、いかなるカードブランドとの提携も主張しない。ツリーにはカードモデルの 3 つの世代が存在し、その違いは第 13 章で説明する。
11.6 AI、スウォーム、エージェント
-
整数テンソルエンジン(
kernel/src/tensor):整数演算による Transformer 推論であり、モデルはどのマシンでも同じビット列を出力する。ルール T1〜T16。C、AVX2、AVX-512、NEON、Apple Metal のバックエンドがあり、いずれも C リファレンスとビット単位で同一である。[MEASURED](Qwen2.5-1.5B Q4_K_M で測定)docs/TENSOR_ENGINE.md、PLATFORM_COVERAGE.md -
マシンをまたぐテンソル並列: 入力ではなく出力を分割することでビット同一性を保つ。リング、TCP、MPI のトランスポートと、共有計算を精算するための厳密な積和メーターを備える。
docs/HPC_DESIGN.md -
GPU 戦略: モデル処理は GPU 優先、すべてのバックエンドで整数として厳密、すべてのバックエンドに共通の 1 つの演算リスト、CI では GPU なしで証明する。
docs/GPU_STRATEGY.md -
コプロセッサのティア(
cotier):整数ゲート、アクセラレータティア、整数による照合。docs/COPROCESSOR_TIERS.md -
スウォーム経済: モデルは各サイクルで、9 種類の資本にまたがる市場を通じて計算資源を共有する。厳密なフィボナッチ水準の予算(最大剰余法による分割、繰り越しなし)により、どのモデルも独占的地位に立てない。
docs/SWARM_ECONOMY.md -
トークン額面とオクタン(
swarm_denom.h、D1〜D9):フィボナッチの額面、ゼッケンドルフ正規形、グレードは PLAIN 0、REGULAR 4、MIDGRADE 9、PREMIUM 14、RACING 23、MAX 63。密度は表現を変えるが、価値は決して変えない。トークン収率は、トークンあたりの検証済み作業量を測る。docs/TOKEN_DENOMINATIONS.md、TOKEN_YIELD.md -
アダプタボックス: 市販のモデルファイルを決定論的エンジン内で実行し、何かが決済される前に計量・検査する。
docs/ADAPTER_BOX.md -
AIPI: コンテンツアドレス指定された関数とデータ。エージェントは計算を、それがどこにあるかではなく、それが何であるかによって要求する。AIRC: 耐量子メッシュ上のエージェント間リレーチャット。ピア監査: スウォームの作業に対する 2 層の検証。
docs/AIPI.md、AIRC.md、PEER_AUDIT.md - NEAR 上: マイクロ推論、モデルレジストリ、AI 判定のサテライト(第 10 章)。
-
モデルポリシー: スウォームの名簿に登録できるのは Apache-2.0 の重みのみである。
docs/SWARM_MODEL_ROSTER.md
11.7 ネットワーク、ストレージ、Web 4
-
Vinea: P2P オーバーレイ(Kademlia ルーティング、ホストスペース)。UDP 8724 を使い、ポート 80 の HTTP にフォールバックする。セッションは X25519 + ML-KEM-1024 の鍵交換、ML-DSA-87 のアイデンティティ、ChaCha20-Poly1305 のレコードを用いる。
docs/VINEA.md - カーネル内のネイティブ IPFS ノード: 取得したすべてのブロックを CID と照合する。シードバンクは多数の小さなオブジェクトを、O(log n) でインデックスされた 1 つの不変アーカイブにまとめる。VRAM ブロックは IPFS ブロックを GPU メモリ上に保持する。
docs/IPFS_NODE.md、SEEDBANK.md、VRAM_BLOCKS.md -
リリースレイヤーとバケット: すべてのリリースファイルは自身の CID で命名され、各レイヤーのマニフェストは親を指名するため、1 つの起点 CID がスタック全体を保証する。
docs/LAYERS.md、BUCKET.md -
プロトコルツイン: 古典的なネットワークプロトコルそれぞれに対応する P2P 版。Web 4: Web 2 と Web 3 をつなぐ、署名付き・耐量子のエージェント間メッセージング。IRC ゲートウェイ: 任意の IRC クライアントがスウォームと会話できる。
docs/P2P_PROTOCOL_TWINS.md、WEB4.md、IRC_GATEWAY.md -
9 ノードのメッシュ: インド、EU、日本、米国の 3 リージョン、オーストラリア、英国、シンガポールにノードがあり、それぞれが同じリリースを配信する。フリートのストレージは有界なストアに分割されている。[MEASURED]
docs/FLEET_STORAGE.md、ARMADA_LESSONS.md
11.8 オペレーティングシステム本体
- x86-64 と AArch64 向けのベアメタル UEFI ディスク、検証済みモデルを格納したゴールデンディスク(起動のたびに再ハッシュされる)、セーフブートとリカバリーブートのモードを備えたクラッシュ記録、AML インタープリタと電源管理を備えた ACPI、標準クラスドライバ、すべてのアプリとエージェントのためのエネルギー台帳、EL0 ユーザー空間、FAT32 ファイルシステムとカーネルファイルシステム。
docs/BAREMETAL.md、CRASH_RECOVERY.md、ACPI.md、HW_DRIVERS.md、POWER.md -
ホスト型エディション:
zxvd(JSON-RPC 制御ソケットと凍結された C ABI を持つデーモン)、Mac アプリ(Apple Silicon と Intel)、Linux と Windows のアプリ、.NET 8 SDK、自宅のコンピュータと連携するスマートフォン。docs/ZXVD.md、MAC_APP.md、DESKTOP_LINUX_WINDOWS.md、DOTNET_SDK.md、MOBILE_AND_DEVICES.md -
ケージ(The Cage): 外部から来るあらゆるもの(ファイル、プログラム、レガシーのバッチジョブ、モデルの重み、ピアの結果)は、ディスク、ネットワーク、鍵へのアクセスなしでまず実行または検査される。**ピットボス(The Pit Boss)**がそれを監督し、**レジストラ(the Registrar)**がすべてのファイルの保管記録を管理する。**交易路(trade routes)**はコンポーネント間の型付きの一方向チャネルである。
docs/CAGE.md、PIT_BOSS.md、REGISTRAR.md、TRADE_ROUTES.md -
アプリケーション: 3 層(144 + 127 + 136)の 407 のレジストリスロット、
.zxappマニフェスト、不変で検証済みの構成要素のライブラリ、アプリグラフ、アプリ同士を配線してアプリを作る回路基板、そして定番アプリ(ファイル、エディタ、メディアなど)。docs/REGISTRY.md、ALEXANDRIA.md、APP_GRAPH.md、CIRCUIT_BOARD.md、STAPLE_APPS.md -
言語: 1950 年代以降のプログラミング言語のカタログ。それぞれに AI ツインと明示されたサポートティアがある(Lingua カタログに 108 言語)。37 の文字体系にわたる 183 のロケールと右から左への表記のサポート。POSIX、PowerShell、
cmd.exeのコマンドを 1 つの型付き中間形式で実行する Rosetta Shell。docs/LANGUAGE_CATALOGUE.md、SPOKEN_LANGUAGES.md、ROSETTA_SHELL.md - 文字体系をまたぐ ASCW Golden フォントファミリー、音声と翻訳、所有者が署名するショップによるコマース、参加者が主催する公共スペースと視聴ホール、そして操作的手法を禁止するエンゲージメントルール(それぞれテストで固定されている)。
docs/FONTS.md、SPEECH_AND_TRANSLATION.md、COMMERCE.md、SPACES.md、ENGAGEMENT.md -
古典的な科学ツール: 厳密な量子回路シミュレータと等価性チェッカー(古典計算であり、量子ハードウェアは使わない)、最適性証明付きの QUBO ワークベンチ、民生用ロボットとドローンの計画のための厳密な空間エンジン、助言型の製造ツールパスチェッカー、そして旧来のプロセッサ向けのエミュレーション層。
docs/QUANTUM_SIMULATOR.md、CIRCUIT_EQUIVALENCE.md、QUBO_WORKBENCH.md、SPATIAL_ENGINE.md、MANUFACTURING.md -
バージョンのない進化: ユーザーはフォークし共有する。すべてのインストールは互換性を保つ。コミュニティによるバグ修正と改善のバウンティは、監査とピアレビューを経て支払われる。
docs/FORKS_AND_EVOLUTION.md、USER_EVOLVED_OS.md、BOUNTIES.md
11.9 NEAR 上の統合コアとレジストリ
コアアカウント f18889ea… は 110 のキットをホストしている。zedec.near の route() は現在、レジストリが 131 の機能を掲載していると説明しているが、以前のプロジェクト文書では段階に応じて 103 や 136 と記載されている。私たちはライブの値を報告し、この食い違いを明記する(第 13 章)。[LIVE] キットの系統は次のとおりである。28 の基本キット(gate、treasury、rails、receipts、vino、tribute、surplus、chronicle、allotment、broker、rmag、scp144、aipi、chiglet、count house、vswap、vauction、vbond、identity、reputation、provenance、grants、community chest、royalty、telemetry、market、intent、mesh token)、5 つのレイヤー、7 つのシステム(エスクロー、エージェント経済、ガバナンス、マーケットプレイス、コンプライアンス、本人確認、決済レール)、4 つのメタ、4 つの API、自己記述的な ux_manifest を含む 4 つのユーザー体験キット、検証済みのアクションごとにのみ発生し遊休資本には決して発生しない 11 の報酬キットと 10 のプレイヤーキット、10 の運用キット(上限、タイムロック、一時停止、監査、ヘルス、メトリクス、ガード、スケジュール)、そして自己資金型のガスエンベロープ。[REPO] dist/near/FORENSIC_SYSTEM_RECORD.md
12. ビルド、保証メカニズム、検証ハンドブック
12.1 カーネルのビルド方法
-
アーキテクチャごとの Makefile: オブジェクトはツリー外(
build/<arch>)に置かれ、デフォルトで並列実行される(JOBS=1で直列化)。ツールチェーンは Docker ファイル(Dockerfile.x86_64、.arm64、.riscv、.riscv32、.arm、.baremetal、.desktop)で固定されている。 - 生成される入力: SCP-144 ROM とフラクタルシードはビルド時に生成され、起動時に検査される(5.8 節)。LPRES のフェーズラダーは 1 つのスクリプトから生成される。
-
層の強制(
verify_layers.sh、verify_strata.py)、バナーチェック(verify_banners.sh。存在するだけで一度も呼び出されないモジュールを拒否する)、到達可能性の測定(measure_reachability.sh)、エラーコードのチェック、ワークフローティアのチェック。 -
リリースエンジニアリング: ゴールデンディスク、成果物アーカイブ、マニフェスト署名(
sign_manifest.sh、sign_release.sh、オフライン署名経路、ルート鍵セレモニーのスクリプト)、リリース検証(verify_release.sh)、CID による IPFS 公開。
12.2 テスト方法
-
make -C kernel verify-all:モジュールのテストスイート。AddressSanitizer と UndefinedBehaviorSanitizer の下でも実行される。 -
ミューテーションテスト(
tests/harness/mutator):コードを意図的に壊し、テストがそれに気付かなければならない。 -
ファジングとカバレッジ: MC/DC を含む clang のソースベースカバレッジ。
make -C fuzz coverageで再生成され、CI で実行される。docs/COVERAGE.md - QEMU 上での全アーキテクチャの起動チェックと、1 バイトを反転させて起動時にそれを検出することを求めるゴールデンディスクの改ざんテスト。
-
敵対的セルフ監査プロトコル: 攻撃者が問う質問(「システムが間違っているのにテストが通るのはどんな場合か?」)を実行し、記録する。
docs/ADVERSARIAL_AUDIT.md -
振る舞いカバレッジ: どのチェックが存在ではなく振る舞いを検証しているかの監査と、リファレンスモデルに対するプロパティテスト。
docs/BEHAVIOUR_COVERAGE.md - CodeQL を用いた CI のティア。ドラフトでは高速ティアのみを実行する。
docs/CI.md - C カーネルをリファレンスオラクルとしてコンパイルし、NEAR コントラクトをそれに対して検査するオンチェーン QC:ハーネスチェック 55/55、拡張攻撃 25/25、耐久性 60/60、view のガスウォール 125/125、書き込みのガスウォール 10/10、スタックギャップ 12/12、そして登録チェックをすべて通過。統合コアのリリース時点で記録したものである。[MEASURED]
12.3 形式モデル(何を証明し、何を証明しないか)
4 つのサブシステムの不変条件が、C コードを手作業で書き起こしたモデル上で機械検査されている。明示した範囲で TLC により検査した TLA+ 仕様と、C 関数の Lean 4 への書き起こしである。支払い台帳については、貸借の釣り合った記帳(P1、P2)、供給量は発行量から焼却量を引いたものに等しいこと(P3)、負の残高がなく、与信は発行者アカウントのみであること(P4)、実際の整数ビット幅においてすべての値でオーバーフローしないこと(P6、Lean)、凍結されたアカウントは決して支払わないこと(P7)、譲渡不能な資本は他の所有者から決して受け取らないこと(P8)、任意の料率での手数料の保存(P9)、ジャーナルウィンドウ内でのリプレイや二重支払いがないこと(P10、P11)が含まれる。既知の限界は隠さずに示している。ノンスがない場合、ジャーナルリングから外れたリクエストは再び受理され得るが、モデルはまさにそれを検出するように構成されている。モデルを C ソースやバイナリに結び付ける詳細化証明は存在しないため、これはカーネルの形式検証ではない。 [REPO] docs/FORMAL_INVARIANTS.md、proofs/
12.4 検証ハンドブック:部分ごとに 1 つのチェック
すべてのコマンドは無料の view 呼び出しである。RPC は任意の NEAR メインネット RPC エンドポイントに置き換えてよい。
RPC=https://rpc.mainnet.fastnear.com
view() {
A=${3:-'{}'}
curl -s "$RPC" -H 'Content-Type: application/json' -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"query\",\"params\":{\"request_type\":\"call_function\",\"finality\":\"final\",\"account_id\":\"$1\",\"method_name\":\"$2\",\"args_base64\":\"$(printf '%s' "$A" | base64)\"}}" \
| python3 -c 'import sys,json;r=json.load(sys.stdin)["result"];print(bytes(r["result"]).decode())'
}
# example: view scp144.near selftest
| 対象 | チェック | 期待値 |
|---|---|---|
| 不変性 |
near account list-keys scp144.near network-config mainnet now(または view_access_key_list) |
キーなし。zedec.near、zedei.near、および第 10 章で 0 と記載したサテライトも同様 |
| デプロイ済みバイト列 | ゲートとコアの view_account のコードハッシュ、2 つの成果物の shasum -a 256
|
第 10 章の一致 |
| Kernel-2 の健全性 |
view scp144.near status、view scp144.near selftest、view scp144.near qc
|
LOCKED、boot TRUE、10 項目のテストが TRUE
|
| ABI | view scp144.near abi |
第 11 章で用いた完全なメソッド一覧 |
| 不変条件 |
view f18889ea8bc108de53b899df3a3417c76995cbb55fb2174ff08d2e0abee99bcf is_settleable '{"state":"BOTH"}'、続いて '{"state":"TRUE"}'
|
false、続いて true
|
| meet | view scp144.near conjoin '{"inputs":[1,2]}' |
FALSE |
| ルーティング | view zedec.near route |
正規ルーター、レジストリ、ゲート、コアのアドレス |
| COBOL | view scp144.near cobol_comp3 '{"hex":"12345c"}' |
TRUE、12345
|
| 格子 |
view scp144.near zeckendorf '{"v":144}' と bind
|
決定論的な値。何度呼び出しても同一 |
| 行列 | 11.2 節の 2 つのセッションについて view scp144.near matrix_get '{"id":"<session>"}'
|
TRUE でシール済み |
| レール | view scp144.near rail_check '{"number":"<20 digits>"}' |
4 値の判定 |
| ベアメタル | 7.4 節 |
[BOOT_OK]、[AI_OK]、障害なし |
| 格子 ROM | shasum -a 256 build/*/gen/zxv_scp144_blob.h |
すべてのアーキテクチャで 7619a5a7…59c9
|
| ログ |
social.near のキー robindebanks.near/post/* と、提案 #406 に記載されたバッチトランザクション |
ターミナル出力そのもの |
13. 正直な限界、訂正事項、未解決事項
レビュアーが自ら発見するより、ここで読んでもらうほうが望ましいと考えている。
13.1 認証と規格
- いかなる種類の認証もない。 NIST CMVP/CAVP、ISO、EMVCo、SWIFT、カードブランド、決済システム運営者、規制当局のいずれによっても検証を受けていない。耐量子コードは NIST ACVP と公式の既知解ベクタに対してテストされているが、それは正しさの証拠であって、認証ではない。
- ISO 20022、ISO 8583、EMV はメッセージ形式として実装されている(相互運用とテストのため)。スキーマとしての妥当性は SWIFT CBPR+ やカードブランドの認証ではなく、いかなる決済システムとの実接続もない。
- レールは銀行カードではない。 プレフィックスは ISO/IEC 7812 の発行者番号範囲の外にあり、いかなるカードブランドとの提携も主張せず、銀行免許も保有していない。
13.2 以前のプロジェクト資料に対する訂正
- 「Γ144」。 以前の文書では、144 次元の極値的格子を既知のものとして名指ししていた。その存在は未解決である(5.9 節)。
- **カードモデルには 3 つの世代があり、**以前の投稿ではそれらを区別していなかった。(a) 統合コアの、所有者が発行する 20 桁のレール番号(
8809、8829、8849、外側チェックは Luhn)。(b) ZEDEI の、保有者が署名するコミットメント(番号がチェーンに載ることはない)。(c) カーネルのローカル発行者モデルcardnet(プレフィックス880、882、884上の 16 桁の番号、ML-DSA-65 の保有者鍵、厳密に増加する取引カウンタ、アトミックな再発行)。古いアーキテクチャ文書には 6 桁の範囲420019、530024、601136も記載されていたが、その記述は廃止された。初期のデモンストレーションの際、コアはよく知られたエコシステムのアカウント(social.near、devhub.near、nearを含む)向けにレール番号を生成した。それらの番号には価値も義務もなく、それらのアカウントとの関係を示唆するものでもない。 -
機能数は時期によって異なる。 プロジェクト文書には、段階に応じてレジストリの機能数が 103、131、136 と記載されている。
zedec.nearのライブのroute()は 131 としている。古い文書には、ゲートの最終デプロイ以前の古いゲートのコードハッシュ(2oU8BXV3…)も記録されている。ライブの値はAiND1AEh…であり、成果物と一致する。 -
バウンティボードに外部のソルバーは集まらなかった。
36n9.zedei.nearは耐量子証明のバウンティを提供したが、完了した 5 件の約定はすべてプロジェクトが管理するアカウントによるもので、外部の参加者がバウンティを獲得したことはなく、ボードはプールを保持したまま終了した。その宣伝投稿は撤回した。
7a. NEP の番号。 以前の DevHub のタイトルでは「NEP-662」「NEP-663」を提出済みの NEP であるかのように扱っていた。それらはnear/NEPsにまだ提出されていないドラフトの呼称である(第 15 章)。 -
注目度。 機関が私たちの
social.nearの投稿を読んだという証拠はなく、そのような主張もしない。それらの投稿の測定されたエンゲージメントはゼロであった。
13.3 設計上の限界と残存リスク
- SCP-144 は独立に解析された暗号プリミティブではなく(5.10 節)、その物理学的な用語は比喩である(5.1 節)。
- 測定値は私たち自身のものである。 ガスの数値、リファイナリーの比較、性能値は、明示したハードウェア上またはオンチェーンでのプロジェクトによる測定である。リファイナリーの 3,836 倍という数値は、私たち自身の以前のベースラインに対する相対値である。
- 形式モデルは詳細化証明ではない(12.3 節)。
-
2026 年 10 月 16 日の外部レビューでは 22 項目が挙げられた。 4 項目は修正済みである(MAC から導出されたノード識別鍵、ブラウザの拒否が成功としてデコードされる問題、プレイヤー鍵の参照、Q32.32 交換における未チェックの符号付きオーバーフロー)。18 項目は未解決であり、その中にはサーバー側でのパスキーチャレンジ検証、ブラウザから Wasm への呼び出しにおけるポインタと長さの境界チェック、ボールト初期化における AES-GCM のノンス再利用、1 つの署名済みコミットに紐付いた成果物、シードドアの HTTPS 化、具体的な鍵保管モデル、サードパーティ CI アクションの固定が含まれる。この台帳は
docs/AUDIT_STATUS.mdで公開されている。これらの項目はホスト型およびブラウザ版とノードフリートに関するものであり、封印済みの NEAR コントラクトに関するものはないが、その判断はレビュアー自身に委ねる。 - 封印は諸刃の剣である。 封印済みコントラクトにはパッチを当てられない。欠陥は、4.6 節が示すように新しいサテライトで置き換えるしかなく、欠陥のある封印済みコントラクトが保持する資金や状態を著者が救出することはできない。
-
残っているキー。 レジストリのサテライトは 1 つのガバナンスキーを、終了済みのバウンティボードのアカウントは 1 つのキーを保持している。ZEDEI のステータスは、その品質管理ライフサイクルのガーディアンとして
jollydragonroger.nearを指名している。アクセスキーが 0 個であるためコードは変更できず、ライフサイクルのメソッドは公開 ABI に列挙されており確認できる。レガシーのkjoin演算子は互換性のために呼び出し可能なまま残っているが、決済経路はconjoinを使う。 -
著者への手数料。 ZEDEI への支払いを伴う呼び出しでは、ストレージ料金、コントラクト内に留まる 888 ppm の Keeper's Reserve、そして
jollydragonroger.nearに支払われる 8,889 / 10,000,000(0.08889%)の Sovereign Tribute が課される。スナップショット時点で、累積したトリビュートは 188,073,462,000,000,000,000 yoctoNEAR(約 0.00019 NEAR)であった。私たちはこれを利益相反として開示する。view は無料であり、手数料はかからない。 - ベアメタル。 すべてのターゲットが QEMU 上で起動する。一般的な x86-64 UEFI PC での最初の物理的な起動経路は文書化されているが、セキュアブートの署名はまだ整備されていない。ベアメタルカーネルは AI モデルを検証するが、まだ実行はしない。GPU バックエンドはホスト型ツールにのみ存在する。本リリース時点では、各イメージの一部のみがブートグラフから到達可能である(6.1 節)。
- 単一著者への集中。 アーキテクチャは、AI の支援を受けた 1 人の主著者による成果である。バス係数のリスクは現実のものであり、Apache-2.0 ライセンス、公開リポジトリ、そして本書がその緩和策である。
- 作成の出自は証明されたものではなく、著者の陳述である(8.3 節)。
14. このアーキテクチャがもたらす意味
14.1 NEAR にとって
- 耐量子検証は今すぐ利用できる。 通常のコントラクト内で、既知のガスコストで、プロトコルのホスト関数を待たずに使える。コントラクトや DAO は、長期にわたる意思決定に対して ML-DSA や SLH-DSA のアテステーションを今日から要求し始めることができる。
- 食い違いのための共通語彙。 コントラクト、インデクサー、エージェントが「保留された矛盾」を表す 1 バイトを採用すれば、インテント、オラクル、クロスシャードのワークフローが同じセマンティクスで相互運用でき、インデクサーはロールバックの代わりに係争を可視化できる。
- C は、NEAR の重要インフラにとって信頼に足る言語となる。 バイナリサイズ、決定性、移植性が重要な場面で、Rust の代わりとしてではなく、Rust と並ぶ選択肢として。
- 封印された公共財。 キー 0 個のコントラクトは、誰も掌握したり、有料化したり、ひそかに変更したりできないインフラである。そのため遡及的な公共財資金提供に適している。成果物は検査可能であり、撤回することはできない。
14.2 金融にとって
-
丸め誤差のずれのない移行経路。
COMP-3とゾーン 10 進数を厳密に扱えるため、丸め差異の照合なしに台帳を移行できる。これは、レガシーの勘定系を浮動小数点ベースのプラットフォームへ刷新する際によく障害となる点である。 - 矛盾耐性のある決済は、運用チームがすでに行っている仕事の仕方、つまり仮勘定や例外キューと一致する。ここではそれが明示的かつ機械で検査可能になっている。
- 正直な境界: 規制下での導入には、依然として認証、免許、責任分担の取り決め、ベンダーデューデリジェンスが必要であり、本書はそれらを提供しない。
14.3 AI と自律エージェントにとって
- 検証可能な計算。 整数推論はどのマシンでも同じビット列を出力するため、あるエージェントは別のエージェントの作業を、相手を信頼することなく検証し、その対価を支払うことができる。
- 有界な自律性。 ガード付きウォレット、厳密な予算、カードごとの上限を持つレールにより、エージェントの支出権限は、ポリシーだけでなく構造そのものによって上限が設けられる。
- デフォルトでフェイルクローズ。 矛盾する指示や証拠を受け取ったエージェントは、行動せずに保留する。
14.4 耐量子への移行にとって
- 今日古典的な鍵で署名された記録は、大規模な量子コンピュータが存在するようになれば偽造され得る。今日暗号化されたデータは、今収集されて後で復号され得る。格子とハッシュの二重署名(MATRIX)は、どちらか一方の系統が生き残れば有効なままであるため、数十年にわたって持続しなければならないアンカー、すなわちアイデンティティ、リリース、憲章、決済バッチに適している。
14.5 エコシステムが考慮すべきリスク
- 私たちが管理していないコントラクトによる採用は、まだ実証されていない。
- 封印済みのコードは、封印前に格別の注意を要する。誤りは永続する。
- 新規の構成(SCP-144、リファイナリーのバイナリ形式)は、誰かが価値の保全をそれに依存する前に、独立したレビューを必要とする。
- 単一の著者と小規模なフリートは、集中リスクである。
15. NEP-662 と NEP-663
「NEP-662」「NEP-663」は、2 つのドラフトに対する著者の作業上の呼称であった。2026 年 10 月 31 日(UTC)、両者は公式の near/NEPs リポジトリに提出された。NEP の番号はそのプルリクエストの番号から採られる。NEP-665「Panic-Free Contention State for Contracts」(https://github.com/near/NEPs/pull/665)と NEP-666「Post-Quantum Signature Verification Interface」(https://github.com/near/NEPs/pull/666)である。いずれもステータスは New で、ワーキンググループのレビューを待っている。提出は承認を意味しない。提出されたテキストは以下の説明より範囲が狭く、より形式的である。また NEP-666 は、NEP-645(プロトコルレベルの ML-DSA-65 鍵)および NEP-646(SHA-3 ホスト関数)を補完するものとして位置付けられている。
15.1 NEP-662:決定論的でパニックのない状態解決のための標準インターフェース(Chain-Meet)
- 範囲: 意図的に狭い。1 バイトの競合状態と 3 つのメソッドである。
pub trait NepPanicFreeResolution {
fn nep_conjoin(&self, inputs: &[u8]) -> u8; // the chain meet, 0x00..0x03
fn nep_is_settleable(&self, state: u8) -> bool; // only TRUE (0x01)
fn nep_invariant(&self) -> String; // self-description
}
-
性質: 状態あたり 1 バイト、O(1) の解決、ヒープ確保ゼロ(
#![no_std]互換)、オンチェーンで 1.2 TGas 未満、view としては無料。インデクサーが競合を一様に観測できるよう、イベントは NEP-297 形式で発行する。 -
リファレンス実装: Rust クレート
near-panic-freeと、8 件のテスト(meet の支配性、矛盾の保留、一致時の決済、空の入力、範囲外入力のフェイルクローズ、16 通りの組み合わせの不変条件、64 組の三つ組に対する結合性)を持つ最小限のnep_gate.rs。ライブの例:zedec.nearとコアf18889ea…。 -
リポジトリ:
https://github.com/sykomiked/zxv-nep-submission
15.2 NEP-663:矛盾許容型状態解決インターフェースのための補完的カーネルアーキテクチャ
-
範囲: NEP-662 が意図的に除外した、より広いアーキテクチャ。耐量子規格スイート(コントラクト内での FIPS 202、203、204、205 の検証)、検証行列、ウォレットガード、ポストオフィス、デバイスバスであり、
scp144.nearを封印済みのリファレンス実装とする。 -
関係: NEP-662 は 1 バイトを標準化し、NEP-663 はその上に構築された完全なシステムを文書化する。これにより実装者は、標準が端から端まで使われている様子を確認できる。DevHub 提案
#402がその補遺である。
16. プロフェッショナルサービス:Scenic Bypass Consulting, LLC
本書に記載した公共財としての成果は Apache-2.0 の下で無償であり、誰かが私たちに業務を依頼するかどうかにかかわらず無償であり続ける。それとは別に、Scenic Bypass Consulting, LLC は、財団、プロトコルチーム、金融機関、企業からの専門業務を受託している。
| サービス | 対象範囲 |
|---|---|
| 耐量子移行アセスメント | 古典暗号の棚卸し、FIPS 203/204/205 への移行計画、ハイブリッドおよび二重署名の設計、オンチェーン検証の選択肢 |
| レガシーシステムのブリッジ | COBOL の COMP-3、ゾーン 10 進数とコピーブック、FORTRAN のデータ、厳密演算の台帳、ISO 20022 形式のメッセージパイプライン |
| 浮動小数点のずれのレビュー | 金額処理の経路から 2 進浮動小数点を発見・除去し、照合テストを整備する |
| NEAR コントラクトエンジニアリング | フリースタンディング C または Rust のコントラクト、ガス上限付きの検証、封印とサテライトの戦略、デバイスバスとの統合 |
| 矛盾許容型決済の設計 | オラクル、インテント、ソルバー、クロスシャードのワークフローのための競合状態。NEP-662 の採用 |
| 決定論的 AI | 整数推論、検証可能なエージェント計算、エージェント予算とガード付きウォレット |
| 独立レビューとトレーニング | アーキテクチャレビュー、敵対的セルフ監査の方法論、チーム向けワークショップ |
連絡先: deal@zedec.ai · NEAR:jollydragonroger.near
業務契約は、いかなる助成金とも別に締結される。認証状況や第 13 章に記載した限界を偽ることを要する業務はお断りする。
17. 付録
17.1 用語集
| 用語 | 意味 |
|---|---|
| BOTH | 保留された矛盾を表す値(コード 3) |
| Chain meet(鎖の meet) |
conjoin:FALSE < NEITHER < BOTH < TRUE 上の最小値 |
| デバイスバス | コードハッシュで固定され、振る舞いで検査されるコントラクトを列挙した ZEDEI のテーブル |
| ゲートウェイ | 論理フェーズ 4。凍結された 4 つの値の上にある拡張ポート |
| Kernel-1 | 最初の NEAR デプロイ:zedec.near と 13 のサテライト |
| Kernel-2 / ZEDEI |
scp144.near。kernel-1 の上にある耐量子層 |
| レーン | 検証行列セッション内の 1 つのチェック |
| LPRES | カーネルの 4 値の存在論理 |
| リファイナリー |
x メソッド:多数の判定を 1 回の呼び出しで畳み込むバイナリプログラムインタープリタ |
| サテライト | 封印済みのコントラクトを変更せずに拡張する新しいコントラクト |
| 封印済み(Sealed) | アクセスキー 0 個でデプロイされたもの。コードは決して変更できない |
| SCP-144 | フィボナッチラダー上に構築された、カーネルの 144 次元整数構成 |
| 層(Strata) | S0〜S8 の 9 つの層。上向きのインクルードは禁止 |
| ゼッケンドルフ形式 | 整数を連続しないフィボナッチ数の和として表す一意な表現 |
17.2 暗黙的アカウントの完全な名前(kernel-1 のサテライト)
gate 6ca890f766fdaeccd6c934da325f5f06ebc63ca9be4f5f1b44d0686af93c64a8
core f18889ea8bc108de53b899df3a3417c76995cbb55fb2174ff08d2e0abee99bcf
registry 7eaa2c6f37ef7dd1dc073c4630533b67f303274d31d411e4047eb0d9401ef01a
oracle 6a57f581ea7c7c986769af6c874b16e8187410b62fe7190cdfb06001fb8998aa
bus 3c70e9c629068ac1fad6bd61ea26d4b4486c7e2a033c87d3635051bc2db0276e
shield 789457e61798d8deb3e45d60e84dec1ba0ca0fa8e7181eaa1646485f0ea89846
micro_infer 86f80143df70df0b02aa7625eddba7d4900bd543de24fa193b7fd4e0330a4dbe
model_registry 77361b15a4a8f7e43fdbf7b276138eeaf9d8fb5f6c2e73ec25c8c8b76a719c65
consumer 8947dcb7d35102dca4dc6cb852038b17efa1ff1a421209e5d0e7122425b0c654
oracle_pc ea85f5381ceff17553fa3093a2d67a0e6cc4853abd7c19487ed7a33391acc2f7
router 8bf177019402d3d843b361a04d3ed7e21de637bf5d252956a15208f7950effae
wrapper 1a051ac2465c9a04e532fe420e2efbd8cc12f9a1d9f2a350470782fd3255ecf1
ai 781fc03d4dfb9b29d88df561157b11db6dc1e02368eae6deef7998d188ff966e
17.3 主要トランザクション
| イベント | トランザクション |
|---|---|
| ZEDEI の起動 | 9Xf4iTNXXCF8EwbohMoGEL63ESBcjZT3BBfcuBLx7dkd |
| ガーディアンの行列シール | DFtiFdEty9qLX3Ek9Y64nXaboSN8mkGCLq8XbNqzC38o |
| KEM の公開 | 3sTi5Gyr3HDDH82RrSUCZxcJtPHw7LonuuRTJUovSmYd |
| ハンドシェイクが TRUE で確定 | 6nNC5ndaYvYPQWvjVSkZGaG3fTGkeLr9nEVDKkPCc7uH |
| DAO の作成 | CE3aGbiKsz8kGUdxVJhRxQ5JbkSpd8cx4bfiKG3oMhqX |
| 8 レーンの行列シール | 7emQZNJU1aczdpkHmbRJ4ogrxNmY5Sk56gEZFxSRez1Z |
| 144 レーンの行列シール | 5Z2z2wa5FKoJ5r8FD9f3gPsN39uushWE4uSR8rNCizN2 |
social.near 上のアーキテクチャ記事 |
FRht1sBHGLzAwREScA28vGA3jeJxaqeEmAzXLokPXfM5 |
DevHub #401 を REVIEW へ |
FDS5CRuXUjMbNe2aKpNy1zFbSn6CVNka6sjHvzJKm65B |
DevHub #400 を REVIEW へ |
9i5s6o9wBHKb44Aj6Qs1mtXZEcP3cUvHpa9ZLCNUmbqA |
DevHub #406 を REVIEW へ |
2dpEijActSAfygWBSUqdVqA2fPxTH8gFiDfLvqkvvexh |
17.4 リポジトリとコンテンツアドレス
- NEP 提出物:
https://github.com/sykomiked/zxv-nep-submission - スタック:
https://github.com/sykomiked/zxv-stack· 開発者キット:https://github.com/sykomiked/zxv-developer-kit· NEP 記録:https://github.com/sykomiked/ZXV-NEP-paraconsistent - ZEDEI ホワイトペーパー(IPFS):
QmQrozxKRQD6mna7YMrAjitXLSYLGcFmhXt2RgrRPVPE5S - ドキュメントポータル(IPFS):
QmRepFzHHpxcs7yuUcNjWXmsG6tNqtsun8nrYdSiBBizAV - リリースマニフェスト:
zxv-release-20261019(7.2 節)
17.5 レビュアー向けのソース文書
docs/SYNOPSIS.md、docs/ARCHITECTURE.md、docs/SYSTEM_REFERENCE.md、docs/FORMAL_INVARIANTS.md、docs/PQ_MATRIX.md、docs/AUDIT_STATUS.md、docs/ADVERSARIAL_AUDIT.md、docs/VERIFY_BOOT.md、build_system/strata.txt、kernel/src/lpres/、kernel/src/scp144/、contract/zedei.c、contract/devices.h、dist/near/NEP-ATTACHMENTS/。
Copyright (c) 2024-2026 Michael Laurence Curzi, 36N9 Genetics, LLC and Scenic Bypass Consulting, LLC. SPDX-License-Identifier: Apache-2.0. すべての [LIVE] の記述は、冒頭に記載したスナップショットの時点で NEAR メインネットから読み取ったものである。ご自身で検証されたい。
18. ターミナルログ:収録ファイル一覧と検証方法
掲載方針: 本章以降のターミナルログは、アーカイブ内のファイルを一切編集・省略・伏せ字化せず、そのまま Markdown のコードブロックに収めたものである(ログ本文は英語の原文のまま)。日本語は注釈のみである。各ファイルには SHA-256 を併記しており、
shasum -a 256 <ファイル名>で原本との一致を確認できる。なお、Markdown の書式上、コードブロックを閉じる行の直前には常に改行が入るが、その改行はファイル末尾に改行がない場合には原文に含まれない。
収録元
アーカイブ zxv-post-quantum-demonstration-logs に含まれる全ファイルを収録する。同梱の MANIFEST.json によれば、作成日時は 2026-10-26T23:49:30Z(UTC)であり、目的は「耐量子行列デモンストレーションの完全なログ。決定版の 8/8 TRUE セッション、研究ラン、ゴールデンベクタ」と記されている。macOS が自動生成する __MACOSX/ 以下のメタデータファイル(._ で始まるもの)はログではないため収録していない。
秘密情報について
MANIFEST.json は「40 ファイルすべてを走査し、秘密鍵素材(NEAR の秘密鍵、PEM、シード)はゼロ。pk/sig の 16 進ファイルは、オンチェーンでブロードキャストされた公開鍵と署名である」と記載している。本書の作成時にも、NEAR 秘密鍵の形式(ed25519: で始まる長い base58 文字列)、PEM ヘッダ、secret、privateKey 値、ニーモニックなどのパターンを全ファイルで検索し、該当はなかった。
ログの読み方(near-cli の出力形式)
トランザクションを伴うログの多くは near-cli の出力そのものであり、次の順で並ぶ。
| 行 | 意味 |
|---|---|
Scheduling a call: scp144.near.<メソッド>({...}) |
呼び出したメソッドと引数(JSON)。公開鍵・署名・メッセージは 16 進で引数に含まれる |
Receipt: / Receipts:
|
NEAR のレシート ID |
Log [scp144.near]: EVENT_JSON:{"standard":"zedei",...} |
コントラクトが発行したイベント。height は ZEDEI 内部の受領通番、op は操作種別、digest は受領ダイジェスト、head は受領チェーンの先頭 |
Transaction Id ... |
トランザクションハッシュ。https://www.nearblocks.io/txns/<ハッシュ> で誰でも確認できる |
最終行の { ... }
|
メソッドの戻り値 |
Failure [...] / ServerTransactionError
|
コントラクトが panic した場合のエラー出力(near-cli のヘルプとスタックトレースを含む) |
ログ中で観測される op の対応は、4 = matrix_open、5 = matrix_lane / matrix_probe、6 = matrix_seal である。
レーンの kind は、run_full_matrix.sh 内のラベルから次のように対応する。
| kind | 検査内容 |
|---|---|
1 |
SHA-256(FIPS 180-4) |
2 |
SHA3-256(FIPS 202) |
3 |
Ed25519 |
4 |
Keccak-256 |
5 |
ML-DSA-87(FIPS 204) |
7 |
SLH-DSA-SHAKE-256s(FIPS 205) |
8 |
pqm MATRIX 二重署名(ML-DSA-87 と SLH-DSA の両方) |
収録ファイル一覧
「マニフェスト照合」は、ファイルのバイト数と SHA-256 の先頭 16 桁が MANIFEST.json の記載と一致するかを本書の作成時に確認した結果である。マニフェストに載っていないファイル(マニフェスト自身や後から追加されたログ)は「対象外」と記す。
| ファイル | バイト数 | SHA-256 | マニフェスト照合 | 掲載章 |
|---|---|---|---|---|
FULL_MATRIX_DEMONSTRATION_LOG 2.txt |
1,851 | 0f6a13bbd3418e90cce9148a0e4ba073430bf780f7ad1a69c565e8d55f67b051 |
対象外 | 第 19 章のファイルと同一のため本文は省略 |
FULL_MATRIX_DEMONSTRATION_LOG.txt |
1,851 | 0f6a13bbd3418e90cce9148a0e4ba073430bf780f7ad1a69c565e8d55f67b051 |
一致 | 第 19 章 |
MANIFEST.json |
4,753 | 000a76725deba54564b098d435298d7f88037ae67df43e327228e56ef7480904 |
対象外 | 第 18 章 |
composed.log |
3,597 | db687f71fa74e007b95643583c134df4e66fb60dace2ce053ad51801f36bfcde |
対象外 | 第 21 章 |
d2_l0.txt |
840 | 74a86614fd5de7bf7b401bf434f8f518e674d5642387cdf9a9d55aceec661cb8 |
一致 | 第 23 章 |
d2_l1.txt |
842 | a7e5f1fb8b9527ad364df761d228da692fa52b53b266ac4f9a4f73b8ccc27546 |
一致 | 第 23 章 |
d2_l2.txt |
840 | a0ac31ec5106843b4ab7650a32a80d6e947f8a99688087beeb60dbd745c1a525 |
一致 | 第 23 章 |
d2_l3.txt |
978 | 7ecc438652d90d942ead2965ecf9240cd835fa406432466ebc3ec350f0bd6e9e |
一致 | 第 23 章 |
d2_l4.txt |
15,224 | 6ab526675c5626168e4ed9e1ef64c64d21f2cdbf6fa2c583e8e86b6bd7809d8e |
一致 | 第 23 章 |
d2_l5.txt |
60,499 | c29ed75863bdd6a6752e711103a0387dfddfa8c43f6bebf5f94004dab42ea0b3 |
一致 | 第 23 章 |
d2_l5b.txt |
59,970 | 30bdb5295ebb4c957355608deddc469be3e088c8083fa06bcf0003a2a3416834 |
一致 | 第 23 章 |
demo2_label.txt |
65 | c7906db676a461008ffe71d01c3642b13b4608ac20eec85308be9df4f9ae1551 |
一致 | 第 23 章 |
demo2_open.txt |
811 | 55af6d77937d4b1f406cf4b00a7143062c8ace498495e678eae0e2505193d533 |
一致 | 第 23 章 |
demo2_sid.txt |
65 | 14429018bf99c0e2259d4f2f46e6cdb85e2e204826626467c4c18f9931afc65f |
一致 | 第 23 章 |
demo3_ed_pk.txt |
64 | 25f578ee40fd903d47753dab144a834d683f759efa4c7e62b874873fcec40a06 |
一致 | 第 24 章 |
demo3_ed_sig.txt |
128 | 369c4e7c2d5b19149c8892600eb743f6861c41606e4f8ef9bd39fdc54e2c002d |
一致 | 第 24 章 |
demo3_keccak.txt |
64 | cf9e39597a46dfbdcd311ebab9ba95fd22de37c73c90be60c9fcee30535d7c0a |
一致 | 第 24 章 |
demo3_l012.txt |
1,927 | 39393855d09daa2883cb974a4cca2fb27e886c0a48319e29d5714a9cd1c0288c |
一致 | 第 24 章 |
demo3_l2.txt |
862 | ec86874869374f19717787e42c4cdcd1e699914acd582a145ae92e989f87f4c0 |
一致 | 第 24 章 |
demo3_l3.txt |
906 | 230e41fd3e5951435ec1557229714ebc51d312ad190a5b0115dbec0ceeee7be4 |
一致 | 第 24 章 |
demo3_l4.txt |
15,245 | c86b1c5bb183d87a2b73b35e4934460d57cfb827d427ddbc7b656d2ddf6b0696 |
一致 | 第 24 章 |
demo3_l5.txt |
60,518 | c1f089127d5d988bffa7610c8286ce3ef91e2d4d0082df1f4ecf408105b0a71f |
一致 | 第 24 章 |
demo3_label.txt |
65 | ffda37d076284a18aaef062cd618246f3c11f1a50d7bf40df8657dfe618692ce |
一致 | 第 24 章 |
demo3_open.txt |
811 | 970caadcdb185a9c8248b867de1f528a92ff2e21b8b464f798d301c03960271d |
一致 | 第 24 章 |
demo3_sid.txt |
65 | 176f6c4c55d06f5ea90b4edd83fb151a2921e2a029d584a8226a63137a663f3d |
一致 | 第 24 章 |
demo4_ed_pk.txt |
64 | 25f578ee40fd903d47753dab144a834d683f759efa4c7e62b874873fcec40a06 |
一致 | 第 26 章 |
demo4_ed_sig.txt |
128 | 369c4e7c2d5b19149c8892600eb743f6861c41606e4f8ef9bd39fdc54e2c002d |
一致 | 第 26 章 |
demo4_label.txt |
65 | 4f736e24e80ad72c1eb8067019b43d2550695119159de070ef1b7da989059a09 |
一致 | 第 19 章 |
demo4_ml_out.txt |
14,544 | f3531f1f652999c0da3ef40d82f20a191548b1673fd46cefb41ed90731440493 |
一致 | 第 26 章 |
demo4_ml_pk.txt |
5,184 | 2e17e5167b9cd4abe7d9c8011e85357770674d885431eab5911e7a59a0e9224f |
一致 | 第 26 章 |
demo4_ml_sig.txt |
9,254 | 8f7aa8b59d5bbe218a1a09eb376a24766acf8df75231a20081576d650b38abde |
一致 | 第 26 章 |
demo4_open.txt |
811 | 749b5667c03015e92aef4cd97760c9ed2675ebf0f305bb7df8d2ed0c270a2fa6 |
一致 | 第 19 章 |
demo4_probe.txt |
2,963 | d3b3e17d3eb2588328dabcbbbecdba9a6c4da1b0f05840814d350b410a0ea85e |
一致 | 第 19 章 |
demo4_seal.txt |
860 | 4c6fe84e7c763061d4b7d5fbffd2fc698b643b32949ec9673c2e70705297c792 |
一致 | 第 19 章 |
demo4_sid.txt |
65 | c55ff2bd476303b0dedb5e4d21269360eef9b9bb146ab88dd7f646bf86d40c8f |
一致 | 第 19 章 |
demo4_step.txt |
862 | c99dd7951b2547b51abda8e144e2964467fbd73c5c837b3c1f7fc16d5006bf05 |
一致 | 第 19 章 |
demo5_mask.txt |
36 | 3c351595a45da15f99cce2290903e355cad069aa3ff6d561a558621853cbe9b1 |
一致 | 第 25 章 |
demo5_open.txt |
811 | 0e000de8eb142b475f22dd3b81cef4ba62f6298ac6903b0173b7862efa570f37 |
一致 | 第 25 章 |
demo5_probe.txt |
1,047 | 4cee2c08ac8795057da40d486892a3e45671d578ee68c0a56bddea7fae980f65 |
一致 | 第 25 章 |
demo5_sid.txt |
65 | d673e6b08ed6383663a0f1f679d566a578d6088eb9a42fd5b03a09879509e71a |
一致 | 第 25 章 |
golden_bare.json |
14,465 | a8f2db8124cb16ad5c8c0e7313e5b92de271b811487166dfbad9ac89977a7fa7 |
一致 | 第 26 章 |
golden_params.json |
148,610 | bb1a5ca95dc77e9178b3f8b4f5cac0ffe2c29ac446daacf88c28ad4e1d80ffa3 |
一致 | 第 26 章 |
mx144_lanes.log |
9,869 | 02f64ddeb77254ae12cd4f073db9e6c0a7ece6733df311c302c413f0697836e0 |
対象外 | 第 20 章 |
mx144_part1_before_interrupt.log |
1,275 | 76d163cd110e3a06a4590a031d93639535696853dcac3afd313b5a16ae8fc012 |
対象外 | 第 20 章 |
mx144_part2_after_interrupt.log |
5,489 | cbf726b343c88cf6d97bf21a9614830f97851d10bb636006690235d86d0ca912 |
対象外 | 第 20 章 |
phase2.log |
97 | af9455a4c785cb4b4015f23c09bd2920fb275b783a2cbf7668b266a2e92119e1 |
対象外 | 第 21 章 |
refinery.log |
10,933 | f3a5c294b96034918470b4ffa4607eea7cd64936dcdf1bc5eb8470f7b2bf0b75 |
対象外 | 第 22 章 |
refinery_ok.log |
35 | 892ab15a2b282d02d67993ae4bd586ee47dee544cd14154cb93a663808026e1e |
対象外 | 第 22 章 |
run_full_matrix.sh |
4,661 | 3414ffe5a6f6ab4a3670a214b14d04fe837092c9f183d28c66cee5271ce14766 |
一致 | 第 19 章 |
views.log |
3,171 | 3cc64e4917ae0af413b3eaa6c98f48438aab5588f71ad0b844fc8704bd3a6704 |
対象外 | 第 21 章 |
FULL_MATRIX_DEMONSTRATION_LOG 2.txt は FULL_MATRIX_DEMONSTRATION_LOG.txt とバイト単位で同一(SHA-256 が一致)の複製であるため、本文は一度だけ掲載する。
MANIFEST.json
アーカイブのマニフェスト。各ファイルの名前、バイト数、SHA-256 の先頭 16 桁を記録している。上の一覧表の「マニフェスト照合」はこのファイルとの突き合わせである。
- バイト数:4,753
- SHA-256:
000a76725deba54564b098d435298d7f88037ae67df43e327228e56ef7480904
MANIFEST.json の全文を表示(4,753 文字)
{
"folder": "zvx-post-quantum-demonstration-logs (user space)",
"purpose": "the complete post-quantum matrix demonstration logs \u2014 the definitive 8/8 TRUE session, the research runs, and the golden vectors",
"created": "2026-10-26T23:49:30.690709+00:00",
"security": "all 40 files scanned: ZERO private-key material (no NEAR private keys, no PEM, no seeds). The pk/sig hex files are PUBLIC keys + signatures broadcast on-chain.",
"files": [
{
"name": "FULL_MATRIX_DEMONSTRATION_LOG.txt",
"bytes": 1851,
"sha256_prefix": "0f6a13bbd3418e90"
},
{
"name": "d2_l0.txt",
"bytes": 840,
"sha256_prefix": "74a86614fd5de7bf"
},
{
"name": "d2_l1.txt",
"bytes": 842,
"sha256_prefix": "a7e5f1fb8b9527ad"
},
{
"name": "d2_l2.txt",
"bytes": 840,
"sha256_prefix": "a0ac31ec5106843b"
},
{
"name": "d2_l3.txt",
"bytes": 978,
"sha256_prefix": "7ecc438652d90d94"
},
{
"name": "d2_l4.txt",
"bytes": 15224,
"sha256_prefix": "6ab526675c562616"
},
{
"name": "d2_l5.txt",
"bytes": 60499,
"sha256_prefix": "c29ed75863bdd6a6"
},
{
"name": "d2_l5b.txt",
"bytes": 59970,
"sha256_prefix": "30bdb5295ebb4c95"
},
{
"name": "demo2_label.txt",
"bytes": 65,
"sha256_prefix": "c7906db676a46100"
},
{
"name": "demo2_open.txt",
"bytes": 811,
"sha256_prefix": "55af6d77937d4b1f"
},
{
"name": "demo2_sid.txt",
"bytes": 65,
"sha256_prefix": "14429018bf99c0e2"
},
{
"name": "demo3_ed_pk.txt",
"bytes": 64,
"sha256_prefix": "25f578ee40fd903d"
},
{
"name": "demo3_ed_sig.txt",
"bytes": 128,
"sha256_prefix": "369c4e7c2d5b1914"
},
{
"name": "demo3_keccak.txt",
"bytes": 64,
"sha256_prefix": "cf9e39597a46dfbd"
},
{
"name": "demo3_l012.txt",
"bytes": 1927,
"sha256_prefix": "39393855d09daa28"
},
{
"name": "demo3_l2.txt",
"bytes": 862,
"sha256_prefix": "ec86874869374f19"
},
{
"name": "demo3_l3.txt",
"bytes": 906,
"sha256_prefix": "230e41fd3e595143"
},
{
"name": "demo3_l4.txt",
"bytes": 15245,
"sha256_prefix": "c86b1c5bb183d87a"
},
{
"name": "demo3_l5.txt",
"bytes": 60518,
"sha256_prefix": "c1f089127d5d988b"
},
{
"name": "demo3_label.txt",
"bytes": 65,
"sha256_prefix": "ffda37d076284a18"
},
{
"name": "demo3_open.txt",
"bytes": 811,
"sha256_prefix": "970caadcdb185a9c"
},
{
"name": "demo3_sid.txt",
"bytes": 65,
"sha256_prefix": "176f6c4c55d06f5e"
},
{
"name": "demo4_ed_pk.txt",
"bytes": 64,
"sha256_prefix": "25f578ee40fd903d"
},
{
"name": "demo4_ed_sig.txt",
"bytes": 128,
"sha256_prefix": "369c4e7c2d5b1914"
},
{
"name": "demo4_label.txt",
"bytes": 65,
"sha256_prefix": "4f736e24e80ad72c"
},
{
"name": "demo4_ml_out.txt",
"bytes": 14544,
"sha256_prefix": "f3531f1f652999c0"
},
{
"name": "demo4_ml_pk.txt",
"bytes": 5184,
"sha256_prefix": "2e17e5167b9cd4ab"
},
{
"name": "demo4_ml_sig.txt",
"bytes": 9254,
"sha256_prefix": "8f7aa8b59d5bbe21"
},
{
"name": "demo4_open.txt",
"bytes": 811,
"sha256_prefix": "749b5667c03015e9"
},
{
"name": "demo4_probe.txt",
"bytes": 2963,
"sha256_prefix": "d3b3e17d3eb25883"
},
{
"name": "demo4_seal.txt",
"bytes": 860,
"sha256_prefix": "4c6fe84e7c763061"
},
{
"name": "demo4_sid.txt",
"bytes": 65,
"sha256_prefix": "c55ff2bd476303b0"
},
{
"name": "demo4_step.txt",
"bytes": 862,
"sha256_prefix": "c99dd7951b2547b5"
},
{
"name": "demo5_mask.txt",
"bytes": 36,
"sha256_prefix": "3c351595a45da15f"
},
{
"name": "demo5_open.txt",
"bytes": 811,
"sha256_prefix": "0e000de8eb142b47"
},
{
"name": "demo5_probe.txt",
"bytes": 1047,
"sha256_prefix": "4cee2c08ac879505"
},
{
"name": "demo5_sid.txt",
"bytes": 65,
"sha256_prefix": "d673e6b08ed63836"
},
{
"name": "golden_bare.json",
"bytes": 14465,
"sha256_prefix": "a8f2db8124cb16ad"
},
{
"name": "golden_params.json",
"bytes": 148610,
"sha256_prefix": "bb1a5ca95dc77e91"
},
{
"name": "run_full_matrix.sh",
"bytes": 4661,
"sha256_prefix": "3414ffe5a6f6ab4a"
}
]
}
19. ターミナルログ:8 レーン・フルマトリクス実証(決定版)
本章は、11.2 節で「8 レーンのセッションが TRUE、ティア 5、密度 1/1 でシールされた」と記した決定版セッション 7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a のログである。1 つのセッションで、ハッシュ 3 種(SHA-256、SHA3-256、Keccak-256)、古典署名(Ed25519)、耐量子署名 2 種(ML-DSA-87、SLH-DSA-SHAKE-256s)、両者の二重署名(pqm)をそれぞれ 1 レーンずつ検証し、8 レーンすべてが TRUE になった後にシールしている。署名対象のメッセージはゴールデンベクタ ZEDEI settles under the kernel-1 post-quantum matrix(16 進 5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978)である。
demo4_label.txt
セッションを開く際に渡したラベル(32 バイトの 16 進値)。
- バイト数:65
- SHA-256:
4f736e24e80ad72c1eb8067019b43d2550695119159de070ef1b7da989059a09
21fa501fff85d5d74382e99703acbeefbf0e24f7025c09cdc146050075eba8d3
demo4_open.txt
matrix_open の実行ログ。required の ff00… はレーン 0〜7 の 8 レーンを必須とするビットマスクである。0.01 NEAR を添付し、トランザクション EaR7XRHGbzj7BZKXy2NNQxckuw7QznfpLfb3q9cwnW3a でセッションが作成された。イベントの digest(height 128、op 4)がそのままセッション ID になっている。
- バイト数:811
- SHA-256:
749b5667c03015e92aef4cd97760c9ed2675ebf0f305bb7df8d2ed0c270a2fa6
Scheduling a call: scp144.near.matrix_open({"label":"21fa501fff85d5d74382e99703acbeefbf0e24f7025c09cdc146050075eba8d3","required":"ff0000000000000000000000000000000000"}) with attached 0.01 NEAR
Receipts: FgjTVD5uNcoT97jgGuvfNhJ9zLLoGaNjLXLJfsrtPV8V, 82smbhMb1i5bsjZsdRgpjogjEQnDEGuEysAt4hKDpRu8
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":128,"op":4,"digest":"7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a","head":"98f22c6076c39b639f76f1587492b9a112586af71e020d951f461808bbe9c1c0"}]}
Transaction Id EaR7XRHGbzj7BZKXy2NNQxckuw7QznfpLfb3q9cwnW3a
Open the explorer for more info: https://www.nearblocks.io/txns/EaR7XRHGbzj7BZKXy2NNQxckuw7QznfpLfb3q9cwnW3a
{
id: '7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a'
}
demo4_sid.txt
作成されたセッション ID。
- バイト数:65
- SHA-256:
c55ff2bd476303b0dedb5e4d21269360eef9b9bb146ab88dd7f646bf86d40c8f
7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a
run_full_matrix.sh
このセッションの 8 レーンとシールを実行したシェルスクリプト。鍵・署名は /tmp 上のファイル(第 26 章に掲載したものと同名)から読み込み、ログファイルにはセッション ID、レーン名、トランザクションハッシュ、状態のみを書き出す設計である。SHA-256 と SHA3-256 の期待値は Python の hashlib でローカルに計算しているが、Keccak-256 の期待値は scp144.near 自身の keccak256 view から取得している点に留意されたい。また、レーン 3(Ed25519)の msg_hex は 6c616e652d32(ASCII で lane-2)であり、ゴールデンベクタとは別のメッセージに対する署名を検証している。
- バイト数:4,661
- SHA-256:
3414ffe5a6f6ab4a3670a214b14d04fe837092c9f183d28c66cee5271ce14766
run_full_matrix.sh の全文を表示(4,637 文字)
#!/bin/bash
# THE FULL-MATRIX DEMONSTRATION — one continuous, sanitized terminal log
# Every encryption type in one session, proven inputs, tx hashes captured.
# The log contains ONLY the session id, the lane labels, the tx hashes, and
# the states — no keys, no signatures, no sensitive material.
set -u
SID=$(cat /tmp/demo4_sid.txt)
MSG=$(python3 -c "import json; print(json.load(open('/tmp/golden_params.json'))['msg'])")
SHA256=$(python3 -c "import hashlib; print(hashlib.sha256(bytes.fromhex('$MSG')).hexdigest())")
SHA3=$(python3 -c "import hashlib; print(hashlib.sha3_256(bytes.fromhex('$MSG')).hexdigest())")
KECCAK=$(python3 -c "
import json, urllib.request, base64
d=json.load(open('/tmp/golden_params.json'))
body={'jsonrpc':'2.0','id':'v','method':'query','params':{'request_type':'call_function','finality':'final','account_id':'scp144.near','method_name':'keccak256','args_base64':base64.b64encode(json.dumps({'hex':d['msg']}).encode()).decode()}}
req=urllib.request.Request('https://rpc.mainnet.fastnear.com',data=json.dumps(body).encode(),headers={'Content-Type':'application/json'})
r=json.loads(urllib.request.urlopen(req,timeout=20).read())
res=r.get('result',{}).get('result')
import re
print(re.search(r'\"([0-9a-f]{64})\"', bytes(res).decode()).group(1))
")
ML_PK=$(cat /tmp/demo4_ml_pk.txt)
ML_SIG=$(cat /tmp/demo4_ml_sig.txt)
ED_PK=$(cat /tmp/demo4_ed_pk.txt)
ED_SIG=$(cat /tmp/demo4_ed_sig.txt)
SLH_PK=$(python3 -c "import json; print(json.load(open('/tmp/golden_params.json'))['slh_pk'])")
SLH_SIG=$(python3 -c "import json; print(json.load(open('/tmp/golden_params.json'))['slh_sig'])")
PK3=$(python3 -c "import json; print(json.load(open('/tmp/golden_params.json'))['pk3'])")
SIG3=$(python3 -c "import json; print(json.load(open('/tmp/golden_params.json'))['sig3'])")
LOG=/tmp/FULL_MATRIX_DEMONSTRATION_LOG.txt
: > "$LOG"
run() { # run <label> <args-json>
local label="$1" args="$2"
echo "=== $label ===" >> "$LOG"
(echo "y"; sleep 1; echo "y") | NEAR_MAINNET_RPC="https://rpc.mainnet.fastnear.com" \
near call scp144.near matrix_lane "$args" --accountId jollydragonroger.near \
--gas 300000000000000 --deposit 0 --networkId mainnet > /tmp/demo4_step.txt 2>&1
local tx=$(grep -oE "Transaction Id [A-Za-z0-9]+" /tmp/demo4_step.txt | head -1 | awk '{print $3}')
local state=$(grep -oE "state: '[A-Z]+'" /tmp/demo4_step.txt | head -1)
echo "TX: $tx" >> "$LOG"
echo "RESULT: $state" >> "$LOG"
echo "$state"
}
echo "THE FULL-MATRIX DEMONSTRATION — EVERY ENCRYPTION TYPE, ONE SESSION" >> "$LOG"
echo "session: $SID" >> "$LOG"
echo "message: the golden vector (ZEDEI settles under the kernel-1 post-quantum matrix)" >> "$LOG"
echo "" >> "$LOG"
echo "--- LANE 0 — SHA-256 (FIPS 180-4) ---" >> "$LOG"
run "lane 0" "{\"id\":\"$SID\",\"lane\":0,\"kind\":1,\"data_hex\":\"$MSG\",\"expect_hex\":\"$SHA256\"}"
echo "--- LANE 1 — SHA3-256 (FIPS 202) ---" >> "$LOG"
run "lane 1" "{\"id\":\"$SID\",\"lane\":1,\"kind\":2,\"data_hex\":\"$MSG\",\"expect_hex\":\"$SHA3\"}"
echo "--- LANE 2 — Keccak-256 ---" >> "$LOG"
run "lane 2" "{\"id\":\"$SID\",\"lane\":2,\"kind\":4,\"data_hex\":\"$MSG\",\"expect_hex\":\"$KECCAK\"}"
echo "--- LANE 3 — Ed25519 ---" >> "$LOG"
run "lane 3" "{\"id\":\"$SID\",\"lane\":3,\"kind\":3,\"pk_hex\":\"$ED_PK\",\"sig_hex\":\"$ED_SIG\",\"msg_hex\":\"6c616e652d32\"}"
echo "--- LANE 4 — ML-DSA-87 (FIPS 204, post-quantum) ---" >> "$LOG"
run "lane 4" "{\"id\":\"$SID\",\"lane\":4,\"kind\":5,\"pk_hex\":\"$ML_PK\",\"sig_hex\":\"$ML_SIG\",\"msg_hex\":\"$MSG\"}"
echo "--- LANE 5 — SLH-DSA-SHAKE-256s (FIPS 205, post-quantum) ---" >> "$LOG"
run "lane 5" "{\"id\":\"$SID\",\"lane\":5,\"kind\":7,\"pk_hex\":\"$SLH_PK\",\"sig_hex\":\"$SLH_SIG\",\"msg_hex\":\"$MSG\"}"
echo "--- LANE 6 — the pqm MATRIX dual (both post-quantum halves) ---" >> "$LOG"
run "lane 6" "{\"id\":\"$SID\",\"lane\":6,\"kind\":8,\"pk_hex\":\"$PK3\",\"sig_hex\":\"$SIG3\",\"msg_hex\":\"$MSG\"}"
echo "--- LANE 7 — SHA3-256 (the second digest) ---" >> "$LOG"
run "lane 7" "{\"id\":\"$SID\",\"lane\":7,\"kind\":2,\"data_hex\":\"$MSG\",\"expect_hex\":\"$SHA3\"}"
echo "" >> "$LOG"
echo "=== THE SEAL ===" >> "$LOG"
(echo "y"; sleep 1; echo "y") | NEAR_MAINNET_RPC="https://rpc.mainnet.fastnear.com" \
near call scp144.near matrix_seal "{\"id\":\"$SID\"}" --accountId jollydragonroger.near \
--gas 100000000000000 --deposit 0 --networkId mainnet > /tmp/demo4_seal.txt 2>&1
TX=$(grep -oE "Transaction Id [A-Za-z0-9]+" /tmp/demo4_seal.txt | head -1 | awk '{print $3}')
echo "TX: $TX" >> "$LOG"
grep -E "state|lanes_passed|density|tier|fold" /tmp/demo4_seal.txt >> "$LOG"
echo "DEMONSTRATION COMPLETE — the log: $LOG"
FULL_MATRIX_DEMONSTRATION_LOG.txt
上記スクリプトが書き出したログ本体。8 レーンすべてが TRUE、シールトランザクション 7emQZNJU1aczdpkHmbRJ4ogrxNmY5Sk56gEZFxSRez1Z で state: TRUE、lanes_passed: 8、tier: 5、density: 1/1 となっている。末尾の「THE PRACTICAL APPLICATION」の節はスクリプトにこれを出力するコードがなく、後から追記されたものである。そこに記載されたトランザクション AerthyJFr1B3QTipxUAqCQfHtpS2YVgkPhhUkodxGqSt は、別セッション(デモ 5)の matrix_probe であり、その生ログは第 25 章に掲載する。
- バイト数:1,851
- SHA-256:
0f6a13bbd3418e90cce9148a0e4ba073430bf780f7ad1a69c565e8d55f67b051
THE FULL-MATRIX DEMONSTRATION — EVERY ENCRYPTION TYPE, ONE SESSION
session: 7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a
message: the golden vector (ZEDEI settles under the kernel-1 post-quantum matrix)
--- LANE 0 — SHA-256 (FIPS 180-4) ---
=== lane 0 ===
TX: 7dwJMciZiCzhEpm7KvN9ksTEmD83nm8KxX8QK5CXyTCB
RESULT: state: 'TRUE'
--- LANE 1 — SHA3-256 (FIPS 202) ---
=== lane 1 ===
TX: 99JPpk3W7WdMKetvB98TDRNQ1QH73NqSDwjyzqE9arVb
RESULT: state: 'TRUE'
--- LANE 2 — Keccak-256 ---
=== lane 2 ===
TX: 9bWNWXmTAcfePS79Sg2pGDmSCwgaYL6cSnKKxsvh49Xr
RESULT: state: 'TRUE'
--- LANE 3 — Ed25519 ---
=== lane 3 ===
TX: Ghebi1F9mjmL5hsSZovxxUGpCMSjcECWsH5msfY5JGig
RESULT: state: 'TRUE'
--- LANE 4 — ML-DSA-87 (FIPS 204, post-quantum) ---
=== lane 4 ===
TX: DNknTZJqexzSdU5Frv9sJzxYWLm9x23yy9tnJN8vxeDx
RESULT: state: 'TRUE'
--- LANE 5 — SLH-DSA-SHAKE-256s (FIPS 205, post-quantum) ---
=== lane 5 ===
TX: Fd1GuueGpbiYvczA9wQF3LMKxTHnYDYuS2qUTYGoqo1Z
RESULT: state: 'TRUE'
--- LANE 6 — the pqm MATRIX dual (both post-quantum halves) ---
=== lane 6 ===
TX: H3bS8u9WEeLcEeUxxq9z7FS567NFHLpwNQTjH6TV8YYV
RESULT: state: 'TRUE'
--- LANE 7 — SHA3-256 (the second digest) ---
=== lane 7 ===
TX: Cc4amhCuQzWsk18ffLM8SGTEaME85fqUNszuwwtqaFLF
RESULT: state: 'TRUE'
=== THE SEAL ===
TX: 7emQZNJU1aczdpkHmbRJ4ogrxNmY5Sk56gEZFxSRez1Z
state: 'TRUE',
fold: 'ff26a9174e28383524340d1d3f99f5652e6a0a140d3d6f6871a1b533c4ff4f60',
lanes_passed: 8,
tier: 5,
density: '1/1'
=== THE PRACTICAL APPLICATION (the external integration) ===
=== matrix_probe: the on-chain NEAR price feed through the matrix ===
TX: AerthyJFr1B3QTipxUAqCQfHtpS2YVgkPhhUkodxGqSt
RESULT: the probe fired; the external device's arg dialect differs (recorded, fail-closed NEITHER)
NOTE: the fail-closed property demonstrated — an unsettled lane cannot seal TRUE
demo4_step.txt
スクリプトはレーンごとにこのファイルを上書きするため、最後のレーン 7(SHA3-256)の生出力のみが残っている。height 136 のイベントの digest(ff26a917…)は、次のシール結果の fold と同じ値である。
- バイト数:862
- SHA-256:
c99dd7951b2547b51abda8e144e2964467fbd73c5c837b3c1f7fc16d5006bf05
Scheduling a call: scp144.near.matrix_lane({"id":"7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a","lane":7,"kind":2,"data_hex":"5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978","expect_hex":"566ea1e4be5ec2f07e8b2a34840b5a9a65ca98fd8e4cde8e1c975a04afb8dfd7"})
Receipt: F9WN9ni92GQX4Kw1PAC6noQzsuo1RECez5zZkbZQTPhh
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":136,"op":5,"digest":"ff26a9174e28383524340d1d3f99f5652e6a0a140d3d6f6871a1b533c4ff4f60","head":"423570f3735fcac343e27b2ca02d90be819d09e78bbd72b85b9c48a2658593e9"}]}
Transaction Id Cc4amhCuQzWsk18ffLM8SGTEaME85fqUNszuwwtqaFLF
Open the explorer for more info: https://www.nearblocks.io/txns/Cc4amhCuQzWsk18ffLM8SGTEaME85fqUNszuwwtqaFLF
{ lane: 7, state: 'TRUE', code: 1 }
demo4_seal.txt
matrix_seal の生出力。height 137、op 6。lanes_passed: 8、lanes_required: 8 で state: TRUE となった。
- バイト数:860
- SHA-256:
4c6fe84e7c763061d4b7d5fbffd2fc698b643b32949ec9673c2e70705297c792
Scheduling a call: scp144.near.matrix_seal({"id":"7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a"})
Receipt: 8uWNheRQyNeWMF9xNb5PSuBQpAoh8JZw5hHnJ2s8bwVY
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":137,"op":6,"digest":"bf6026a6e89ac968066467543138bab26944f3298c91df1948251add0a678690","head":"9f6002825395279cd98a434cb97f8a035eec39e0ea0e45f6c1137f45f79b3dcd"}]}
Transaction Id 7emQZNJU1aczdpkHmbRJ4ogrxNmY5Sk56gEZFxSRez1Z
Open the explorer for more info: https://www.nearblocks.io/txns/7emQZNJU1aczdpkHmbRJ4ogrxNmY5Sk56gEZFxSRez1Z
{
id: '7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a',
state: 'TRUE',
code: 1,
fold: 'ff26a9174e28383524340d1d3f99f5652e6a0a140d3d6f6871a1b533c4ff4f60',
lanes_passed: 8,
lanes_required: 8,
tier: 5,
density: '1/1'
}
demo4_probe.txt
シール後に、同じセッションのレーン 4 へ matrix_probe を試みたログ。コントラクトは zedei: session sealed で panic し、トランザクション 4WuERAGRn1o5j84xCdGfBfqQEsWd85jHV2rgGyJPrhQQ は失敗している(ガス消費 319,360,540,455)。シール済みのセッションには追記できないことを示す。near-cli のヘルプ表示とスタックトレースも原文のまま掲載する。
- バイト数:2,963
- SHA-256:
d3b3e17d3eb2588328dabcbbbecdba9a6c4da1b0f05840814d350b410a0ea85e
Scheduling a call: scp144.near.matrix_probe({"id":"7f9df02a3fe4506a348994c4b29467d31614101817afd5d537557bcf35efbb8a","lane":4,"dev":"oracle_pc","method":"price","args":{"asset":"NEAR"},"expect_sha256":"7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451 "})
Receipt: 5BPtWA4d5S7W6rNEHYJUccNhSxoHVrNBtvMnz8NDweyf
Failure [scp144.near]: Error: {"index":0,"kind":{"index":0,"kind":{"FunctionCallError":{"ExecutionError":"Smart contract panicked: zedei: session sealed"}}}}
near call <contractName> <methodName> [args]
Call method in smart contract
Options:
--help Show help [boolean]
--version Show version number [boolean]
-v, --verbose Prints out verbose output [boolean] [default: false]
--useAccount, --accountId Account that will execute the actions [string] [required]
--signWithLedger, --useLedgerKey Use Ledger for signing [boolean] [default: false]
--ledgerPath HD key path [string] [default: "44'/397'/0'/0'/1'"]
--networkId Which network to use. Supports: mainnet, testnet, custom [string] [default: "testnet"]
--gas Max amount of gas this call can use (in gas units) [string] [default: 30000000000000]
--deposit, --amount Number of tokens to attach (in NEAR) to a function call [string] [default: "0"]
--depositYocto Number of tokens to attach (in yocto NEAR) to a function call [string] [default: null]
--base64 Treat arguments as base64-encoded BLOB. [boolean] [default: false]
--privateKey AccessKey to use in the call [string] [default: null]
ServerTransactionError: {"index":0,"kind":{"index":0,"kind":{"FunctionCallError":{"ExecutionError":"Smart contract panicked: zedei: session sealed"}}}}
at parseResultError (/opt/homebrew/lib/node_modules/near-cli/node_modules/@near-js/utils/lib/errors/rpc_errors.js:31:29)
at Account.<anonymous> (/opt/homebrew/lib/node_modules/near-cli/node_modules/@near-js/accounts/lib/account.js:123:56)
at Generator.next (<anonymous>)
at fulfilled (/opt/homebrew/lib/node_modules/near-cli/node_modules/@near-js/accounts/lib/account.js:5:58)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
type: 'ActionError',
context: undefined,
index: 0,
kind: { index: 0, kind: { FunctionCallError: [Object] } },
transaction_outcome: {
block_hash: 'GTFRyaXKwjKZtVBN4eLQd7GZXa67YRSHQ5W1X85UurbZ',
id: '4WuERAGRn1o5j84xCdGfBfqQEsWd85jHV2rgGyJPrhQQ',
outcome: {
executor_id: 'jollydragonroger.near',
gas_burnt: 319360540455,
logs: [],
metadata: [Object],
receipt_ids: [Array],
status: [Object],
tokens_burnt: '31936054045500000000'
},
proof: [ [Object], [Object], [Object] ]
}
}
20. ターミナルログ:144 レーン・マトリクスと中断からの再開
本章は、11.2 節で「144 レーンのセッションが TRUE、ティア 11 でシールされた」と記したセッション 93813f527f90b385b36b7281c72cf177056a4588b185b58292cb360da41a4d19 のログである。必須マスクは ffffffffffffffffffffffffffffffffffff(144 ビットすべて)。各レーンは 1 トランザクションずつ書き込まれ、実行は途中で一度中断されている。
mx144_part1_before_interrupt.log
中断前の経過を記したファイル。ファイル自身が述べているとおり、最初の実行ではローカルのログバッファがディスクに書き出される前にプロセスが停止したため、これは中断時点のオンチェーン状態(matrix_get で取得した書き込み済みマスク ffffffffffffffffffffff07000000000000、レーン 0〜90 の 91 レーンがすべて TRUE)をもとに、事後に記述した要約である。生のターミナル出力ではない。
- バイト数:1,275
- SHA-256:
76d163cd110e3a06a4590a031d93639535696853dcac3afd313b5a16ae8fc012
THE 144-LANE MATRIX — PART 1: BEFORE THE INTERRUPT
session: 93813f527f90b385b36b7281c72cf177056a4588b185b58292cb360da41a4d19
required: ffffffffffffffffffffffffffffffffffff (all 144 lanes)
THE RUN: the first script fired lanes 0-90 (SHA3-256 of each lane byte,
kind 2 — the proven test pattern), one transaction per lane.
THE INTERRUPT: the run was cancelled mid-flight. The local log buffer
was lost (Python's buffered writes never flushed to disk — the file was
empty after the kill).
THE ON-CHAIN TRUTH (what the interrupt left behind — verified via
matrix_get at the resume moment):
written: ffffffffffffffffffffff07000000000000 (the 144-bit mask)
lanes written: 91 (0-90)
states: 01010101... (all TRUE — every written lane verified)
THE PARACONSISTENT PROPERTY (demonstrated by the interrupt itself):
- each lane is written ONCE (write-once — "lane already decided"
refuses a rewrite)
- the session persisted on-chain through the interrupt — nothing was
lost, nothing needed redoing
- the container sat NEITHER (unsettled) — a partial matrix cannot
seal TRUE, and cannot be forced
- the resume picked up at lane 91 — the exact next lane, no rework
PART 1 END — 91/144 lanes TRUE, the session held, awaiting the resume.
mx144_part2_after_interrupt.log
再開時のログ。冒頭にレーン 1、9〜19、90 の TRUE 行(トランザクションハッシュ付き)があり、続いてレーン 91〜143 が ERR none(トランザクションが記録されなかった試行。原因はログに記録されていない)、その後にレーン 91〜143 が TRUE(トランザクションハッシュ付き)、最後にシールトランザクション 5Z2z2wa5FKoJ5r8FD9f3gPsN39uushWE4uSR8rNCizN2 で lanes_passed: 144、tier: 11、density: 1/1 となっている。
- バイト数:5,489
- SHA-256:
cbf726b343c88cf6d97bf21a9614830f97851d10bb636006690235d86d0ca912
mx144_part2_after_interrupt.log の全文を表示(5,483 文字)
THE 144-LANE MATRIX — PART 2: AFTER THE INTERRUPT (THE RESUME)
session: 93813f527f90b385b36b7281c72cf177056a4588b185b58292cb360da41a4d19
THE RESUME: verified lanes 0-90 via matrix_get (the on-chain mask —
part 1's work persisted), then fired lanes 91-143, one transaction per
lane, moderated RPC (0.7s between calls — no rate limits).
lane 1: TRUE HZDCaUS7zdqNcq1uYkAeKXbEtvrPuY6rhkq2tVhGWSSZ
lane 9: TRUE HoiGirCDWMUD9WKREmeEcEB7gYMwhZ4VHRDBgb4evUhE
lane 10: TRUE 4yfRfE2kPwkbu11CbQ9gLcVv6iXTNw8za8i5fMavFLpG
lane 11: TRUE 2F16Hv85se8n6gPNfeWc2jgymzRi2KDk6Q9YFSUbpNjH
lane 12: TRUE 2gZx4KyKf1kniU2JSaHv9nFbM8GcFQYPcoVrMTDhstHT
lane 13: TRUE 4eLvAQx62tX9qGCU5ax8haPu2QB1LCpCUXPTWpVMbt38
lane 14: TRUE 5TyYjwi5qht1pLdrNnvsNg1yjZhQkdjuDmRoRb96ksyY
lane 15: TRUE 9CccDGshR3Pk9FGzGbAdsQMFqe8A3vP2dE24Rj5GeWaP
lane 16: TRUE 6yEpUcr47yK8WNt9YrnXZKDHncaKD4nwogYLYhuDsyq5
lane 17: TRUE 6JePPSN1U61PkeBG4KUutTHnAySL2TL4DWSxorgog4fy
lane 18: TRUE 3kqNiqd9ZLxiTC1wqHcSJrcCsj3JUQxSRC5p5w39WHUm
lane 19: TRUE 2mf22U8su4vMHmw4z7KD2hPp56w1ABbEtF8ow2LhLJWt
lane 90: TRUE FX4hw86FWaLmyUNzucAh9ar3jhiGSg2jiCQ27nrMT2B8
lane 91: ERR none
lane 92: ERR none
lane 93: ERR none
lane 94: ERR none
lane 95: ERR none
lane 96: ERR none
lane 97: ERR none
lane 98: ERR none
lane 99: ERR none
lane 100: ERR none
lane 101: ERR none
lane 102: ERR none
lane 103: ERR none
lane 104: ERR none
lane 105: ERR none
lane 106: ERR none
lane 107: ERR none
lane 108: ERR none
lane 109: ERR none
lane 110: ERR none
lane 111: ERR none
lane 112: ERR none
lane 113: ERR none
lane 114: ERR none
lane 115: ERR none
lane 116: ERR none
lane 117: ERR none
lane 118: ERR none
lane 119: ERR none
lane 120: ERR none
lane 121: ERR none
lane 122: ERR none
lane 123: ERR none
lane 124: ERR none
lane 125: ERR none
lane 126: ERR none
lane 127: ERR none
lane 128: ERR none
lane 129: ERR none
lane 130: ERR none
lane 131: ERR none
lane 132: ERR none
lane 133: ERR none
lane 134: ERR none
lane 135: ERR none
lane 136: ERR none
lane 137: ERR none
lane 138: ERR none
lane 139: ERR none
lane 140: ERR none
lane 141: ERR none
lane 142: ERR none
lane 143: ERR none
lane 91: TRUE 998x5vFRMfwpt6Yfk6ACYC4UgBNaRGRTy6cvw1oxmF2L
lane 92: TRUE 85QrnoTsaC9J16CxTQgsv5CNVZN5xnKCjbMmoo6Z1uzL
lane 93: TRUE 9bPdbgdS8pdqAwB8Na1cdYxPrMjNdGj4CbFncfgLxFqV
lane 94: TRUE CitVJTnyidA994UkxHveUHk7t7Ds43uKv7ryjnA2KLE4
lane 95: TRUE 5cWpYnzudPVdjcnUQNACmMbiWWSs62x7biPmE5VZ9gC4
lane 96: TRUE HYWBPZgvi84S4utqdKtgFCKTC49fTANtGEdXcr7iVWxQ
lane 97: TRUE 4C8yiLgma3EHpgyddiHGWVPPAa6Tehu5aJmJWstMNBrn
lane 98: TRUE 8vjAXdmgBYZA1UgGnDxjaEe53yUSySKgBou4JMtr6QXG
lane 99: TRUE EfkJNMKeEzUihudG8TJNPAbcxVgKstRk3LVwNGoqvNh6
lane 100: TRUE 9ePVyU9h5hJF66JASFCJ2nbkNP3gfyqP5cevfuPCLwhp
lane 101: TRUE 9Qi3ycHe1Tr9CynaoK8VKUb1JhifVKTgixLGVanY7bYZ
lane 102: TRUE 9ZPmPwdx1vHAwFXDwYrnnbh66N455NMzspwrgG7fczPK
lane 103: TRUE 8uoGdbMDCPLYoCp4zjc83BtJqEX3HriCKARGANSLdjZn
lane 104: TRUE 4CGuyeALocWxBb6tkejAkrQPsTrLjrPuEbMhUW1TJeRx
lane 105: TRUE DnehwLEbHJevXt1DjLfeYJGyNwLN67f7RrnAbq4TSZjf
lane 106: TRUE 3rDh36CK2UagYAEsn8YPi19boy4SmNucrBLuBaw2rBtF
lane 107: TRUE FX2xeFdVr9oaKG8EkgumMaXC6aM1kQGAxpA8qHS4ofxU
lane 108: TRUE 7Jj5izVuUrrBzJR9ERUecKwgqkM4GS6vqHnuJ38tZic6
lane 109: TRUE 74xFnYRRwHefzAYwRq3DR2nnUaxRvbeb3yZyiHLrRBoq
lane 110: TRUE AvpWP7kmcCtEixwVMrBo3GC5pzbBC2MJi24yWEPekezD
lane 111: TRUE Du6akhesLhNcc5NZz76uuzH1SxeU3xHrRScbxKL69exs
lane 112: TRUE 27VbiEe7NpEcpb15TevHmKJLDdit4KD6TxJaZmVyjLgo
lane 113: TRUE HaQtKn9itrzrmwTBRjXAkeCNtrHhTcvPtGGE5zbZnHqf
lane 114: TRUE EUny7ufQTWYTGKvcf36XAjynM6tEQws9dzmxfdqUbtD8
lane 115: TRUE 4t4NGRgs5egwUJEj64u96zUnWoD5nEiKXrnYu5VqNS51
lane 116: TRUE HuatXjYvUQNHVsC3CSY3RR7w9iDRXcUYy5FiQ7NiLgXM
lane 117: TRUE 59P5nvEQ25jMdnHbPCnEtHwbqJBUbWjgEyMBX5cAkUaC
lane 118: TRUE 9sVxqvoDQDAc7FWT5iWfvgbKdhi5ZoNjrXyKxyN6UG74
lane 119: TRUE Aqm18nz83o9ZvEUNgbbAsKFtm48T9GAoBCLDFSiznKKo
lane 120: TRUE 3j8L5QKvyS5jsp5Bzri6rKA752GLDC7fsgoftUtxkgrr
lane 121: TRUE 4TodkaiEiVHJuCXswJqTZgxwDbDG78VGQ6y7Cx7NMpEK
lane 122: TRUE 9i3o3t84FzA7wj32LQ8vxayq8dcFUPdFCHyks1tvZK7w
lane 123: TRUE 4m7TsST2VQSYQNEWSgC7sgAJT5h7rYwrc8unyWfPtmgf
lane 124: TRUE Gxp4m2p4yff4dizkbkurZeMSjh14ULESd6vanReDgo3X
lane 125: TRUE 5reo8hAAZ8tJQRgRJ6UsDrEUfzExDtu6955GJQ5WUiHQ
lane 126: TRUE 9ePVcShaBiD3K9J7hJ2pcqMDddqfSK6fJ8XZXaYgdnQd
lane 127: TRUE hfbQrduzFfwD69i81g52cGR5tHRznHjBTQC1EB9Bt9a
lane 128: TRUE BobJvKVKUHBz1pVt2Wid6U15eBmnyYgivnJBxXw5gE9o
lane 129: TRUE 9VqQkqMPkbR7ovuErkx9dcMGAAeFVXxUVQbEA9Crgvsd
lane 130: TRUE BVBEYVYuVicB8M1qgTYmmiCMmKGKkmveiVM88Uvn3jcD
lane 131: TRUE ERrsYdgt7huC3BKenMEPshm9ZqBgnjKMby8hXKNsVLrx
lane 132: TRUE D9auVGQDEbjer7nTHHUQqiQCL6nNL1DG15zqLjWypwTU
lane 133: TRUE EBWN3Fk4tRCKGP6TtnawWztmbqjRr94iP5jYuDGppRsG
lane 134: TRUE 3L36kp3mvv2JAnj6wQKCkkt92yoLXooWnNV2Ns3zmygZ
lane 135: TRUE HptdskUyxdrfoLaguf1LJtYkP3zk8Cjqqnn3HVi9zzhY
lane 136: TRUE 4qgjm7F7YidNhMsZ61J6usd3fCXkqR6FP5ootgyUJRP4
lane 137: TRUE JB6JPmJ6x9B16dV65qyjAg4XGEnoWV4LeLkcHf1XLYcs
lane 138: TRUE JhTPQLbcwwNE8CQNaM271pMrEU8kt3ogiENLVA3atFb
lane 139: TRUE BnPsiaAAY3F5MAk6kC2dDuKZFRKspVaxqNgXtFZiecLS
lane 140: TRUE 4if9EKCDcZ14TJr5gT8SBvMcLxFUZ3r3xDvz9u8Mk5Nv
lane 141: TRUE FVmxZxX3QHKQeLn7GXB75TVbZnAsBMrz8QpauSgca7TT
lane 142: TRUE 7DWVsosGWZZsyCQTgXpFownNscWW4hYHogjhZbeBNw3F
lane 143: TRUE 49DpPqX7Ku8tiAxzeLZQyTEkgg4rLhC2gy4JNQhupMNe
seal TX: 5Z2z2wa5FKoJ5r8FD9f3gPsN39uushWE4uSR8rNCizN2
state: 'TRUE',
fold: '6bdf6db994b43fd83b53364a65462f6898a41987834ca97ff8fce0c530766e5d',
lanes_passed: 144,
tier: 11,
density: '1/1'
RESULT: lanes TRUE 144/144
mx144_lanes.log
このセッションの通しのレーン記録。レーン 0〜90 の TRUE とトランザクションハッシュ、lanes TRUE: 91/144 の行、レーン 91〜143 の ERR none、レーン 91〜143 の TRUE とトランザクションハッシュ、そしてシール結果の順に並ぶ。各レーンのトランザクションは nearblocks.io で個別に確認できる。
- バイト数:9,869
- SHA-256:
02f64ddeb77254ae12cd4f073db9e6c0a7ece6733df311c302c413f0697836e0
mx144_lanes.log の全文を表示(9,867 文字)
THE 144-LANE MATRIX — session 93813f527f90b385b36b7281c72cf177056a4588b185b58292cb360da41a4d19
lane 0: TRUE Cn1kNtxhcN5LCXMWAFweE2EmTx3T2nhQ2nc5DemREwx4
lane 1: TRUE HZDCaUS7zdqNcq1uYkAeKXbEtvrPuY6rhkq2tVhGWSSZ
lane 2: TRUE 5a7snVxNfQVgPdJLKG89NhnLt9YSz3UakQBmc7JuKxT6
lane 3: TRUE GEeuaVeX6bqxq6RHpLuag4YoX8m8KLdHWDyJxsFKFazh
lane 4: TRUE iUTwZRer1ccfQkAeEUv1WfNgGyWEJtnY4dXubeAUu1Z
lane 5: TRUE iK75C6BxAxx5ACf4xXtccks8QxA8ER4qKJWFa7REg8R
lane 6: TRUE Cn4aPMcQ2JWSGZRFpgrypJiiU9DJEuwyyqfkz7nxxuKR
lane 7: TRUE 8f7hpCaCu5hDxySVe4MfSRdRWKKngCcNzSLYkZs6rkyh
lane 8: TRUE 4yXkHa6nt4KWC5iqQzP3pTJjx6ragrgynRQBxZ4XxAzb
lane 9: TRUE HoiGirCDWMUD9WKREmeEcEB7gYMwhZ4VHRDBgb4evUhE
lane 10: TRUE 4yfRfE2kPwkbu11CbQ9gLcVv6iXTNw8za8i5fMavFLpG
lane 11: TRUE 2F16Hv85se8n6gPNfeWc2jgymzRi2KDk6Q9YFSUbpNjH
lane 12: TRUE 2gZx4KyKf1kniU2JSaHv9nFbM8GcFQYPcoVrMTDhstHT
lane 13: TRUE 4eLvAQx62tX9qGCU5ax8haPu2QB1LCpCUXPTWpVMbt38
lane 14: TRUE 5TyYjwi5qht1pLdrNnvsNg1yjZhQkdjuDmRoRb96ksyY
lane 15: TRUE 9CccDGshR3Pk9FGzGbAdsQMFqe8A3vP2dE24Rj5GeWaP
lane 16: TRUE 6yEpUcr47yK8WNt9YrnXZKDHncaKD4nwogYLYhuDsyq5
lane 17: TRUE 6JePPSN1U61PkeBG4KUutTHnAySL2TL4DWSxorgog4fy
lane 18: TRUE 3kqNiqd9ZLxiTC1wqHcSJrcCsj3JUQxSRC5p5w39WHUm
lane 19: TRUE 2mf22U8su4vMHmw4z7KD2hPp56w1ABbEtF8ow2LhLJWt
lane 20: TRUE EkM7zHBhDrJriSKn8yKaiCYXVPeA73whgRFggeaadPCG
lane 21: TRUE BLPv41LUnbrHd5rXku3QUH3dsbuFGgSYE1doE2pVB4fm
lane 22: TRUE GLSBfXmPD4YH8yCQxgxMWyXtTzwwQVTBjpmaj36WXJAH
lane 23: TRUE EsNs37TkkZAKsVYhD7jv1v2khfpBbAVhUmu7YiKXrk7j
lane 24: TRUE 42hzjRom16HSRBYMYepKDYHG3NHZNZpUWduy3pPeYbhG
lane 25: TRUE 24Kub6ZfDmWJtubrpdhvaUJkRztqkpkMnwrmCDWD4MjW
lane 26: TRUE 8UMNBGjsUDax5qghH96HBvi4S6jWwvkzDnjk1zMxSR6E
lane 27: TRUE 3cZRHjmjfKiR5nb5SXXLwawr3S25UxiDv923PxxW9Bir
lane 28: TRUE DtMNGTAywEppR9mURdxL6Z11F42YfT6rwno5qT2MKNQU
lane 29: TRUE E2tsRXEmJUW6nF91u7VH8m5nwVtJAVihXQcj7JXWWYz9
lane 30: TRUE BFJXo7f8t888LpFmdmetATqRqPcCHnKVLPrfgAjBL2Cq
lane 31: TRUE Cf4BfQmoss7JNv9U2mtD7uegxWKc7vaz9182WrNKynzA
lane 32: TRUE 4FxTCvvNMuHwuEcweh5L2JjNqcGw5EHMCNuaJmRNtJYh
lane 33: TRUE FYzWB3vwN3TAvvGGtGde8BjpHSdvak8Pq8QpT1RHLPjT
lane 34: TRUE HkYnkQGwESEM82ruUAS1UHc66MXLHnxzRsv6xHvAKiUr
lane 35: TRUE 8M4X1Cxqg7pP81bkvPoJLjhwseVR3Ti6xGHb7h9WXqji
lane 36: TRUE CYJgbQXy6ZUHD76W3o9sYAUcoB1HfDv6PbHtnJpZMUfZ
lane 37: TRUE CLiZdxKnN3UvfCCxgKbhkfiWTbAiHCjBJHE55wg3zUqc
lane 38: TRUE Bc9rSVJBCSzzedSDgkXRP1P3i9BhBNvN3cLSQRKuwYjC
lane 39: TRUE G2zegoPPvNvhusN5k7FihBp4zDLj19L26ojRK2Ppgaqr
lane 40: TRUE ExjW4XbwMG66Ywyk7sswS6JeQn8ykcgcbzDRhKdeEDBb
lane 41: TRUE GnZumMkN3DqZuzMn2PSp1LVPM6i7rVK2hDQvZ2DK1TRz
lane 42: TRUE Awqmcc8Qx8rdC7Y3Z2sAj3PHnyTdKL46z7esN5BYvACo
lane 43: TRUE 4UA9eiXM3dxuqddmCaop2jXWZ1zvGAftHEDhkooRedTe
lane 44: TRUE FVJBJDpQHWJ2Sz1K4q9uvvAYNuVKRbFY5F2xgpFYjUSF
lane 45: TRUE 7TNjPbWjM7JTktzzx5e6egEsn3nxV4hbYUVH67JwTj3n
lane 46: TRUE CQaRaYUkrQCsYWiWD5kf2iQXZG9ob2ec3SfRRvsVGERt
lane 47: TRUE FSwY9wYiPWCU4DBGdeFB2TaSCfXcQKWdD5Uhw36jWFNS
lane 48: TRUE 6ss9JEwtekkTYQBM2WMoZBwuroackSZzCzeCfwEXjGDg
lane 49: TRUE 4L7r9NwRtUpSjWQRDWJ3PLkpFFzmm5vQtczbC2vyQ3HD
lane 50: TRUE 8HMdC7eSBr4J5KuJTJQ2XLiRPpGTLWM5nS8GYWeET15T
lane 51: TRUE BbU8rCWwgGsfwXwk87HMURuDtV68cGzC13zac9CvoAtM
lane 52: TRUE 7eW3GJSB9g8h1bVoV7iFbURdtNL6kBZfFaVQHe2rDn3U
lane 53: TRUE 2ENhW6GeNJiXiXg81bEM8LaM8hvQyA86QpqEs7SUFp7X
lane 54: TRUE 7em53xPfZnTPCReScnRBVuNvkevcp8GevTKxkonR9Ti2
lane 55: TRUE 7rgNGqeXwQaR9ZUD2mGs1SJJxsZ58qFWdXJ1WvG5WjVh
lane 56: TRUE 3wnUSVAcSME86zw1KtjPCeuH4SMLH1xceLUvavweB7Nz
lane 57: TRUE BeUHDG5eX3c3FhEXGNGfxnm4uDg2BAuY1ynGkeXptHPV
lane 58: TRUE HrC9PkoJMpvBZEnsZvkL1uCdNSjaTDWHCoPYyVwZCgHs
lane 59: TRUE AmVArt4Wk3QHyW4rEXqkQ1HiwAsmTFacUALRYCFScXKd
lane 60: TRUE 7fSvh7T8waTs7RYR1Qn61BqrGAcoxzDGEq4mjcteLnKS
lane 61: TRUE 6LnUP7kw4ha3a5GgGTkfT3csRjDt6JxLLSUGEZK6tgHa
lane 62: TRUE GaxrommSfUwaJboPHVUSRgj6MtneGiGcV5oaE9626ZV
lane 63: TRUE ECVijF2fhZssUcjNz7MgrzZ15HZGxHxvq3AUjFQPfQ6
lane 64: TRUE Gdbv746oDdteJs8hR4iRFPqpwwcd8RwLAM2AYfMCpykD
lane 65: TRUE AtGgTKyMDQKszS53eGbaKkv3gFMwZsfiWfAAdzAFVprR
lane 66: TRUE G1KGAJ9ATqH4iZbrzjqkPR8kdXSxpDwzYSYL7Q1SXZGc
lane 67: TRUE 6SAXMuBgFMWrr6iCNYbDTUad1GkAmN8wDiT44neiGGXk
lane 68: TRUE 3woBkL1iB2QMi35qvKiMRuU2h6JkTfQkTP1ahh6zHnsR
lane 69: TRUE 9u7uyhzNxLMriK7B8qSXivETiLcy4GkcjuAmdWHVUbxp
lane 70: TRUE Dh41h6D1J3JpwVVQMJRf7nTGTRRL7bT6nQXTEkJ9x1k5
lane 71: TRUE 2gfoBdD3kEsDWRg39noSvcc745QuZ3vbMeEK8EjzTgJ8
lane 72: TRUE 3snSo3pkTCavsz7cFUVYjwZE3xh29hv45CAcshNfPZy6
lane 73: TRUE 2gn5rGbBPr9bx5FCQ8P6YcCW6eqkBySh5VYcZCYSjXJa
lane 74: TRUE 6vzBHkihjy5dcmWjPyn7CJDeGrXFUNaRfSxJYLnJrPUi
lane 75: TRUE DyGk8ZuYGQbkQsjm6LvBeYVLB4Rgdu17QB9qi1jve9tk
lane 76: TRUE B74CCeg9HPHtvx48xRYo9RdrU52vNdnmYztgpSJ7TMUX
lane 77: TRUE 54gehYUbuowgrh7Q5RH5aJkneKR6z6LazmuyQ3wv3nAw
lane 78: TRUE HFKjXCzwciqk8kQE6heJXk1PfmNquU6zm4pU2rfNaaYk
lane 79: TRUE 7Yng7AHsw1GdCse3Cy8hGap5XTivvG2Ntgeh2JcWBVAf
lane 80: TRUE FYqbZrttrmtZjjfkGHuGcM2Pc42u4ePzm9SYxjrQijMU
lane 81: TRUE 9eDPAQ5TxfdT1o1vStqWHpi8drqpNG7LRX9BTPLyiUtn
lane 82: TRUE EkWrci1sxbZ1kY83ydVezzBnngomNojKP2T9NybM56Z5
lane 83: TRUE EEAgvXrJeUgmc9pFquBBNySuW5DhnSqccGzSrv6qm4cu
lane 84: TRUE 6s21ykF9tskDetTrgSGg42FYgYzput7k3Trrmxrv9NfY
lane 85: TRUE 5PY8h9dBjvNpDA6BzmxTdpfzjJbWqpohCZV61MjofFDS
lane 86: TRUE 8dzEmmW7A3shi61uRktiEPZiLzgu13f5VvFFENbQbm4w
lane 87: TRUE AXu3Nm5x1FqixJEHrgDNJUrJ3XQMQednXfLUN8Y1RiTR
lane 88: TRUE GF8jWTSQrcJw1WxmfpywbwBxrZBEz3hQZFSkZzG8wmqB
lane 89: TRUE 96LmcZziKw21oFots1aMVepbb5zDPoziyhqEUc5XH1tr
lane 90: TRUE FX4hw86FWaLmyUNzucAh9ar3jhiGSg2jiCQ27nrMT2B8
lane 91: ERR none
lane 92: ERR none
lane 93: ERR none
lane 94: ERR none
lane 95: ERR none
lane 96: ERR none
lane 97: ERR none
lane 98: ERR none
lane 99: ERR none
lane 100: ERR none
lane 101: ERR none
lane 102: ERR none
lane 103: ERR none
lane 104: ERR none
lane 105: ERR none
lane 106: ERR none
lane 107: ERR none
lane 108: ERR none
lane 109: ERR none
lane 110: ERR none
lane 111: ERR none
lane 112: ERR none
lane 113: ERR none
lane 114: ERR none
lane 115: ERR none
lane 116: ERR none
lane 117: ERR none
lane 118: ERR none
lane 119: ERR none
lane 120: ERR none
lane 121: ERR none
lane 122: ERR none
lane 123: ERR none
lane 124: ERR none
lane 125: ERR none
lane 126: ERR none
lane 127: ERR none
lane 128: ERR none
lane 129: ERR none
lane 130: ERR none
lane 131: ERR none
lane 132: ERR none
lane 133: ERR none
lane 134: ERR none
lane 135: ERR none
lane 136: ERR none
lane 137: ERR none
lane 138: ERR none
lane 139: ERR none
lane 140: ERR none
lane 141: ERR none
lane 142: ERR none
lane 143: ERR none
lanes TRUE: 91/144
lane 91: TRUE 998x5vFRMfwpt6Yfk6ACYC4UgBNaRGRTy6cvw1oxmF2L
lane 92: TRUE 85QrnoTsaC9J16CxTQgsv5CNVZN5xnKCjbMmoo6Z1uzL
lane 93: TRUE 9bPdbgdS8pdqAwB8Na1cdYxPrMjNdGj4CbFncfgLxFqV
lane 94: TRUE CitVJTnyidA994UkxHveUHk7t7Ds43uKv7ryjnA2KLE4
lane 95: TRUE 5cWpYnzudPVdjcnUQNACmMbiWWSs62x7biPmE5VZ9gC4
lane 96: TRUE HYWBPZgvi84S4utqdKtgFCKTC49fTANtGEdXcr7iVWxQ
lane 97: TRUE 4C8yiLgma3EHpgyddiHGWVPPAa6Tehu5aJmJWstMNBrn
lane 98: TRUE 8vjAXdmgBYZA1UgGnDxjaEe53yUSySKgBou4JMtr6QXG
lane 99: TRUE EfkJNMKeEzUihudG8TJNPAbcxVgKstRk3LVwNGoqvNh6
lane 100: TRUE 9ePVyU9h5hJF66JASFCJ2nbkNP3gfyqP5cevfuPCLwhp
lane 101: TRUE 9Qi3ycHe1Tr9CynaoK8VKUb1JhifVKTgixLGVanY7bYZ
lane 102: TRUE 9ZPmPwdx1vHAwFXDwYrnnbh66N455NMzspwrgG7fczPK
lane 103: TRUE 8uoGdbMDCPLYoCp4zjc83BtJqEX3HriCKARGANSLdjZn
lane 104: TRUE 4CGuyeALocWxBb6tkejAkrQPsTrLjrPuEbMhUW1TJeRx
lane 105: TRUE DnehwLEbHJevXt1DjLfeYJGyNwLN67f7RrnAbq4TSZjf
lane 106: TRUE 3rDh36CK2UagYAEsn8YPi19boy4SmNucrBLuBaw2rBtF
lane 107: TRUE FX2xeFdVr9oaKG8EkgumMaXC6aM1kQGAxpA8qHS4ofxU
lane 108: TRUE 7Jj5izVuUrrBzJR9ERUecKwgqkM4GS6vqHnuJ38tZic6
lane 109: TRUE 74xFnYRRwHefzAYwRq3DR2nnUaxRvbeb3yZyiHLrRBoq
lane 110: TRUE AvpWP7kmcCtEixwVMrBo3GC5pzbBC2MJi24yWEPekezD
lane 111: TRUE Du6akhesLhNcc5NZz76uuzH1SxeU3xHrRScbxKL69exs
lane 112: TRUE 27VbiEe7NpEcpb15TevHmKJLDdit4KD6TxJaZmVyjLgo
lane 113: TRUE HaQtKn9itrzrmwTBRjXAkeCNtrHhTcvPtGGE5zbZnHqf
lane 114: TRUE EUny7ufQTWYTGKvcf36XAjynM6tEQws9dzmxfdqUbtD8
lane 115: TRUE 4t4NGRgs5egwUJEj64u96zUnWoD5nEiKXrnYu5VqNS51
lane 116: TRUE HuatXjYvUQNHVsC3CSY3RR7w9iDRXcUYy5FiQ7NiLgXM
lane 117: TRUE 59P5nvEQ25jMdnHbPCnEtHwbqJBUbWjgEyMBX5cAkUaC
lane 118: TRUE 9sVxqvoDQDAc7FWT5iWfvgbKdhi5ZoNjrXyKxyN6UG74
lane 119: TRUE Aqm18nz83o9ZvEUNgbbAsKFtm48T9GAoBCLDFSiznKKo
lane 120: TRUE 3j8L5QKvyS5jsp5Bzri6rKA752GLDC7fsgoftUtxkgrr
lane 121: TRUE 4TodkaiEiVHJuCXswJqTZgxwDbDG78VGQ6y7Cx7NMpEK
lane 122: TRUE 9i3o3t84FzA7wj32LQ8vxayq8dcFUPdFCHyks1tvZK7w
lane 123: TRUE 4m7TsST2VQSYQNEWSgC7sgAJT5h7rYwrc8unyWfPtmgf
lane 124: TRUE Gxp4m2p4yff4dizkbkurZeMSjh14ULESd6vanReDgo3X
lane 125: TRUE 5reo8hAAZ8tJQRgRJ6UsDrEUfzExDtu6955GJQ5WUiHQ
lane 126: TRUE 9ePVcShaBiD3K9J7hJ2pcqMDddqfSK6fJ8XZXaYgdnQd
lane 127: TRUE hfbQrduzFfwD69i81g52cGR5tHRznHjBTQC1EB9Bt9a
lane 128: TRUE BobJvKVKUHBz1pVt2Wid6U15eBmnyYgivnJBxXw5gE9o
lane 129: TRUE 9VqQkqMPkbR7ovuErkx9dcMGAAeFVXxUVQbEA9Crgvsd
lane 130: TRUE BVBEYVYuVicB8M1qgTYmmiCMmKGKkmveiVM88Uvn3jcD
lane 131: TRUE ERrsYdgt7huC3BKenMEPshm9ZqBgnjKMby8hXKNsVLrx
lane 132: TRUE D9auVGQDEbjer7nTHHUQqiQCL6nNL1DG15zqLjWypwTU
lane 133: TRUE EBWN3Fk4tRCKGP6TtnawWztmbqjRr94iP5jYuDGppRsG
lane 134: TRUE 3L36kp3mvv2JAnj6wQKCkkt92yoLXooWnNV2Ns3zmygZ
lane 135: TRUE HptdskUyxdrfoLaguf1LJtYkP3zk8Cjqqnn3HVi9zzhY
lane 136: TRUE 4qgjm7F7YidNhMsZ61J6usd3fCXkqR6FP5ootgyUJRP4
lane 137: TRUE JB6JPmJ6x9B16dV65qyjAg4XGEnoWV4LeLkcHf1XLYcs
lane 138: TRUE JhTPQLbcwwNE8CQNaM271pMrEU8kt3ogiENLVA3atFb
lane 139: TRUE BnPsiaAAY3F5MAk6kC2dDuKZFRKspVaxqNgXtFZiecLS
lane 140: TRUE 4if9EKCDcZ14TJr5gT8SBvMcLxFUZ3r3xDvz9u8Mk5Nv
lane 141: TRUE FVmxZxX3QHKQeLn7GXB75TVbZnAsBMrz8QpauSgca7TT
lane 142: TRUE 7DWVsosGWZZsyCQTgXpFownNscWW4hYHogjhZbeBNw3F
lane 143: TRUE 49DpPqX7Ku8tiAxzeLZQyTEkgg4rLhC2gy4JNQhupMNe
=== THE SEAL ===
seal TX: 5Z2z2wa5FKoJ5r8FD9f3gPsN39uushWE4uSR8rNCizN2
state: 'TRUE',
fold: '6bdf6db994b43fd83b53364a65462f6898a41987834ca97ff8fce0c530766e5d',
lanes_passed: 144,
tier: 11,
density: '1/1'
RESULT: lanes TRUE 144/144
21. ターミナルログ:統合実証と view メソッドの全数実行
本章は、scp144.near の機能を 1 つのセッションでまとめて呼び出した統合実証と、view メソッドを順に呼び出した記録である。これらのファイルでは、多くの行が約 100 文字で途切れているが、これは元のログファイル自体がその状態であり、本書で切り詰めたものではない。
composed.log
統合実証のログ。保有者 post.jollydragonroger.near(HIGH レベルのガード)として、アイデンティティ(ガード)、FIPS 検証器、4 値論理、リファイナリー、レガシー(COBOL・FIPS)、Dragon レール、ポストオフィス、サービスバス、トリビュート、ライフサイクルの 10 区分を順に呼び出している。記録された値はそのまま掲載している。なお、このログの cobol_zoned は {"state":"FALSE"} を返しているが、呼び出し時の入力値はログに記録されていないため、11.3 節の例(入力 f1f2f3f4c5)との比較はできない。同様に zeckendorf の入力値も記録されていない。
- バイト数:3,597
- SHA-256:
db687f71fa74e007b95643583c134df4e66fb60dace2ce053ad51801f36bfcde
composed.log の全文を表示(3,570 文字)
THE COMPOSED DEMONSTRATION — every feature, paraconsistent, one session
protocol: scp144.near — LOCKED, 0 keys · the holder: post.jollydragonroger.near (HIGH guard)
=== 1. THE IDENTITY — the post-quantum guard ===
guard_get: {"state":"TRUE","enrolled":true,"level":"HIGH","post_quantum":true,"cosigner":false,"key":"015aed69a
guard_check (the guard signs the action): {"state":"TRUE","enrolled":true,"key":"TRUE","level":"HIGH","post_quantum":true,"cosigner":false,"ml
=== 2. THE CRYPTO — the FIPS verifiers ===
sha256: {"digest":"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"}
sha3_256: {"digest":"3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532"}
keccak256: {"digest":"4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45"}
shake256: {"digest":"483366601360a8771c6863080cc4114d8db44530f8f1e1ee4f94ea37e78b5739"}
bind: {"bind":"4195e060bf96aab8d2dd3126da15b6b9d2905aa8e04ce7a8ba14ce4985762a1e"}
ed25519_verify: {"state":"TRUE","code":1}
mldsa87_verify (FIPS 204): {"state":"TRUE","code":1}
slhdsa256s_verify (FIPS 205): {"state":"TRUE","code":1}
pqm_verify (the dual): {"state":"TRUE","level":"MATRIX","mldsa87":"TRUE","slhdsa256s":"TRUE","agreement":"TRUE"}
=== 3. THE LOGIC — the paraconsistent engine ===
conjoin: {"state":"TRUE","code":1}
disjoin: {"state":"TRUE","code":1}
kjoin: {"state":"BOTH","code":3}
negate: {"state":"FALSE","code":2}
is_settleable: true
=== 4. THE REFINERY — the 4096-verdict fold ===
x (the 4096-fold, raw input): acc=01 (1=TRUE) — 4111 B program
=== 5. THE LEGACY — the COBOL + FIPS systems ===
cobol_comp3: {"state":"TRUE","value":"12345"}
cobol_zoned: {"state":"FALSE"}
categorize: {"category":"HIGH"}
controls: {"fips200":"AC AT AU CA CM CP IA IR MA MP PE PL PS RA SA SC SI"}
zeckendorf: {"mask":1064,"energy":327,"tier":10}
piv_verify (FIPS 201-3): {"state":"TRUE","code":1}
=== 6. THE RAILS — the Dragon card (the guard-signed payment) ===
rail_get: {"card":"e1b726240acd5bb7c23e72b8cca66207495659e3571c9cb88d5e723e18a8043d","rail":"Dragon","state":"TRUE","hol
rail_auth_get: {"auth":"965c12ca006fcd9c5ba69640fdda2217d7324661ae3fc362bbdab4e08664bcae","state":"FALSE","code":2,"settlemen
rail_check (the Luhn): {"state":"NEITHER","rail":"none","luhn":true}
=== 7. THE POST OFFICE — the encryption channel ===
kem_get: {"state":"TRUE","guarded":"NEITHER","level":"HIGH","version":2,"published_ns":1792948905919226569,"k
hs_get (the sealed handshake): {"id":"738a040422be3a0ebb5d6af18fdefddc180df0f5b6285ca7ad05070a217a285f","state":"TRUE","code":1,"fr
=== 8. THE BUS — the external protocols, routed ===
service_get (Meta Pool): {"owner":"jollydragonroger.near","account":"meta-pool.near","method":"
service_get (Ref): {"owner":"jollydragonroger.near","account":"v2.ref-finance.near","meth
service_get (Burrow): {"owner":"jollydragonroger.near","account":"contract.main.burrow.near"
service_get (Aurora): {"owner":"jollydragonroger.near","account":"aurora","method":"get_vers
=== 9. THE TRIBUTE — the money path ===
tribute_quote: {"storage":"10000000000000000000000","tribute":"8889000000000000000","reserve":"8880000000000000000","total":"
=== 10. THE LIFECYCLE — the sealed contract ===
status: {"name":"ZEDEI","version":"1.0.0","build":"full","lifecycle":"LOCKED","qc_open":true,"guar
qc: {"lifecycle":"LOCKED","verdict":"TRUE","selftest":"TRUE","tests":{"sha3":"TRUE","shake":"T
selftest: {"state":"TRUE","code":1,"tests":{"sha3":"TRUE","shake":"TRUE","sha256":"TRUE","keccak":"T
devices: [{"name":"gate","account":"6ca890f766fdaeccd6c934da325f5f06ebc63ca9be4f5f1b44d0686af93c64a
views.log
「155 機能デモンストレーション」のフェーズ 1 として、view メソッドを順に呼び出した記録(40 メソッド)。[OK] は成功、[ERR] ...: ERR: {} は呼び出しがエラーを返したことを示すが、エラーの原因はログに記録されていない。ここで [ERR] となったメソッドのうち bind、ed25519_verify、mldsa87_verify、categorize、piv_verify、guard_check は、上の composed.log では成功した結果が記録されている。
- バイト数:3,171
- SHA-256:
3cc64e4917ae0af413b3eaa6c98f48438aab5588f71ad0b844fc8704bd3a6704
views.log の全文を表示(3,167 文字)
=== THE 155-FEATURE DEMONSTRATION — Phase 1: every view method, live ===
protocol: scp144.near — LOCKED, 0 keys
[OK] status: {"name":"ZEDEI","version":"1.0.0","build":"full","lifecycle":"LOCKED","qc_open":true,"guardian":"jollydragonro
[OK] qc: {"lifecycle":"LOCKED","verdict":"TRUE","selftest":"TRUE","tests":{"sha3":"TRUE","shake":"TRUE","sha256":"TRUE"
[OK] selftest: {"state":"TRUE","code":1,"tests":{"sha3":"TRUE","shake":"TRUE","sha256":"TRUE","keccak":"TRUE","lpres":"TRUE",
[OK] head: {"height":141,"head":"783142aafef827551c095634acda7c2d12c1ff43a1bafb1495d99da0f69e93c3"}
[OK] version: {"name":"ZEDEI","version":"1.0.0","kernel":"kernel2-2.0.0","build":"full","isa":"SCP-O-144/Z1","states":145}
[OK] abi: {"name":"ZEDEI","build":"full","notes":"$ payable; views need no fee or permission; every state change emits a
[OK] conjoin: {"state":"TRUE","code":1}
[OK] disjoin: {"state":"TRUE","code":1}
[OK] kjoin: {"state":"BOTH","code":3}
[OK] negate: {"state":"FALSE","code":2}
[OK] is_settleable: true
[OK] devices: [{"name":"gate","account":"6ca890f766fdaeccd6c934da325f5f06ebc63ca9be4f5f1b44d0686af93c64a8","code_hash":"AiND
[OK] sha256: {"digest":"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"}
[OK] sha3_256: {"digest":"3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532"}
[OK] keccak256: {"digest":"4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45"}
[OK] shake256: {"digest":"483366601360a8771c6863080cc4114d8db44530f8f1e1ee4f94ea37e78b5739"}
[ERR] bind: ERR: {}
[ERR] ed25519_verify: ERR: {}
[ERR] mldsa87_verify: ERR: {}
[OK] slhdsa256s_verify: {"state":"TRUE","code":1}
[OK] pqm_verify: {"state":"TRUE","level":"MATRIX","mldsa87":"TRUE","slhdsa256s":"TRUE","agreement":"TRUE"}
[ERR] matrix_get: ERR: {}
[OK] seal_check: {"state":"NEITHER"}
[OK] service_get: {"owner":"jollydragonroger.near","account":"aurora","method":"get_version"}
[OK] tribute_quote: {"storage":"10000000000000000000000","tribute":"8889000000000000000","reserve":"8880000000000000000","total":"
[OK] cobol_comp3: {"state":"TRUE","value":"12345"}
[OK] cobol_zoned: {"state":"FALSE"}
[ERR] categorize: ERR: {}
[OK] controls: {"fips200":"AC AT AU CA CM CP IA IR MA MP PE PL PS RA SA SC SI"}
[ERR] piv_verify: ERR: {}
[OK] zeckendorf: {"mask":1064,"energy":327,"tier":10}
[OK] rail_check: {"state":"NEITHER","rail":"none","luhn":true}
[OK] guard_get: {"state":"TRUE","enrolled":true,"level":"HIGH","post_quantum":true,"cosigner":false,"key":"015aed69aee069146e3
[ERR] guard_check: ERR: {}
[OK] kem_get: {"state":"TRUE","guarded":"NEITHER","level":"HIGH","version":2,"published_ns":1792948905919226569,"kem_pk_sha3
[OK] hs_get: {"id":"738a040422be3a0ebb5d6af18fdefddc180df0f5b6285ca7ad05070a217a285f","state":"TRUE","code":1,"from":"jolly
[ERR] hs_ct: ERR: {}
[OK] rail_get: {"card":"e1b726240acd5bb7c23e72b8cca66207495659e3571c9cb88d5e723e18a8043d","rail":"Dragon","state":"TRUE","hol
[OK] rail_auth_get: {"auth":"965c12ca006fcd9c5ba69640fdda2217d7324661ae3fc362bbdab4e08664bcae","state":"FALSE","code":2,"settlemen
[ERR] x: ERR: {}
views demonstrated: 40
phase2.log
フェーズ 2(呼び出し可能な機能)の開始時のログ。見出しと最初の項目名(service_register)のみが記録されており、それ以降の出力はない。
- バイト数:97
- SHA-256:
af9455a4c785cb4b4015f23c09bd2920fb275b783a2cbf7668b266a2e92119e1
=== PHASE 2: the callable features ===
--- service_register (a new service: the Sweat token) ---
22. ターミナルログ:リファイナリー(4,096 判定の畳み込み)
本章は、11.2 節で説明したリファイナリー(x メソッド、バイナリ形式の SCP-O-144 プログラムインタープリタ)に関するログである。
refinery.log
4,096 個の判定を畳み込むプログラム(input_hex、全文を掲載)をトランザクションとして x に送った試行。コントラクトは zedei: vm fault at 0 で panic し、トランザクション 6C5toHL1e5ik1py4PLQcwPQSCLK26M25uABY5m3QVtHn は失敗している(ガス消費 700,925,627,885)。near-cli のヘルプ表示とスタックトレースも原文のまま掲載する。
- バイト数:10,933
- SHA-256:
f3a5c294b96034918470b4ffa4607eea7cd64936dcdf1bc5eb8470f7b2bf0b75
refinery.log の全文を表示(10,933 文字)
Scheduling a call: scp144.near.x({"input_hex":"5a310700001000010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101013800000010004100"})
Receipt: 99BGjXsP6tiJqkjn3BxZH57xUMvRD4PQ2R641ikXq39Q
Failure [scp144.near]: Error: {"index":0,"kind":{"index":0,"kind":{"FunctionCallError":{"ExecutionError":"Smart contract panicked: zedei: vm fault at 0"}}}}
near call <contractName> <methodName> [args]
Call method in smart contract
Options:
--help Show help [boolean]
--version Show version number [boolean]
-v, --verbose Prints out verbose output [boolean] [default: false]
--useAccount, --accountId Account that will execute the actions [string] [required]
--signWithLedger, --useLedgerKey Use Ledger for signing [boolean] [default: false]
--ledgerPath HD key path [string] [default: "44'/397'/0'/0'/1'"]
--networkId Which network to use. Supports: mainnet, testnet, custom [string] [default: "testnet"]
--gas Max amount of gas this call can use (in gas units) [string] [default: 30000000000000]
--deposit, --amount Number of tokens to attach (in NEAR) to a function call [string] [default: "0"]
--depositYocto Number of tokens to attach (in yocto NEAR) to a function call [string] [default: null]
--base64 Treat arguments as base64-encoded BLOB. [boolean] [default: false]
--privateKey AccessKey to use in the call [string] [default: null]
ServerTransactionError: {"index":0,"kind":{"index":0,"kind":{"FunctionCallError":{"ExecutionError":"Smart contract panicked: zedei: vm fault at 0"}}}}
at parseResultError (/opt/homebrew/lib/node_modules/near-cli/node_modules/@near-js/utils/lib/errors/rpc_errors.js:31:29)
at Account.<anonymous> (/opt/homebrew/lib/node_modules/near-cli/node_modules/@near-js/accounts/lib/account.js:123:56)
at Generator.next (<anonymous>)
at fulfilled (/opt/homebrew/lib/node_modules/near-cli/node_modules/@near-js/accounts/lib/account.js:5:58)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
type: 'ActionError',
context: undefined,
index: 0,
kind: { index: 0, kind: { FunctionCallError: [Object] } },
transaction_outcome: {
block_hash: 'Ax9VXihtsK7dsmshXyaKy6ecbYusbqMJKTM1p8dQgM63',
id: '6C5toHL1e5ik1py4PLQcwPQSCLK26M25uABY5m3QVtHn',
outcome: {
executor_id: 'jollydragonroger.near',
gas_burnt: 700925627885,
logs: [],
metadata: [Object],
receipt_ids: [Array],
status: [Object],
tokens_burnt: '70092562788500000000'
},
proof: []
}
}
refinery_ok.log
4,096 状態の畳み込みが acc=1(TRUE)で完了し、所要 0.23 秒であったことを記録した 1 行。このファイルにはトランザクションハッシュが含まれず、実行方法(view か、トランザクションか)も記録されていない。composed.log(第 21 章)にも x (the 4096-fold, raw input): acc=01 (1=TRUE) — 4111 B program という成功の記録がある。
- バイト数:35
- SHA-256:
892ab15a2b282d02d67993ae4bd586ee47dee544cd14154cb93a663808026e1e
4096-state fold: acc=1 TRUE, 0.23s
23. ターミナルログ:研究ラン デモ 2
本章は、決定版セッションに先立つ研究ランのうち、セッション 8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba のログである。メッセージは ZEDEI full-matrix demonstration 2026-10-25(16 進 5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235)。レーン 0〜4 は TRUE、レーン 5(SLH-DSA)は FALSE となり、レーン 6・7 の記録とシールの記録はこのアーカイブに含まれない。研究ランは失敗も含めてそのまま掲載する。
demo2_label.txt
セッションを開く際に渡したラベル。
- バイト数:65
- SHA-256:
c7906db676a461008ffe71d01c3642b13b4608ac20eec85308be9df4f9ae1551
08e34e420a6aa6fa70165359655390baccfb120845aab323b3f5bce331b076ed
demo2_open.txt
matrix_open のログ。必須マスク ff00…(レーン 0〜7)、トランザクション AiVMmZnNaW7z6SeoWaLCZ13Snvnttcc31Kvs7PxnATTR。
- バイト数:811
- SHA-256:
55af6d77937d4b1f406cf4b00a7143062c8ace498495e678eae0e2505193d533
Scheduling a call: scp144.near.matrix_open({"label":"08e34e420a6aa6fa70165359655390baccfb120845aab323b3f5bce331b076ed","required":"ff0000000000000000000000000000000000"}) with attached 0.01 NEAR
Receipts: E7C9Lxef3Gcf1ejQEpdHcLTMA7bUb2jJqEnYevXRw5ju, 5K777sSCztP5DWAdeTmreqDHvKaRWbyvNccipXTh7nUb
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":114,"op":4,"digest":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","head":"e26a16ea60ee7ddd43469a644655b596e9ac13c795ee1064c18738264ac969f6"}]}
Transaction Id AiVMmZnNaW7z6SeoWaLCZ13Snvnttcc31Kvs7PxnATTR
Open the explorer for more info: https://www.nearblocks.io/txns/AiVMmZnNaW7z6SeoWaLCZ13Snvnttcc31Kvs7PxnATTR
{
id: '8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba'
}
demo2_sid.txt
作成されたセッション ID。
- バイト数:65
- SHA-256:
14429018bf99c0e2259d4f2f46e6cdb85e2e204826626467c4c18f9931afc65f
8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba
d2_l0.txt
レーン 0、SHA-256(kind 1)。結果 TRUE。
- バイト数:840
- SHA-256:
74a86614fd5de7bf7b401bf434f8f518e674d5642387cdf9a9d55aceec661cb8
Scheduling a call: scp144.near.matrix_lane({"id":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","lane":0,"kind":1,"data_hex":"5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235","expect_hex":"6fd3723c116e7c24bad1843584923b47d864d21d0c0e033dc9d454642d3c4f63"})
Receipt: B9K3TCPmakENStMw3BkJpgXpJ5zzsJukZKks8PkUVqU5
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":115,"op":5,"digest":"0b658cd473e7e6dcc14661ac9e30fcad5c1724e7f8b1a86f9aefc55bec194e76","head":"ac77577031e2e9fd9e2fade9255d200f2fa2a06ddd37fd9001216645dccc3e1e"}]}
Transaction Id 1B1i6SGBW9ckPSYCQazHVo6UpZEPoMMRwRLyb6fTEr4
Open the explorer for more info: https://www.nearblocks.io/txns/1B1i6SGBW9ckPSYCQazHVo6UpZEPoMMRwRLyb6fTEr4
{ lane: 0, state: 'TRUE', code: 1 }
d2_l1.txt
レーン 1、SHA3-256(kind 2)。結果 TRUE。
- バイト数:842
- SHA-256:
a7e5f1fb8b9527ad364df761d228da692fa52b53b266ac4f9a4f73b8ccc27546
Scheduling a call: scp144.near.matrix_lane({"id":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","lane":1,"kind":2,"data_hex":"5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235","expect_hex":"88670b1f4b085c50ce04ff97a9f588e5a18593535039c70f701c189b3d69f778"})
Receipt: HATakdh9TQyAPqAmFt8SqauVGaEWRfNmTLJnT9WYs9Sr
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":116,"op":5,"digest":"feb428b762e39fc69b68830f099b9feddff35bd2ad35ad96d7a27d471c797ba7","head":"2d2267e0fcd10964684269d4f6922281364b30388aade9efef3d1126f0b4750c"}]}
Transaction Id FYBUJbw5wYpQYcD14cyJCEut8o5BBDn6AokjBT2cxxcV
Open the explorer for more info: https://www.nearblocks.io/txns/FYBUJbw5wYpQYcD14cyJCEut8o5BBDn6AokjBT2cxxcV
{ lane: 1, state: 'TRUE', code: 1 }
d2_l2.txt
レーン 2、Keccak-256(kind 4)。結果 TRUE。
- バイト数:840
- SHA-256:
a0ac31ec5106843b4ab7650a32a80d6e947f8a99688087beeb60dbd745c1a525
Scheduling a call: scp144.near.matrix_lane({"id":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","lane":2,"kind":4,"data_hex":"5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235","expect_hex":"6d7ddc7f5fa2d9d2966922fade0da7175f55a9d4197d6fdd07f2406a7331e6a5"})
Receipt: 6CnYSJGTp4XBuKVufTL7ncZDoTDNgKWmG7KbVGagsF3y
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":117,"op":5,"digest":"ada5fad34657cfbab27c08b65b487f8542cb70efb59ef5263c4915c8c61238fe","head":"ee87d775b2449eb39bae84a3378d1315728ec6d5a0366e059df806237aa55550"}]}
Transaction Id EKon7kcDAd78qEnDYodbMYcjPHXWeUwx2dHHC3BdZCZ
Open the explorer for more info: https://www.nearblocks.io/txns/EKon7kcDAd78qEnDYodbMYcjPHXWeUwx2dHHC3BdZCZ
{ lane: 2, state: 'TRUE', code: 1 }
d2_l3.txt
レーン 3、Ed25519(kind 3)。公開鍵 32 バイト、署名 64 バイト。結果 TRUE。
- バイト数:978
- SHA-256:
7ecc438652d90d942ead2965ecf9240cd835fa406432466ebc3ec350f0bd6e9e
Scheduling a call: scp144.near.matrix_lane({"id":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","lane":3,"kind":3,"pk_hex":"03a107bff3ce10be1d70dd18e74bc09967e4d6309ba50d5f1ddc8664125531b8","sig_hex":"00bd7e8f4657b78afbc8f724e933d939cf1c38275f8a881bced4bd6c1f39d6d9cf0e0e9b1e0e65ced8c82565f393f5208b457fa91834a4550fcadeda4ba28f00","msg_hex":"5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235"})
Receipt: EKyqQF1Cj1BX1i5NCjhy3hcWTdiZSyEMife6y1yTGHyQ
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":118,"op":5,"digest":"a480ce00b66b2369db3be6fac57d818aba429e51538f14a7466969e7a5ce42f9","head":"dd05ee09a297387e22f0d6233c15216f8302b176690b5fa0dd8ec80d91e8c1f8"}]}
Transaction Id HauaD2atqfXrDLuh7FLYuD4kvtRRztXPkCH4hDS76U7j
Open the explorer for more info: https://www.nearblocks.io/txns/HauaD2atqfXrDLuh7FLYuD4kvtRRztXPkCH4hDS76U7j
{ lane: 3, state: 'TRUE', code: 1 }
d2_l4.txt
レーン 4、ML-DSA-87(kind 5)。引数に公開鍵 2,592 バイトと署名 4,627 バイトの全文を含む。結果 TRUE。
- バイト数:15,224
- SHA-256:
6ab526675c5626168e4ed9e1ef64c64d21f2cdbf6fa2c583e8e86b6bd7809d8e
d2_l4.txt の全文を表示(15,224 文字)
Scheduling a call: scp144.near.matrix_lane({"id":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","lane":4,"kind":5,"pk_hex":"6c8712f805baae56ebb01f494c5abe3051907a34c163c92c858f991d74a8d4c532b861647f9da6ef9b885512a21ef3b19105872d1a6796de643ed82335cd62260a021f3ab039dac7d2e63725f7e2f2a7fb6e262d051e687cf96cf005da15bd857e71c1577d0eaaa9fc3d3cb887f902b587c038fa4b9c9f73890105a13ba769823b704d478840754c8178ddae18fe755b103bf327d1e302cd9bc13cd4bde4d6936e3f89b104496cc8ad1e104f7cd01f747bc3dffaf06871bccec5d6a2d311e9931788962237a72d563b1acea0546de8d03594efed097c7818214e2162a2a2ab5de34dd864ca80d48d0f78ae981533389df86c49c92a541918d1b08fa1fde4b1f512135117c429ec91864ac6dd5dbe16aad468b2c274e9c5e4c7e92e7bf76752a4e26e47615d2d0d1e876532e33dfe91ce5836eb220a52b9d51568ffb3533d55c5f46ec1c9ebc33dade1899c44f2d574e9ad7631bbafedfa5a8a6112396a051d173047f29fa93bb237ba9536890fe7ebb966313804ca93d731d7d0d00a654043c00d4620f64b76122d19b9fb9c5d066f25e672a043a1914027c064d0d94654a3aa75e97463bed43a0f66f37d89a5459681d59b51c628f9a730b8663a398a8b38ce9455276910eec7f890d323e616f1560470b21229eaa57fbd580d43f15db90afc80668f6dde42d270fcdb8266195e1590d4a59255a360e177afecb38d0c65ac8ebfdb4b08f30cef0e270177f5b4d709229b1c859365f43439f579363e58147f0c6caba53a749ded4958fd92bc64b61432fd51f9067cc158da97ebb57bdd616162a555fe45b410a912405fa7752ebae3d6a1fd7376bff25392d8546fed3448cbcb543c20f8c32cb780a4d8c9e44ba1fe764abfe0b8564d31b4047e3c57bcd73b7c246ac7bb3928436a705fa5fe1db5fa7dd5c4f8dff1495bce27491fe8ff732e5fd0d7a992c09e3ae9718a00b9244f23307af29f633a01d390502e5a464b61b71bcde6b67c361e87b91120ce6008dfba240c6abe92bd43ed39aa61fe6746444d44d04d3e03ffd95d5fea9c5fb87aa89dfe83678dbc8525eda5e855cd3aa1d27f8807430d42f1ca797a9b25578d763c33beeb50f422ba022756592f46212384d40e368082bbf1e132775c97751a4cf4af65b81986df151cd8f8a345ffa6e1bcaf1081951ef709e160a4b17dadd11fe475d077722a46a81764c63a21c91eea1a95994f0c3c8f8da9e18709efa58eb21fbe4b2ba49286cbdf26072ad43866afbafa59129407d39a2d51ad6e9287d172049535902f32541f95a1c99d061cd408174583b320c166e0ef7aac21cb72b7795e62f01f6b3c94e35365fd13629772fcf717b9700f6553aecb71c79d32f8b3bef25e205c58e95ba6b1ef81e8ecffc604a1decd692e115fc9b34c47bf2d00f2836b4e6057b2a8da53d37765d383c9be22df1882bb2ea8cbd3412290a61ec956ee3bfeb0b9c411abf4459c3ac856b4371d1500a3537a1b321bde8d4ce5faca024eeab09819c6b8229a2bb545449df30c78e9eef557738a1a672e84527c0c72e5687f2ffb456dbc2bff41ffe6310b970d5341e4b30345731ce4adf2b2d4fd3737a5b3722d56865eaec496f64f4785f4fc3d4060a066198f76873db0f48b227ade2772d358e4004323df1d7906fd1d7767bcd764a0a13c4c7e049231b5f6a23930ec5115a761d6ca2a1f44f6cd88271dc2a177427decc09339d094251b7e13d7df371f3efd9b20bf1bf779c03e176dce9803d6ad585d6f6cb6c49ea7d52f54727afd6c983111d1e70162b39129f8aed55540548a0a9aee1182c3549f4cf0f37544d7d9c92afea6a28b038c11f10a8e8c8893ae04d2daae6abe88984f9551040cb7a7277703841d3664ef8c0d5507933c0464712928ff11ca81da41d231a2378e079fe85e8ac4c19803bb2a90e7d7ba04b2686a8bfd284902296fc79656d79672347b1fc0e8f424c2efca80eb0938c670ae9ec20bc4c2517022ae070d9a5aebd5899c8ebf5ea33b371f18c4133d346f564f744d7f4c9d24a7b3aae10c6f20a24db87ac5cac8d62b301870bdb46af03282e82dd3918d695c82f99e1d5ccfe10dfc06b78bca391b176f2a361c1e4517b864af730396e4d30f0b8c3a577af89bbb9f5b46021aeee8a05e9a7135ab9652df1f08134c299cb0849cbba07f2b6b745a714930cfec0d62cabb9fe9cc495ff381e6f58277e91c5a2cb9b820cee1df7919eb98b460b9e1c52d3aaa5e63a3f6f7ba5fef3c680f213d9be056174eb39034e6be6050730f75615d4f1ec18000c03c1408ccfaab43bfb7f6fc9fd7d4aaa6916c4cd83db8daefbd9bc39a807a755fd9c82f8e8b37109fb4c3c8991767554bf772f3910b6c73846d75e210fb0dac383d34325dc0de65ca6f6a2ba6f2616c500ac09c20c33a8ca86b34acde73573302a4b4224dfc1a863904c347a7692d13a249260ec974935020e30da23e1a3f2a6076c6f57fbda14dc84fb6133582b94ce1181758a925bd9c632ef48a8a31222df214289d1d7b59ef1830ec9a78159de35c71e6bb64d067e999172e22030acb067d568cfd09edf22348a13f9b61947b580ab7d8f276a995e71ece720c247cdede061e2620ab673a4266edc3c70dc2a83d977f2cacaee316ff105c699315203b74abd011f8ee07a5671e40ae5d5e3974c99e551d26b0178b0585dac56ef36f495301d321c2862f01d1a77c3b60f0a292a8fe3460f92af691c0076078ac795b425c76c92ceff231e899ae6d0d05d5adce8366b85bfe66fcf0c2d4bf213e2efc553f9afc07b0796d78ade21e34d7eae8bfb5b095cc815b11eed65951f39b792872fa52635b2fb2185fe42f09e614e675ed1f6a203c6cc304931997e8478d1c8a0cf7656cab0be8181a5784e4314ec32031574a552d5254a83c8e10f472787538ba3187fd2daaf371068eff72ea3228269ae455b4c359b315d2e1d5c5b3abfc9e45fa0c00fbfa8e2eedc26317d507292cf3ca69d0f4f70531aa122f590c5b77f0f351781602acedd8f0df0ea094dfb59b8daf561f206e48b2fe59539e58232dd5f4b7c2fbb78faa5d90eba292ffbc8d6c68bc74840535cb27e2cc31dfd415b1dc2620605ac69dd38338a049b05d62945fa3aa4f0c7d697e0edc1e9ef22c8acb85528979f14862e71831c06b8e5088be581c2fdea3b4a008890c184f29d089cf511e7a1070706ff3fba593669504fc5ade52d08c18c0c8cfd0f5a462f2640f2e32cb8d890243b4dc058e8156783fc14607008cccd2ca2c9d1fe9867af1b6cc0e9b8634775e4b08e163a2ee387f2ebab11d12fa8738beeb6be82526a8471a4cb55e269047d03406b084189f99e50a2ede9728df53048a7d7ef5685677f9c6e3e6a1cd23c71a03e68839ad2a610cbc7fcdf59723e3788513fe827785bf479f8e35543ccaaf07558b503b2472226610ed6b6423ba6f7249bd21d900100e8e24482620db60aef43aa087f7264339ef04095f9fba43c8208257f893b7b438c726664f340fca9e08ae5ce68127baf5d4ec3e87ec3e6a77ce07dadb8249d4c872664841d5c760eb87d2469c732fb3a6a4eb5f50c13eb8c7b7a211cd35a7d3aa53f74682d90fc09b24063c5ac1ac73c4a6d7ae56041991c84f60b75215941fb66af02cc83086b5cca8fbfbe7385417a6","sig_hex":"297e752d022a212ae77a9a9f2226ed2640959b68705f69cdd46886b341d31ea017abc080ddcb1f25bbcdf0b19a77fde06d6e2149e2d4fe5178c57c9710b7f6df2fea3a0817741041f58f392660cf3f19b0b809ea158ec4c8faf8dc3be4690716861e7966c1aa1022c1c5ecae26556588522efaf03d69cdd024500c5f9cac89b85fee6f01940b5564529c58e3e6a75a5f87afa64369f6b335f65db1ca6f06ec6cfcdc6643f959d6765b2802d048c4894fa73f6f9c99fc730754979091587fdcc314371f71ef53ad6a50bb7365c29120d5c5aed7f5d5a57e9b6cce9831ec730931edebfd42edbe6b7cfe851eb8565ae091ec13c04c2b03d5e88770843f307f8c66428750e17601456aad0b5393b1e793db5d57541baada7e27769a174a983648bebbf06883e638ee364adb5a6f121bdd9ff99f6936c73e5655c09124ef413bc6a3ad5adc9986f21a33a67018f79b97141334f9d62cb0b4bf5723e6f022eae7ae318ed697908c722d2e6f6813d8af53ce4e1c509f6d3c786682bf80ff1146b7f15c8cd42da55246bda0a1ee74b32072cea82faced8033d1d58a04cd8bc4906471651d543d362c369019f26eebe3014ee1154773d54457d7d5a3caf733d99e0c9bb5b4787f300689972ca6f8adebfd3b9dd475b9a6663a4bc7a9de576a85e65315aa75d2c84bf54c8e3ae7fbdd9b0111eac25867a21c6b3af846f57d0fd757e3233e86c1c52e8f1784834c0f22e75022959435c1d6f9c9eae63c3e44667d0d89ed030461ca43e4c6f184414457d010b9e61dd0f73c504675e0552c5a3ecf5b128b99f42454a383ca8be5e52761b69caa17deea2274a3164408f626cc9df31e9e3f1b3c0dc04d9e76a69e309c80e5cbb0aaff748a930de5674f7f75ff0ee8d14bb856cfc394aa6043bca73998fb12b56bc49dc3326996fb618993fc8ca381206e6bac52a80772ef1b248ac669ed9b50a1f7a36ae44670757bb1cf58b260ed0f85cfabd56430c1001b994c81a77adbf09218e0c3f8cfec82c89c8b8064fb20ef2c70f716b6f8ccd7d74e2c5cc3f35a3df70beca0d78ea544552a6cfebf25776fa17cff0bf6fe46d5f1095b64a7f94e12eed4d8b07894eee025b683a2bb0c4a648a325849e8316b4c2e4c5959f79f45321cc1b7473ebdf293d6d29b5176e9c5ae1da7125968e82b403c4ba6de0119ef395d7cd629e15cabd8900bc404a034aad17fef92647c7b8ad4be3933e5f58aef73cf03b0521f41acd10d010639de80fb60b18286859ab185e15777c2b4b9b30098adfd4a7287bd2c54186bc319a509cea7fa15622f5e3bfb33ef05e5f05e6adf7ba2f9d8dd2a97744d777272392f52683f703185ea1cbfbfaca440a1ca2323e36cda06217381a5bcbbc05d63412160f39f59fa0efb19414382cd3a856d48ba4c0445aa3d4f3c5fad93bad3081942fc2f5eb01b46f66e8fc2b232a11a2c089d8582a5d12cfb96e858a8f0d129f4da09bc08afd538a848d36cafe53105d5e37b83333b7bd2926899629dc294f126b16e61a015d855a98a8164259eb1972fa26bc3af24b6053c61fa2824b510689d80ed12515c39bfd6e2deea63c5fd668738511baf6dd7d31d02c31c95e754719dae6181c403d2418a0db50c09f7c0e17cd5a3242c223e8b5b6f4c92990e6126a385523842332cac4d3dc30f00d5ad58c1abc9e64309c042ffc398c360c8b6b5681056decc9566af095b6a2b56f32dc4cc976181e01ee0711ae7749324b67a79b08169bde986d59ac3a0c161df119475e041837746a8bfce7fdbbca6e32593f3e0f30886c31b1ab8ee7b755e53abb4d7962f81bbc149e4f732880f4f65b555455ba6da57760e1a5befbfd964c9ebc1e5ec588e39c00751d85111fd2e1805e4e0ad251ed5d111dea4dbb349a18b28b6e5401352d866548e11948ebd1ae40227100930653876d0533d213b2d01f589c896df0ad15950b718a921c7a54e153e0041ca74fab88f6e8618b6eb9bb1a8b4a4061853d483aa8c1fb94c8bd56b97224f408fe4468bbabf8d49c099f11720c8d4845e71c20f5e7cf0077b49e93d8dfb5504c97d705a7ad286697e8abbc49baa32e9c1bc3a40cf448cc3df215f368686e7c463857ea61ec182934f7d1ca6aa3b130ebbb98a4bfc2822ba695e238c882ea67dec93d34f3fe1a05bc69749b6fb951965ebbbe07046f0e737c0fe7681f29a2fe179ee7c5a4939b991084748738b1bfbf67140d7f24e1eacb36b8b0bf0dd4070e71f7686fe54b2526de94bcb1027dd35160da82f5dbed4fa105c5fdd0a93d8094f696594c0b322dcb67285be31b0086ae588fc7d74c9f1cbc17f166594422d1c193a7e83d99c842389aa5a4616226b2688b069a42ba7ddc0dbafe07ddeba5d238ac0d4d835d0984b0a072d0c180e9540ae405cbdc12b133140f56f0b50d364badd3f033edcc4dc943d9311af214cd905d7ccf80bb6e584b38d83f33b582e633dcf3af62f6effac11f0be4708b6c75dcfd0a90bebc2c50f72b260c64fe0209712a92490f0ce66c1e87640f85c0d7a85621cf91e69a3f49bb7a5e5ec663dcb8066562e06cc9d1021cc24ba1eea9ec196c4334c4e18e9174a36361568a575b1f2d407a859975e05fd6a4303a7df89e49c771b6c4f752657cb7f750b0b697c7d818df682da6f4cca66908d7f871cda749b46d54977c5cc9e042cb48c03e38647ef6e47a7b0284e2bae28c40ac568b83f5b4ef0486538870eccb978b46bd5a1cb32797a5c10b25f4fbfd48a667059f1f9773af1a117475da411b09fd82a2aa52dbfebd5679fa04e60460d9216f9ea456558657cb96ae97a8b601f057ea0e796637522db632c8304f09f9734cb68d4cf6c2fdc6e867d8d6cf05d9530fbdc452a535931b2445db80d7ee7fa6403985ba3b0995081b51efbaa611c60658a22ea6752d4698a6a31e931b39bc1a9dfe27768b61a98341bfd82732c0968f1a2cc161e9d299b8b58c92e752030198b48bcf3225630ccb53330c3e05d84c5755746fa86583631c1dff55cf8eadfe381cf0389315e03ce97bcdd66b1c5825de44bacbed41e74d277c8d4ab7785acbf70d7fd5547132bb00b7ff85272efc31a969f3a73defc53129b833c54682ef0f8392d80b0640dafc88093432b30d1f7ee301088eedbba1b2cf806732f7c3346763a1f6bea14d1b9af470a5d99b36fdf012de39a028bde06e8396298f91039de020406b2f98aaa239227da4dd2358ce2479bb7a97fd9584e932c1cb2e99916232ecf44baa20ee094b420600394f0acae4f88fc2e7be8f87997e34744454ed29e26ea8e2d664b02245e805b8e08a917e5445113345a2d523a53f420ced6d65af31d18eb67cdeb87fb473aa8dd175ad7a3f38b0aefd63f4aee47bcc681dc62801b9e7df95485e80266e198b35a3ce8dbf61ddd54997a00f25affeb4e15259eb739af8b0e8372403b17a277f8b3dc5719bda4b7c3a05fcf68115e922d6756e3d1010ee8aec1ffd4fd3741cf58fcc44d7d5f8a30f05c18c86d33b4f5d765347120da26138a022d5ef292a1f1c0b1ad934c35e8d9fb0c729875152f4d88d94dcfbfd70fbde26c39a97e17ed4c03c07fdd9d4fcac6719aff5c2ef9c9f35481cba1de0e233e7edbf02de1ae674d845209b54b3eeb71ef434b0c2f85001feae7deb71845a9dd0cf76290d010090d16573186d9cb52f90e960634c5a749b0e438b50b6ca8170abbb8dfdfaffcb6d3804333a3976b7aebe000567f8e495b19fedc6ec8862853bdef53f4b1164e962e68f197b86139fda01d91932e0e17537bb3f18d90fb1e009ed4d6e292bbb6471aa7894246d4c9c2917a9dfbbabdb4d38d50947d1c48bb89f677ca11dd4b8832612671856150e3112330f2834afd8571217861033630fc560b2d99d9e8822a909e00905bb0e07a1963899f0377ca928c5db479728e4cd8678d19de5220bdad54cd547d2bde147bc4146b895cdf21f490aa18f8431b986b768671d943ba98548a8b9a67eec8a9ca6b7af45627d38e03cc388e58bf4d1a8f78f4d286f9b229e8ad66ab98ebcb0f3e132428fc07a0d89499f4fc560aa6885fa27ccff2d5f740334eff12b818d60afe070ed19cfe879f70d0391c0f20f8067258ce2427729afea2dab5ddab2b3fca3665b28100b6cda3d99266c53da23a8ee836ce65190254205e7dc234887f2c344cd53ec625c8ae69115847b4b1394fd239a10a1c20ae2d9ea2fc6e53886d9e08b0d6ed51439b69180fa62d718b59763b06ecc0f7c3b6e86277a966f5bd32bd84d28ed531825a22f9d81c2a5caee38bdd96d462bada1bb9b83627f52efe57f0e40c5bcb103a95303b68faa1c6108d4a66123188582274b12abd9ff6dbd4a76ca34ce27bff7da66f7c7adcde57f9dba05be5310944dd861e7972ab418ad883928b7f6661055de7f9bfb0a9b48cc5411bbea0467c4a7f9e64068da98678998c4b7216c2a6c68c1ba1950d99ddd9ab2d2b16ffa043f10e3d9a6f7ea7c90a719982d0cbb63c6627546e88cb8e373addaafe8681e838e275a613199b4cff6d04a44aa611b5cd2e0943f5b46298d775fccd4e055a006fd25a680a1b216972a12907efdf2bc5d8835b0596be1529edcdc68bc44f1aaf6331f2505b94df05ab0c82e9a26c249011b043f96a3238f2b301701a96d8be30b52b3c7885647253ee32c7aa8df2722083d07a2de87d82734619bb64f90318b85bb01b50426e3218d4948e263580f4fb523d5b089abe574d72d0438b241fb855900dd4c465e6f17ed53c182a03a0c0bdecbbcabb1b126f8c0368633847f044f527ce09cf35236ce0c5a0a0f932e6ebad2341052a07e2341bc8f5414991d0813418a7f3d3a12974b8a88eb2a3dbcd9a9f3f24004d0e66412ca396ec927b12bdb7dd2908b503d60b1ad6f87cf7419bbc447d353c37d1bd3161d226a6d61b2b15598a581fdbae881bb1c690a38445bda89ce23c2b2c94462b7f19a41d6cf8abd7bf138e20067784c1dc04a8d336d008246fb0c40e7385f7982751fbbf681e7992d90a1f0b4395d291d7b7ab94490b16fd29ea6075ae0aae54c51f783d46bfff81253e53a595bd32eaaabede645157efc35cd5c2d31298e765a138588323087de5f6b0274831f7b78c2a1df1627bbabe29966964872cd47354dedd9f61b150b0230e73b1e63bda87f1bdf9b6bf726248aa0d17fe4d25c22264f99138dd1c90fdce7fe867f8a998ce37f1b01375a6a794683fe8f2dd92d5aa53c71602d909927e8f120500b9933cff9404f355c64c6da84141bb5d46c642a3e1c778ba10a7cb97f338f17eba374034d6d3868b225b06ec13695d48757d1958baadeebaa33d36d955fb2d6934430a1d0c06bf173ed4a21a6684ddf12770ad31243c0a332b28cf66167148efff81f0bb4bbf1bd25c1b8b9259ffaaeaadf771c47803c8ce0958ec3695afda65a0c223cf7ca85c0837294aa1c66c2e68b1035ad5739701d149081c85c7723a47ca22a0c35ab932032d2119347a3c3e3804f7d291222aff1b24e7a4c378712c48dea692a4657b29de99b13d95a90ea4dc4f3494d0c4f496993d298a39d6dbc7092b4e86032b693c6bb3e070120f2a55032862a1aafc3edc6581546b7d79d43573b459b035d9505d599bf5251e81d7161ff9f70abc34605cd5ea916ccf1ccb0b118440dbe3bd352204ecf0996551228e004fa4d666d57a68a7a0c8a9441913bd2c1628d5a903871d1a99e9f07c89170366ef480e9006b3eb8beae051c05cf63c720616a375454513f090cc6ad53b934eeb2e96d273dcf27960dc12dddf07a108ae927a1dc0ee71d7340229ab2ac5a0d54b35d0f4d3b56076cb5dca4be14f3f760048ac6f5d332086ffa9c06bc8f8a713233923594d9a9d0906d46ba683b172ef9da65ec7115f63d72c9086c3f44cf59cc767900ddd62b0eff8a7ac3da48e8d12c30bcf66dd73e739cdb4d405e8c4582246d31e62f866f20f2e51e68ada3f63fb87670bae4cf06021835a13a2554422560b61adabe3736814a9299cfc269873c38c02105a5f4a56bc03c3c35b01e511fd9df15e0ced4a701a864dcd15334a5d4a46eae56791ee1e9682dcc5f47898c7185d6f2a81984bb06463f6cf39dc3fabe928f3000f5717bb660e994d318f3e68339106aa5c476903f04555928fc5e1c71f37eda13e555c96d39f536227ac5628102d5563ded6302c79cabd1887e19e29c6aeb360d87def1dacf4643f1d8da81df1b17104ab38595e562ad394844e27cba3ef141d14d9d2567166987460b85d9e69a6aa428791e090196576bf1d3c8a80209147052d914efd05521d1c9e1d8370a03399b5690de40f951a01916eceb0f767b2a93031995099c7813b15fe15f19a1ed5881b6ae4c76586b72ce132cfac19bec52dc8e234c21a8a4654d48ff2f36a48fadcd357cfdf7e0020527f906965ba51444d545c7f939499e3fe07121b6a94adb4c2f303283340b8dd246aa9cfec308b8fbc4c6569a7d2e802051c7b86b1bcbf272829326793b8b9000000000000000000000000000000000000000a13191e22283038","msg_hex":"5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235"})
Receipt: 8HEscKKL1KEacehr4HbDCiTCb8tHwHUSfirSNy2e134c
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":119,"op":5,"digest":"c7f0e29066db33dfedc2c5b8a9533454ec8a35b0e837ad15611eda50283504b2","head":"405f262bbd745ff7b66125c4b10c05db1f24cc199cc8a24185065e994988f9bc"}]}
Transaction Id 2f5GuqAG4RbSqFvVQh1rTUhJJLfkBhF1y3eZ6K3S31bK
Open the explorer for more info: https://www.nearblocks.io/txns/2f5GuqAG4RbSqFvVQh1rTUhJJLfkBhF1y3eZ6K3S31bK
{ lane: 4, state: 'TRUE', code: 1 }
d2_l5.txt
レーン 5、SLH-DSA-SHAKE-256s(kind 7)。引数に公開鍵 64 バイトと署名 29,792 バイトの全文を含む。結果 FALSE(検証不成立)。
- バイト数:60,499
- SHA-256:
c29ed75863bdd6a6752e711103a0387dfddfa8c43f6bebf5f94004dab42ea0b3
d2_l5.txt の全文を表示(60,499 文字)
Scheduling a call: scp144.near.matrix_lane({"id":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","lane":5,"kind":7,"pk_hex":"a95b956c7cadd243986fc3d334e789c53025f873f553c6ebe706902002f57aaa88776b5c515e47520c89fb4b197f75b14058e31a9e081624525deee844d7df21","sig_hex":"9baca34f505f420227fc37097221b5ffe419a1db33ba8f326d937d8a6ba09e2f4a2bad8884012470f2254eed0dedfec7efe63f8061481a44a0d2b2318cd6989a92e64218510ed3537962ddacb591bf18331ca45399c85ee96c71653a763d78720877116db1770dde4a5ab698ba033c33be5b02802949597d66f4b508396fd4f1ff0b8eaaa7158c857c6f92f7e2f483196dc7f34a38795855bbfabec50f4a82655ab7e66595a7ca56f145d4cc043f4779f5eb152c4d8952400f96006bcb3f49439957e115a4ba7b620ed9d0f3526c13e636575be86d6590847c1f4dd4858c8bce4ce8e5d2a028dbbd184611a4ca38566e600b90174146a3858121c753a1630dbf9f362f2a6428dd38a4abd28833cd11f220d06d78394154deb699ab0b7ef7eac90cf50363ff15409f36517232abbaabdae9a8185d2a7b0e33660cc03cf90aae35b8d58751f88932094820801a10d2a859c2de0f1d78c39a185d6cf56660eb2ae0f183461a2c7f4ca065605b5d0f5d660bd6d789168d44b2538ff88905913f25d9f9e2f394d39866018aedc6996a4232eed858e2079bbe34b501bcf45f5f9b7e873cfb6c3c32f8bca0baff9afe0e23fa69da8e4486f7556dbe60291566729b967b957abcba92a4ce4a837303044892e7f59dd3927c8f8356f85094bf147b795e383bace4b1d899561e43bc823e0bce72e2ff360a76e433ca384b73a2a0ab9a1a2246a55e6985479938a3c6c84f65f72beb4f4975e8800c20a2c85b5dfc665cff42bad6f04b64037b91ae540fcf59df4fc3ab07e9049a10e8540a374bb1a08516588bf0130af2a05a7042f671a38e01d721104dbfe47404a1359543bacf65f85b93df59f4436f1882a2c77edd5f703e9766f159b5a2c3599ea8296a12a989c5b91382f8a39ca5fa1ea92dfd48037d14ff43527a1951077bc19395462cbca072a7624637127f87185c49f6eadf01fa70bf11a12f82b2bdc4e0262221eeb764e9a1548e28eecf136f2ca01d5f44f9d23a8ac9499ac4e44475b722ea0da9a5afa6d6dce64a9b83e39671c32d862f529c746c1457dd2df7ce6d04f387306ae09ca4f6da16568bba969233ccf718615cbf588acd9d009d316cb35ff4497773465b387f748ca992e862e7aa0d95109667a97af40746afef72cf94de2677221b11a82e48b06b41539d8b918cc4982c85dc925957ab3ab5c5dd8f14fc76efee702328b2f83bd3385052f290b5b7c57a8fe3bf709e7c16ed49185ede68c9f55deb00f783ec149ce0853b4f1c9249e63f4d016cfc61a1ff11e25b3cf76f0b1ed934272a690919be2ed54a9ee67e97235c8c497806814958e21210784fddf6855bf340b079233466fa1f4ab6ae313bf2953d14ccdf7d5256cf2d8bcbfed2c1ebd1ace8340923e2ac2ae59582453328868ae0d45080c4e679e7ef1b1a6f159947144501d150f05822c6dc29a7f8aee24b4d106b64e508c88c771459febab2dc9f95798ce02894c98d9d512ab06bd340bf0070b5da06db9f8483f6d01f0a875e58a6c5ca06abdc15b6ddaa279bbb40fe5cf96cc5b25b3a2b65e85e8a9e84bb6494a1dbb76d3804a3e417b9c5ac170631482dd7127074d7c8db9825ed8988b2cf7595f38389520261a6e836749203918d8ef3f560b3a71d76c3796addac400743ae96698a9b9976efb47de2f4855a92c61aef16835ca7d8601c65a53cc4e65d283632fc22b96339e7f3be65ff9ac44e6843721a6372f57b2e82c680ffb94b995827518c3bd7fbb06cc67899986b9d3f5306c1ca10f866881b9d6897ac4fdbe338da8885230686e4c9e3a649434a2c6c75c5ccd1b2a0fcce87b4bd3da6f495474942ca3a26c3feab589b05fb07a60d28b242cd4135acb2569dc99264ab5132602a5b3b0ccd4e7f570e54ef3fcc37fbbdf0a7072b68ef160c7f777c0f76fde6591b9729b7fadf710f9fc006bdaf01df650cfe4b991487c235ed93d7ba48b0f9dd0ca15895e873620c4c6d9706ea51337afe87e4dd8ac24a37955ec6b4b4651cbbaf69381d79735415692911dfc7790cd3fc3cd276455f3b668c2f35001f0c3fae95ef5467a0cfd196f3e5a69b0cffc1e9f64bed706e3e5f8b1a770996aa83794bc3adf09126ba6cb076b6bb2edfc3e84c5a0e02267da53b363dc8db7a7c928df00b9c1d0e82f654d6a4af308ee9dfd1f9c0bca21bc85ed91195ac10dde104528681c08ff15181fbaa4f8f64c45a2d648b20e5c7730cc38a46a7a6e60d71e8d03f95e394d5bc59b83a9ccda7453f08343719a796626742db2c78ce528be21afe55949c1ea732090ee0696fce7aaedb43bfc8c51d7bcdb0c793387b25ab24644cce22ccc92711c030b528d206d6acb40edde010b26a85205719e914ddb6ad0d27a4579fb76f7083c78facd83570871fc9e5c86060d28675ee16d0d981edc66ae22b16d8156fe21d8d2b40620fbb863fad32f9202135f2b13bce09e199bae2bc055c06c6615a756d71c7c8682d878654bf492a79ada441d92382e7dedfe7fac3b3c4a47fb24ef17c4d658c80c7ea91be96d9619c7f8466669ade52c23f69794367f3a20bb29403837bc572e0a7abf616fa224b2e59997846b18c1d313089ebec0d5a439b0c5547004095262de6d5c8a860d01126f592e1009bd31753bdaf801187b0fbaa607fd7cd7005b03aaffa6675280b4d9301d2663caeea0d0c7b98f7a27e35f093be3ce3bb969c8e55b005276256b7839331196fd76d514fe652b5abe7a33b1f1202f9684eda8bcfb6e749ee27c49ec7e61c9c166a6e7bf70dbc427364acb5a3acaa0ec05aea36613c68c6d2546b1c4acefff1b86af61a8898af04442a9de08b1864f193334ac3e2426a84d35f4ff664c48bbf62b1453fce8afb3b02dbba59f4a72e4a84cb7b0429ffd823642786b7259df8189d621010d058aeccea57169f09a4c82dd29996916f30268b7b639717059d2c2464370f4e33e27d408db13e29d57def4a732ca17e2eb478b6f86fe77faad829abd054070a449d4322a1514a283dbd413742ee99f30c7c5cab3d41e007a59429646c114b4989ffd46949e1eba7dfe22f65bbd742d2d48bff23d7e89e1710f44d81b374c481d15997d6455535e9e082025e5156ae8691ee6953de9bc6dc27a15e071e9e752ce1b204311d108a618b221838c1c70a5e00132a98da4470e7b1906ee74201f21c1cccc20019ffbf7fd394b4a6ea994f5472483ab918596f16104b991740e73294286d1fa003d92b9da0b39b23a8ef00a2c49332d9f2ccc1287aa767e82a203a559ab89507d26f861d4c325b529025fb552d2d2c0c0c95b357b6db76ad6bf7090e225f9296572aebfe7389ec2a13b55fb846a7d29cbcae8105ba6dad271176b447b20286c2fb9de00f76bfcd218b8d4998f80863f8e4852d9ff958001739b37d48561e7bee4e7af809caedd8d38f37fcf3e8324ee0df2c87b14cc7e110a1bf1eef077ac53f0b8269f730984d0556c3a7c6864be18e3a8b7e3849583231672e9db0a440da71412b9df58784c3aceebd85aa96ef723dd2c9ba0889e3ac6be148d7a324c63680a6c44eaff83296f90b27ed48453230ee7a9d9d9955f200c10855c466b56d2962bb9626a639a16d6957e0479c267e1052f0292f32129770912998e797a05fde219a7b808c9588ca5d5da94a6d8cedc8b497612f1e18e24a7ec019c87eac4b60f379b89527a7e532d7f69c1a5317bffb9888dde5472ceafce33a8a5da6e786334a001796c35d74c0f0088b1aab157060a3c208bb631fb783e047e76052ae08a07a86a7716f7887f1d2a256f5c365857eb061d9c31219561b346298da5c11d9974ed5477367f26839dd3efd8c45b2b56480b568c3483824a96255f88bcb303a9bd67fe70a01fe197b84c53134d1776f0833dcfd04f969275233fc0c8c32bf8085b979d3493631a3a9bdbbd7c4c060474e1d4aa7847a667a74f27090e729e0ce5a2b7e7b88f8d93f95bdd66ae47160eadfa4504cc9acfae08747a2ea9902abbfec400dc9247da1766a08f75ce23d8460dfdaa65ed75b95c0ecce5d00d4d60d2c11baf583567340dc76460693b17a19bea13b6f8a4d8869c3d733cf9373e4a56ddd73944f366726e5b03f63e4565032415d9e898b7d5382608e5fc7252a8d937b7131633e80de714759c53dd1f138b7049a4be5ad4fb5eb4057de0ebfc743093cbfb53b0ec91df1e932d9abfb66662a86177940faaab0383f26e6862bca5f10fc75e59c0393abf4198431604453f6ef69a4723363b03f20df86af4b30cb582f3ae77618961ea70bb8982e1eb434e14206136fe3ddc85609e3c18f7f8470b9e80f03fa53a0b107c68d110e97a6edd122edfa9582242e6b03d7a80c5018db39434fb3ef9603e390d66612f5d7f022f3b8be1e462b11aa4c0f760c1240c1a0b7070e8a800b37145ffa6fac9ab585a5dec4da91efabf1415306a9e4321ba21253ffc20cd7a9932816445f085207432c1691aa8957eb0eb236eafbe1d8f637857499a60b8b45fb92265ae72da0cd0b2c121d376628fbfe4d7f9aa5e880c24276afb5a365ba90e9b5c918ded3ab9d2d7b143185dfad768d437eb96405118cda4663ff97de383ef408c026f65c4ecb4bc17f6a52eced6579d7a9aee20685fc539f0664154075904596d1005b3777b19893b238da981377fed8096784f3f40675e7cfd6b098e2970bc2864dc19554514e5f9f12c8561be279e191dace68eab3f2a14d9bf93d4251bbc4755a2ce56d276c17dafaf04c58fbdb6d2f65619a8d67eceb98cf7c136e87cb140b7887f02a6e3d0cd7cd3665a3d6e26924080113409281dfa877ea4e14d1427da6cf6f46fa33ab01631e9ac06a4882e1baf93331e9b2325cb558f055fa3c39f96a01df6e9202cda40dba388f83935f6c27ddaadebad418e936bc32081ca6dfef153a927d30f453d3459ad6fa238f7299690276e10036577959dc2a82d5d48f1a1efd0a35fca2e27e128254b71fce06c3efa5fea0f5db981976cf20f710eac9b976c423ddcdcae57a4b6707eeb94f5adcb6a96bed6ac746c5ae70ccb39b8eede302018c7947c5be0418b93943cc5457082d31e189fce8fdeb731a5b36bad7d62eac913ea77279504503ee2bb0bf5dfb20a95425c31e7716fa89864fc1bf03b04cbd126fd77295e17e92da7612b789b3fc4fe293dd6a0094bcbaa36a591eb44699fb2963d4fb83b0680cebc3298e566904e8397d40188886818766c2853da9e07037630079c279cc2fe12d3fa6a867063895af719111e047983567c1e19587a38125322f3a2d3604e7449be77e8f7bcdfa8a274adae529853264b43698140e28724531ee2d9199e396a8f6057899f7b762850405224e602c707a145a1a12f7b6d657af4ba5b853ad69493b33eccc010e7c4648e28fa0fdb16d34780d6faeb0464ce683ecf3fb6d8252015ffce0c228e3b4cc7760a34e92f48fe8e2b618e2e888e7c7f373f2b215d15b8efb5a44d24f572f82b998a4c02bceff61f9feaeaf11c30922448d5e037cae993f046f1a9c0bb4bbfebd475a64a4c04eb1bf74be5c5135db7227f8122abe45ccda4ea3967bcb0702fbe9082bffff5d06bd99a0e091200e3948aa3d95d3827875e6a3939a7b0851ef140d4b4354c01780d0294d22222677f7de656a1258934477918693091bdf375fed2ff76aa03a18f7f086c5e69042a9d0b3d2636aa5ae7fd3d2acc9707bcad37e42437769f2557a5ddb389cbd0b7b5773761e74728ae938ed601dfe81a2e4a23ef2167527f29712de7fddaa91d414044161e11500f7a80caa014b37622cb6fdca4c4cedc10ad0ec1e628f19abc75a2f44e80211f1a200d5be53fd0ccd7013b2448c09a6e2738915e9b950031a0e8a7474612cc9f062d49c1bbdb44b597c5be17ff8bc320d160a8619c3cc426decd94d2eab8eac546a27b79490252ce6845e2b320a461838aa403a6cab5d7cff6bc14f48efa5a0ba7e2bb27f0ba9ba77750f5b0d3fc491b5517aee12f70b6c1b8bdabbd23d643b30f6ae81ddf81e15d04f91a6480687040ec14f3c9a8a91b2f0a80571d0110c8fb657918173d8d30ab5370b281e7f1ce9ffb06548c1a3a7b4c98d40e496b8f91827dbe51d477531a831d54c7eeee2510fe08bd4ba53ef19e7685a885073b9e9bf97062b3c3e9b73145f3f0117908ae7402a24d10da8fe512801e8916e058721e68e8bd01dbac773fc35437508530926913b29ee36d480348d0656343af92de0a35e988d9bc5cf0ec9e6b491c2ca36cc8bcd13011a3b783854549935fa4febb1542e1280fb2ce5f298b3238be63f75ea7b2f91053dbc18a3a4c6b65d68b3f9d8d9ff587252e7e7a0fe89776eaabf62d3c6b1db0ccc2b0475058a7c6193d35ae5874598e0f12508486f58b32dc7ae984b66471eaa9b16dafc0c8c96af30ed77e21270ff5b9dd00e59219e2b70e543496963b5f938e2844a09ec4e58778d471c7c401ae1e3c6027e68c3c5343c72d68924a77d5e4679d28d1d1d1ae660bd15c5d170ce61230faf35ee96e00208126384f3701efc5f52e7b8caa962775aec123fd9b8d61ac24afd56147f2426b98c5dfd2dfee7ca918a2cb1f41f9f6661d8427447b222bf781b0e9f2e02fe81a0407a165ecb0de766428a9242c967acf64872f4de12a435a718810d9e4d8d13b24d68bdd49541760388049ba2f6ee9b2574bcdf3e8f4c774766a7ee904aa01e4fb74a71c6ff196b63a51823acac1a0ba7954c1e143689373affd2cd5445fd6f436905ed00e035bf821b18820ad503b17cd191bd2e6a5a500c948bd7a97c2877e40c23a7613765bacbc7c0c33dec1b5f6fa38af673de48b60f4f9010e9ced05da5828edb7196223c6b738f099241af4e392b7083ff8654d2a21e68d522ac0f571733364250f5d169ab9f221b22fa220edfc040e213f9d29a02b0e6ce24d1551d92613391fcdf368f2378d98b6bf15cfa6a0bb88c9e7a0642182d4f1e8a887d46d9aea8c49d0dc69644c56238450d48a68c6b7d9bd20ed35d7a25b1d83bdae4df9feaa4a6a25c9790a17b6d9f5c4fa41ba145ccb1235bd156f70178b87fe57c30a67dc0e05742fd8ec9583211752b3fc7a38e0462cfb6a4a7e87a35ef1280687e9872e240e15c6a995da37f24ea6dab800708d789fe031e822314338bdf76fb8a65f80cdd25f9f2603dfd19217af8025b829a5d1b60f8b07c31ac1c9064539b05c239c8a77a21260812ed7bc18a4aaab857d5fb0d05f522655da904bf5e8b8b566f4b68d015fe7c5e47308dbeacaaa8edd597feabafefa76ece4063f8b6e04bd5e6c265c00f207aa5958a35e724756f4050cef950ce41020ee269f8df743f101eddc05a8d3dbda84cb49d02866886d8d79dcc37d85dcd12cf4c17ca0ba9f5c6de904781038de33ccc99e579922b98554c5221bcf02a19be4970f111793a81af1fc3079a5091e94728cc0e2cba3528a9626ac87b8c17a2fc163e8f2b5ecac4e728e3125062d377fb43e2bd9db22553b8f9b0a2f9b45bdeb4183e6a770ff1dfec3bd6e46c277410b8acffe1e966754eb0ef719c0eac804cab3e09021b8da349e8511077a2a08f96cfc898fc6d90ec4b3624773c6e80882bfd96f2fc7f40fc030f7a9a4c2a605cc5f5f186e1abbc7d95534ccfedc8afcef39871a28759bcbd84eafd82eacd2bff5dc7c58ea9c9a74871b873bf1ede802b463a5025e87382a382aa8f97033eda0188f0f7c58bf23ec1b5363e92d029a6429f179486b02429eaed0b16bd1181ff636ac6d24da66f6951ef1b95ff1c8b6522dbd7d3ce04f1116d609b86f741acb7001ec9e442d261466827d50be48a9237c737bdd2c56563a68d000060eb280eda9c7c63e46ff299fcbcbc4776e6c55c12403469da0a4bf2e793d89097401588c2c126752d060b1fd1bb68888ecb689cfbdb891a321404aa3fea3dab68b38235f7392a4f62c84eeb23e279bbcf6c8aa87641c2ad1b4433dc37f3da93f2518f8e7fcbc6448279f1b9142ee401a16a1e5a411d377f096f53cf33f6806cbd866390ff36768e66e8589f70fe90b5fa6de9cde53cddd796b85b05b64a855da5d77f9b10149561fc880efc7bfdba35e60fa18504f0010c15b3ceaa6264241d529ffbcdb79862d514b99cd328963c576d9c725bc791dff326fec9d473533b92b1c31ef77e8119f589f870354dc7b602909b143fcfa9117674894f8add5045b5f9c46ae39bee5e5446728fa6b064a394b17bac66cf883e1583a73f794f58eb41a27f43b9fb5a5b7f8d23170e8e0b339113b2349245518ca1597e51d93155c4bd75c1dd23b25a67f5711a3d2b37f5d0793cba3e2e7371f6af7b434a1f68e347e2479b6a8a64d46aa465d9cb69b061f5dc517f83e10755ba587b380f9c416e2c52c5ce6f3ed43f88c1770b25b755755e01c0282da0925b7b79ca02cce3d118201e7b804135a7a430bbd126ccb1ee2ec64fcd438282c8471ed668eb09f47e93c5c9234cea34f1a654de77e684bc0c90d0d0fbd11895b603ecb1b26a6c3dcc798129e6539cc8edca0ea921cf93f336fb9bbe7f317206fcf6d8fe1d5a89ed8b6815207f4a9ffe8c7ab37157c5d59ce48535619f8ec6b1ae78388e43e18efdb9f7fc0bac8c7ec1dbc5e8c0895c9bdb91263ff7be09339c28827ca9d8e89d476792f6895ba28710274603d2329b2764d061d70f045619c1a8a73eaf2af2477a9c3d06d315b077180fb843e59b5da106b918d782744a2b9aa207136d4b62a499e74454d1b90a24ec8a7dd026254480a937350161d8096aea420c8cf49fa2bc927347339b418e081840777e605ca2fb4efed039a820a9de2268b00f404e12419e37cb7966deed212788b5426d3cbd36911ba86f655b306a77ae5b0cc462bbf17331a6565bd9b4a26b728f2519a505a14554b357e5163d6d494f7613bd9f767b33629873d4ea4be51a9cb9288372611bddbe19f2622da057fe5a0bef1aca29a6c9697f7e70effaa6e7829ee61d052db208ae9f49a18f6aa06c8a548fcab228d13c002c4f6104c4948150bdbadad97511b1b64c61993c269fa795261093014e5557f1331c0587fd14f29d91494b73401a39bcd64ffcd6e9000eaba2c18a8cd9ecb5c9277131ab74d45c5cb0151d6085ad73aca7a3f9c2d8a0646cea382838c0da95e5b6be5b66ddb33d755a144cda495cf762a70d8bd54b1b0304151d7ce6cbba41f2224ae5d45dc4e9d923cdd5ad3374efec9aab0f177627e8e43cb7f7b5c8eebdeaf53f918662e69da630047fd0400efc62892304070dada1b6b2b118618cc08c7670b33d21259bc9cb7931efeeecc613d2739d499ab24adf8a58d80a8134bf7959848799c50280bc2d8cb9481753680078d9f7d82cf94461eb5c73c638ae280a4f986769467904211c9085627ccce62984d3f73435b7ab08bc53c8110d1c94705c02d79dff3f36c17a94e853a96381d1283bfbc4f8ea6837e002d28d4a801f137f582b284bdc2edcf01b2424f61f90d9d7bec2b7d5ad019bf7b1baae3accd85fb9f88fbbea3b7fbd823a7ab91990af1851bb566876315e60eae17199a0529d0972c4692c346a0af9ac793afe02e9ab8cafed20be17cd114b8ccdef1afe3a2e1a1caaefd8979efcb97dcc385fd3164d963db5f101964d73ead46746802f40a33d4fca0a9ece343dcc49e849f1404e859186dcc8bbb1b529ba5af5490434d7f559672180992f0a12d5b4526cea9f13bfa840a5ab3b4623bb43fbaa5af7de85f8ba83aeada124df576ace5afa331c91da46927582e7be7952687556fdfc6df85b4cff20c3f346e4aad7e9ba7fff74ddf4b0ff23b5c5186b3950f14b69d159be73f58e7e2fa17fe1f60524a720048fefff4c9be0078300f42b6786b77de630fc855e8b359a7d05c1883f82f55b518cf815a8b56893618a07e55cfd656aeca9f0cfaca0c8b017db202e1ccb3f9b5aa9ce1a1e365b8d42414c6b2b481ff68c323ce243c3859f709542d046e9b5cc73becb82a6ce0fcb9d8723ffce1b270c94bfa2533a398cc78a03246174d5e0e84a528c9338eb2c9833e33e0160223e39840be87d8d6f9a5401fce29dbed7756bac5a151835a6ee7d6425565aec24618fb4f7dd37d570bc52fedaf814571880906518d201ded6b00a9de0fc4588b0def6ee454f55a46bde62fa0511bec15c296f7cb5862d11e36de7550801194991549e46281c314ffb8e0c507ded1382e0518a8b355cfc6fdef89923dfce16b86dcc50f633aef2003cc0df442f6bb549dee1aa60431aec66affe182148c2ea5011ad7ec6779164cc3aabb6702e5430201c7cd7ad2a8030356f5573e5466aca0156ac71726ccbc4f974c85aea9afcbd4922a789cbca1ccb136176cc2176631d55dad79f014a960dfd48a59976b2b5e25f6a5392a6c01c45c4afecf0f14f0a0133ffe387d79e17a11d3267d471bccce49687ca583ed1655887d0d3c0d7fdfd3da7c05d5bd9e904c8a7b1dd287f056bbf2b7a7a9f9aa9e6c8e876df297d9a4036cc1ad4a12ef6797c76df8bfe4d8f9508857b112d74722c80be35928302d353b23c9de20aa0f25ef9a6b6c4da83ce4303ab8dd489c8723c767a3757e4294df6e211a21b6d47ca646e2cc8e92125d0079584d9fd2aefba8057c6d67d86e983d4b724e33201337df19d492e018e2a330ab5beea3736dbe35fee9110500e6c678c70a04a0f247e6a50af5b1bcfc059b3322809cec63f0cb41bc877ec667ce44535328d824e71f9552e4cfced688bafdfb3650a36a8375aee9d700f1dab82643cae083141aab612dbd91308ba830e2f9603eb178570d83d36325ac618f6b170939a7282db474baffb21a87cf72f9c1427a7ecea5820a3be872a8d021093350dc2014b46ff8bbc94ea40b5a678fa140627d1855def32506ac97e69e617a5738e5bf1dd06814edd353f2e37104929a1061d6ee3b6a20759252718d7355515117f63fc9f8852f27ee9d416416024dd70ed8f11a0c744464d2a76636c50fc884d08eb209b01ade40e9cae32f275caa095fd05a3e2f74505a6959a28e2234c050e69f8aa14f60c3d2a80a3e33b3b83d86c21bb2dba8b4141dd5b42f962b726e54355b215e08f30f6360c431b7c8bff897bf7e424dcde512170e10778dcb7332ce196e0ad3a9d2b2301752d9454a4b8307555df76bb2223bf1aae62de97542545130969266d323118f8113f0abce2afba57e46d270e49775f9b935a72f70344d21b20edcc025f27d8fed76adfbfc99753d78f789a2694157337f96d80e12b9a3f1bc423f50a22888390da16cf97eb5ab15e457ab45c145e6080c36c1b55f9a7e81a54cb6ac811c19123aaf44ab7693ea1140508f990254cf3844dcdad3ed1d4ec274c8da44ca3de01692f453869a2b9acec4b6d68e0c024047e2c7bb0db1edd7e2f7a19519d54ccbe620916f17f6f3665a85dad4d80a9e0f63080f1258b75bec82759b9e5261b35a5311b7c5ba49595e4256a32423507867d332365ba5b805f03ea1393f913dc3ea964a0e0a1cd604a9cc476ef121feb436a65cec7e06d5d1339d497d5bcd30759864056b417c0b65786660d1ce56124fd68a949aa883665f873144a3924f067389c02dacbc39a8ec05ad9d3655dd35c929847119d14936f0ff91f9a677d123c832cdfa79734da934b5850d83cc10841517f3aebf9828f0159f8639f2374f6f82f89775db8956122953bf2ebbe269cf9363bb007d285ac27915f18743650e49b4d133d062a7717c433b3b84279eb124218e210a1f66276022e84ddf82c172c25f9ffd5ab6027e8866b10ee0573aa046a36f9153705bc1b8e2f6707318b021b406b91e9116ad1b0f35e911c5e955e6c93b46cdb055bddf8127c4886228a8872fbd6129ddd8ec1d91d4c2f2d1e76f9c2ae0a3be76810df89bc0954ad60bde63ff69ffda8b7aca823045e00f16b08c084952ce7491488d522541c020abdd566a42b60e7db54a7ed24803a10574920eb0bcd01a1cd1ab3541a8b2a56606a43a36f7c02a548229241e1dad53cd9baf611ef3be395cd2a265f508e0fa5803b7ada46eeaa2806b8b5de3d52abfc7a7ed5035061532ead05d8c3ce9597017a92faa475c0bd8f53b2bd970d05a74a22df7efa4593b8c3609ff88c6cb9d28198fa329893bf99e9841f9d45ce7e695bed77fbc6435d26b1d9e3119565c538670ec211ce21599554b81a64666eabd7b274c8732261b6417b01d66c89d7a4f01b5b545be63df54f5f4ec98a403676576964f8eca6b9b3d0c34fee747a6bdbed4e1f7caaf21425dd3c59a2da9691ee7ca4e8318b0fde752581fe88d88850f764108c966edea6562f898cefcea87cb4d1f939ad8b0bdd2d47a952d7d5ce40c297478505912893aecb1b99e8a6a6d32a4105b17ce0e31feef930e0b40cfb11ba9b8f8688c74b737d337a13720198c011dadce078c782926a32f24c1e108e57bb61c8ad80f0da1bca481f672f5e67ecf63b16f1cbf395f1d79c3cd76ca8b0bd4c77365619b90c095b90dd951fb373f0d74c997aa7535a524e5ca8f5e5ee61706b653846f45fac992aa088ceba059acb5fe9185f4f664d8cea214f6c7ab5f2ae4ecd2f7970a500c4a490b3803bcd62f9d521079338e4f2d363b563e7c43149752df00ed52191952703a476f8cc6de2dac9b679520029dbd057f4694c6b6e854b5480cdc43cb7d8c8414d6440dd8a6b8cc94e3b85f655c407af8cbafb72b2ed49084fb8ba3484aa79856ad3238dcaa76cbb567199a5c3a25d0348235dbbdb91473a70b0b2e503264e1e41e359415377fda3510dde00be6e453f8dbd1c3f7c5c4fec811f9988a1bd58599a2a7cd3d796a69dbcb77ea01f9ef219bc909bc81b958cd689db3c1f8a054b555b1a338337992dbfc8dc9e457a2671ebba510ba379cf9dcacb553f60546f51c12a83605da07f7e8fc2d3a5a0ecc2a03c5fba7114a0862af1e62cd175a3bbb5a11902ca8881fe29a290a60fda119369b36c2d94ea5e9aa2c9effdbf03f5a78bdbf9ac801a6ad202aa03ff9b808ceb79c83045a5464cb9487d19440bd3bf4288efe2fd1ec00b86e099241af1b8701fdefb8327922661fee5e72de9ffaa1445dbb371ae9b83aabc83b128c2f0c8ef7e89231575a259c6cd11aeb07deef7dfa21fb71c7560dbfcd47bdc7ce508a1690f37c47e1c24048e384da0d686a06b61edb98ee2fd6a20daf63066281189726fd38fc0ad6469e3e57b0511e5acb5a464cac41e5649a8bbcc72cefaf9308d6debac286a8e9a9463519e417e0a2118f7541d4774d4cdd90a62f8a04f96c285c2b2e1eb07d9516d2c273f08675d530414b687d0491e6f138921a1b08103ba82c0bf4b28f5611929d26c80c970c1dfc4cb2df86179d099f59f2c4e72ed00105f60eac0021f8669c4f7514a5b1772a561007384c0437f5d1757a83d02627ce55a79c0aad58ea50376e5c09968c4f7a19d0cace8f19f9ad7bc412e4161ce480cba498f2bc3a171355b6eb375be81083d43fab18b473d38535b18bcfdbdd3856092ae0ac6297ea886316ba675d5ed22581ae052d5b4e8f56b710bea55be42c270271e06c06cfdec375c506792317ae654183d8a8d90a25cee123fe1fd75945a2c14ddaadc35be41383ef212bcbecba40e01ea681e43e4f01779d9575662247f3b53bbe9e86a5bbe8a6fae979f904edb8dac0cd015e09934002da4f8f42f093cbd07b7872d668c8e46c03efa629fbd5a916bcf04dfd46758a3eb2bd2d92b486c718360e6120d4a68d70181aa2ae071131006c9a5769b1e2daa93cb8eb1c14d1ad69ca4a9806e584e412ff27773a4db9bd6befadae9421d42fc54e376ac6b40a93f95c0421c7ec427a045e6961e582c9a833e0964310671e66fc7d157e2f420ec9130e9b62174c8a38cde04655f23505cd448febd6cfc1768acb0c7b87a1f303ab939aadeb571b97ad6409c5a7b8668530838de2516ebf36271aba8603ab71832888e9f0abfecf016c60d0c2f480ce6fcbb2333d404b30d281e0552e87776fc9f82b26e205d1473178e944f82e5b4fc9b30461f7bd93b07d62755421d034f931c33e27adfbceeb7432deecc99b4110faf1520c2d68a5a400c11242291260562a3e17d52828cea7b91617a024a2fbe5a98e0658f6aa2e4cdde0eeb8957b81b9c24ae300623233053827740c26ba1a58831061a09c2665773fe876e23d0b1e8866de1d118ff05824de97781f8fd99e4d6f4d8487c3a98c282215cbb8a8f789d70128cdd63a5b729ea96803760bb0e8177e2277302e9a04060a9abf3e28bc548f23d07b1d0c97910cd64491fc12f004b014e162eb703b3f13c47139a0b869b32838b6a344ada210ebcb12dace826e76877c327f881f28ee2734d5cfa5c0e688f935959368174da87f58810d64512a601f7728af4e86ab2dca4028ef79f1b6302d1c09676027a73c1e897c19526fb506ab8bf5fe7cfdb9a612dc9531aca02fb1539a0746335133686cfbbada4096203c56dbacd30a9762d2469478e3b245b2aa48627a8783ec782437f074110250d38b56ebead6640b05fafd037b6158b950fdb002e8a1aef6fd4e3ef41287c4dd019a42d7400d32f0cd76e2bb18f55ce6ba8acbed823fbc8b17869f13a9faae13eaab3ec89c488a108d007fefa1aad26eaa30c64d4d02b839f5af18fb030e67270a7cf8dce357c6552829556eebe79a35881a2e7d9833e90d990ff22bfb475d02a18d05cbd5e3b59214fbef975e33192668c56547dd6959f758cd9d99f699ea17a2faac63cb75df8237397b669c8b03840f214c720c2ae4037ecf35eb3f2ecd82b333a55de47cc945fa24215d8713c0385b75b26b64edbf0d51bd195e866733692df9c0dc5a77f68185af72be7e51f340c792efa88ec370a55331c98ca14f29b3003435c72e8d2a9152f7636850c0ff25dc232115a1cbbeb6ba295c31b56ec734f0dc92c7c7db5e262e82990ed423cfba7f7f7cebe74faf202b160fc26f34f09f5d7be813cc643f910a1c715fe894ee2d50b2e523ac9e598e08558958d47eb2f14ae3706a85e115c88b7678b31654667ad89c6ca5670c7b2d6aacf86505c3e828720c8b57c79ea7363a7b4f46a6889918a6785b1a839d1a66fd24ccecd82f7275ed408cda2fe08aa6a1e0aca3b28d25c6f13e7a7e06083c13576fa766a5535ab292e041fdddd1ce116ed04c167609efabe7588896d070cae22fca621335c5f6a76fda845a4d68a3931ec2a0a5a5154b6b4541c94ec8060000dc6a763634a7c81d6e249c3659b61f629a4e6dd44562b527e5e0d39d002e75843c9ec3cec100b3ba424daa8049cf60fb47a78d7c3f80b57e1c33ac76222d0ef1650111590744b2ae0eb7553ae9cfe2e06edcd1f0acf3c0ed00e54388e7c87a49823ae0d76e21d7f0644ae0c6f458c12db14f800df56b67e3f5516fae3c8022e9d5fca4ab2a48aa4e6541bd7841576fa0542e016db306a6d362870734a764331dd0bcb301abdebf043c1ec9ba6a21521a14ae298fb8a1beaa6834474c706cf018eb00929baec2dab29a4a35d8f67625133cdc75f93f5ff0c1ade288b15485dd8a9129cbf1dfec8613c3df9df68c83fed03706fd5dbcbfedf227885b080caf26476b31165219991d70f7a2eb391ea42292a4c5522c51981587c5e989e0b754356b222308fc45ba4a4e4fdc2914cbde343898df44e1c5c5749993b003012db9b133637418af1da17ed4015780c5510473c3c1f5591818f34c7dfbac9bc41fa868aa6f236a602496e4f63481182ea0ab0277aeb71b675d94aa5b82603d05bece5b16945ecb2bed4d7d7dd4d128172c583d8d59054a088facd9a8f91a7148afc4cbabe480442d30f1612d127987f6bdbb22786f040622f3d65490c408738e908c1a31eb3b7cc672f65701d7f080ed353f6e7844e043a54e2bcac88626aaa28ddfe53cc69e8f2e0bea33b4aa62dd203e47224f0f370377f7cb625d4e887c6bdc309600a91b31c5e840a35ce1a00c2649b0f50dd560f456acecdcf1c0a9868981d916ecb8e180b383ab9775bfcb3517fe09d895fdb593145016f330276155458893bfe83b07e299409ad11db62bcde28eaeea026127bd77a427d0ae5d7fdef976ab3c36f41262721013a5d1754fce922860c8ccb0bf51d89cb32e71d9be7c0bd99f23727946c9264672db8d905989e57b11384807dce682a8a52041ee21d375406f86ce743cac39a5ec6450a25539047e065ac2b079ce4b3eee1384edc3451e77b7af4b331b41e03c7c7f5a717a50f5ffe65a7a281908e40eca1f10387ea9aee50df78975250ea9fa86e894f5bf459712528e0842765c463fa145a743c267060b1a33e2bc9347efa15327ceb7c5d655e0282b726f44c424f1053233fe8e731d8489e5076b00d69fd4a7ca3bc6277cd82b80201949a00cf50a89f7536f72828eef3f02fa69cfa73bd92d90d463024b19061f35fcc282e2838222a5d12674018d23b868d0f24e28eb292016359f5a936c3cb06902c1b159838679485cedeb074e53d1bab87497e7b0068df8a518b5f3889e386a25d6576ef58a104500d138fe5c693d3bf6aab88470af1f17694d2417da9615ed58024eafc65b1fdec01f75c5a4d7a42e6627b6e77962337b2795539c22530d3b8e188a95fcfef2cd4015bee1bf883670a1219e3d538d8629b6811ec740af231cd82249902d6cbd5933ab1a293a93b5aeedf805decafdbb981e7d7e12d3ec3bbc162f41900042649f08d1f8c1163d4763dd027c168b1ef42b21c20fea63b60fd16e6501f07e5ebac73971896e306dede1b524452a0e1575561be2cae57afbd19c5d24d5e22797a6a5b82e00ff72627ae8fe1817c9ab48e93bfe5cb8ed98de5c3ffec4eaaa22ef9345a533cff90e0db70df886c0469cccee884c52ead0341051048abd718755fa78a4497eb84dbce7c86c1b16d69a0d0e00385e5f6c22ec48e050e0621141b90e79c1f8d9506ec327c7db7b3cb4e646dc2cace6ad3c99e555e1638923bcf0d1a318eb63d8146182356726889d246877d67aa5bae1f938f482673e6455c43d9bf86cceccc4e4e4a5ed14f69538363add85a0c31a82bd8a419c20ac24933b8eb193be70192b6804459c1bee4775dde53df6f5d23f08c2bc2c5dc38992293e04d664c5ea50bcc76b65bc34083f5dd72f0fa84dee6a5f507e742d4c055dfd2abd6afe61a0df8c3d2a4886b9ab211e248c86500f930ed445b7cdd71ec78526cc20e533f5de4074c2a060e5bb0e12b2f728409a1869da5138a191cba4eb01555e7a4fca2ad2bbaf2a74e772e9ad170ae66f3e758d8ffec68481f1d1318d772e6b2d6bc6b8d7895c12d12d2248e77451129889e0fa1e087588489257a7717b6820683f2589ae6b3268e84b39ecb9a07b98a75b7496dc67eb4fe87315b2b168ccaab1d3d1cbc8e72840b83cb3492a0c4178a72fa9025e7269d2b27270b8f2852a5fce89a01f861d759c68381ad1c7b001ef4f8f10fe6cdcb73e65db889123d78c1035ecb884159b6475e2be0d388b20d167c4835f26c1fd2f6ffcf4792200e172b1e892be23b9356bb744b86f9c8018cedfaaceb9905ddced7bef12735e8b526970b9a03dbafb74a0028632f30c7db6b86c628e2106b73da486f2d5d93893fd1b772d3d716a79ec591a3255d0bd6d39c5f4e591f4beb9cd90e0c9379dfb2710a701bf1a46f40c90607bcdcfa989116a15ac06f1ef70678890ff836e495ad3821f9207eac45f926fc0dd0ea56eaddcd965c0ddc96ec9da1e9a73a52fff644a786bd206f25f5a0b1ef1f5a47dff30ced33ee14f98932e6e7da97ff7e5005239e1ef668ab1523ce7767ded78fbf9c65dadca224a990c619d2083cfee9b6aab22158accdf340a6bd774225bc967cb0b14be398e15ce6c344895f3d7acf1f1e5ccbd52091d2ffaadaafa1101a36e0027e6f1603932959eb6f2417d3d3b3346e7a2f674098a61c00b1ece67fa7b395f265488db298aaab270e6e9e9811bccf0513cf39ed7d34ad53bca1dc1bd4ffda98307639c6d76c971911159d9594f930b61039b43495c006cd54d6436976f48dce095d6345dd82a54771f4bf223df06ad0cefcf44be25306de23ffa44afb7fc53753df78b664961cdcca24d01feb70d38907d70af69fa5d435b69bab8d9412b27570cf6212e4afe908ece11b4f21b5b1440e402ce952f8ba56d24fa123cd178413f83d651ecbdd15db75a45a1aeaace3f8315bb749efc079198336c31efac78a0e9d7de259cb68f340a35e9a0fa53f9fc2d89d450ff04402c51057597ba091ba79b9007f503c5f1d241580d7c2c4444cb9dcfa9f68fe4d7934c0b3eab2ba0eb9491538767384983eae6ffa98c66010e815aad1a9c662f8104f9ca39f037beee2cd74fa7e25c7a622a52c9d59b2a25d640e7151b28972202b371a3c5705659022761cb6942ac7d16d141b9668e9aefaa301a996b9d47abc9991b3e136de05dc35f00ae96ce1196b89bd402660ca23d46a7a4e702a029c587a40e3888b6aa370e81788dc04092d7c305daae6b82c516e95cc8ef73d424f48a62c0ba1212230b0a1daf3728f4fe19fabe67338ae888100eb6491e1b2317cc24bdb78e33a89bcc96d21cb3cd172a4df1f512fb6385ecd2c480a4fe5a43e13225ebca9e958308994a093881907cc8e61c564d7da7b0640c1ff294f0c1635ebc37f283f44a2d571197a6a825315beec6dcc291c7c7bb1e41c583d71d3766ca460dff28836b2b2b10614851f553426804be85c99cb66402e3bb7fd0196d0a7dd978ba2e13b167bd1aca1ec4286922eebe38bfcdf911c9502bef3dfccb5d30c13ecba42530fc8bd8bbdfebd34bbec490e773a3ce99d5f93003c904aacc535c4133df772e7dd980c611d7da6a1e7f4357dfdedce98e19450bb3941fad79ae74ce586158147dec359ca155aad2d190d9e90a644e4a7166f119f2d9b39461f230f49b60467001256ad91537c1fe5037095fa2b740211e3b582cb165de73081b0e58396121f4619710b2b4ceef0cb34f4c445430659cd7cc5037c8c01dc36cc6213fba60d982cec0418f3717a47ef61750670868f1dc71bcbd84242ee024d0abb2581ca590a5c47f78dd8000ab9d973e8a0f5837ba5d3fdd483c2f6c7ca3da755e95b664145e03c3a202049e6827180809f27ab03d7b0464e40f53ddac48667ad34203658e68a534bae43a60630c20cff068e6b013c9ab51ee60e84ff8e2c091774a9cb1839b6c2d02c0ba526e1a796a0b9b1a7fafbeca012a21fa855f10684d9c0025f937917ef2546aa3177e39c665272eae5cb2ff983b71b7cc43a8a7edac5c12e4a5a8716df61772bdb61c691a4bdff4585e2bae07128f4aa78057fb3873061587d906a12a12de9645281c619f518213c05d1fd9c209f2c4f5c1d93ed61f964d1d1d8c01d883f58d7214154e1ccf6d542702eca81dc7175c2fd603ed8e43b61c215c36d947158a742a5552b26c354be0e08b576dbc95fad2d9f415b3a70bf21c3a2320b88fa97d63371cce233683b043b3e7b2080770114d384cd909f833cd89861087dbf386143809dec6646ce028a5ea6cd26769b3f5171518709486d20f43f2f80fefda849f0c0cbc04a287244da50c1cea3075dbdf2bd320b42b6010daafdd3b5ab49d0af696ead40e3f988377214c08d688f8cf0f2851850c0995116159ed7a32ef74985b315cd97e786c64103a2220a088236bb52a350a839d8fde21b61c287f09fa5aa159dd571cc63a8ed9a7d1d378eb8908b1598f9162fe25a51681ed6a28237767bd67555a40a44e80d6e1371aa49f6b05eb064d70059f8bf2d393317b9e6851a4035efd15e0bae958739687f5a0d456bfc284c422b79abe1cd0f1a43e128ed902c6bcd6b4c86f440c75e87018075da74c0a1cdf7f469fa18219fba8b611939e4f94c7339e67fc3fda15143dfa3549d3462daa671efae0501f75f1167fce91bd22fab59942e2757ee3b5a68d8386f16a04862dc0ca134ec4aa04633c9d61706b03701cd851aacd65f9a509e5ca72fc6feaa89098beb3040cc8afa4d8c6e38253c10c1108cd2500d8ce2e0160c649308dda341c5d8510250be85e1362a43e362eb239c149c7e0ae7169d64ac54d7cb4497c3d81c366a71e0f9d94e8abe989e2b30cbea8f53dfadaf96d4f68ece47def2dd7bf7d8fe063b5cfa9142c51095d13be59707c337e2a8b6aed800d177b311148ac076cd864eb7ed8bcbd56e6759a09fcd74b9550ab4fb25dc5504b6d95b4fd771edfb6c512572e4859ac221debd77cabedea637b169a17de02bfd199354ff44996565bc8fe2a2662a5ae3b375206abf3bf402370ee8f81deb78d1396963bce4633584e284edb479e163f3a8ededc0def2fb678d2850a93dd4720e878c09fcc4517e863fa43c5aed58b24f1f16ec422faeb040c99a2e8be457de9d3a9b1129dbee0064f10def851f8217317f83449a22be7ca34df10bbdd0c3bc95b6f03ad534a8182a94be74664acf550dd70371e1413363058424d04fb54021214d29f8edefb69bc139004bfed19eb79b2b6dba5779f41eccc18bd13bde77537876e87ad59c4ceb88a05b0e3eb94847ac258b84cc758fa5c57620cac442c0e649bc59925db52169e74f8203b7561ab36280c9d05b64dc5321d6578152bbd3f4988bab1813815c690e213561dea5cf9fd91e33697e996dd040c2d2963440f6ff7c48c510afc6628b34dfc68aa51e7c43fc370bb4cad24e64d375f14d7c8677918e1586f7c1050a5b7d5f64238174cf25eae14d6569a6f22f79c23788c42f777daff1aca24731c02ac413d122bd45f9b63c7189907ab79a727f3be7fe7b7426ad15bca0b2ac79fad668f6c76646ea495e0857aa1a9d24a0a6cb5e4258ce6bb6942bce8f09169bf5d6e1dc48bd20f9c72385e2af6a6e39a5aa342c66cc6df0b23fa083a851f7aef0a506ae71f293cc5b779c44307a745deb78de21451b48ed8ee917bedd7caa21b67a6dcb3da58577c1dc291ce67ea6edb280d5a3aec84fe1dbc106441f7d959e1090de50f370d8a907f94d0f4174b2a29abd2d04249f02a918bdb0c0a963f7b2496abf270a32590638fb7d6a392f7b9a1fafc56a56636b482d1bc3a175b153ae973e3d11f2851d656b92eba3ae25c2afeaeac953394ec089e93896b68d6430f9d6b7cc57ba382f442df2d0e532ba750b01a9b11158f224adab821d328062d7c0faa127cc22a76723861ab307ee0ceb265ada0b653ff3f00c7abceb3f690ee4d7c5cbdd0ea8f56bd67c3f47d6f396a56788e71c0d34fdd9f2eb97793cd861de3e07a3c067f6e768c3cc4c13d6dcf655717e45318046ca2017b7d2e080a4e0a2cd077931406591d9c38fe0b3aea467f23b4b3111a5ea394767a347efbff29f177bed68b1eed575d5de5db10839506ba5f7487c655f614cb4ab1fb37b5238f5a57cdca8750b258c883207e410b98e994a7cecb9c9f3c9a08bb4cff6737f676e0049b491254af1064b96653a2a2fb1c3d482bd5c1ca11d9da8e62e917199541314091f1c87cb7586817bc9a3e2d68a81efb2537eec709022c4d4088b6033df28a75b5e41984bfa9caceee988fd623d0650382acfa268af992fc50954a958defd5bf6f367b738809bc9f3fad6d11ed839200116216964f99a8c165758f17c3352437c9e61aea1dc8c9843750646bf8f649141dbdd2cf341becd6566e378518b04b4d54e4eee746a158671cbddd18634118221fbd0283093e7c7a4d926b49d162a26f0801039954f899d0c3e6fffd1c02837090bd8790032f0c4d8adcabc08c2758bdd5914b3967079a6c63d15c174bd2469f3c5286ac6ac018cb4b8617a46002fc58705f7c3f1204655038dafd4facf636d6f3562ee4545e779adb7ca143201f40ff0fe7a5f7804e984f84a665d219e370d244e8d202642eff1bfd8dccb7443a702e13ff4f395cdbd690e334ed33323a456bbcfb64bc39a71150c018af17b47bc8cc6e0505b75ecf93dc8835378cb331030dd711d68de8740a78a3a0ce0dc272f0a1a6bd6895a5b89d276bd017ce37cc25e98a4bea21b9b5ccc2a336bcd60605a968f7fd19c75553c6eb9c894096231eebcd0495d6fb82404e566a0e6c21964f91de7ee514adf2050ee4cfe4ea4a0c6cc29c1f077f52a2defad0ed1e6ee107d58a347b76c32e6f00f88faf3b32e4387d6bc99162a6b37d9c9d7fcbc3038863df9a24a1db3a6309a7d8edea2787c705cf3592016a16ff208e8ac3dee76fb81855950ec48e223086df381926bdfebbed04cdc6352fc39e3df9f22997832e4ff2de9fdb5053d47226fa1851ac29d6e980127db0c9c073ec067266619cda10faf7dca27a4092313af3bac5835440e3a1d00d3d2e302e8217a11a388d3694e0e211cbd248da64005fef3e10ee21e8c86dd2188505b30374663ac73a3a9befeee44af4a197b0775d45ebab311b9f1bb091bf8b1ccf4e7650bf1436235155e05a0fe1736ad0a7e2955c18b055da90157910483dbf14729a38e39b2ddb9d4f47c6f58f19567cc0caa40051240ca1739aad42b560c059d13023ab947dba3924129a30b39bdd3c50d04820216bce788737803ae869550d1abf7d890d6543794038bdd1d8ae94531e9ae90caf0e9cb6fcffa664c486f3f23f222b480c2669ebf404b625962f0d5d283ba5e1e8e34cb3bb6bad7c9379ad0ddbb1cfb2bd6efec1131f98ecfb1ac26f27468b6d5b72b08ec9fda2ca82b9091165e1c9f2db81d6bf3d2550edb203a932f802542a90395228a899b2a7d2c361fdba93b99450e321e7f2742311cbec711aa44b88c31bbde7a4e72e54d2c5da222acd1b7688e7116cdcc660a7837ee4662cc230d678d0ced12fab903c39235b4fcb3abf3c9776edd1dc6cf3e2a932882e9a35682de53ade0fbc68f1e0001da9335caf4d3ff7c4943e54c551dc3f3c77bcc0917beb43b2ff8e5b178e21ed97998a6aff4959e42669e1031efe83f1c396a9a413cc628be56279c1cbbca92b1a45ac47b51173c2fc033aba8103ab9f23bfda7628d3beeb11efe364962528ddcda107ff1935b7f4ddfcc9c4fcc8a2d4c14e1a510ec82487983b13810b6b13934f4897f4e3b0a3c75056a22803b0fdc85c3ae89b706bbd3e42507bcc73101c4ce4466ac579e9aa88e83240d858ceed6ed856cfaac38f31e5f86bbe9582f3deb444bb618822717de98a542cb5baf8c3fb183ba00a3e79f65227308025c71f31bcea823da354918e0d31071c3a74d01a13f9f2b9402f3ec518a04b9d1127d00345424430b80f29f42587b12e0ff0ac0757e7267a058a6e8b3e51a776c0492d8be8722bdf2d087cd826260b5dca57f3c89f022f51de3275d28465dfd6900dd9d25a72e65f8f977ba0e2664b5e4522390c1eb99fbc50e9eab7d93a75069fd5d2b12df5958866bc5726f783ef1245f02515565f2d35cfbab6693e9de96eb77e29696cf1ba3ef7e4dafd783bd7ab6fc1625a9539b1fd4ebccc8cc87a59a061e3b4dc48d214b601e5ba1cb786a93fc18399b4aa10b2f4d644447d7213569c1d964823d1179c26fd7ad59b50c9295ab9eeb93cae2e22710d03a9a532f860de7b59c3f3f59f17c82458cf018e2baa9ab1658e5b26375f9c4d8bbf3a497026426ab0e2bd9420d56c93cb383d3f339b35b44a8eef791c5152e4e7433c068790f2fc2ae6f3178a0d3aa4fc8b68de30b35d898c3d63c884a3c033a00e67a6c5bd16f724cb2146185fbc0290568d9954611ad580e5f5694e2acaf3fcc43276a2b96b46e49cf579cdde0b29c946e567f72cae85523f2ad675bc4816c396b050f01098cc30fcb6faaea12d7031e83ec99a2fc12fa6dbc7f521e2ffd0c505b52fdfb239e8c4140356a6dc25f2cc9358e3ce95e0bf995ad216ffe22a5227f5530ac2e8329d5511ef74b3a0c8d13ed8750170f85afb388c60207f1ebcafc317f6535f85602cb585053c5266560bb12dcbc1e79a2ef760a308a5958fc512ebb050a18f7cab2867310af278061693d23b1aaf65947eb1609c564c566aab8d379b02763c31053c28c5f0a636635cea2b0f6d7fc468fcbecc1d4cc721129699cacced01a744ba4db085bed678712a6fd6a4f021f418d5d1148727c584b01c0cf0760213d88007e831222336160a497bac81268e25c4f9f1d9f7cf268ed9019940a74f79ea9b3f451ba74b866dd5c9897a55c9b755b6c2863a69b95e12aaaf806f563d331233321b9b972e1d176e4d361879baf6c504a8003c73340678534136534a0d8159de44a61899af8b4f13ee1e9c28cdca160344d65ba8e29d60c15a3c6d8c39f2452363a6ce18a9b51df19153be8d06f7ae837024a9813b4f0f35c45c5c4878880d240db67b24fae11c907f8ee20d5a2eabd29a4ce770eebb6bb00068df78b5df008c2ac92b1357f2f909576539eb1ee476a417b64eaabde10cf8e9913d61388d656bde33a720ead44583648181817665a7ae032c8e42adc1d0a811645f4d3280ed4d9f41bdb2d0e802a6023ebeb4488c0d31401620eb3fa949682cb6dec6e3d72f38d6af8d03687ebb9e6cc32e9f5ec45bc08914ac89757ea0f231d49e53103693cbf92dafe3ff3b0a44e536ae1c4996903f0f92b3577962290aea499ed8d9115fbafe1815d48b9e2dac22efcd990bb77576163cc155ae47b22c4664009a44f85187652b8c50c5cdd6ff8ae09cb62be3e1964fa726094212a9de0342cd5bb1a34298f580a5d0dfa67724548dca97ce55325babfe24efeefb35f34878e651ec6ae5eab49dfaba53a390f6549131e8f489a67fbbb5742f44ab754681e79d8891ead7fe84252785e7394a3e6956cb7278a80f216854b3e1f43255f72c1a83cc13424a06116eb34c603af1b0b427df0e09ce5ab1016bb167408a8323ea72c6321b8759feb9b58f2abf61e1bf6fd39055e5ebda4f3a553d4a7465d506f8a4eefaf50ddc1147dac1241e610f1de0de3c784521662b8fdcb21fd49e3ad9f4985375e040c5fa703ec46217a6e61c6be8989a2377fed3cfd99f36979cf7860f1f48571d869eb83afb7d2dfa1f024ed4efa25e27012134b162fc6a2e35f002704550496843371d18453e0362785a1697c1c31fbe2c00ac759188ae4d0287099c699fea9796e2ee69bb952d628424fee97751d6298e0f8c5bb6d414f25d05a7800472ea53b1a6fce885422e2ba2d7a7a712002fb9b34d05d70e8c357cc3f0d9619b40f2e878899815ddce8bdd3866c4630189a8ace8ca652a09bc258b4160d37415242930bf237ff18fae181cbc36af295986a3e3d09caf7129de6e5bdaeb8337c6b98555a5c2f572a001d5cc15ef3a5294a8cf804bc6e3094fa946ad111deab02db73272861150d7281934c531e0c02234739d9ad5ebc8e3635ba466405ec0e434e636a2f51bd06f79e240183255a9c6e02c8d62cff1e97503e502765b1352e099a3ff58e9aa89b5c84e2ce58a1dc15ca01bcf67f888fe70729663436d06f04289bd66556fe055ca5fc7a56213c98c6d9915a197a909c6f59fc4d16593f02cefcec12ba217cc3451656225cdaf37c55629d25032fdb442e7b5eace59e70b31714f722e8d02cc34a2f01d41059fdd06fb135fa253acb09edfd74ab40a5f01f8c5192a8fee975189300f61339fe0306ebc9855868e8dc18b7a2a979a75a854adcfc111f725d2cf9cbb695f4748dce6c036548acb91adc854293e089156c067433f0462484122e9673451a98d1000b7e0fbf858fa07456a8c45c02a6e132d732f651a43a3d0e96c29cb35870ebb4f00ba72cedab4df92c4ac74bfe51aab3fe2c8896088318dba2bb7298c6807dbfc1fd3277eeaacbeec826d4657b16985aafe78efe51633d8cafa25c5c58db20fc24cbfadcf994882581566d70b34109a0e85c8db23f66e0b910b2f100259216c02cc9300a15798df634caf7a32f2669afa640159964e87956e0cd224f6619e25ce53af0f8422064900318261fac51ea89d0420474d117ecc0f2d562bbd2b862a8256276602dcfdcdeb629d1a7a4010ea9319aff1734806527ac135f78f7bfa325d15e4f55baef018ac2d8689415099116695bbafb8830b5ca48af61864655efa532ab52c32411b0835a8d6d4ee469ef5a7662f1bbd886e180d9970e9c64ccc18ebaa98f043cada271d02829ad0903ee0f521a90f9dbd8b61f03c5f7d54463f62267033af80a26599757b61577af1fded6e772ca077d8d2f8a10e27a196017c5f4425a3d4718e7fd27d835ae84f3775d2e0cca14b4192116f4917a77de275bfbc625f89256aea940ad218adba89716be1b69959bca8daa2ff504410fb221c94cd374c51cdb2b11aa289c3b7ce61ad814c04f8195fc753f8c351f007c5a08fe646ccbce6aa847b93f63420c8c070883685154a2a6165cc13134d386471bcb3af2a390453a245c244b03c5792ddac6e31e67df75eda58c082993f7d86ec7e524cf315061dcf63dfa9af7015d0cf35d4a79cfff87b03106d640835e65478894df77f7b310fbbaa75e57bf2363e8fb7db91daccf9bb826c96228e7ca3b77e6b7c65166f35264af812725d75ae16da424248254d7c46671932a13e9db56c5452fcc7ad5c2bc2c877af3f309ecfae1a2decd5fdad3fdd74e0bf3f0166e126851d793f82bfc65353053172f7803c88f9145533cf5c0af76939cb39fb26b0b200a37c09abc3119e1b8f5c22a09ccb3ba2737ffd5e106bd29d7ee0a4dcf376da26a6c399925e2dfbffdcf24110e18cad13b9b7bc73bb5cd4bd3b298239d41b7799e960269e0a0be2428429db9cc2cc8d237acecc597e38d4599e39746326f4011e56cdd9e59acd55a750719cc11b87078b6f97c0c05e6a90babf62c77a5829a9a0c67eff646be05b66c422d09b9ae1361ea563cfcb063acbf8219f1f5ac80a2b051fd6eeb919aee3ce21dacc54d295786c8cd2e3e272da09e902a80f593ddf271cd906f47e2badbc4149218f1daaf48f8630ebd771a58042a74254f4dcb940b28be350deba421bb09c00f446555bb16b5b80f6b9b59273e374524d7cd65c6f43bfd0d9769ffc2b8b67745e66d1dffd165cf76af77301551807493bed0a4bd6759bd0419be727a22545706d311d248baafca2252e8443edc079845662f7ef66462cfd13211917635df3983760698ac865e6293b7c0b528fe58de271a17139ffd37c551a030137c2560f0b56620b09d7e1f708cb837c2cddc1a07ebac75777528d674fc2f55f84ea0f48b8496f1aad6c9d2dcac4f5caedf1088e20aa9dfe589f863109883cdd4f74ab14f917aea3967e3995afae68da044c306b09811ee15cd5abe5f29c1653f3609063b40b9ca77404779c77bee7e4404a5222d3bc3e7b5f512df4539a9e1f0874e399c95c8607fa6c1843bce8e5ee97c69ee318c34b6f8e0751971146da1fbbf19b9fbdeef1e6bdf6f8c0f3a251b8fc84f5447d9f6c72bb3bacca5b93b777ece9348bc0116ffe908cbdf5fefbe21f8b9399c647c5b2312124e4ba8a24173c8b75231092bb7534d2758989b79d909518d8f7e2f98544c7909945d17158a281d1191ff603664152c3b94eff35f10e473875009a3f4cdd97c4a3f91fc9c849596b8ff9ca8cbbd56532f59e32267fe5e415a1b82603fb568380a382da2a008384ce9e8fcc01e539fd598610ef52a9a42b7f654d3f97910a341841f0e50924640e083333e8a65901643ffc45cfd07eaf23ddc4f263f8015b2dc79a2aa1697875f6ee9d06c428e7204a4c239972f57a3fcb7b961713f04c1c0040465920eaa707b882dd270561e43692f2e8ed2a6f4d5004fb37479ec19223e05e843d32f215f1079eb7fb146dcb14db5776b73558e680176af913e366f12f8fdaf5aa6da8421753690a94e9a80d72a0160d8a2e87e5780ccbcee67f188f57b915c0c64a5bf4bfd793a3a8e762b6e0af5156319b6a0ecb104504a3f740fde7ffdc2af58b23fc41d9b1ba2ef5de3ccf37a765e6dcc87b02df22e0a81356801402663337ea369439acf8cd8b7be750cf52db94a7415f2dbc988f7b5029abd2dc0df533f18327ecab554fc6c3b2f04f7ce12622f7c3aabecd83a7176dc7d7e31c2da187dae15ddc69ef1e9286524e3b72c190ff80f7154c73bd832755e4ee5cf0241dd179343c2c6328d23dfa5b662763a11a16605da6fad710a82c3be862c41ca0cb379a76c3064fe6b69e533732cd59231271325968804097522904c16176f9f413a064365da05da2d936ef8d34e50791255fe1277b00a0ba99259890a23c27fc6ea00a0d6c949e669e911e93de77800062479faa0020e496a16352da70eef1ca21b35dc936c09443082611022732d11220a7428a1515ba096dbddec14c58d60b1a5af1fab979b45fae68e45688aa79c07376f0484997e3c962f93e6451c4aaccd0e902eab60e510d40f2259f043f5f2ca19726d19a98decf4a4154c77db7016a89f2bb0aa0fb5bd4a95f51feaa6efe219007f0e083d9f8386749a34696292e803bf9f96f02155497a4ca0beae5428abbb8cd171e7f51b8a40f4c2dedb8e7dac8790a57bfe8e0dde353348579ad5ec9c8ddc38e1d2d959ab728e238432d09583fee0ad0dc7b23c03a681fa6157c6cb83207c058889665fe324f47d24fde200b367193d790d367ae0bce459a6e44ed4e7e1547d96325391f68db2c118ab56423b8d66673d727d2ef4b31920a39f7b796dd5c68b4648c26525db5b3489d1902a79b30c42d1e4d9a9d762afe49b82e25e2d1cf8bea8abba94f73b287685c2e32904221ecafc31a0b8e6c5b01ad7876c44d7abc31afbbbadb8cfc394bcafdf2e88f6515574ae07b59dccc2af35a9febd327b70a2955cd7189268f92d04d83d076170d8c76de2ebd4e14dd75391839c49cdd4bdeb04afc24eccb255101d2f4195e1ef941ef2361f22e4995dbf2fc0e93efc43effb3df7bcc450d4b3fcbb191d8c9d185a32911dc8e742d1d60dfcdba6e8a509373672a877ebecf155d0caadb5f1c48b7c3e1ffb137bdab7bfddb47697735500bf60de951ab3c1ffdea359ff776be4f011a4cffec0423657e0e4d355d3375f40af47d77fa9e895c5665bef82f527ad1f66c86b88906731a0d76e55995e288361dd7065817e70bb0f9ab7e3f681c8d263ce299222fa7b2b5ee41797a9d8d3844b5a0590a40437fd63cfcdd3cba9aab97eabadd0958de190806dd3fac872742db0a3d13cc6ca1e7f46a0cf8558ee12ac62a2592cd8c8ad657427ced494981144b7a46a06fcb4bc3ffd415d86ca87c3e0a4d7788170c448470dc910e45746927eb60a80ab868bd290d01dea7dc04d78cc1ec4d033bfdfd31686d7b52c7b70c774d91e034bbe527fb0a03c3ec395cf2d0b12b7d470ed2b7ebe1483567efe23caecfd09724e495524bd44a53473802ce8401f7d5791c202d992eeb9b24e28627a4afc517e88526098afc597483eafbf6a71edf687c1b5cd756405836f3a3bc3f14a27828dbe65c16e9217f110631f049959a69ba820f8b6b8171c6602ba8212b93dc9bb4f54a80cafcea6123cc3c4a5b903d556d7ef556e5f1f83b20406bafc8b0710ea8c02a83ac8ed12fe4eb17442b6de5d67312d590372bd1bd3b606fc9ba84907def5b17a69c1460e0c0c34af16071e8cf4484dc3b0eb79f461d6080ce786a2626b9979eb0e341d53b0bae57b81dfc02ecf929ae17b3a711a47051b98040b9f32b72a53d6e31af8e0b8aa89f6d970c86b2fd656572ad6c3a573e8e9d5aa27f6d4cd1f48a6e57217b4e605b96955808ef01160fa6fa2d6ac5bc999c7d3f770a7b880e74a117f9fb189657e2d42a180c11a24282dd64d0dd03eab05a961a3163c20d545b932deb885f729d92f39c7a0af56e80728ae9d1c03f77a16f4ec0e559b24ed5f19896116a9bea0051d5115ebd54b28128f390a3e6ee1365d8ca2ad880d2261aa36aee257261a83f0e01139c36440f44abeca23eb7136f696650d50631cf0386467836985fbffd0fec0249084831adb82882f53ed1760f248c3ca0e768cc05152f1d659989b4ee73a89a9d47af4b00d4ca7ba76ae37d37028bf8220f20a567cc6e3014325795bed13a6ef2bb0d4bd3d3b3459be0f2458600ffa6c63251e45e75ba489bce7ce5496bf7f936ad30bd0de13c215d68945cf86229f6024b69ca242a1af710b523f965580e8c138e6d70317641a7ebe3d1b4cbad1451285ff072d9506e1cc3e9717417d7e21732d0bd6281ae5c7b6f58e502b5a0ea5395d344e30b82b5ab4c1c5d16c20503854bc7ea7f86bf0768dc59ea6bd17fa4273e4eb5209fcd6514b73b50aad1116259215570e94b7c829e4c674b3e6c527af1e5597b2c1e4c70110d90fa7ec715113553c19556ccd1e2c2cc0987263cbb56549392c341a9814da45697c5c770eb1ccf99c031f87c99c5e75a98b074102e15d2ba59f3a4186c89a4126c1d2e641f17011e589f5df26e8927b6bdd2bd8e84af8fecd23545b012de7c1b4745291cad307b13aab7b2bb51e19979d69eba8d086f780b9e75bcb4fefa726a58b760f92d6a8b90b4d19f04f8ab545ac53ac36688e85f6347003021b3697033ba54c5d0a51323694db7c5a78c13e66525d134bc5d154d4276172f4fd68d4871738d6eb88d05fd9ac71626209d9361da85878bdd799366d6ec78a7d18643c491452aedd6d2559a2710b92c33f9dfa2f2a96ee6cb45b01b8a9815687efe32e22cd38fa8168afbfce107a3d945708462d6b327908fce68403ec1e70f65584ccc6c79bcb1e8eef0392397e15f5d7cdf7ea2dd6d323668a621af20ac33babaed8512a0d41986ce019e65af80ee7e30a51e79bad82889286d4d9a24e0ae587b554d92006b1a476395e4f284878f4583b626c31fae45a90d81c70ea2b180216ff58c86d60d469eec9a6f1672d296fd7c118bc6c2c243e96bd78136994fcae9aefa690e7f4f24526bc9366f71536fcdef5f0ebcc59d435249bfe2737d2f02570fcb634d6079d5f75677b0df0caf59d4a0eac71849531953ba0dbbf57d1548a4bc5ea2ccf61d2a554d14cdf66f4e7a7938ca3b7960bc2027292567fc2e8447e5b07a64069fcca0afb3339db381dbf0aea8427c91d02fffeb18986fcdc993d2ecd68ad575933f9c5826d35d58adcc2be0cffcc456a67010acee4d98aa23c3f4ed4330202765d7fd0ec41601ea6a2db9a795fe84efb525c7bb2b43ff5574f408dbd53869835c0f021cab772501294cedafbc968bf0c740cd311bbeeb24aaad8165499dfa64fa349d94f2dd30f7c495762a5727ccaa3ef99b7822277549cbf2b80d43289e5827c7d69d4a9bb526502a428d03edf4f14eb0c29aa692fcae2053a5d632e0383d47c48b2cba369d46a584f134d73d3944b1c2879d2e56cff9cc3c41ff1679f57a369f225308b72e8e3230cc8245745fda72d6bc647915c001d88c31e2442ebd32e85a27d9021ad3bdf2d87f5a7e36b986efbe0a7e0c7050ffd12c126d9d5dfd160a59754a1eef65f23c8c390155fe98a809dace54966c2b06f44d7ca90fdba25cd63c6ad7a9e5fa840f97978eda5292dd17bdbd406c3966af7db8c217ec9e28a52efbd5d12abe58e65cf1983ca27ff37f6a1765f3ae0a4f4bc2bd26f8eacb64b90bda495775007a4ad9fbb9aee8fba0e68f2167ddeda07fccf99b21406a27c7c42f95939ab15a3e0c5556cc00e74c42dbe1f73dd51c169fc6e50f28c1099f287d19031833e159f1954873851e7380c9500d899b06af7d589953aa566faf413406e922913ba784dbab179b0757c3300eb5e01eddb025ec57d22c0f7e92aef4500072830cb3c7eaed92279a1fd56f9cadb56b598e3fb96f4dbf6dc773b37b35b95024d62a0080a64baf16bd411a158088f24295aa1b4fe8e1b5b45ecd9b159dd89c8860251ca3e4f6bb81564ff9827fac57daae99432a81c5cdc623db45bbe46bb8ce4a0251e5c6cdd5b83a797fb26aa1f3fc8cd93eccd318bd37e3a276cd5c838696022378c4cb6cae87a2a3ba78e510d6a79636bea9e61441a28077507368bbe881dcc85aac3c924ee4c15066f14684d74bbb52be2a710ecd3ed64dac8154255e22cf5b804d074ed957452beb84cc62105f51c97372ce76683058a0bd26c2581ceb04141c2ff638f5c2159a1bafcde97d1237fc8ee2e748437f9685c2b31a8a9a9e00c430e237a97b408cb3b909e7c9f675e1e2f1adf7b9d11981493130c5ead2d115d9fb163712417ca6cca01bf96c56d4f8171de5b9a470aef927705383eb895bc755c7fb1198da2449afdb1a70dac24dfdd196ca42948ae0b38a41ce05c19772d3c89d529162d19b1d26f42675d649d3915ebbb574f64374e9dac9192fbe31b8fdc2140f297e3597e7ad3da7eff791578b277a835bf1ca09c495b4216a701609b1394bb3af731c6017709420ce54374d38be63c7a2fac8c3e77049f7262aac9eea027a0f21e25367c804fe00f152b7c578fada31c5493bc57d2e4ab209ba18adb6f184eb14d8e9f9e794b83b20b2f28b5a304a470fbd6acab8f04167347fb545b3ee48c5172da4157253293f73141f5332b4b0313332ffc8e4565d8fbd92d62acbdeb4b7f7cd604ec52b7327ac088e3771029faf55d8f6d5e61350c7d7c9548d75f5c59835fbd6c853751d889d9ba466ef57d35a3170f3bd6cff62302ee96bd4a8371495573b29f3af099cbddf569d0a3b31f5787338386f1f0dd30d860d7113f9a0fca70afc718d2b2eeb395a926294ae3fab09e06b5a14555107d4ce80b9b9b1e85b19853a4fc59ffb9e83e442974377ceadfce6dad87cd061f501178d776092631cc1d367f6ae5c484faaa746e10c468900e291a214cc34e428ad7e0cb4f28640b140204b5cbbe6af48211c8a36d0b9bf67dbde417ac278f8ca5169a2563f18a25f493a1c46f3426df7f3615f973117b7208c78006bf8a19a20ae76bf8b2ff41e4b752d17111fde804838fee0d55dc6385b0dd7be4c10ef23e2407283786b75e3f275040f75e2883b156e3ba6fabb8e14f86bfb363e80f2dd3ccceb689ed8623b026a871d4f39a9c3d4bd4e186671829a803ae8b08f25f31a0209473b934106341d6f6c586a8d831e6d4bdb217aaa0a9dd4ca49250bd9fe302e9266f6db7b2a0c1c99c22b300ba7993f434e42325d0acba47d7349c56d54b44324be1d3a4715247eb67805299881a6ea79fd5d8ea6ebfff1dba4075de2f574300a9692072ffcbf2a45d7cc93f4e62ad942f3b6b3f569c99cf8f5b9a01913991103a9db16cbc1813cd3a247db80aada36c55c4ae6c3670dad5a0cd77c9bbe4649c54dc39de50ad5ba052191fbc9c02e36c4e2ed4badd3c92a71d5592d9369eabbd8098876e46cc4debcb820fc63ff6c65ee1bc2c785117a3534b36f0ee9c9e1b5fdb5b398c8891825eea307b42c5d56d74dc90eb4ecbdbf8b4cc98787dcd83333ea2433f1e87a0f80bf0432b5eb0d29eb4cf3c9ece4e8e1b716d69721bfb863055cbcad7260bf5bb82d313771c936681a4e39f46b8e66d24ebb8fabf58c4857417cc919f59cc4dfe0f6cbd6af9df50aee4855c0267412def38ae0c8986da91d0f07abe74e8ea7fca9436c6df3add18c1ed532918e218d633555f65644ecadaaf450540c7a1fef81c0eb7ad5e369d5c0e49917ef137eec8c41a1c953afc70774d67cd3486a21ec451399b13e30fccb70ca2631fd9d82241e6d387804edaf78e1283f377eb3d4459d927d2c96e1fa014e8fb3dd53f7467146e4f3d44891fb9d1bcbebe9cee91eaf851a6b9f7924dd2a05f63aabed5d965c718c99b078ae994d1e585e15ce6eb53ef363ddf103ce269dcce757879196a0892d6c8d53810ba36a182bff3341cd6b3e2e78d516965c054da0f691344b097cdfe651f1f94846c62c94cfbf72a64af1ad7ae26fd43d8d5a7454fd38bfc641fcae5631c32c22d04edba688776e8aca3ce7a3bc839cfb27ff5cc983eedbaf213ebea417d4545c6a9354eef44030aa1c31def69d06cb92a4e2362356b20acabb353b0b935d08b008d127fdba2036d0ca9f675577fd8213ff9d7b60401204ab2e5ecd56d8271b96e9d73a2a079a41ebef3002f9ad00a195a0501d532c4200118a95a042307043974a4234d2f6cbaf72468662f734c8355ce6a7f3a6af322239eaf67930f76fe58f2e5723c79112a4545d54fa9abfcc986c51580561808869b738ee87493fe4c3c30decbf646157c3b43fc319875182bea67c3d6607006b1fe6b509da9c1831fba06c4bd019f175280fff24264a87f64c6142b3a27b448921e4c9a8ae1502d2a3366af2183b581ae6a43417f9d1105371023bb822180bb27999669b30db3b22e2a3436877be8f9f02fa29f3d0fe4dce49323d60109c930c9e0566c4f2820ee59121269274f6fe5eb04eb69d36344f37e599c0970c407646c44648ad3a936dd7c3c69ac82d8f87bb44d6e8a25c002ff08713a5b31919bc812a6cd58c4d699eb6131e215fb88e165fe454c5eaedeb2a9f6b47d1ee2d4bab83e85d25347e8e9c24c433654c4ce08044b9e835772d6f6ab9f185da1b00c1b6629926c9314691e04cb7ba77d37550cd2dd3cf8c6fa466c416d199a892e0dc35bd55f624eb6a0790771804a2c969e413e980abf61dae5bc74ebced325130542d8e98b4eb29764c4abc17e9b7396e67f6ff4b7da99b58953eb4ab0eeecc1a75389ddcf0ce5d84abf1c903c96756442f3eb08c43f3af94483d5486c55a55b7e4f80a1fddd2db55881e90fa6a9fff6bd051c600b50da507d578478d18e0b07678c25fe1e8598874a05ba6d3aecf885bdcaa92bd95d3d25a885e86ea0ddd12651ec5c204b8768c1376c15b55a102458105670daad49443597682bbe40e1bd3cda70ff922ba76b372374587473ab5dd00a2534cf2f521c2aa64f7daf3022a59642928c9c08f6e4d563cc2db5018085b0242116497e2e64cb75f67455f93d758a39a89239868ff243df019dfa2b61b60f10b62b4efa4a5161da2e5976f4160e2d08f101b1bbcff0ce4ca715e9e11d4cd3bb0fd927d1d6196881db7f885980f190d38f50d3ab604f47c31f62b0b9a951aeccb0dfcd429404227d5092b456d2ba1b71ca9cf2afee010fa7307fa18be3cd3cf22f0e85fbde9836741329f84ce779c0974e45e5ab867ac6b945102635c3f09f30b4bbf06e6debfe2a405c5568d4c5248a4eaa34d614e58f10fe2a65002c90954118eb2c7d637dc78e8bc468886250bbe56138acb42eec06af5c3c99d833245a1f9f7a71a7a1c12ee0d2f886a0a7c59c6679d5ba14d55b198babd3e5c39d89f4bd284219f4e50850fc852ff6d9c4a1c150a70f313d94a6544b456a290640f4b27a09206746ab5d930887c50b1c969f9f500248700814e4e066034e91f0cce51d90283eab746eb84d254ed0a2c909783cd38eb8cbca7e07f17a007fe7858c63a77e44f115bc9826bb1434a58c003fc70583a99c14e20c85c3d57fa2318b48896a866a0fecfaf48e4b08c48d2b407edac81a6a9b3d05388a936f31f853f67b4ac1e66672ddfaafc522756b80e4262f6a478f1af534c53b6dd69d81d99c7eb51977f97cbb5bfe3dc1cfaba46a6ca19fa8c12ada66373a638de8287b614e0307b12156785e19d944c3de12af79b2e98d11991905f976e0880d78c458fcfbafd4cf129d292744f38a454468ebbcfd29c1596db884862c2fa6d3d1e87d756c4decaa8edae808cd754c07e46ffa9589d2513f2ed171070c40cfa7c51f461ccec4d19d5b97bc1937c5b8034ceba52435e8a118fcc681792e5a683e10bc9075859b777ee9b61d82bb3ec49c895bb483dfb588d2d9e9d9fd04e4e5f38c1cda586744ffa9858807c571f69a09a1e331f00192e3be0972730f758ca379c83fd9f8a335e270c9a37e79c2f5dd85ab451bf9156250bbeca04b29b6582fcb3519e084edfbde5f1c1e3a9e7ebe9bec7e53f0b06abb22b6bb932f2d4c446e9d47d9500be2c6dbe65ae08c5a07bd17e3511057abe23adf80668bc7b0fafaaf0ab9ea1210fecf70541248ec8b8d97427f1eb7da430b98d7312d45b7d4ed99649c2cbb20b914ed44bd90755cbef41b7254537018c4a859c834e6c6bbb487a333158f5fec58793f02441d0c4aada8375dc16dd4ea653a4470081599bf07cb9b255096317c616f4015ee8daf283ee18e3f0ba2deb269d7adbf943d665908402c4cef06bc6c1079cfaed5f17625a72d7dfeba96d68928b5ef0741263478536e88905e58482d376286477caf312c726ed711e43e3b2b4d80cb3f39769b6c5cb894fd7d9f2658aa4cec70cda192f8fb966aec5a0d1539c406eeb8438af0671cf580cd5c655e02f32bcfe0518d36a1b7bafcef2716668e71d06ec4be3d1c5ecd27b75b5c8bb1a266984a06ad3dc699bc1ae4657a2e6b165e745cc77d43289d61e0e8b261a664ccb8389042cceab8a2a2837f13c69ea4b50f08232ca00607550a4d3364282a5acbe137c29c6b5508fdecbfa5d9f70bd9388ddaa3fcdfccaab35a94b154960b3638d43ecbd4b9aa8bfe4b2758fb91ccf2356f64eb5f5517861f809aed5e7de533d53262f3b3897b2cc8adc92bd90150ec599c1a779b041df5f306a08dfcf80afde862c3b2ecfb08acdac84ed25810e3efafa974e59b2621869f77459f6835db8ee5e96e1fa886b599bc97453faf42036653da48b3782b0328d0fb93068c92ea789052488c8806849d2d3485228fa4934a4b86567d8a743cebd1fe78be64ce5cc3784f364f1aa0beebcbb686ff95f12211ab32d90026b0d1b4e88ab42b9d0052a05247eda1019ccdf5a7e3b0bc42ada893c3b59c7517fbc2aae5afdd4a07c99e370e44004fceddd983622e044ea7b7faab78dc0e57485621c3422035aa4e21329150594dffb3ede20b7fa582fa091c9ff0b77a470c6e50ec9b80842196b010a209011c057640cd37dc81fc10142d85284cd4da3776412d1839b3cddc9ea1aefd391c978dedf497605de782aaf75c91bcc97c3a8f4c7626a51421723e19de664ba359483b41bbc5a2ef76e6a2099d1354cd6bd0f8ccf367d5e3ae8575995303d0ab0e3fccd0f7b36897f7df125dfd210a2ce83ca6df7b3a2d3e9f94fa6753f05e0a16963b78581070a55a1ad33b4f054ed68882a8d18b7d0779a6339359ce7ab53b545ee4a864d03fe957e6136c2e2627ea0d11aa32af98449c91948cb3f6e99345656b0f59be773ccda1de994940939174db0c6eb4ae6404cdc7212e754f2a71ec57cf6f7b658b3009d7bda6a0b31f2b169a28bfa7647f6ae432c379f9b625faef5ad74e186d7f37716f19b64e6c450ff73b8e6c1f0500fa8d76bdd98be223ef58152a92e7404884f44d3f9f00a5822d012255d390342063d5d6ed1e67fcbd699b9eeccd274902e939e77ce2f31032ac052764862d66f016a98758e5fabf4ad67a47777397fb2042c3505611d28a0a30ec6c5deb4c1fc392420253e29ed67e7e1254777e7dce2c50f0bc6533985164fe65e5d711341a91f66c307359efda40ca4827a8d3302e1b27c3dfdabef693b1dae904ec09d94626eeb4c96796fcb4a975808f8eb3efa226137185fd1d9242ab65738509771ac4e8e940fcd1389c8efd36283ab68371b773ce000ffd7bd93dce0e91f0454a1bbbe0a1b2fda263f783461ec700dc6fc41c24a579f29a6eae1723c9ed870c050e17bb0957cfcd736a9b9a7ec7fe9a90b04be3bb7f8f10f190ef6df0588c87e73c44c0c4d3c13b274f690d1fce6349c866fd2af67b34d9089d40587762acfe25730fb2e879af39156d90b43d3a8f6a131276e6c02cbfbd8c125d8a84f9bc794b3bfaa0907cfc2378a35b9317b4c5e2b36950e220e23bb28b537fe7039934390af94b424d4db67f8cb3b7ab0c881aecb005eff809f56c6deff658525bfa115a56de011b5a63d9147ff3f79b306863aff3dfd17e6d352baba59fe7383da3c8a742d0e0699a7e9eaa2b739056a555f0aa948b6c86988641204d8470977bfa3dc251c369f64ba21e113b8fc05a2dfad248602f1d150e9e0ac0e3d5bfd033a753839fe7c3c856dd762ca1fc672e9b85bad78ac06ac62c90119fedfdc02a20b995478ef96b2cebeff1ae004ac55b7b6a2e85e91e4357faa4564026f08683512d4f19af3437f4fe03f9996a720381b0c44add21105ba6d61cda313cbd5ca92b258b5a73990f18d2bc7c98bcce8aae1e8d6e943b1d8eca152aa4a09880ce33fdf74ddc40a6d7803e1247291c6013119009561724d86be7927aa14da96918ab7aee43074f18f7bc186d8aebaf9f8f40c5b65ed76dbf3eb5083d73ff5fd5a3d54ca528327311e2d416021b3ebf9661bafd146e6ab1bd1cade0cc367497b47324f27573df622e54534642d811b78d4f35aabd55bd2289efbb5693b9cbaffa9c22f532005c4971be3e979a6ce81ff188b720ed6be8d832569cc138841eb9d79016f39af1235b4a085b81a2dd059a3aa654d9a4fadbf8e7860e4686b471d3acc2a3e09076b51d36053ad3f5ed7de931a272a708868c35cfba365f1dc9a8003477f610c12668bafbac7d677d70aff76898e6d8e05be2acda7f29d447ac0acf7170b7540e24d28c0af6b79e1a5d372a3d3448678fe29e0b342f893a9ebdf94d2f2ad116556c36dc11ffd2cd1430da68d8212488737d473b02aea05c9d631d4c6b377772f52ed5442050908b8e2deb86261b2e358ae561651dfa74b888b20fe38c52a582641bbbe63f06a3b517d3604250e742b8e490d163656a003289c6473586f1dbebb1772914e473963ff5ec46a1bea2567f48beb7c1b0da9e6e7d0192d19fa8e3b1147004851d249b8b140541a7131013be5ac0798b2102ec23bf65855b297c945e77baddc11d191d6ea039a9461d670d49f40557d57fad7169a11a1e820e7dd18667b4836e0bb6b6fd33eb94ac8e28225f238b3d5634e04ea65020f75621ea0e303a1bc743e0c89b2004adc3c6e33a0abff8c322d41113b73492f67a561239f67514102265be89652823be88ca8cc48735c1f293f667fd42d68dfc5c1207cce61719482faa0e0b959d0ae04c35967a31a675a88466e04e71f20d244526bc5ae8db258fe086be366ff397575347121e535fef55ac7f641f701fe9166b8c4dd2c29e28ee2a053499b2b14ec875654f031411427a5f5d965c42296cffb5b5fbb6eeb48accb0ae3a55fe5153a445ce7b612b023754c2cfddf6fc724a1744fdb6b30267c22982cc67de83704b156b5f6daa26145533fbb2586b7e6640f3967bcbe766b6818318cf302ef3a604b4207036f7f2abf0162a9933e81fd7fc08b393e4cd0889e2fe041651988c478447e45093ed5077a4fca12f4117ab3181c88eb39c9f0fedeb4fb541d3c336704933a3458954d73cdffab5fbead472054d17d758d9246632ba80a0c9075c12933875dac7eac5dff2662bc72606e79996c257c97e77247c996f28b98e6a92e98770c42247ff0ed2f1021f3ffb9f647b9c3c07a7faf1c3823d171fc3c82c432ee8b5a1f497ae44d8d9a1856b8f97efdea8c5ff27e8fed82ab2d89dcf5bf7e8380a75b835b7d7c33489682ff5e1e8749dc3e5502cf704c0d7c44ee43e485a2d9ca8289d8d07c44ee1caa2a4377009351c1acd1a3f2d0adc600783b7a129fb69e5e8f07df70617984b29083827595dd10f7beebe123e7410cef4350df73f15a5aa2604aa7571433078421ef01612e1cf1dd31ea06f8d9b9c32f418248e278b0a17d9c89ece0786764f6d84bfb625c0093a97ac4175acc5bbce007a9d192e5cfc20f4a2adb1344990b2a728d1a9aceedae9109843f8d114f740a093948eb32fe399cd64fae2b34720bdb595a81918f18fee4a3f1115d39ec0b23e74daa3f28f13c3aa3fca471e21c2cbb78cfdd7dea1cf80694eb55f8c9b79d04846444d2100cb44938bba41d6401d74033fa6dc797418bf2c1d04e60a2296a191708865b62e04aa00dc1d82d2483e494590239025a69d913e2cf8125fc098203db389fbe66587a01327c614a4f2c2c275c4df523710c1105c378196a0f383fb0ac1afb43d61895da424db8f5d31ddfa4955772a2c908ceeee08b38600156f19fb5eb4509531afba801a66adc07e1ca51a590423bfb4bb7dd432b9c1a3ea38ccd4b3e43a0250aeb1b61ba66a0bceb216090b7a9ce447c5a59ab25422bb12a69c4530fdfe7201c4c096efbfd47f3b58a13582e0b86e68e58fedf0d0bcb323563f75a659a62a068841a367a4b3819379ce5869f21c6dc1e69fc3e11cc13d6cf77d8059d7738c9c2eb8c8355c6401f777670e23112b8ca50107396a69cb28141c37754d0f7cd32d5262ac1b3faa201c7af57b0dd41f08ff2be8d444acf210eaf5652f3e4d837265029a1b95dd014ab6b464fd7571191f2cbb155be53160a014e9513c69893b52b19efae7b28462aa89024ae23d607f55e95dacaba34ccf5e0f4fcb86bd59b1330ebb914b46a4929846948fa6c37d6790749185e7d93a897569cd0794947523cfd4c1c3167c6ab392ec710d58c6d6d3b17fb3597a6721c12e944336580de910590e1f96529e2424518bde44e73217876d87c1fa1060a7f3a61a1271269bf1e46dfc8e860c6d3ad9fe47fa3049848a57601343d14b86eeb5152e026e285465ccfc80950e72841d50098b0ea8a4345b3a0d165c6d7b8fe2f89516dfa005a4f03e15448ea0c73021af117a568541da4067f9c2deea4915449a72d5b9a9c89c0a2b3191c3f88186fa36e124f8ea95b3b4d5d0b348467f1407e95cc296a76a6c90f1dd79a7b46053a347eccd847d8090ab84840c189d3871b7b8091d84300bf652df7e20bd2013dc50279cd498aa483c9d6931d49985a3a949826a0d291f50aa493cc789dcbcea092cce6595c37cc01a11db35f71e83836f121aac9d0495cfab2076faab5654caac9ad2089c0a7fc5525e926f7f93361daf4054b11e521c14e3f7e5847446b9aa79206037625403c5793a1e66d26f213efc9e2fd7402dd53a30c84a70d4fdfb2ed518de06fe2e2f087f196b03319030c8a40ad3f2abc891ce799195f9412e0fae400607eae556cb86b6d9ca37196ab72c481b749a6beb820f02c23ade82924c78f7e6c26a20df331702da5b2e44cf5a90551a80d779847bc668757d5dacc68b35ebdfd9f8c66f160136ac0df1eb4d7672732d072b5bef2dbb0ac6ffea9a12ace1de14949aa88164b689ec07e63614f83631794b145955d32679bf7dbbef938ed62df776b6086bbccbef1b5109dae3d4c4311d7d9c4339fb24b749a120d89650a86570a2950ab3867081ae951cbdabe385c1c15c66a12a96f2002e5e7b6f424216775e083e7bc689ace1ea0f5b3522a54eb4b41ee50b88f2cce48262c19827d0258ec8a6cb16365e5eb95b22c5009b07f971df159c2a831ed447c31fe287fcd7f92263cccb06606f7b30c4881c7aa7bbd0c4fad936dad4e533c1800811cc7810e003a5583f4cf81e426ed67fb2c178776de4c1167911566e977b78d9abd89cf106e4bfce26019bdae7d52348a0135149c4290f9be63454f2ba7e3d5be35f8a9f4c9c6ab1badeefc1e3d04886e9ba3689bf478aa49d1126575a4b55bbe28e855e2e2188a50a058b4b6fe320a63b13adb16da83a9254b50bd290e4980127b1fe748be31b2318835a6e5473bad1dd9b2d30fdd297ab48e586637550b7b5411992f5c5fbdbee362ffb99c8dd981daab8c6d4d77b049c164760f744a7bc7202ec9aa00273912062f53e27624138cef1fcddbb465e0aa225f45764fb52e2700c0c5ae6c4955d460edd86c3b128f7b810537cfd5167db1b1f6bca977480294f3700105b9ddf9827144bedf31aba33a105fb0a958e1f753b4fc5d4d3c1719245bb07e9f8b9fb5668ade8ea3e0d1cc139122fe3ec5f2c3c87c69a4fe6466cedefa39323af37b984c8ac523594f584401c28afbd4b0b27a11283ee936f4d795bdd00a56906482f6353a243e34cbc562b061cd1c60f36a5faeadb1649b2e4592bf86be51234d282ded01dbb34cab9f9871b02d95af4f2dd68a85dd2ffd6430212f2b66f4936a6dd0519063c69284c4f9679a7a11e8f852b4d066e7377450331430d093f9298c62a5a915188ea0b32e32d98558c8d6dc50a0900946b83ab72c4ca0be6930f555d086565297a16785700710d8b2f0493a7707fa578974684614191a31c4b1d4de820b978ab70043d5ae081b33c3cb91fa506340a534dd69792ffbe1ecb91155bfff63cb60e7463fecf32ca40e662bcf6980df60db22351552aa5363b6ac994a357494f2106d714efa594180dfae1b9c9ca36241d50bc8474","msg_hex":"5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235"})
Receipt: 8zeXfinsHkULTBuoNkEYbLKTFgzpyhCYQmeEKWAn84rG
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":120,"op":5,"digest":"697ca12acbba6fd67f1c5434f26b5b013ac13e84c987edf64df690d08f95660f","head":"111dc131c5fd0178f3b3afbd1327e4e392a0c9f7270bd6c5f890ab9703795bf0"}]}
Transaction Id 54XREjHFvhYpu9WtZ26nRhVBobKaUHY6ASZs4ZeNRjhM
Open the explorer for more info: https://www.nearblocks.io/txns/54XREjHFvhYpu9WtZ26nRhVBobKaUHY6ASZs4ZeNRjhM
{ lane: 5, state: 'FALSE', code: 2 }
d2_l5b.txt
レーン 5 の再試行。このファイルには呼び出し行(Scheduling a call: ...、公開鍵と署名の全文を含む)のみが記録されており、レシート、トランザクション ID、結果は記録されていない。
- バイト数:59,970
- SHA-256:
30bdb5295ebb4c957355608deddc469be3e088c8083fa06bcf0003a2a3416834
d2_l5b.txt の全文を表示(59,970 文字)
Scheduling a call: scp144.near.matrix_lane({"id":"8eb5b06a39e0b3e9cbb34d2df87f1faa12aa0eeb6a3c39a1d4e806b16144edba","lane":5,"kind":7,"pk_hex":"666c025a454445492066756c6c2d6d61747269782064656d6f6e737472617469a9d2bf133a7dd07437ef87795641ebe075037f8e6b24bf9d3b2ab677c9d27cf3","sig_hex":"9d248c9620ae2dacd46248287f052c6e2940ee19d6c5a36dbf0e9f10f2bcd2fa49216ef6045fc59d685217b824731a3690c7da145c06bcc904a71f196512e9ee1b762be5bac5ecdfaec3abb622c5ce21f64db3c6d0145b8ad623e3aca91aeb35931432b347a8d1f486f614a973df4b55809e2b5ad6504e9d9a90f5973d2f9ea96b951b367d4ad0da0cbe940fe490b83ed762c3fe712ccc0bf8933ecb7dcf56c535700c03030a885c5a34e933e57ece588af56e566a00c91fb647b3c868dafd3b8141d88f6813498fdbad8fe611779941a6bd6100bee67d8f8322538f5ad5a98332d2f2aaed2c7e6ad8ea26735c7d8cd1a9293f51a904730d01c4e13cee52ec446d4b46a3d37aa9cf1c1012e7f1c1df92a17e98967060fd8460a281cb9b76f39850785c4473cb4f591a36b91295c13d4e06c32f688768f6aad4cbf2e981ad2cee7a969eae0e1a408600da2600c96e709f9c2f3028929e45f9c2e00b3016b320cf2711341115fa8dcd94f9d1e454a793fa2fe0d596f49b22e816e8df6a386d0f6b9d72680fb01c6f696a02f3cd1bc3d50fb93c580d96917c59170a0c3789b4cc35e277af8211129edcdbb50ca5276321c4b2c5a223a32abc685f4687be494ed20796aef0f07927ee491fbf2631c470045f07b264024e1fcd2ded1e8e35c0de5d7d59f795bb1596b996d10ec416ca444851428a2bca4030a4af48ac0cbd9669c8df284d6f53b9b87c73d845ecae82354458570b46a9ddc0b19d19ca60ed2e245402e72381b4aad3f466af1c78e8631c61c46e81db794e624f3a1efd6327ac50728433b5a5f73b8dedf3cc8a662950d115a180a7d23c098973206b2d88f1731626e6033fb75ab71271d9597b71c3c1349d6571e246c9aa975da8c1285989b47e730a8216cc3bd698be5b3eba5906a3bf2c083716180e67d34bbad497c61fb452898314cf1a5f380b1e6193a770544e105e678862b6c400f050f1b328eee72f52f1fdf0d8bb2629048f1e11e20df2f424366efe3883910310ea90a7a0e2787f372b9a098f120e4421d607e984f358b2ba0f5f63c15c0063d5f710826cda82116e9fe074ec20436c0733d2945c9ffd5436c1c56a1f69ddb3a7e072e5fbadc02d9e6cc23525d0e09133ac60a73181b38ce5f78f826ab0798d366f1be012354f3d1ede72e642ec607a3fec35fb0bab17fc175d0991c028fcd5173b83ffbd0eb33cd35beb2a6658f72f34414f7b29f00c82996bc03c59b3c39e03e10bfa3298addb0edf569b9e60f292175c17e3019c8c00a2a9f310de666dda2f7dba293c4e3dab91a22ca96e1e5abaeb4b61c3ecf44d1ea4b2621abdad5ef26446debd10a029c50b6a8706cff6cf2331e7a6d8705968a08fbb14f6eef3fbba85d0e491130af0b9bac3ec9caf885b6b88b2f10149ed98ae7aa7ef4fc4adab1dc7f26478b550de3afc64a32bb8a9e7e7173047e0af51bf686a4423c2568cab8b2c98a5a1fa2e8d4dd20589ddeb8123fcbd2e5fde774781145e2ccffe31a765ad50a3b5546800c3c063abb90b3aecc02bde1450260eb707ab33739999d763ca80a6f2b7ec62abf0e8e84b788319b517e053bc0e1604163dd850a03a29b335a2ae50395b18b5ab624ea5a7c056b8368e81ba95293e9bbd7a89259605121c1f26bda9aac7eb63053fa0350a901dca35f8578d33eeedcc4d1277928d4c08a43e016a93fd589963b8366819edad09cf78d98708cd7618b9ebb5a8ce9f54903d4a44f91f68d3cf53a2f1d3021cabd00c06c019c5fec3b12e8a7a4ad250e5635f0ba24eafde8080db595c7d4ac96f05cc31aa3acff8de25351070f031ef1a2cdcff43372ede3f525586b6c9cc39dc99c13b898efc34b35b9711e5f32b91b46b97c2dd1483dd5744a094f64c3072d7798dd34d83a866696813d66ceeafc631389b3f585cbf7415c46d4708e5442672a9c5a94cbcd93f8b02c3c6376876779abfd3ec842fda87f0192c681909c6122df1a62904d49f38776cc7982e3c8668555e33a7de3719e8e483053a28dbf2cdad2ff0f4a69a7bd23685a33b0d655e95c5da1bf320aa2dd2613d3ad03ce94665d0ab1a05c44d61f12ae02c7ebe06c592bc172d003bd239dc0c6c451857a7ae522e9ee30f10da90afc01c2175cf2a4a979607b994407359ec60827b07476784d07d68f04905cf74b7f67afe294796b11e8e259c8eace261bfa57c353975543b37282b06e0ac555636038348d26695cf41fd499be8dd91678cde1ab05c03a2f62f18577d0cc92284626e02a28ffc28288a9476cf0480378618e076145e41f6433b60d090f19122c3ef85ee85ccda1c989930462ef335f49fc92088b1c7d23053d5428ee287e6703c5ba015814c7093d7d016a5de4b35e9230df39a31ade0c865e05871d67fe47047d82cc37db25be53b6ef211d5e97b979ec28637a206678f27d25e81cfeec57a1e5101dc867ccc26b011993d7665c3cfd5690b2a3775399afaa34928cb21adb59bd56707679c90e271e47ae987262d3de44eea78ad4ffcc95e45f9f841bf31bb5ddff7d6acd3d55c879e6df7c7652d9b49b03058c1cca66a4c827cd9b8433cf0b69d88970aa2b88bde2d7248b3928d733f28eec5580be59bfe7d67f8611cb8b65dc49ea28597fff04838997e3e8762de0eb87b8a29b8f666079eef5ff2a524c76cb8e3849c0f57fcc5a65fe609a0083a173a07688838c0e3cdfee1626cb3b7e644f319695ed24346f0e151cce190b1c9ac0291d864c65f8aacea959e78108cb1a15a100cdaf924efd5bccb9031bc502783a453bf3d6787c71189fdd58571bd1ad18d8718cb19e05db3a7b4bf17aa9c6b658ece76b8c1acd1fab4c7067268df145c60da99fcd1c1dc7d30aebe41db6a6bbdd5bf9c753f37d5185b5c6c3dd847485f5433a4e2cd60f35d920c89213d64c93feae4eb922fa1f4023ae82bb8d2ca25bc372c4f0cb95f569099402c8270ce36a59dab171b3c28b1273485fba9219c7eaad2ff7eeab9e5e88f05bdd77d79100a5b924a5f1ffff25fc314a0fb756480dee8a893d8ba82fad9cac6500aad20bc62842c84b0a17b105ce1eea378cb1cb4f2545f8df0baa147f2c55a8cb0e17cd188332ea30d71cec1c17ef475caea6c28421fe3374f7f22ba9abd8d40c11f8eb20547aab88047ef1b0d98f01bd0dbbf983e2abd0141fa1f5e95e48f85b9c376cc3e4e0cefdb4b7db3344bd9bb5820b72779a4053071cea9b23825606e32dfd58d3ff069c5d3b9a62dbdabc4be192679c63d604e766c8b6893b62399628bd789aa952320bf4f2391c4621c3b2b6a4d572621aea52f1609b383a8367e1b4bd25c47c4fe68120ec07d52476c3033967c78ae331bda2f9982b18f7ed9b1d1961c3a997b728518e8786ea378fe52ff495c72f8ed2c45f7dd12f49b3e774484dab9ca2ed02b2ab0129e6026be90c788f2534bb4c8f98f0f4659c558fe7fa64abaa676da4a646761114446bd2e2639d6ef31dd5a6609176e70706ec267f6a53f431e6987c732b72461fc81e4350eb22e05a47b80a7f58e062feb05fe735dfdd5937c1f391e857ceb7c16e18e68ad7a2e0fafe433c608b0e32af824568eebb28e26d9fbe7fad0e480eebc6158e281e9091e32161f464c4d1e7ea96ca5ff40c01a2547da2a08f234ed2a22dfe0e2c63563a887ec3370ba7d4f03f9056edd4fde9298fc071dad6ea4b3b407fdbd92523934a1149e4f69e528de54e8988ebb0f9b58724f0708efefbc6eea5816215454ce8cfc31babb524d5834e497cdf271d584463fd164792f092d11f905e5c801c66488bd2b8e7ddfafbb98429815b8eca897681608bb18edfdb701e6d978be26a2eda08e2f1b98d604245304bf922be8b5ea7680099c2804b50bf95158fe861680d6fb53211ec3c57a6943e4dae09189a6e130da476cf1b8154ee0f75e0ecbc3e92c3d0f0cb49dd7b4de42be9f55736426c71fbd52d1ef20bca57014a98b2b9abf3affcc6a4d901865e87d02ab65533d4dfa30acecf7972e00ab3e1f527b891be96b9b50e5e6a8a4b021e9df4c683436c8dab4e8ed57317900764cf692eb1e2ee086e44f374db3d9bc038590c858afcffa6ae6dd4d41cc59e5d92a27c4b145000fdace34db42acc98c58fb521b5b8632ef577fda3b3852812d1be99068996a548605b329b43a8635d3c892d10bf63c6bd96d563877da1464143a989587a7de9d5d34d1238b0cc253d16c838d8f963fcc81fc3c8dfaf32f764144d0f05670464fbed89577b0285d5cba7129d32f70ea9874ff63b3842090a2019599ad6b35682d15b63bf4217a63aa8346febe93851f17d0e6942abdd27811d536216ae773923b78631afa34024acbd4cd2e2143c09807a3d2604ee026e11fa204a29fa834f328a849018bc8dd5598e69c26438447804ec6f646d239d4954d7d074e427700ba90fa673eaab59526f2878fc7afca165733ea77ac5009a46de260447c014f7089ad067c0fc5bfabdc1728880f6ba32fe6ac4cb69c774e9d2a635b3d2f8389b08abcafa8a53248a53e7c426c5287b95bfab6894d0e3ab00e3526303f4947d8f25fc357c8210998ea4abd8b4f0af99578056ccf5ca308c42386956e6259a1ec89f812c56aa98604fa70ff9771f01b02c9e9b9de23620f0fbce6a47743ee944bff1a24123fb922517f17776b7f2479d45d8f472850e1cb844aa540e3c2d812dc212df7a48adf4d528bdf0ec3668cb1dabbf85e582ff6c56f06ddce64efe7cca1f56f4b475bbf68bb11ca79a8567f5c9882f45504af606216aadd8d896579dddd3cb2ac28e2b732386537e94fdf343c6dea8c72a45644d2d0d1416ec88785791b3bc84add3f6fd702e59db2cd3c9b2131d476874e79ba79f090510edee1feda3cbb78d39a2d0abc20101d26ff20affe3f8b094d63542eabf7f9a226c667339b5043a5b4af0cdd305dad04088dc9016cb0224b926eac6b036e1558f7314b2f08f04ab8992f82d66d1251c41320fbdf477c95faad3c1b4cb3a1779fc5f246a8341ecb16456d2c99210d7969a6b7b56e1d2a0deef0969272afafd34d8a66e0d38e7b6ab844c8dc60fb1f2ec78e1fff8756ee9164e811a6f6d1500a2cadea6c4ebedd8d52a70d05bac9cc6f80c93ea0a94daafe7a452464333b0b2ba9b6498df2177b3da91612b497d65adfc15ee7c24913046e70ac8b82ee3654a62f2d6011e2cc2cba50d76dc79153d1d2f44cbbbe3f123a088a18ef4508e8e273c7d69f4165635d1755c8fe4d50c2e07100cf2395b9bddda6b3aca8af3ba3568c9f75abdad457831a2dcd8ccc9020c29b4d214b4c22d5a5f90639862bddbe05266192c64c5dbb3d87531a67d917ce18d808ab6beacc8046c1c37c8184b9743395ae03b08d963c671ee2a5a997a330aebc3f396f6684b550d56f99960c5b504e5cc43ff4b661fe456146b8d567b60714935225fffce5312a18b95296c6856bf4a20d2bd86ee1bc40c93a18a347590ccbbee293cecc536aad5967de09f8e958c8d2193c99f2930208d5cb5a494def91d40d15b5aa363d5fa92da7bd5018a946b3cc1d7b7e86e8c20d17843f1c9ad926ceab83ac8627180435d9e8d174d6dc4e3be4397142594c950402b153e795fae7897b5d4a1b7a3f79fd7afc25ab52bf3f8046dd182912c51ed0ea2541a81991851ae24b7947477c86aa4b6f6fa803398c7e12007b1dfeab2071383b3ca9969bf9c923b19441a69962338a85da97d9857eae44cf407aa305350200a1daba8d7d9438381fc637c1f8d4a5e3445ad47a9560a9a9e9f88985b32b3a6d117dfa8ad028c32014fa7cab12845926f67ee7618f4d5fa6078349345652fe7e90ade13a81daee51aa93e5f54efe6c41de6795ec22a20842f280cff91c9c8283fb330620c8acb1c4f95718def6385517f62ee5ea78682ce9bdc9360efceff816d6c305ac4f425bb43ed5a8281f8b8d1b63e52b67a1b022f74d282502b01d262213dd388f04a26d3c96484cb51c0364fcdcfd7ffd994650662d2927f71eeec62d07f2a697e51f186b0b4d4b82780b138219db777d5fdedd3b2e46fa6157dcd980d262473b5bc3d95d350ae555bf009df1b1e0015686c697519a8bb37252602350e36c71ba9d0f1fa1079cb47e443583a88f8ad0dd172e7d44b91dff62665ef4b1329a9e1284a3af401479535481696d6ab7f299de1b7007d2cedeb7076721ad9f74d0cf3bbe9edd9d62bd4c8f0b07fa49c1a7a329b040abc57f716ef5fbffeb832626acd09bd50fa7c706e491afa2fd5c26d62ae11ba86e0188612f076ad591e49f724c41b3ebed0d026890208ab4035a2d13d9bb4bab8a058ead383d4dd99c7cf490f8a817a84f9572c9f3722e99b3d39ca1e2c888f397aaf8aaca12d1a8e43e37cc670731776f66677b2263576454eb4988a82d6983b07907e903d7dc0146d589750e897eef2dc8fff54be922a8caaa3b425180e5639e2d2acb130c5ef86b678c788821026d74cb8663da9bf52783f09fac31058af3b9742e43f49445f6cdab3dda439ee1123d20ba977287c9ee095ebcbf7130f2852dacaf4f76388ba020c9967fed667f88bb6a1a0081208aa25567a16a3bd50af80672294173c8de426c95f5f964dc113d7bd1e3e59f0baca2226cd766c9332a57e22c2b4eabc67a45a76c6c5d7ffd1d5498b200cc96eb45d78a9122fab16e50b07d9ccce3427b6d03d29ffdc61b98a3758cd5b839926f5e8797667eb1d420d946a16cdbf3e30207302d40ccd0e65932cacc14a5704db760c61af1de2970a407aab105176d89f137bf7e6ab3ed27754c484be6018e7ffc61bc1cca901e469b8099d8cc7491e04f8f7ef0ecd213d343023cbe2aec5180dc902ee9f0452e62fd421ec909e100090a75d4311eb3c6f34c2e112d5f302b8d3cec5c76598df1b1cf85c58667a094c49b67137c870e107e3b763725a3b49ef01a0a0f91a92d32feca8d0f31708fd0971ef45355b6fc6bda7ec48298220f766949f88dff6c8fe5e07db23358105ebddcddf9d1a9cd648073d5604e90e0feb17906afc86ef6ab8b604db6aaa5a15c7161f40a088e557b8438433e4834c37611f25d45d244895e0380348b1a961fd9fa46463b0f4dd7f587a3757e08c871a2a1241f1e4675b046168aae6a20e2da4978b96d74f3d11d3a6538e5e61779042b075361155a7b6f61b28dce283b5c5f572a7719730d48c557779b8628347dd95994d112e1e4a00d8ac2101661bb54f9c1d20e7c08aa0d7fda7da85fdcbc3adbae739ad5ee37b064956b763a705473680016be396c5295b3b8c300d7ae1e3c5b79c1f9eeb131a6d880836cb11e358c20dc423097bfaeeb4445ebb106724caa356a85d0e3acf383c9a375c8dd723b4a790846cc6cae7961dcc0fe6fedf0516737399920da9974bf104a7e99c9c19d3f5582d28d5ae6a08d51371977d89cdc1f5bf18d6f48ea41cc1386f597b53646b169ba95e2199994e4bb462760e9706be354394d37ac8080c12ea80fa7977f26fed57d64bc8214e318a5cafd906d3e9c103d6afe01a478e4af5a123253f07e016344b74d6066d9dca578356bc6d512f7bb3b631d39b34580d09ab38bfbab3b3fde6b2713fb6bd3adfc7df0c5ca580911aba9ab81fe9a707dc378f81fd2516984edb082fd0e972f34791c4c7c65ee9d455c4fc3aa1c026e8c28d67e48620bbf05a071ccdd1be0dfa3dbab19af710c43bda9bd1e9cd14769c7eb547b5af6a69e315c8f91e2e2d3152a088cd2256bd0a56bae7846bc2d17443d805c592fa08e4e844accbd8762858e38ebb58fe75c2ea2e4108dd882d4a24cd85eddacf41df083984d6bb8521c0c83f96da145837c962cbc5f0c8786b18d8d6eb4c94b71e30b22f4cdf7be6aabd63b782c748b142a4f58ea8c099bf567b9bb3640c7ea0f6c42f86610480a541e8873460926f5c3a926554f0b6cdea33fff23d584dab4c48ac990d23c64df2db20f34221d062a458169a392a7d6131b651b194d3756219c284f7ed239509294a346bbf18492724c3684b40cac4d0d17ff9d81da008b5b042d7336417ee002ae3d4e05d94b9fac5efec949863917762f4f73941ad6551c20fa4f9cde1d535cc5567499d545e22caa461e48d8665062feea5fe2b399ce6a501841b4e60dfbafbe342aa83ba1ca222f19099975b2b4147e52417ccd8f0a79a441813780d9e443e86527c32eb0c909f94b8f8bf7fcdc2c6766504a2a55765dfe0b0d4ed6ad39bffcfb4bdb33695a1a379b289478930af5d75489f796b56a2b8c585d96bf0264a8d25ade28504f93d67fac18f517188432abb6a9d77df58933ce067e474256200cc112020003bc14161c0b54e5022745780e8b9582931935f8748aec0f9eb3afdfee129931e2d3861a00c855d6e4df6ac8878e44bd684ef70b667a7ad1524c4e50b1bb9274b4da75214a3b5b6ca15e17c4e17149edd441adf2687eccd646cb71f3781f1f82446077963596ad2e10fbf8154e3d9a578c20f96f442e2f9696580111c9cdf4f9e6ac252b1b75054de899be0d9c783659f057a42d260fd5c87b421b8cfc2e2918b9b05d4be372c918e8e5c29e004cac30bf3d05223c6205b83a7069af602cf08cab1e0165a5f9f390d6a99f303ae0790326c643d4836ccea20e35dc822e663524f06e34ee916d9e5ec279ccd226a745420155d052ce7d56d45b50b68490122149594653ed4ead870a8c26580929478cee80c052e7c845d0b3588a21a129266c41b0ed1904e23d7efa3d16d7c5743e70db17f49bace1ab992878e824249a2e7ef765ec12c321492882cab1b6d1fc5d84079d4642e2b886d33211be1ad6880d46957753aa1dd7a506db4d6d77609fdbfd92b76bfeba1b4bdd339b4c55fecaec469027f6f9444a9cdc45e7e4b2d5589a1a0b960ef0a7bf55c031298ed3a5d540dbafff151fd0dc015c046c433b3f3bb3a36f8d403c855315a68ca1dde288dd5af4351ecb105f9904ee6c9f15fa384e9e0d57febaad1975bf38e3021c0838117b675546509420df3a3447d9f634c3f6c5ac5d3822f9800c07f6036f72d37683f8afe6a72160fd5139ddacd7dfe30014560e45eb8a85994a63e4e019e93647ac8a99dfcab0a054320de1b26b2218a9393d5efb4c85e9b3094163f951273b3b01667fcbc9508850ea67734861f4bbb4893b6cad2e831c1d6fec0a10132b2ebcf70e7150fa4ca23d3d0bd8cff28ff1db3b4b948e6f4ed7f03c627d9de4d853ce1807f18f1a8c39aafa5bcba0bc1f98e9aa4ee76d68df7e327c5e8a609daf5fb3a7c18472a241694af2e9352b58ccc0dc12a91c27c3a49e6f512abfe131e656bbfa3a2f7d8510c5eaf6fb0269b241fbd5f652cb58aef391dda3a56f86644ac28d48a4135654dd31eb9f0c8442f53f7d398d1709b5c21321c26a4d868f66f26e831015b9a63d18ef9a801f5f83efae269d8bcf1f95a7067dbf5dbbbcada18fb23065adf446dfa75f0cab3cbdd2bb124063c367a8d17e508aedaed3d3c18e50c7bd51a1d441dd03a86f38b95d215701f277944879b9fc3369d101ec1773ba9ed5f81ea4821df2e97b45737509025152446399595bc5e30a5dd1fdbf4fa8325d276a6ca0a22be3c9459e19cc88902a7f2b934284868bfa505b8b519618fbc11dee0ad382d49efca9c94459e1066357a37540fa805533de5661420a7c49ef0956512384c97ab5b92934fdca2d4856f98f9386aec369eed339816ab5c5348207723d1b1f3129a6d07e38f29930239d9667ecad1fd94e6cc898b19f2b683ed80d17d592a3aebd5fccdd17c8bd18f3d69cf9488f67b4efddc5277b7da2fe997559f486cbf4e078ae76353412124aa6751cc10967cf7cd86f6408ab8ac7bf4a204ed6ef8a633913fb8d24937eed0180e3b0c360197f6837921e55d65e25559e790f88451886d6598854a2785fe9680f0aec7a73adfcd797b25c073d990af9876a04c980518112f91c03166f649b85addff1d085de82f6b49cc38db2303287ae1ac4bf479415e5e66da364dd02f9b87a9e9181b44815f937ceaf5edd3338e6c614fd28642030b06f2fa3c6fe9ef17e95c4be7ef275ecfc980fe31da58fa3fe9c3afd8ae1e751cbda463e056a81f7112c7a64693398169092f0f7127c354c947400f0715ec412ecf56284a59c2d514a03ac6cc6a413f2227ac254c6b2db2bd6991a4896b8c4f493d3f18eeea376fd3049bda68bca372795b3b0cdf9298b9bc3ce840871934cbb274c8f80ea20f9726568a70f682b932b157dd88c6ab289fb0771dc26ea7cbc2ccfa0186c3f5f2efa0a07d8f670af4d02b3f988ed06740b8d99d687a48b5d3fc709890049af0e26bb336765db9f584b9938d5a3764807da0f3ec779f010fbad7708349ae9f59b4a0f16387864769209a9ef4b6761d856acfe8484737d31782550882c971c826407eebf3a2080212641cde776c8bf373dba7795d6aec5705405c8d7dffb69af87e5e5e166109997fddb2b942188d8e733e25eadc60180990d1fcdea7455e8d23c5d86ef76fab6d67ac6ecc60897651aa9dcb70a993608dc6c65c63e3a34b1e76d7a0952422cc7e70d684fa70889d50806d36e642b3e19ca2a0e7d5bc658a31f0d9956093ed6317be2817b24162d02184392045cc5ee926cf2e962bc5c364661326ad5acecba298b3d0f14e02836ece078c86379e158fffe15127fc09bf3fca5f4cde07dfab873a71fed6ec088d4630f0099b7ea6e5eaff377bc38b549e056e0edaf8582be90f558a679bf9f12085a23083d0d13e45a24cc5c1ad87286bdd1b96dca6a50d911f806cb409442b1212836f40ae9656a487f093f6646b1090fd9c11adf3e40ed63c8fa4d255402924a548638025cd29bcce1ded5d881c8e81aae1c9caea5f612c16aa68287f97fd4d1c7728eec1d85e604e90a7ae7ea98860f69c4da3161228cd849d69b0567a968a728093cc025677d3e92d7039d5603c021a38bc14d6c5c8571a064c18a7b2c6559f66031b5bb5656a121ebb4a745d787230d2013a239edbeedf56c970773af5a9ad4cf56c5c7035be28f2806c91b2eea94bba89020aebe609107cd0894609ffa98a61ddcf48e875af9f39010d99d94b6becdc899f75b0d556efd22e3aee8e7ce51638bff5367fec593210a5543b4d0d9d927a23cf3393829b4ec9c7dfee3049080f6c7d2081d7c165252e12f058371b1a158658b759cd5dfb1aea9105e50f6c8bd712c67dc56c3c1171dc1b38ddf7e876dfb9d1b8adbbb952726bc5e34fd7970f2cfe6268cada6e6abe82d81d7b03d5804958386481f572faa4e69489bfb73b40a4891ade2871a7f53384993269279d00c3c5cecc70a57e9fbc9ebc9352eda8a7cfb097968a90c7a62abd3e56daeeedce5cdc190815c574d5cf4a0b5e83360211753a08608669fb60bd5874d7c2f97c95a48908d43ae7b8c3c9faa193ec4576ea4f5fd517d390ae87c657745ecbc979fd4fa0ccb2f2192d79aa78c55b9013e85efc6c7f0e0242d9d6434b3f2f3f5f38a284ee256909ba74031ee0d373b613e25e8ba8e7a6371fa4c5e63e8aca756ce1833c7fadd592862048e72a10e3430fdf4015c6737494f5e560bfc2efdcfe12a560a1b8cb85da99cb6b6f0e7d9acf2d79fe9b1038e0f88120ca7ff846b4600f59406d9a98d0efba501824f80c443091e03fa522dd8568a546ab63b6a556d55613dd8e30721ee18657653044ded193c7ed2d2048f307418ea64d3b963f2dcbc7343b846d9f0c3813ed7422242365c512398c53cc73479b2c0e9828236b56e1377a546c07819b6c3f6ccb79ac223955057d2a58dd84fde05d4e74ee75f1210b07dc4d205ebd041146861918f377e775121ac543e8ec192bf2fb2d1d8722d5d072d227cfa1b3078374b9f7617af1f307282bb79e817e9a2e83afe845eba285f56c8f22ecd0be098f4137ec2f2be8a48ba48b5aaf7cbdbd635344f1ebf52afe2753b992567baa95c2baae2dfe63c96a8e5c23cde4d186fa3237dcbc0d636b218ccb96348fa665ff5cedb088a4b537d5450c17c47c34ba639f756fd4dcb6cfb5ced324122f6845a56cb8b2e506bf837d94ab3acee9cae3f009922c4865a88e085d365d1b8fc5c2c724b3235bd1a8c440168c92ac0c323ebfe11097d7c4fa991ef2bfe339455aa2736032f277d2a6e362f784de2e8cf3306d075cc27460793ba5163e3593135532ea660ea66a990277d2d905f764d5624d383217cd30d450e85c26f636483c47cf6dae6af0b25ec57e909eec6eb31a2e28534adda2257f1d60ab09504d406cf7ebd258c1ddc796ba51aaf18f3fcb5755f753784da6ad209531b5a923c35c904374faa5cfe9e633004f61d0e699d7dd6d929cf5378b11a8707b6a99eff4048d964720612bd6102af3105636fb9c9a1bd664af320fc96964c013958b1a378b1ce13d3a8fbb387bfca18fd5850e041041729ddeb800748669ee53962ecbd3d89058c0d940332de649b948e9488e9ec05d5342248327f02c405f9460c0a9a5b0cce73963699987ab911085dca0853b58a15c263979786f9f97f3eb6a5d4b2d9b373220540271084dd8ebd7a2ff0d1203a9f75cc7663c419d907d90ed0892b80c50bdfe1eca9455ad93a9c75bacf4054c7cfa03152c08777068e4bfdac42a4abf5b89bbff9b21ba21d001156c936359a5fb4488d20440910036974d6134ba616ae7c61dfb25bce6d08f63b58c10c7edf3ec75a00729fed811bd0b1a9b74cfcb0edc02a69dd78df70ecee0109759f1af4f91948d58648596133b8ea03721d678f72741fca4c3fd7631036e35063ee9c57f4beb2af6f21b4d50fd7fcc7529545742fb647c06a326aad3f41494bdcdb3707d1decc009e5afeddddcea3861352835b24d534bab393995f2ac6bdbde52ec1b740837f8252a5a7489ed595a85a63d66d248f82f8458c172464009d1ba60e244574e24aaf84866faa0865a8033150b2b0d4bb59e817ebed33a85af2570b8c11e7a24a3f6f794677c220b1e883f0712ecb8be9b089df2921e91eab2a90484435530cec99df8d4092978ae3d0df07b902b5466d0eff69dec839a26676fe08347336310d35019fc2a8167bd06080313028d4c511931f0e3479b2b2e7ee4aaee3fdb62d6e16b9be6f324d59836385acad113b3eb5bcc8b1a9de35bf87804f7e5f8a492dbd8d80aa28f60e41c2969aac83535eb339312ec8b27f4286237eed2c7348042ed8d6ecda610f7d8d2af641d3fbf39ea7d1c6ffac797282a5e766dca27e8e1559322df35dee60f22201152400b41d26bf08cbb03f59431d3b811cd88bb1244ef55d1514ca231e9bc3910bc498d8732e0c6fcfc7ea4e56e867b578dd2d73c87f6dcde431019fd7b986920ce9a2cbefaf6d27a9bc70fe2a51d5f5a40b1d9e434cae5700a1d95ebc1d1e40020bbd69a28e93fd99a75673ffb47a6898ba691e735960883a9977880a156103d9726d32d5ade93f8c5841b996842704d658349d1abb2847e4365bcb2f4921a38c84c1a5c89b18749aaab689dc5eaa2684b1b06a5e1a25a670ff2f0f4d705c55b28567dc267abe5ecb5199d576dce7067e3c3b92364857dd0780f0238af224ce0193a3e7feba55c8ff777ebd0d5df266232002104ff8d0c5d75ce06f883474d5be5afdc6e1251bc318ddd73eade68f834b7a7101c7f4b8e404648c9832d434ea456d1b07607321c6fb97fd3f13b015e11df6a8f9df1308e1f2b1d76a22ca0669dae416aefb0521fddf9a998839351e5da07e7e2d14125f5b1832902b021c1355706eb439f4698578f0fc24454ce6e6dcc9aa273d5a908a3d49545bb1771c4da5f9dc4cb2314ede8d5928119c21c19a68b795e20a61e67010985e14a87a34897ac34a8d773da42d709001394a3ff9404bb12fc081da14fce600eb03601a298773cdbeaa87b36da80bf9772083ad2476092a3ac06dbc5b611862c4eec50150991070af39b0e0d97a52ea2b6c174e952b50ca3c10af737d09f52f0fd5ee926b0c371d7de07890f2b4c9f771efa01784f6fae5cc1f202886778280831d631a983c143fe82e889af9cad9559a0ce725a2185c859c917dcd057429bffc8c58dd48a9828409c2e0f21290dc3e8ab52366294aae8415ea095b703c41a7c85a301042d75f67a169c2f3ff4a6c9c8c40b380b5d01cf594b87a16288fd93111b9d229a5ec3266b2118a7955adcf12ac8ff20a571f9389645d5439e4e194391dd3827e6666e55be6484a1f9877052e8b62b5964fc4c8ca5d4efe5c36c784f5ba34bc317df9f6fb7a28dcf04067a58b75eeef062c3335e27e7ffbfcc08291d061377cd9803bfbad642a2a261b9d5067a457c3c3faf6cc912ce07c06994e0b4ef513ec4a6f67f73e226b3159457a5981a411844050bb9910623419ed989c09637ff8e2d59d744f85b46c5b80e5c7333d7f128024480d755cc1c164b655c46415c0eea24354b1a4046a5235d6bc85b133e4275fe6ee9642393d130992d11b55a5822b87d7bb58ff6a34e911f200afecad42fe35cb14670e5707427f4ee326678b5a0438e00d132bd54ef646c7051f47f85345f380ce185447f9b50f66c33a341a06e152abc87761c364e6de23f7445744a151f232e8d61db0543b19b2a145f0a57b51c269e79606005a8d7eb3463dfbae9dede6dbefc52c647e0f915a1006f5bc8f16c9c0d6070e86da0c791121d6fb6ec4d02ea8fcc60b7c4e588e95b98a7733523871d0eefb5226ab0de0fba30b335f31881af9713fad97a8eb6ff34f2ff313c3863c5d8bf1e66959d14060c52a77d648e022ff72327e52d3c6d57273bb21695b29a066b3826bbaaba1d29914d0e25e1a83f8a72311ecbcdce4c1b6fc65a842247edc9081230d3e55f9dc0d56c61a349b468c48d4ce9814279ef0443f98ba091fe200ab1d9916ca78b4cd39d1b31891f85a2107c5f1de9b2062f7802f4623b37e1343760d240e96e9463b928c8535c7dc408bc191fcaca1c365eae3a86b46de3e3c606bf9c1871269dca12a60650842a33a35962d15130426c0dda38bab275109fa8f7382b04c226b73b8281152e612b1edc84f33345ca5eca604e4cf857b9c2815cef536752d98cb476c0ceedfb476d501e7769eca0b718297a9e0316ddeeeb7234ae7a79990186717726b3e4a78bd981142835813af1aa746a364855dfdd03784da20a79c53b6358ce5d424a90bf67c82ee4d32fc36f5e764fa05c50cd831f60bf4b99c388200191c00b49b8c5ee1f98075b00599e4e25db41bb803380ae5caf54b7f7a57b80fa3c4f2b2f28f42f21667d3f258f1ce9b7117555e9f900481305db2076b09ab59b16c835539cfe23ee0525bff59bce7d85b6ff2a5afaa8f14e81b5cb84c97bb50f67f95a103da5b571396e5767d51a031bf31363e8bdbd8ec49967383a6f37b2a6851c692ac77cb7d300c17b084c186171a5e99e061a873ababa08df4a280e3c8ca420c5c46cab261eba277c7368587a5236beb7baec90c4f38a4c5e5b168d3caa0d1505f30dfbe26f6a2f08e9d821258a39c24e5643b957b8eb9becac9accdbb0d642e9d0b63f5a86bebf2a64bb10b5209b6926b17223097abe95560e2af7e9a749451506f5837621523f6ef163c88fecc42a9a03b8483845298f5f2cf8aee7d4b15804a2d9c85bbcd727ae2c8b99686a8000a70df6af92aa7924a36feaadbbb6708a1babcf464aa96fe413e218afd0c719f6238d1f1c2a199886a9adb754fb526753dffa1a35eac3b3fa244d936c24c1fcd9491577b25fc907ae1ea16fb9925978437bdd7cc5b98aab564cdacfafc08054b3ad93d9dc52d452f92a5fa9e89496f8bf8c6e28ef18f4ede0aecb40088225a40eb6d6d44c735dcc51fedad8c34627e02c520ff76de9ea56438be393206c86e39702a36ad07aec940b39ed91482a02ebf7ca47554239a2138bcf3e4555554bbd9bb08f10ee67e9aa26fc7176d0798fac23f0639793c9d44b8999999784fe28d4fa558d4787e840039bef7a038c55246aff085b93f7a914eaa7999339f3c33c7a79ce350b1aa5ef9e5c90b11d74a3627abab1374ce99a18548bb3488b494d2dc0fd851c8b456b2b6748f1b6dc40077ec31bd716247dea20c024a0f5b2db0f954b7ae38cd3ad1fc17d616aa61e57111c901f27a029e0afc86d28a38614b5c66a09740fddd732424fe35d6d8f49f54881d6d486a987847499f9fbf455c0719bac98c7152d4c12ddc2bfe77034cde21b90fe5db3a6c60ef142e6b3ab027d9fc87f4e9eb7fe1b19d852ae94c30f7b2dc5ca852373670f9f83c1c218a152bebc723d972bc118b316b5377d78c27aad0d67deedd146d2b2089e4c165976bee661290456607dd4d289759d4ef2cee49020fb240c05cde600e4d1f96f6eaf5c758e6e85fbbd56bc20f454b993a4158f7d8873a57d5b6a58631cc9e771cfe553b90c8df28fcdcd9c5cb7e89739ff0c79a2568fc802ce025f9a8b1d2432220255f9a2bd584c7bb286dfaa2655ef6855ecad5e863a4ba74c74133a15f1a679e2d62443ae905581d9ab8d0c6fc2be902ec2a1f9fb3305b56838de97f232e251fb32dad72144da5353d8383f6d3a888d479428d7121c5cd86f9a9b665e081b73772519c64324c97b3b6b6e035e59a1ff7cf34304fbe36e9fc5169ff85da09b331d02425b878727708594054b5e89837a5d6388dea6e8be44487750baa38998eb45d1b7d43b2feb0a3ef4eabd5615dd276bfcc1ff22fba1abd7ceb5d53f95c6e256757d19014de8adb1cfaa659c341581ec3417ade98d4e8438a3eb44d18965b8f6bbecbd3e4184df4327ce4401b74a95f5803ca862f612dd9ba22953987c9e9f7b94f82e71cfc9df4dbbc865bf5ff61cefb81fbae79ac89f006ca3a310396d7d23cfe90b54abd3e18d86835824fa0639b10540fe2fb2a8e573441472859ff8a9c0b9cac5b4039838a9787f817bca7c3ecc301c7b76e5c0904751d2628fb49283c2470e3b635e36f5d2f14df182b7367e5086025170fc3b821c3f7acf2b39befdcb8681ae65f0ff7857c66b236df43c48135afd374214b3ad3c77572d44e2016e4ccfcb7ab73f183cfe42cd3c9b1334a11b337210c414e7e1ee904ed4d0983399cfbc6eb135ace9dbe416939160bcb31c5a7128c33e3d181fbd856151c09f586443b52ea5e3be26ffe7181f48076a239eb3af660479da2cd21834c8e758b3e6d2bf73a691fdaae971af513748343af7a52650ec57e4f228c9ea2d33b2e529fec6afcbbd9c80e38cd4a6422e4f5f0a9655ffa5e9d2afa19b02e9e0f2eea44a96f0435e03ed8439a6c67564c165800e3fb6902987384d40f8e70794cc74ad36a64849568f89b632e708cdad2c68e99da8918d1cf8274ca3d5ef32d5b4efd07e1a96b49d375afabe222e8b99532d28021937651252debeeae0e649c76fc9fdbab128e9b969c6c92bd83731a060018b79582ad97aeeb755be96018dc800eca01a21f89445ff0d46cde7b781f940bddc0e69c6021c5b9944483354be7428ff7eca2f4510f7f2d74336dc261a0fd5e0ac53637054b1b34a0b373dde67f4a4b86881a207ce45a1a4f800a032bb5528e8c84786b5b5fc3c9f1b926aec645b0048684e01ed04071665e4aa399f13fa37788d532913ef635befc0a22b0ed38ad4c46ac2e12b65c928ba23be1fc1902e55aa1be16e176b68b99aab09ddbc61a473c2fd4ce043a0106667f21ba319099daf828e976da4e1fd405852e3537443b55fa2b5ce58052308e5316fb946db42a94ec6ee8721e996c8873aa28ba6daa5b3ca4faeaced29c37362fbefadb95ff66107455423b9253b870b18f724e2c4a090b91d8a7075507f92060e287acdcb4b69e71edf69d464a3907ce36db9aee769b3c45883b54536cccb67d5f85da814c30df732d01760b8c8ce6ac79f7c371b37b96af063857e9bf8124f3ffa128502f74897bec6eeb3513816751ea5d2991002baddc4ae160daebe3197cd702b77149936ad691ac88ec50e85f7df0480391897e8488b31cdb05333bcfa2e17bb4a8e7bcd7e8a8e62c12dea6809aa75225046c4ae308995e9a0fbf069d8c6260807db8d7d5e193b14a21c97e7e179098c74e7adbe8e407e653ea27f66a7a2329938c466b99059c0ef6e10e1bf23929d2a790818286e621a95efa08a86359c2944b7eb1b7b873c57e775facbdde2e1f29cb9d9b766095f06849173d2429731545f6d0e35cd7a2a858959404ad83ef8c05922173ade430be35300c1de774abe7fa6e044d60a3d986c6b0b5b83a833af7d4bbb2c10cf636a496788b1fb94de2f7520cae88a57d3101771db98cd84d0541cd8c88cf2419f4f73c6061c26dc938c3c6db2c6dfbc7ab1a0c375799cb3ed7c0f308d8e2e1829ec5970e63ca324731f4453b6db10c6ef2eda6a87f67bd9f3bcfb53d786c312e969215c4f1ea8f9daa93e3da466df48fdd77a7a50eab9ad0399c0889521392733c22ab3b4c12b7b0d671208cf35ba1af9b4b669400dd6470cd0f73ec6bc1308e3197d1853bbb35075a04c63412c7fd6d7862e73c38b959d901a22215360bbd279ef0809bc1fe4fae8aacdb042cf4e5ee2665999a905cb4760c8c8c21f882d95202ce88a07920e7d66cff9c7eca7a837f3ab07def73b58248e31b42a2d7d95c992cbf17c0b10f4206633c7537e5e0ad5b57fd658d1b048339851dfb30150d04c360468bea38652939185caf97f9f494fd10532eed4bc66ce223655043861441c95183be28761fdbe580cef8a08712107c541500e10d18aff10109b103c632a045a07b1d442638ae15119008bf06bba9760d77e068acf96ddcd981876b3d8b1c61e51615216c2aa9900b320f312ce886658fc7e202175f346306e9231ad12658c5078d3ac60f4d42ca402cc35d7410074f1fa4caca999cb7086152b18d4780d11bc2fb4151070485dfe959c6264be2dfa41bb13243b006135033ca4ebc648cef66add42026e8e6553714b437bbefe8a514f27032d8d24d75a528452ec9122c2268196990e921c5a460e77723c05e86d80076ad8e3bbe35672878a01c54b2c341a4817df4d78ad90d29643bb2c8cef4f8169ae90f2b832b08da0c3536a3752fbab76e0b80507cae3b257b057540ad4c5e2158cc623ace1ed480dc4fed0a13ac6206967f3354c5451bf159fae49c82c03b63b5853dd4054751d4a033f010e42672b0c3b4925d853c9d0e3da1d65106f44e032159a845b53b04f58cf9aeed6dc6e8a5565b6376949e25da9b911d0cc8d0dbc542107aec70c7f05bd8e4ea0690756cf910def2d45f0f8505b40a854985246cd3335a1479e2eb42bc00c56c0ca157bd166dacf81bfe47f31f07a4fa8174e66124fa2c0ef06ffccac0ad99c95fc2650aa53034332013b900a553e39ce5d0f234cd7af551b367178cd7e2f155a904901e63791d4d58648290d36b1c71c652bdefad02946799a035255040ea01f0d4341f6aff1e7a65816d205d0f83ee9c355069a0780b7e7900661af0f516f35cd38322149832486c3b4497b98c531fc7a27011d64db7a977d462f57bef283470bc929af253f0805ed422f282e09b187c88cf27c968bfed4ed19684028905a460b2d51eb7fe4731cd0d9861763045dae31b2dacb2de59762515f527f63c8f993f758fc669299eac86912ac6c541a9c8a85a08c0b7d0d6380d6fa83a8b83c3651b5d42cd0bd72bb85c355abadefd8a409f508c96cd8f99538a9eaab1d206eeb9581d610d33917ec4595cdfb44125d88cc1faa94fa714979bc4ec7f8d3f591f2f8de994822240b84aa15caa43047cc110f9eeb84abee51cd785836f45653ba30eb174487e74d89ae0ac57711cc68738d25c9a3008ed8e6e19dec5245740ff8088ee3b63ea55739c52188d1b9fdd998578f3bfd2ed9f969029b80502c05321173fbd546096ea09c9f9cf118219e886e9dc3b477eacfeccca927c4d428f0eaedc16a9b572d84e0b62e735284e97f026d2474f204398b39eaf90b9354ec5dfcf60aa1e151350f93f38c7198a0a0d50cb73a4a764790fd23318a63aa01f1d16bbaad76e39a996a190295ee809d0650a9873701584348548a7571970f26f0780c491a2246bae58a9e4a5e2241ab9f9982ccbe30cf7acd8a84680c201e8b2ba8533482df31befd4ab20157f7958f2566701642d5a70c910f16976bccddf8e7c101a8628d87f55eb3ec0e59a88514184621aef0e25e5a05906c7aa2ba800622fe5c50b3289b6e0faa5ebeeb4626117228c9638e8dfba78eb5a07f1c6c779e0fd6eb509b6f7b53e05504998bc714ce0dc2e4f0b3a72ddd96936f84a6e6f2e6e704537965ed82e3869bf6a268e417b7248cacdfccf3c70e6ed412c879384449436d37248c2b0132e35b3b626889644a3d8e5176a13419720370bcfd8914d66a26ac61ee2fb04c3667bd634d3501a81cbe6b0c1a7800ce8a2197d1416bff822bfc9a0cacaa718ffb2f965165785955c14f29c594d0cdd52ba1d15bbcc70f9a67b9b73907e74f98cd3754f48ff81f4c9fdcd67c45f4cb4d3b47d2a9815628f1bef3b6703cd06645c08b8b3214c54219e948b7be61a37a8d4fc30e9deda630ba037d36ccb2907b229d903fcc6b639ba29fb4134306acf7058c74f69fe496740c68857eb726fffc34e1aa9a60290cefc0b0ebbee6a2d4156ff43666ceb5d50fd3508a5a6c017b6a3776cae679fd0856daa703cb5972d3e51d14425b7299d29a82cdfa8c9969f7fbe7e88c42899902f455bdd657207617ea1793b28c7c91d16da7541d0717bbba7bc0df8e256c94bc9e22b25b5adecea7a011d9dc95b89e4a71dd7aacd822b6971473de6d06481d36ab7fdd8062c62b4fd6d449676c81cd8508902d1433b36b3c5e659579084f2e506ed6de04e59c24a3c2e198b5d51fbde1086df23a7f758d339da430447a4cc3c2e5e9e7a86627feb6406559b333eb61e7dc1c1f26e6a2206cf30ec5751862f554bc47d5efa004485f1d92422412085b838c68fb2a55afb65181e4e1c16efa89fbb676a587ff7e2517e2ee4b786621cf9ced8e1448f227ea607c7dc56d8eae08e56ca40e7d220e57b22a202d8658ab6f9bf88fae44c32609e9a310f7b021e101dd23e7d520348651ca03046918ea6dce48677c48b1b34de62f0e5e6b151e46eaf7880e2f9715e50c436063a1601c2b54d76599fd6150265a010e56ffa4d0f6866b8e75f3c4c920f3c426ae60bc3125352d800e3176259c4ae9e97977623e6c30e9e3b3582d5d53bb3adc49a4771ca6d47e9885ed95df7c6f4033a85eb30e77ab085aafe4dfe39c6699d820c02abc7672dd8b6fdab3aedaa5b0f117bff0129b5fc853ddbfcc58dd624a0670b9b0ed89163bc21c2b3d69aa343f18b004154547414a52e0964245b43b71004e47dd6e1dd57df33dee103e056c8f5bf2217391769d5eb27708cabb18bf29fc64899246d0f77c067a41f39cabc571e1f63e022bf4ff3a3fd811c1145ed77611ce3ad17e1148bb425587e38a854ec0ada7d66cd73fd5df7fd9251f8613934f0e69b0e879c88ae7ea2d8dd66feefbe03228582bfd6deaeb5f0262da570d92975c8639fabad20465dc4a9c77920e735ecfcd16a4eca424083d82474591378ba058aecdd8af50d8db95cf1fb7c0ffcb1308d4701121312242329ff40fd0d271cd0f19b4c989b2e53d61f2a426b3f741bf4be1dd23a7365633124001da22222e6708aa83825eee6263d02c385fb1e6b3fc29360b49c70a077bf12f1266deefa2a38effbb36148e2cefdd69fdb99a90107c6d2d5d782e407c3d7a175e4a8850db90a2970d053abcb0b9df1b3b8c805a51e2d37fd6087faa86370a79499a9cd69bf09eabe0c66f3ff1e1791b3d7de9f0c4eb9600b1162272abe2685aca9a4e0d8f7084e74bfee6c3f6b8c79673116d64b33a34e1f957e52de512696a74bf3358831abcd5581f87ecf94ee85a9b06bdf159df44c01e0f8110f12ad21121f8b766bb59e9945abee3cb9bf6cf56f91f31b2445e8cc2ec6ed3b3a98ffea58861f7f8fd83855a35d4156ff56c644e7a389872c70d949fb628d67cad685ab4d5303bbbc645dcaa9a26582aa2c7f1138d772ed5de8ab03955088c9cfa426b84caa3734a35ba0d25384f0979d0f5edf8c3d267e64c83a139826babfed8af154a76bccff34cab62172a4bcd65d032cc764eb52d1dd322ff635f3b540b8ea915dde75f4e360090b2418b6b99a7d1101c80b17454b5b4b5230ee94f78d355aba971e9d79934e68e0119563782afb10bb7010c4d7eabf37c42cecffd217c70bf6860f54a294f4ea0977d7c438764b2be31dc98802b6249998205ab71c963a92caed7b807fd566ef4feefeaca877e52257be57622c00900093bd78fe9bfd6fea975bdd854d6f23ab26b2a8f261d6d0c3bc8d47dfca92dbe458ced31c780ffe9928ec41b7ce7058ca04f024ef2a84d1985ff1bfa4019d6771f51af049634b06cc35ad52b995aae0a802bea49de7efb10a3d806583300b11780dd99c54a2152e30485a5618b76937506743781c135c3724736fcca8c5e595d420520b73145062c56d426fb9b9264331b033cdcc65101137fe58f524c8949f27f0bc5ae630c4eb01c619ac0539381db2454429974b69c415032faf4298965e917be8158307bf59a850e20b1e8406ece86d5e50481cb5eab3a2537ae46c193ce0e25f9ebe1214ee496eb1bbf58e28e1cc5681f8acbef0e13ed36155e2d827c15e241381017395ca4ac99230b2662f2c2397fbde43e1f57848071fa4efbf02c49970c1ce82ae6a5c53335e5baecb3931824681d8cffaf566a615c157242ee3960af6b91469272027ec82e4f24b1dc36566ecc9f9ed2d22bef630ce161e2c1f737b2cee96b4f6d8fae475d30be315a473ec4c500fb809927f00189e1e2212c213a3948c2d09228fadc72d9ebe985c309abacd52e5c5e38f0a2d6c78c3d9d81d8f1ec08139137b226907b1395bf06b451c24937697ef1f059a855e5c8797ba3f7ee23f2e98e086efc4e1834848c5ff87742a0822419857f29b1211b87f8b396c72de21181eb8e0ee992634728a96e082fd690902fc5e99f659d4908164d270bea4640150a697ea0e1ee0cae418f340d6ab4e24cb90e042b24fd8c38e8fc93b997db1d368e9b09f55d0beda31ba9b16e6fb9a824fb8d7bee05ff50f2677428c6aab429e1dca1a594376074b0e651e4d09086d097706a0c85e57619fccc85ae176446e09439ed7df3453a9a686792909b13e5c5c87507b40da06929fbe46de2e5d6ff5a584a8930a9928f9836932daada772009e617faac8b2d7a5e88d1dc29fa4ffa0cd67d32409597fdba4d5118fabc99da88415ef6231d9ddc93713638cee9d1ea8abb514d7c5f498a66d21dc67d687a47c91864c2a2a4ec415b6bbb1f10268b5b6e26d0161872660158a65b3dca142c3b8f6384adad6e37565700b13d7b308f88e1bc965810ae0718ed87717fe6f5133711c15a54026fce3937f3f6a1632f26eeaac39b59cbdaab3264c5adcff789db38234bf3e624a66a19680c1ff5b730d2dcdc4d4adc8ea15b39a34a8d2fc09bbf1853f82ef75f6057dbe66fad26211bc2b1aa204d3a5f41897b8c2330ada64839a4a01e2fc5989c98210c142c3ccbf681f4f26c2f1905a6ca2817158c0e615c46f7bf52709e3db805d89968b9a239cc540bebf6a8d65babcb26b1b2528a4d840dd05f0df5b1a94ef25be40471947088c77a69c0acede306e0d94a7b0f72a028ec67ebefdab5372dce2a3bb6179418c1e1513796304c947ae778b48c115927f65f9953086bce71892d8af021c70609b3d378d3a9b6fa7b411b97c205e4d841fbe05967782af433403219a7cac1e90db6e0e923fbfba11edb70071af0151ad2345da761a6e58bc46a0f4bd2aab699bed375eebed03b14d144637b5b0cdd586f9fbb838179219fb70f01d99f1c9f61956d6378c30da433597f7a6ad9f6c8accf753bf506efb8e5d979613986f02203ef0257ea5a303000c1bccc10928cd4555d16669cac10b28f979eb17e24499d16d1c1c27d99c0707b22076faff13e438c429726aa6dc396dcda8699ef13239ecbff29bbdadaa45f7a6b65cf526011441af6eb85287a3f9e3101993ab8f25996a86b30fe4dc50b25654d0f945b1bcd0e36121c50cb120752e805f0d1447a690508c43ae0edf3d9aa9db584b7267395ac24da6717ac26488187dcec27935cec6be02ab2a292c7d9a775b845114783093a8abc0262eee5e98c9f651ca3f2b07864faf215741d65ea893e2712fbcea8768c7367756f7acd5fdadcb25ed977b3c3ea4a5bdac652c5bfce7e778c9fdef9cd7131327bc4979b4097c596e8de74a640da6d0c155a6033f537d29cdf5c02b1095cc5a1c78f2c8f5660580a10e600a2a576262b72c4a45fee8dd1e63bdc2322bfb84b20699da103566a1b00852c595f2f0ec1deec821d017058e56311409fec147486eeca07a7937e74a04d3f74018dacf52b01e64c5328bf4819e7a6925e38a3784f14037d6708b5a33d9cbe62a395da9b6b34207626d6b8d5237c91ae88e53fdbe79364c0696cb1243469d5c6aa73fa966c1d500db2fdd199c03ebce2b82598d2aabf225c5ceb320cd3141a11e26b8cb2b0b72d8e5c2a04945569f261dce352cf5773545c84ed165ab82fc3fd290d90726e635af96c28de6b50db14e27d49c89b75647a316f6ef078661f26b54f66e7a7d916381500ba3f7b973210257be4a6791fdfb725c7847ee910cb99251354d78902da6609159dfdc5b7265127da10c27b9e6ed41c90f6f0a7cb422279378415bd64048d4f7b96bbd8655db01a491cd89ff38815639e630869b406268f4766e87af52b3ca2bbbfc9fa968dc09b2543316303e321c65be1fab0df0a5cbc7720bef2883b105bb944478b51bb37accaa022b9c3d656b268471f3563916e60275a5e8de959d842602a71cd62d3340953a345e6918a28ab46ec895d531133a7b8d23a0754f05bc6405dbe1c1da7f07c7ba29590986bb0289f55f326338bfe0b9042702c6a9b4600bd1107714dcde9c9bc761a953614e9b1b8f72a717f2225d3eb739995e37cdf0d8dfca4a96e082a35608faebf77370675685c620b5cbae11cb26bb5bb0f477fb8028683ef8a08785128ec141b72f5a6615ed5b671c43ee03e9d05e4f2cc00ed3588d9356099f04a7d63ff0c489af5fc047e3d390f97937d17740d286c16d42234faf863e1da25fa3ce41cce67fe6efa3edcc5371ecd3a9141c7f9f658563aaa7ec9abaa2a5375643510c3b48de71f59526fa81f1beb32eeee8ab4e55ffec86adcae29ae507f4db99c924e1578e8c172a2d0d33ef9be9095f21ff3de9b5a8ef4325b85970fe7c4f567d69871f4a0628e1c82598a5a18f6080227ff068d628e064076a9b58b4262998d30d5f16e625400d81365cca9b40271543b006c78f7c716259d4630d94ae21218f5dae91a37da33751f163dbf82145ae8184feff4f5d131c8071e9d518fc7bc48d092a108c7d39a03c73c692d62d5261f2d8da7c474f08d4cd01a065ccb14b445f38937879757af21570094c0b9c6f3475db2b0828daf8301c099d3471b1250d97ecb6c6a52822a873283c64d5a8afb71be5ee41670ef2b396b09c9e2391ebdca752741cab78126ac921beef75d883577516a49668092e365316235c9af47e3ea79c3c23604ee97a719fa8ea8a26ed245680fc3957fc675d0eb1a39a740e3d7ade270f18ca5c265b324fb9ea83b136e1465686d3613cce546ac1c296f49afa228682b7c37a1a49a99b11540bd94b56a3cd265c532ae06476df218eb685027514f0685cad46e0c80c327bdabc1f250c421c2fcc88f1efa48975af1620c477bf58d466484680d8a295502c99c028eb793eb3a3f12ae7bf573f614f75098d529c04ee6812a059b41a814554e8ec005fe73d8a9fdf22286be0f047ddedefef5135adebc022f92f68980d994dc680570a657ea7eadfb584595ea67e139ac8ab79825bee45e586b2994e46c0327c8c224e43ce155292c6709fb0a2b9d968d3115d87c93f708551e0c73aa0cee67cfa54d197241109996ba39e5dc6a271479928e8750551df05328a6b7036fce45bef9549107122c1ab42374e3ba7b11ed03ca383066c7186269f4bfa216cfe5387f19b0110fed9898e46ccbd9ff655cd687cd6d9323f9dc21cb1f03711ac201688c6851039f4f307558a78124821e7627e524d65e939dcd7555ebcaf073b154a640e4fcc45cea43448ff666ea12862bae9bb06c34e71affc6db357710a7ce686d60dcb5f8ad5689854f910430bd89543f9a89a2d18f972315c2d666b98aa61e268ac566d2ec000423f5a535e3417af3b2e02da6862fcceb51289b9215a88824cb5cbfdbbaa4db073ecae46cda88f163c59079bb0659e2603d112041b4d67da25a6ecb29df4f32729e0e734d7a605cb21b1b37629ccdda1404ddd439913222b995b53918093a5b8f45bc7bacf703cd88187ec57a537c2e5310ae5ffc098bba95cb06dfa504d10b7e5a79b6d4e555f4c83edfa4061cf6b6018706dbbced63a2484a9f9ef309b29b487e7e4bcedaf74c5d36110348f627b021572bcb9e1fc7bc6392faeb8be5789ecf56ad4babe57f03e2690624f62b3597a21fd436e2579092cdd41aaf54a781ed80faa557f284c908a2d423fabc4e94ed7eec6e21bd892631256ad977199418c621235f301c9d89d5f6f68dbd3f66d4ec16718d4f253b5c993baeddb9119ba3a962a4518d5314a0daecb6e3b4a8ef49500e8c2bce21a267dedb7da0705b3a892a2acef1b8f09ff8280a1473123dd9d5ac3ab08ac6cbb6b14d7b35cbbd74f7c3c269806a6779f765a1f944f2097f2ef7660ef1dbd9635b103416e6345d397999f8a7c060ce42ff58143c4426c22993b5e1ed9c3ada30260112b68cecc1dcb1a10d26a91d46723753c776b3fff7c2a87790f3a10817416e784fe458d147309410b9ecc6ee74be2de1ec894665e84281073c4ff7585c3e72ecca7f0a67a4964773c04e251e26e8260b76e48a542066716fabcd02b857e658e5f54c43ad5271fec60a32c3ce9ce01e2cdddb26b52af9500e17d54b24363c55151221a3d8fb209dce55a93c4cfa2ad8f062833b33046a0067775c317bd646f619e5e47ac1c7bb9e66a0bb948f457a45954fb4ad006321e6b243103bd1dc9096c3e7f480fbf425a01dc0694ca8f7615cd533bba505fe9c2fb4a7121fa02f01ed0e3c84faa3ca16eb82222f6f2e38ea391f91796c216a7b241e59517b2b224e9be54bcd2c34b10c383870fba81346c07a9c2cf262410c6a30e7559e2896012d20c6b5f63853f3328be7aca67205a781bbefb4752513ffe4b46bfba93b2fd00bc27756066a6c063f6e3003441f2dc6fb01b24ae65497a34e27bc1023f8c790048c632d7fb25fae6479baa0e92f476bbf2356c887ede0e8a17ed6b7c9aa0028c038d4a6c1d1311c683b93e316a0947f962f5614a1c63303fc2fdcca8d231d22c74c2da4eb573bcbb49c7813eb869990f9ff0c5f8c9b82b9dc33b660d90c844f25b35b05d3814608f612fbe7823c16687a87296355da4e5ca3959693f6cadc004c8341149abe721634a167c58b759ab7a0755664166267b26d998ceb4ec69d3db8adde054a638a65c4546f1e094c2a0d68a42703de5ddc5f54efdbfa8e43850c7011920588be04b7f3bde45de18e42603381c9718ff35df6c05c74ea350f45b444dc5c5ee14cf1cbf2792397323ed92cfd201d9f447eafc6544aee02552b92101bb1996dc941f93b5e4a4d79e28c1b9e39451fa5b3a31701d99776d7f9fb67f4a821c91d445e6119435cd515f981389ba6304882601543fbe0d6d8c9479920dbfb54dc98b03bf36bd0ad2a3c7a7d6d5ea7fd20ac2000de3dd82431103ac7e022b05578bec8af6efda37c4b0d42fa7bdb3ee648743dd9eb1deb2257ae9a862f7cd4488f58fdaf809fdd275741954c97f5afe996afd5e5fabba41f2aea4ac0e18114c79fa63f8fe397e41a518945bd94d90db6416c1fae4c9308ff75e807298acf6f15e0e824f307762fce63719850ec5a96dfcbae67eb6d129f10b1437a3dea5b8683cf72e7143ad22e9f12b563b84d28e2bf561771ff6926d18d7225fa81361284deebf3624c9ee420f5c4f47567ce3fcf351369c819c61ee62670fb1992cac5397318c069f92f2215f57390267e927887fd1bc9d31444e5bcd4fa9a8070718826789d4d4320f72416257bd2a4e6909144f26ed7fa513b98988038d254f3f9de2b4c1f32a2481d9838e2f3cb315867c0854c04138bcdd330a8865f6a805c98e60c2f3f8cd71436f3208fc890d29e4dec9d96bdf14e536487e31a158b17b126f492bcf7eb8a878f8052b342d31cf5eabf3acca9e0bb12b3a172dd1fa0ee81c5d36c4050e18067f7021aebea6990c50754d950ecf60d382be1b76b866fa770c96882132d747612f81b5917af7197ac9fa145515776264f68eecfe89f7b063fc1281f602ae098edcbc29de8a4be1b1f8604028dde502c1ed0217592a6933f4c37fcbb4bc2c9bd611fa5593574e4e48229294b00ebc69e99aa0bcca781a6997d8105d011f761f0d171a2c17ff000cc55f92cae209616f0353ee0371bf0ff2f6da9b7a9d9babf31c0a48f330d7c8f5f857f78c3b48c5f990de8c21e54c24b8f6dd98a2bf04803b3cd13ecbadc6be451b9b50c12bc757eba163c11a13503e54a22821ff8f5c47dba3674579e1f088d59059055f08affefa8338741fcd97e261646df35516397c3aa30a7e6e22c3f881d595fe0c105f7b67cfe5056c835f23811dfb6565dfaa0455592a2ce748703058c201dea23aa9468f00bc172e2dede2068bfb306b3c2e72f44baa966dfb935045ac196c652fab8e293a71d88a96d4e19f25648f2468576d41b0d15e33f5fca2ce9578f09688d227c95f23d2bbd86d12b3bcb496167995703efd6d7958c552345f1b6d9dde6389e09f0eaf4f0a4c5871f6fd84041c5b649ad2485fedcee5e5e756a6a88589d9d83d2f1409aa3ff6167137966e5d1a8a50ec1389d76c178d25e7723bb5a7c8509f1891df7b65411c787ce0f6be70b3204a1f7156cdf476fba84f74da5ba2ecd2550331fb803a4b0cddaf5dd3cb4aa379fd228122a5379998b937e6650a682cff951cb77d8b6b6ed1b1f15c1a45e72f4c4604ef2961e6353512b315e9676e662e7c89dced27bbf385801c267e023a990ab62c32adad041fefeedb56b7bdf7ab28089bd680de97cd28bd3039b6a91895ebdd02a3af5a365feb10b3f90927339e3e5fa6f9c05b22e5ab9fc9fca624992fc37a18cd175edbfd5cea8e643eabdc733ccdc289ade0f94d59811f6723042e93984e462a0faf2b52e5eadd2a9284223d6fd9595b77d5d1c325721b1bea039ccdfd94f7b0bd8be8c28e5578c4c8f80ff895bb8c8c83efc198cb3eca3b1dc4f488fa754509b2ac359d2c31d6feb18ec6e301fbefe722d289e4c49d8982fd8a97c65ea54a293f3cf8201e5d7b396a07096f276ffc557bd2c0de923142d9765c830463499e0982c5dd8e87ab8eec811c92d321db4b455d1f396bc33092a1fea81e5b1a669564fe9a3176a8aac2e29b9595ca7c8255ac6f9abbaf57c4f24da93b70df333739a1e67856bef4ca8b214aefd83d631438d619dae591aa53e90810d60103f58acb24e0c52761ac3589905e2dc422f9f788e41e13421893d61548d6f6d6c6607fadbdadfee0d4f3d72bca4a61a3c83811b2a8479f7bb743750ee4200565a96343a0f6be95f80d2d07e37dd746b6ff6bb2473725c590b2c8ddbfc0bf7ab8b15c60458d4917e1d958b5fc12d311bd34ec9ad183b3fedbe79e13eb05c499d935d4dc4eaf18fa61716a73fd2acd1cc1d8e9acb38ad29ee29259f61bf7f695f4aa2aa22feb7837076a6a8dc6097ac1c77bb8e3eaaa4a2000513182758de9cd0fa835619cdf6d8acff887045e72604f95ce74f6a0f6a0c8a621271c09de1538bf89b3f8c5a533a7eb246befa61f2abb25ecf065441f4bbeba04a1c32319adb6c348bfa2370b81f3e944fcb05d532caf435ed1d5281718bc70b4f2c207743aaeaf08f23d435bf23de9c1f7471386a63ce9ab8d5c4e1e09b6bb8bae49cd4e029ea2132edd200654062ac4640cb85d770ec77ef1a9ac047fa29b691b1a3d8dc5e42fecb41f0ac74a6ec92bcd85b7fb244c55236dc326c737569c0a4694a95ad2303a5c5f573c19eb59f11635570b551a5cf9271c25518056f77c18f7423bbe8caaac9a20fba92fb2f41033e7875ac29096541e27d29ff92aa9578785cd2d4e47950b5f00d975b6ed48bc1950903820b2f57380018fb041f37d728213169f6d7d81029e8405b271ba0bfda9c03ee211086bf9468556f8bd4083e1db2c19470e1d7dc2ee2b6f4a9f41d1f6d43dd006f53849f724a1a362020aedf2dd19aa624766e067576d85e4363aa782b60f3a21cf0b4f2f89eb59ec210eb509246e23e9edb6495616d08b7cd06255a24f8c1faf1be1781555fe1855ef742fd8299d871d4d2dc4475169a05ddd097072bdb849cf79658c4c61e2952a428fbf59280f3c8d740a38aebd02f04aec47af1380860a32105c4fdc6d94c999165089cc6a6b87b88eb794f6178f66a713a5a757df7954369a8860ba24967a41ddfd1c795dac74d16eb7de714c8cc6717a2893a0b1515f9962a143320580fdb9ccf7474054c68dcc036691ac219941f036685562dbef89aa4e19992ea936f3b26c4238d50fa54cd3efed42dfc88348b449f8916e04f4f423d4d762afbd58c1a2641674a2a6285ed3aab8d0423a436db5488703e1935a9040137f370e6687c0c1e826a5523efb656e255f43af8845fce3f401526f6578bea4ef922cb7e396deb483b1d8ddd8d69e3b76ee39d940a973dcf042860098e2dcba8f227aaabc3bb4bbe544055ec7a02b65c28cc26518f8b1d88b3c1cbd8db8dfa296c0ffcf13068282bbe1ce2ec26313212571c2b976f85373aa9990ad4fc181e33ab80039519f0abe214ec3fdc6ce715120474332279bd77e884c2d60fac103229b234c066894b95c8e335fbc3c0b5eea7e674092e3acf908b96f825f3fd4d10621ccd9259563828e46cebc4abf9d4487492c3740f67c7fdbcf3dd48b4666f7ecfb8a2d70822db6101e10beff00d5a128eb3780c6298d5f92c7710baa37e6728b14a20b609f39a8cf586d48cd02935a06b847fd27f2d4c02e0eb8cc12103e59771f6146f06219dcba73e26532c771426d054ef30d67c8c0e6e871fef96039decb1f02453e51ddbeb14158735b457e6b1dd75adfaf63426e560e8310e4ddddd8d44cd61224053e7c8f915ba5c80242fd9ac546f53de5146f62781242e5e912d755d3752e09bf7f968ea1effd71e683ec2a8338d4a05071669bb353b9f24c48189471d639d95d46ee8b910d6a4607b93d2b06697784469c685c492e73a6c8d6ed4cbdb577a951ed2a200de2601403c0fbbc89928b513fc12ae03a9b5916a3d2e6ce641ff7714eb3a56f4fd4a5820977146ba5f60a545b1d2538ea07b2e1d46d730f7b4d31953db78b544cc80478e9b0d29d1ecec88dc32dbb5ac13bfb71450cd37dddccbcfaf4504b2ce3807fefab797b1537e4715eac3d8274ff9cb02cbd9bafa32022d18f86cfbd42741c044822939718d8c03f149e1d221c5bbf10047b928e77b525f798a2ad3c56e6dbd614345f31dc8c45fb2d94e8390b672830b675b78bf97d3e5d1a539bc5bc75253193d09001bb9069712dc5e04afb9c8fdd3079b0d34f3a4515c3ebe187ab45b4f0da9899c252067dfb2f3c0977b1df711bee8e723a91a4db595034d4c0b1422963e40305b212958a016c3609859a7639521df683a7b8cacd3f3eb1bbe3792052752b7d6f0ec2cc2770c9fc179b9074c61cb47218a2de6f3e53521f12678e02baa07debcf1256261ec4d6373969f8d0b8c54f83baef1b850d16d20c15059e7cff077150f4a693631df9e61cb69e094c3c924225393d32534d54b09ad7ad29ec7adc388f84eff0d961b4405d8844b4aed1ba2f1002a0dee9df1664dd12af41d7a558550299055b52d4d6ddaaf899696d98672e329a4218389ee4b62ecae5d18819b6e8f613a48173a99b4d6e6b78303fb9fd90ffe533d7589ad0d8fac2ebd3b4b0af118c0a0b69439938be330dab9e0dca8610852d1dc225bed6afef81f6654cdfba87419e35592cd2a0227c762afee4434a3908f56f5f328ad07ef4066cefedc1b9c6eddad6818502bb6f571b34005f1df12066968a9564888db8c9e93ec1da13b4d8fa72ed9a5f4e00dbfbf4fd911f86b2127ecefb9355532d6b024baebd69d40aa89f8c63235847165fa87edbada23bb4c7287dc5f0fd6a0ec3aa3f6298c6a7235a5f0b72a223afe8f31b6ad67ebcda50d3a17ee3456528ad442529b1851c3cfd586c13bd3834bcfd9438032c9d5205792842a2c19e9b3bff42027dd11f4685dab93553b4ddf599eb474989f89b872d8f3037efef9398de537179aabfe2fabb2c8b0aa4335000759eb6ff052bedb6d9a5b21649dc579ea1c794dabc10bdcc9c5808b2af9eb1c0e7ec1ca3f93dd2f014c43ccefbda8acfa0e95ad7568c07eb820dc5e6df26f5854c00ed585acf885ab85ec1b69f88c86b174dacf29ace2bbdcd7cfa74c580429003690fa066d7151b303a3f18662036b74524f58bdf9549eb815bc93b38522b03045ac3d6052ec4b95c81ae3d710805d3205bf428d0aa1202a64274c9268993977c4c2df059c92344286349903097e2c440ed771b962d9b3906bb747f432f7f4876cddf7f2238478495377e5c9cc29be5de949292adfdf4fc4ca103eeeaf5b137eb1c47f3dd9c403276967e349629f9c30c253b947d3b155b94113dba6650e5916db29042a6137d4dc0b810c9a0da34b876b13b686586349c034ac2d7de6027fc83e73a7a11a47e2a0e6b8f572da87fe3e7b4a9f6d31128849289dd1fbd7564d153bb916fb16f6a25c745d413fe587d2423600956e07d29cda4e2caaca2e819255ef235629ab2a87544b36c6795b43409ba8223bd3961a4535004be442276d318ec0be4025bd3c65490a7ff730b19acf17cae84e30a8938cbbd39b6bd743ae21d9602f86f1c64e826cf3435b80083fa866468b80fbcb02af03630ff0bb0747d571625b4aa12ab6f1bdd26400e79861dbd314ecc87cfeeb775ed60c164567508a5730d90ae31a4260670067e47476676a86a130abcd2434d9b53aba8fe2d4baca87e73bd0cbeeeee0653e6e10a6c394e412f64b877086649d34c1c88a451a25b19fba7c2a4bc4dbce91a08113e5bc84aac7df8cb601354d733e98ea5e510c641e61555af4653df8a05b4ca5ae625776ee585fc599955674cf9d2b83667c2391c87d900c6fda7c1f57f3418f5aee043a5a1daa223f02ef81e124fcd70d3aef72e5e66b7987df72ec15658059ee211e9bfbaacc5adeb987e3dc95a5d297572c7dc272e0e40fd1ecf9b491421e4bc29df9c53e81f4fa844b3cd7fc41c2efbbe4fcbcf1e84273bd891afeb15179469e8208fce2a3102fce73aa50692d1f6d8da87ebb90c15d60b033b80d2e355de44e5a8c44a5d93a4c67ef09e773e49cf3852139e715df35d66b8de7c93f0ba50537c9f1cc6423b0f4693f12a31d53c03d97beb6bf78245258fdc609947d94c31dec47e1c83fa434183bac7c5695c21543efe1529ed737538a4fae2313d1fbb0b542601b6d841b2132e276eff0091d784ca629c3e209775a270e9d2760f84e7e5e40ebfc6af3ab530dc9033e8b9e724d464925da00fd32c472af3d2fa8325a61164cc2cbf2455cecc3915d6d104a1745e310ce0c8f23877a4f6b5aae621996e376dac0440b72a0da0dc465948c5ca8009317a2f851d715a80213236b6233b08b4fdf07e085b014ab2145d5478981dfffc36e5d98b5559c2bc5101f411cac2809c84ebda6341a1239fb978f977ae78cc225ecc7fd4ad418315fc0c14bcbde133ebc42c71a871b875599c05803544a1e850f8167846d4b86258665259f87fa43893ebda6b76dad5225185f8ee5648ac7c584549212d4a0241f3b7dcb87508451532d9b0f45a58344131038525a7714df9b974ac8bcd2546675aa200eb0eeabf6d0527acf5ecae976a1c7b4812ec084d0bd469736459541fe85d64d9ae8bce179be45565eac39c0ac89be31a9c2c6b4c6838131f0651316fc3dd31d5436298d93780661d93195a34ea6c64f808df00dec7d4d177d9ab281fa60f9e662857af7691b5478fa92cfe3e9f0b00310f5778cb04409296e69d96c0f7ee775c6bbe3ca4c1d924d9ca87a730bb056b82932f8e4be8e3392a5b944934d30af13ad588a2194c28edef9f786fe124512b14f29d20d81ed54ef50201a56f0409a5cbb941e228f9b267c77aecc4e520674573a61b1d1993868de91d9f06b4f31213fb16413ae9564cc750915b773ed7ea950b142bfd257d3544a431dc846931a249b61ada19ba0ddcf58c22baeb1bfa594cfad8a44aca1c522051977eaa60ca9b8a3a66d214249007e023514a3ad0d41f1ded85654f2d0bab032fc885720c52bdcdddd7e5bc451386a68b8dfddcf4cee078038292babe80864e84b100c1522e65f2076a99339d8ea6b55bb2ce21c11ee2c4be01718deeb0405856946a2a0d35e0c704979b4c004f38bf4312a9e7e1a524af236ee6cdf0e5a775cd6c946e318c94f92efbb0755c21076569e5c3b0b99c9a45b926456ad7f737db7a99a6ccb98e8490f5371c407b49ef3e04ff81b096e5826d6707463aea5b77c2b32f211522823e47091fa4432145be8b999abc6ce5844d019951c2d5ef0fcb85d8caf3c211e40c97877dd67498c800a25f1d2aaf8ef8bfc417c4a84cab796338aa6081ccf0104ae58b65afe40e809634361e28013ba626d17ca376f4f1d41d86b1e2227cc62f81bb562d2b6f7a162f454870b7338293884b2d69a58239b7b06743f7f9e5ee3783aa2f4bf10209fac298a99871f6e807f4d5d317ecdecfefd3698f45e960bdcee1e9bfe471de9c2a981f93fac49186d5c8d859046a29ee88b54da9ca3d17b26ca85e4648d310adffa8af583ae898b2918378a1170677eab8961624eb9d9046d6fbff7d890f1bca5671ee8dd9ffc7bf23a77fdaf923dbeb2ac663aa7ff16b7badaf558ebe7927bd85de30f8069f2482dc167b8e1ee22009be2347689b5f33abf10f2e75070f322ff10b5728a9171bf91ced59298f3e670c957e2be76e34691a842ce3bd5247b6302c43a1fdac94fd0a6d5322017e3fa992a9da7c7396dda36c9cb5b83535410a25d7bb39b7807dfdfd0d63bf40046f45a53a6996c2cfef5562108249ed8a3180e96392f68ae13fc8c31a9c68fb77bf129c8518e3f0e3dffc9b4315fe500445340b7b1aec3651373f743f346f3674db270fd5f76880082608caaa50ed69412cd2c4dd5d30e01d800abb73780a0f07c8f8639d73c9634a4fbe6372399329054be315a86c2b386f64c13c5d2ef6ecbe4bf4f0ecfad80988f5b18842d82f77c986cb491ae2d3e0c727e88a817c45604f35c6a9818f58213e8d845cdf7ca46858be416d6a296422f7180edb23137ee240837f6b90cf915cd49b001de751bf347f37332aa1e56000cc9298cb025d716dac2ee2b9a53c74a151bf03d0adead741db8a1f0abe920c625a7db9b51f9bda0122114f4b544d265f88635f9c3f2af8505cf8fc14a3f4496cd365de3f44709fcb9fd5a62f20be346bf3f6f936a208a05809d3989bac5449a4c4d8cdeb3e4bc09bb6944974ce1b2e3d2a6ae2fe2ab0bd298074be477573ba98e2b18643ef175bea5bcadd13acad22de31e519208ba83788acf485d008c8b732902132dd71bd9dc78873b7d8755074503ddf21fe879242a6dd75c5f99079b133b465af47581950a89e5008000158576f1523391aafc6c9a5d67db1493b13e79154725c7b42558563dab633d5fc3b49710936e2620d64eff111677dc2b3fb2df78345d5d2ffddea40e12802fcfdc9be9a4365d722274c9d79414e839cd86ad71e83e83a5561858005f907b7868202575cd8930b95aac493640258044370bfb03846a73423254e6bd5ab4aa38c070efb73685da43d416ddede7866832eca3fcfd4f6a550f153cfa9b5c597e9f2fddf13039fd2f5a957d59a8e5d84809bfbe09eb1c54dbdf984476b7beddb0c65cf95a46c73275e8af16bd3ebffcac21f66b731c2ed1b645f9624232a8f28603429282144527451485635a8366e06c84941f48577a5d8128cf8d606ac61f616b72d0909606f8890b47540ae94b973cc747a578f991b65f45fb2e23901c51ca6d3ea47d3f7c12fc4e2a3463364a26a34dda810dd288540cdd0d06d80cb5d901f27f49baae09304943b39a89ea97ca41300ee8ae94569fc6fc122ae9d2a2eebb28b3d9441331ab9dcecbeb20c8dcf1cda1a238be952fe0b1f0fc4f6a7cc8c9a4447f69d5705cb6be0153d3ce14c77dbc9931feefaa75467f6be439e5c20f4486dc7ca35b560d09e3e8cd52971f81b60a49c837147a3dd9c20a93b7fe735edd3cba812c4aac8163db4320bbff3b79b6159943eb24541005935d2e26483d00a9a8b8e1e63330d6fc1e78c849f7eeb9e0dc8a4b70a3ce2ccf025c4a78ddeb75eaab8e3e1bf9bf76e1da32f041b0b0846a3dda51bfa48c686b80c8423dd0037e437a60f7948bd9f09b19b0b023144408be679abdabda6b9ebfc03dfa233cb5d1c1a522303d8f16be527fa7b9daea2b42214fbaebfb5fc5bfec0f2ba2ee1eaa290dc02a2b20bb11c618cbcbc09ae46fd8cb034952305f0e68ff9b14ed041759a963b141dabf0c4f43d1ebb034c97fb0a7209649720234ddd8d0120478dfb3cfb61e9342f928025758def75c1a9af89e300264f5dff6f7fa9fe9c27e40216fb085483d5347faf84559f1dd29d1979872688f1cb1326e55c949269ac96d06eed595081d9879b15afa05cd4822880ca0dd295090380e4f609adf6bc1fd0572f4cdf179e03f670c44bedeb42883b5eba6c0e69c6c260b073cefbe56da86ca790e08322289403aa3ffcec30f7918cde2dbd1948e74ed0493a35d6a6aa26b336ae26d5ba3cbb56d33302850a1cfa08869fb49dc4d8333e4266cb0a568091ad6e05467059b58f2010bc90ff9fe92a1d5727a5809e4c170c3db5dc72c789089d6afa815e520c80a1b0cb30fe4bbcd386144218dc7be92323003bdf318a39bb83d106afc708750b8468de83a7b9a7e8a92436f4fc36e2025fb104fa49d18d7256d5b287b17b1988ebee51ef2d04d90ae18a2d1cdfe0a005e8234eee7564ffdc7573f83774e0f249329a4cd9db5d5604f5809aad92b9b31f83d3b4bd9ef433c711febd4c149a8af9eededeae130f12fbbea531af41a226467ff392659eb77551e14dd0c8e8c2b59467d5728c5ba774809950185eb26f5a215be44cc5c276bf795d633e1a286f9973ca41fd54edce4047c94f46b79f82a161b66515c02d81b21dc181b09d57fdeb732bb37f41f0407e939e33e616184cdb340cf807584e9e7def5acf50fd593ae94870c9e292fdcc96a1e0d6295306d28be1a2bff584f502f2eba4b7e1b2bb7d784b2e82d48be474ffe645ac0a26a2c61be3ebaea6dea1b3368662ca71c510051575124037a8c1a1041f31d9edf8b9184787e407bd566607fa14efe69c1279e5205b38514c87ca9f4bba50a7be8773eed103863f6594633622063bffcee0d5e4c5945289dad54a0766d3abf119fbb2e4e001668f9b9c1dec6613b1112359b4fb5d2549d549dd0c6a4e4d4fcca73f75b181741355338f4cb0dbfbfcfde72ce153e2cbc8a30df9d1bd24f5a98aa97d2eb4f5d562161641f1108162100bd0fe0d9bb9fe0a396f7d3eed84b91861bc6840af67215723547d98a7f7f8ba997c1077cab5bad03b47a6f7b0365b833fa53e66f69afbca3393ece7518a88451ee9223c7b3f0669b17bf91c5c921f260c7bd2aca418dc9ee7679b476b11921f3de544aaea7c26fc647d2a54762d8dc7b0f1d05514cdc7ef0f793e2382f3af2201b06ec8b590286f3535e7e4d628576735ffbc72b339847ec03f29f554ec1967b338d60781c7c52d3f3232ba878effe2c9876e693b1c4d02e0e70187ef364232cb3771c6db58aed4832fd6e86d1097c5ee5613e0a6c7b1bae4e7e0e14254cc464eff69281f6afe04071e2485cd0a424be698ae1447dfec1ba75fd8d3304cd97b201665e605553c7088b18b9834e3b4c99d416763f234c097687b055f43e18790fafe0ab2e69cc01d0b8fa86eae28951fe5fb89d41f283ef4a8d74de5b099da9077784208ed2501a561f80a6799b37bf7fa5cb195cbdbd852c074df718e7a2e7da9bce9c086b57bd6fcd791bdf945fa742f1660faefac7e5016c441688d811e01d6a626bbb234b25b52e993d270fa302ef7794583ba92793709119d1d2bda8d755532c34f2e957d6f2500ef9ef738b6ac2bac40388611e7c6fbb7423f58b24f502335636e5e864351584c28a77750dc02d7ee0d239811a51d9cf4e2d0ca27b8ef9f80ca486748c600e3e4398a5cdf3ae84c6aac0ff45b84ebd74574bfd237eb8216af7732ffb00bcdee09b7cd5bdb3bd5500d59441f40265cc581a76bd4bd48799eac21961777b42cfe1c93c6e2505910528b8fd661926c3e0f3e6ae859b2d3f6c603c8b366117f56834e64bbd512472b3270073f2e3974fbbcaaff57dfd58c88e5261e83a1e28d26f4f5829af6b2cc2dd8da2feb7b45d4572ad43675f9d0da836adc3e251d7d0eba76eca6a17048d334e7af1ae96111633675b4311e5299ed7ceccfa2cf5b295028dcd1a226d21e57b81b0a42ffb5af25b844c2f74245a29016457d0f34b411412dc61a482681a5357c8fac13e0aa409aafac0c61557a7d4855c76beefdbafded52bfc2bd3266b4dfa5603191fec8ac28ca8ce03fa2633282433ab436ab401a022d832c940ccbb9b286c4f525a48336e66c2dc2e05574801eff806920c950bc45af0178de277c272ef554d556623aec59d9ea4b15a553c25e1c8568c487dff6a49b13eb88e8f9a80fe33dc29ddafd464a5967b67732e36dd408a46b18dc8820eeec37bb69f1f3878aee021c0b9c78c6fcd03755be7f9b87c86c72f46be97ee64f90ffdf0a76054c1d29785401db8d66fa551b705f5a59628a31cccf384839c7f67b3a30499ac798eb768eb3b4614e7736953e281b7ec1d030740f485e0a260b3ba6a0bf5634b04bc5c2d8202972d9f1f53298575109dfb1b7bbaf6f130f7eb5fa248b5d89384c61426c34a5082cbf219f488d86e59be2253237b2d8508986d2bb339fda9091ceac3843fc9f172f805ae3bc5fcfc960ed3cf63cb87ed41819c73a02848e31a46da91fa4fa2c8b925c6c7691f572a2b924f91859a915b7009302550b41244b507c80ed7515993e09a18cabfc14ae2f190b95ea58cfcf26173429631aea7368a3c8c87d8cab9baf090296b76335102125df1d73dbfefb8067790ce232d9121df743102bbc13281212bb427d3bbe8561b0788032d34baa0710f74ac42769944da2d0434bf47200185ee442223a08004fb926a903a2f610e5e2fea4057a77ef20a2ae721a9bb9fa00b30033ce2069fb5d43471cb49ae2d749fa20c23a4d5c92992d6c5a6752ecafcc0f8286b6b10f8461e18d528b986f12c4bb3f669b4ef62f3b3c5e8f598072e4a7ddd22a132de54f301613dd488933653d4a23183413a9c8772f827e026121af6312644df062a9e9d4c6b1f3f0c7ad08b6b594906b4d25e11788865b8155b121a476ec0d19323e92a6f58086a9f3baaf12ad911d7bb05ef5a7c45ee33001c124d90c69094e1985a0ce9b38689090051c399d1075af91e80c0da4c65bb663eeea7bc78ce304f9cee7a3882b08d52e9390b148049862dd4db4a058138e12d18604008007615ad996c2ceca79c4465001b26860d6c9af6919ae3dcde00cf09ec7af15763e62c914c55c6019cf8612595bbcc6ceea8cfb3873e417f84020e040d74c9281c28441592deadf00000e6c0b67b4e6aa3663c435c29a187947a582174386e574649c7a1152e9e15668ffcca437ba464a834a2682cc053b64227fa747aa4a15603a6fcdb426dbd87b824ac75f6e7f93dc2cd126b56350fc168892550d2f03987f42bf0b0827bdb4011072d0fe499359ba959e803bbd81c746310a281c7f4b2d07b42864fa4f089de8d75520c393512da4b721240eaa5ae67d144d4212d7b23af3b021439aeca081b57c10ed2a22269e8bccfa40daac334f74be5b5335ff16cdd0cd2c2ba6c3e864c7e8753ccc41e9938b797e5ed0e01b07c9e541ca0760f030921b47d030ed9615532b99fb51fd12775ac7a95390fb6320bab01f66b88873692a946f9b2276f9a3982cfe7edf55c4161a4a3ec5b0659ef1b7bc992a95b45b12a4c9b8b1739aa15b09f082d7a55b155aa4d799fc675831d34e8c3e98a7184994472eacbd7d0b476f41f2b05a04c9f26d20bf9f194a10774c8b0a336a92723d088c57f464767825075802a3b2197032540f0fed7aab0742e3150fc17596fc6648ed208d2672db3dfb8cc40d0e3d36ae96f42aedaf2e61f13d02de72c67c7be458f59c8eff34213941fdd4d92f6e4fe72dedf58ce0bce3efae2a49051cf1c4279e0af2bdedb0163c23584610e3599cdf63fa26d332db40cff72bec7d137ee61293b8295a03734172ab4e457f0e7381c4f0bda03ef5fc110f3cb7b1312563d6953cae7d64c071a8e28b27a27dde7db1dec47f0b4158b42ab7e77b69ec13b8930949e5e18386bd2efb481501f8268c758e88cea8be5b8541e579d3b0d61bf70f3aaf58664336f90653b2b2fde6e80002280775dc363d9788c77b55d0b38482871b63f9d282ee577adb019fb095fb1fb2783827dd0bddcf9fc7d6a58c219150b05f8959b16e1da00a6604f02b691ba3d420ef19dd17fde48ef7c14274f441dcdab9ed303bc83079cd1367da513ba20514ac2962bd95f00603327200312ff6bdab97601c1fc4e07150b44b17b758bb0650e7e6dcec6260ac9c558fbc1ba13529efbb0da142a2a64a957acdac00e6a44438a55a8b08e1140d7bfd9fc11f4273524472d9aa9a21596c1f5318b8d0967d04a0b6b6f21499a2a652b6e6a20cc79f45003b44484a6e3ca1566ae7b5f31055cb801d6fed1dad7e5a2321913ca9ace197f57bf00fa1a5517ee87834c0f3527720617b3305a0f1ed4fd165746938c1ec8c8931b921f5d4d69014a5ad91388760611c88728a8f48971c9555ca8f0e41f2556c9fdd6472922b4aab5447fa1fb03d5fea13d2f0df455a7a80ad01f4fdbaed9c7d78239ff9d12177b307164be8bd6f7cc50ff811b64f8d50fdd78b54fbb12fb2413dd0e45ed85552ce5eeba81f66027abbdb6fc8ab833c2f805348e616b0ca38a497b0ff652e6269579ddf4bdc2f8469e41fe236a000f8a47339d6bb4172a68a7d03f59408483d67be1683645301c7b33bf3dd41bdb0b472559bba9530ef798671f3a99faed93f74395233939be7c5e00b5079625fa386fa54d75d36725b8dae2f7b31b8991cbcbe4bcf61aa945c2c7077ab6e4e5658185dd0f7aa1ad1dacfb2255473f1b79a418586bfbba11f09a545fe0361a7739a9ecfebcf2e88538ed39e4b0444f69608a323ceac45957e71720fd9ab10e3780294711249d5df1ea11d91429c9f6ec8bb0456c8004fb230dea4fa766fc3d997758d1851cbf4e26d1de01bc93095ba849e1f6844ce42bb3e60822458ec5ff6715d41479cb605a7b8a5b7b3a87a16806a67319206df7e3f8a99e368158d952d8d3d9e122eae8e02301c256927aeed3f6a38acd2b20e2329d39c69ea1959d9168a6a7c7698d88b6ea11d9aa8fbaf2055586d3a7899dbb91489857bacb36561b63c209a8a2a6d6217890d0c469eb047ebe28b1c75dea40c1d11b82a11ebbef44881aa279d280f8355ac02ebfe91479aaaefba566afc36da2cdbc54b642f6de007ce0c981c36f624de5ac4ffbf6b97c4f2f10c4f57dfb99dade0c88f47f9d1299dcc663c48c6b69e70041c2619d49ca12c4fc79c8a3eb9bb09ecbf222ec8e579190277a98a2cff71a85ee33baeef76de2cb70f47a9107b69839a17f9b66bb2befd9abe8ac0aee3f6263c59f78d711fdcf8a81d3ba7cf0e89029695cc16e06bd3acd429739728f8ffcc8344eb50d7563f5974c98e6a419dd5a8befe677ca4eea4d8e8374f9d9d32dfd913b842605d4efa9074acc5","msg_hex":"5a454445492066756c6c2d6d61747269782064656d6f6e7374726174696f6e20323032362d31302d3235"})
24. ターミナルログ:研究ラン デモ 3(ゴールデンベクタ)
本章は、ゴールデンベクタ ZEDEI settles under the kernel-1 post-quantum matrix を初めて用いた研究ラン、セッション fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e のログである。レーン 0〜3 と 5 は TRUE、レーン 4(ML-DSA-87)は FALSE となっている。シールの記録はこのアーカイブに含まれない。ここでレーン 5 に用いた SLH-DSA の署名は、golden_params.json の slh_sig と同一であり、決定版セッション(第 19 章)でも再利用されている。
demo3_label.txt
セッションを開く際に渡したラベル。
- バイト数:65
- SHA-256:
ffda37d076284a18aaef062cd618246f3c11f1a50d7bf40df8657dfe618692ce
e6c206927c94364fa8f2d5e292bb11f0e5cc0e8b6e678f8136b424a04a2b45b4
demo3_open.txt
matrix_open のログ。必須マスク ff00…(レーン 0〜7)、トランザクション FC6HGPfFLgogkmprgK4zJEpKyyQEfm1H32bD8fWjPamN。
- バイト数:811
- SHA-256:
970caadcdb185a9c8248b867de1f528a92ff2e21b8b464f798d301c03960271d
Scheduling a call: scp144.near.matrix_open({"label":"e6c206927c94364fa8f2d5e292bb11f0e5cc0e8b6e678f8136b424a04a2b45b4","required":"ff0000000000000000000000000000000000"}) with attached 0.01 NEAR
Receipts: G9eQb2hwWrgcx6UjnGH1J78xo3z4SFgeRmzyikee4i1i, ARkg4seUE81Z2Ga8LD6mNQsHmFcF6hhwhtRx3dj6zWmd
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":121,"op":4,"digest":"fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e","head":"ddf842469e92da44fc12f96da6b6095497823adc5b38750d29797e7a67aeafe2"}]}
Transaction Id FC6HGPfFLgogkmprgK4zJEpKyyQEfm1H32bD8fWjPamN
Open the explorer for more info: https://www.nearblocks.io/txns/FC6HGPfFLgogkmprgK4zJEpKyyQEfm1H32bD8fWjPamN
{
id: 'fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e'
}
demo3_sid.txt
作成されたセッション ID。
- バイト数:65
- SHA-256:
176f6c4c55d06f5ea90b4edd83fb151a2921e2a029d584a8226a63137a663f3d
fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e
demo3_l012.txt
ファイル名は「レーン 0〜2」を示すが、記録されているのはレーン 0(SHA-256)とレーン 1(SHA3-256)の 2 件で、いずれも TRUE。レーン 2 は次のファイルに記録されている。
- バイト数:1,927
- SHA-256:
39393855d09daa2883cb974a4cca2fb27e886c0a48319e29d5714a9cd1c0288c
=== THE GOLDEN-VECTOR MATRIX DEMONSTRATION — session fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e ===
=== LANE 0 — SHA-256 (FIPS 180-4) ===
Scheduling a call: scp144.near.matrix_lane({"id":"fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e","lane":0,"kind":1,"data_hex":"5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978","expect_hex":"8d9a0157279a803f092afcb644fffc6b33590f70b940ae114f0f49ce347325a4"})
Receipt: 3id8UvpeQhVYofY8HtqTMnrdaKV3fw8UpyHWZips4WLk
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":122,"op":5,"digest":"5874a0a6109f703d91aefd0c5ab9f4ac3d2ef42f60ffb22f532daaf5c30d0f24","head":"39991b8204c540143af1aa65c415e68e08dbe750730aa3b202d0ae2a9a05c156"}]}
Transaction Id 6pFAfqd1WwonvaBtjRUSd1CM83AWaCsdKdMBAWcxKHQo
Open the explorer for more info: https://www.nearblocks.io/txns/6pFAfqd1WwonvaBtjRUSd1CM83AWaCsdKdMBAWcxKHQo
{ lane: 0, state: 'TRUE', code: 1 }
=== LANE 1 — SHA3-256 (FIPS 202) ===
Scheduling a call: scp144.near.matrix_lane({"id":"fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e","lane":1,"kind":2,"data_hex":"5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978","expect_hex":"566ea1e4be5ec2f07e8b2a34840b5a9a65ca98fd8e4cde8e1c975a04afb8dfd7"})
Receipt: DaTnWPYbSr5aKhjhVd5VGARBcgvJSXS45oRojGTJ8VBi
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":123,"op":5,"digest":"937c587adbeb1baf855a5ddbd52b90f58035dfc265e0febe2f8241b621c41256","head":"fac6a1ee6ebfa086790b071a8c04f842026bfe71664b8ae325186a8840a1a0db"}]}
Transaction Id FaQnqbAk3VwHD2SvqnmLoZLUcQzC8XkxFit4uLUTqJrv
Open the explorer for more info: https://www.nearblocks.io/txns/FaQnqbAk3VwHD2SvqnmLoZLUcQzC8XkxFit4uLUTqJrv
{ lane: 1, state: 'TRUE', code: 1 }
demo3_l2.txt
レーン 2、Keccak-256(kind 4)。結果 TRUE。
- バイト数:862
- SHA-256:
ec86874869374f19717787e42c4cdcd1e699914acd582a145ae92e989f87f4c0
Scheduling a call: scp144.near.matrix_lane({"id":"fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e","lane":2,"kind":4,"data_hex":"5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978","expect_hex":"a0a7de8d3b6610f918f8d4242f2e76dc3f4e175e8a28f3ff5f673316ae6f482e"})
Receipt: 6aVhwE3h4vsycaDu8zNY6VurvX2LwFhtG8NUmqiQchZh
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":124,"op":5,"digest":"a6969b1afab1fe4a08a305a9f6d2830e6623baae18ceb15a3d531ab18df59ec3","head":"8ec4b1eb213c8a7c9fc950e50ff28c00289144c3ccd04edc3fdf181e829f1a66"}]}
Transaction Id FyMityWavfrjUBE7zjeha8nHX98wM2qSbrnnCWMSsec8
Open the explorer for more info: https://www.nearblocks.io/txns/FyMityWavfrjUBE7zjeha8nHX98wM2qSbrnnCWMSsec8
{ lane: 2, state: 'TRUE', code: 1 }
demo3_l3.txt
レーン 3、Ed25519(kind 3)。結果 TRUE。
- バイト数:906
- SHA-256:
230e41fd3e5951435ec1557229714ebc51d312ad190a5b0115dbec0ceeee7be4
Scheduling a call: scp144.near.matrix_lane({"id":"fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e","lane":3,"kind":3,"pk_hex":"03a107bff3ce10be1d70dd18e74bc09967e4d6309ba50d5f1ddc8664125531b8","sig_hex":"5bf0bb7e247112418ceafd1dba18f1efb8e54dc114cb698090ab5c051946870bea9d73109bbb7f0ab0a69d51031065a4fd71cc47779b289fb42c2da0ed4f2904","msg_hex":"6c616e652d32"})
Receipt: 8JDBc2xas6chfecnUqmFVgEBKRjyUuXkGBfNmybnPdx1
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":125,"op":5,"digest":"af7512642a23ed316c285189e08fcb25ecb2a7f578a47bfb3d0bd988224c4767","head":"5629d5d574d706a46bb4efa2102bef34a55373f7610a389605aa431b88f3b519"}]}
Transaction Id EYojqNs2dPHAvC1CejWgPkV7pmLoxbQQGFigz3feAN3Y
Open the explorer for more info: https://www.nearblocks.io/txns/EYojqNs2dPHAvC1CejWgPkV7pmLoxbQQGFigz3feAN3Y
{ lane: 3, state: 'TRUE', code: 1 }
demo3_l4.txt
レーン 4、ML-DSA-87(kind 5)。公開鍵 2,592 バイトと署名 4,627 バイトの全文を含む。結果 FALSE(検証不成立)。
- バイト数:15,245
- SHA-256:
c86b1c5bb183d87a2b73b35e4934460d57cfb827d427ddbc7b656d2ddf6b0696
demo3_l4.txt の全文を表示(15,245 文字)
Scheduling a call: scp144.near.matrix_lane({"id":"fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e","lane":4,"kind":5,"pk_hex":"a59a18f15e4febf1d8a910042bedaff9d8665edd3a069da989f82d732dc5b9beaed922ddd93e5e954710455fa6bdffb7a59fea2ad146c7641768131b0832151f58108a6d4aa8f8b24ce67329b17591f0726df2bf10f4b69d3de9eb14427d69703763b40b6e586d2e5e514ed798e2b294f71d7275e0a85fd78d68d8c0ff3080a2b3e943838519914deb10ee0891c313ef6a512eceffd71fcd195d0cd8c465aaac9f255d6bc3df6d6eb4f403d15359aec198e7908471a7d9456dcb49d2ca9f7be5c65c92abcfc0324ae73332376c1c0191152fee05f43bdd073636020e0209a4c41543a565692246e3f83e76336e2d566afc42cc6c43ca1d5b5f1d5340c86b6299218d6d0e8915011205b4917433388ab366c6d68a8a043144963e6ba591643811e6ab30142d73e17411d540781a2837c3d3cfa1c809e1aca4d80eb654e2e963b4ba1befccd3b2d465ae387fa627d2974fb3c71c3f249cd42cf6ca097ae9c03877e3a0fa170e40f065b68b574c5ed01ce960beaf80524c2ce058b78a8af2d57dd67300c705f541a481b529aa3bac93f4a10423f05677ab85f2ac0a5db472f6f46cf5b37750c779ad6047bd587170af3cbf6d660319b84e28b9e5c2d0dba3af03423b24f1ef46ca7d9133c695f7be21656220490c4836a17801be26e2a943360a15cbf4a0795509f77a4112d859558fdbf385f299912b0e146e3c72b83f5d21de636c770d54614ca0f2870bd654c720b471f2fb4cc882b844c0c6f6d98e204dd664f07d0515520184c4edd3c552e970194fb58bda91091928c3c6eb479ae67de1ad084fe87cd05807b645572410a8ce81d983ed763af22b565d9225c2b8d4dd11ee8349e752df57179623f8a72acc0891bc92c1aabf98339a26164287a4d717e507d8b83f51c708034456716c16e5ddd9cbce76b659a883bf05264b20e9cc829e126d8090b053b73e4ef4649ca72cc32f6c06b0bd6e2f3c899ca90f6f0618c7653bdb7e675b6ceab0ebe2c82b5cb02b58525d6d9808df37d083c6868cefef5004f6def710f34a146ea0a13f75e70121ae4ed61cd1783b215435aed98b2bf8986cdc3885a6c348181bccd6371057f4661dfb82fcacc7c6ead0e20749aa3985e5ee778296d0ec3551b4a408c2e8a4eb82d6d5817df832a93d9ea5fac6f777ffdf985c5288ae33cd81f87d31cbcff93a6fd7319288e447d7ad50fa3bb281d2d4cac4759814d546e049c5065e84e89423446de4b3700f5c517776bf70edffa36e76d7fed9674af8b473263d996f3ddaf7f60b2e11090da583e7aaeddcd632bd1e957234ef09d09be037b4685f897313bbf7ac7e99056313dfee2efc9c0e973445b734da033984be11446e524dafb62e96a56c05be3f5e46c2493c14d1e659380000ed9ddfaefa90c130bda3f9ca6fde96ab5572e91f4526845e56915bcc3718ab99ae8527a5938a41e1b0d46b816962cf9b1a68ed67281b7e4fef2a6860c4f7e9015a1bc8f9a5f95c7c5e7d7e5f542c93e3e89401c50270cce5ee7de2bd0dc3d1da3a946743cea74bc16b32c87303f34ea19b71f6e52583f49a8a30b9e51ef72a0a252d40655fe635af193219a00b1aebb384b65d06f95c41e75041e9d00fcf21534e1cb2d6d27f5c911b5a8206a9293286d91af2ae3849ed51a9cfd315ff115dde3d464782af82446cb41b13db467e0aac76e5a18c5940670778cbff0e72f8e0cbeefaa34169063bba56e4d668dcdaed0fd1f1bc3a8d53efbb06c415bbcf2128d3e6a55b80f702422943c4e7c30c709763897f84eb00b345304d3c0a253d293c54e53b0365b945322b1ed9a8c48ad8f0d29a775ca5c4d14af22970c540fa0292b261fdeb3e16b94b18b7c1286e1960802c4ada4aadf08a17f4d4375f62670a2181aaba846ee066f41cb9eef39a15b361afe66b93d6fd6960b8a5c8f82e4612cbc3d82292b4a81a3f2e5a0648017f47deaa2bb936f4567777dc24f9c43af7e0cc425ded80e3bc6d52813f3c79f118d4c6d505b70d306c6ba2ae44dcf9a5aa3dfa9f47530e13d2ccc63be2bca354901d4daedd9d8e1d0850c999ab0a16b86506e4b0a7eafed32f0ed06ca6732b99ed0fdc5f8669ac1058f8193d2525e6e1056e6c8809d8603373c8c018478d5d5d16b91403d22c9d4efa3b3f283ba9896f7c9eec1eee91c85b6d6f4f1e1980e8002643e77b13b2176daf2ceb6763b15f1f078e6f02b6f64283fac3c4fc13d32629707a2d51745fa5b70831dd725c99b458cbd13aafae5c3b445ce8824b7a5c108a260601f971f04e5ecef9209069c52507874c68eb64ff597ea565425c668ee9438d0987b5e78cbdc3d12bf184591a5bdf85729d9945f0bb93b74235e4e6afb4f5c972a0ae73dca891491b986789b2c1c01121c72bc407a81d4808ca72e397aa7c4cad63ed8a71afa636d83e1277e24e7831ee19eaecfe1fb1b73c6b8c2388dbb0804f5f7a70371ca89a6632a718ae2ae197e508461607e3a1d2f5e2bdce7fb2a993bea6a9156592146dfdb63f2516eaaf6d3e5fbaa2ff80abc1b990d55ce2ae8b9c63cf6325b56871ad8a7aaedeae7fb0ccaf917dc4e3d5f251e1d61ea0205dd264c8ef5175df07445739dde68ff0cb9a95d00eb1cfa18435e1a9474af4f9e9a61cfeaae8d3f9fb4601347f13247a60656803ccb5051064a13bef4acf3c3bb11a632b5bad56e8b48af9c6f783956969a8626a136318cd5c10ca2f7b3e204e094bc23fb2be79db357eed38a1e1a3424a511f43c43ba8f4f2f9500d8ea0e2b7b5e75fff8515ba2c8dcb59e581db7bcac3d742e1f70b355da9469da4b28bf2e8d7b089add34f50617afd7575b35c35b2f3fc992a290d8518979b0567dbf8b7a4915567e5f63500a75a3d89c1ad5b3b1dce7ad7923aee0b6b394126428b728f4f3c507058cbf1c4f3de28ba2bff165432ead213e5ba7711cf7f8e237fe7d0c1226c03bc126bd49c976a3f077c17156e85cde67377ede26ad199f4f42649b4e5d643f0f94df0a1f4c651b8a90a56dde65ad29ebdaba6b8cb8ecec46b2c7b6121d6e5da75729e6cae650c544068904e74f131390cfae9b74ced3c4d0142501b8d27ca802391e92d5a21adb6f86bce8cff448382a0442cce82b2fb86fbebdb9af940f3e784fcfc28081c8523c3476d66d05912f332c855770bb95266dedd267da64fd4eb8b1ecd4ff4c5dedfa5379e0ef8d4d37101e22f10b7bd395591a95edc32d647bb9ebacab59d8a783ccba6d4923c4f366bc4b7244a1e4967692e5349416985b39d41b603f1549ad885022e09aed609e2cb828c505a13930441e1c87ddfdb01151033e7f22fd698eeb73d8ae3ddee6b4dfb4c9cccbb90a014105d3dec4d4b0d68074cee9ba7fccd5753ac7a9062b4c267ca99faf7fc714c6f2c06c5f50211b921150b8b701978a132dadb08ce32247d386d0bcf9716886aafb93eee38647a075ba33e82b4c0b2755bee9cd24a93ef6eaeb324c60086b3f37b90cf9efc10384a62fec3ddbef94438e9e04049a3ef0a4c1c9f2259365d6e7a80251d0cd42673af6653548481d6f66fba47beea221c8a0c180f89a39f2c3dd9b7b73e16d6122e47e88f2083eb909cf35c44eb77cce1a50607c5b449176aaa91f9574e8c42d2fc84b38e771a8c8f6e6a426ea4f0cec054db4260a41dd9068f12","sig_hex":"2b57a70f481999d218ba98a51da249d8c2957b50a05c13380f351acc36b317077ba0fb0adcf12e87af10525631a93775e350a8a8e88cd2f7901848c2b18a681c47e4069f48271f1c3496ec668be9b82d0da9387c7e2cd1e1eefee9c295a0f19cc3bb5ebc4f1324a4f7ef219a959b12746f75f49374f778acc59f5400a71ceff2dabb0193ea5683259efc2dcc3c9b655aa380ce4927bd6cdd62315f6f4131a93a2b5856cd1b1b5083b1cb04848d8312b7b66a4ae81e7b997ba3b376cb92c78eb3849b5cec44fe8a3943ef2b78e6338622c60727567a8cee1661f4d35ccc6df99431df5c557f0ef27855c2ea196fafa70cdec4708887cde5eb52549443ceeed8601a595bc2dc126e2868783c7e7954f1182787a8f16708dc06f21502463b4775666441c18e278950052c0031b802dcb2650b5825dbbe15ca886ec7e1f5f0e9f3b8f6aed483c9ba772a22ad44defcab4df4d31a76703f34c5e65cbcd82a29e739562d284b7dbd898e1a428b8143b7582f938eb795dfa077577f1e4e6e47dcf7c860c26a0e9920e3036cf9d30e1e810795137c915e7b0d71f3dbe7b6d426397d18a31fdaca0cae5d55b7ef18c3ebc463e5e83d3606aa0bc3095f95d7f25d17d67b473cb3e5bddfb1c5f440825397d2af5674f58296651ef027d025c4f37ae6a4e25312b01262526e208809f44a6f394cb34a74387df5ecea49b85ba7c361421b929eda4d0eba7fa82b99ba2ab1b7ba9d000e115ec684698b606295ccd60270b83a871314e03a8d72a394c13b3b959eb4b16fc9e0c135207a97eddd35681be4725c541cf4e9b3039b2effe6cc24579827397f9f9eac552508d7d745cf0df27b5c67966d5a585345ee982ab20675b11bbb815cd7c024c46df3e6f5d78b24faaa767020e82cb9c30d72a482c369f812933d2c997993fca361e1c442fdb900bd6cc30efa11abd0c68895e2cc23fd8f0129a6d023236c4b9fe218b7bfbfcc3ece7a3580216a81d3b7b35727ee631ffa475b5fdca21050bbc41ff91cbb84d72dd55b87390f9570b1d010fd43a96f9bde63eb3a39ae1624d183284382a194cb57d371fad38d98516a76ac0ae237c4966cadf750d6ccbd8ffe16c02d277e3c496f6e5681f98b5217070cc7f2648bd02418174e5bc4c7b1b40e02745746773cb595863ecf173a1c7719c60a2e308c61dc7fc3555e7b8d0bf7f03d725f03eaa1027b26aba816f75ba8370c249c15423b986722d9c3dfe615ad7a6aa6def45521e5190ca3ae7247254f1628e0f50ab9d83103ef4b8490b3a3594d15fb9be571fa79143e60477239c7758d9b17cb19ffc03396ff490a9aa72f3355ffdd4368555ff92261db57019abdfb6d8905bfb8b3e74382f28c1b55fb1a7f9532218c6ca26b2bc4895c9e3007eb03c16f9f33abb0922204e731e71260df8eecee2649555f022a5d7d17c471a7e9884b98a57ff4e77aac700701925e0e33d5b30324660971bc18577cd036e4a2d13ed155d33c766eff87e299f7a45eb1cad803b54a54b336f16496577c309830c597a011f50ae384e59a886bc7bd40945a6194ccb810841555ca65655fdf55c0362f065be7c67bb5cdc19cfe32b6ec48bf2f3dc153a19535568830ec3e03f2e593c975bdc006a4bb96ea8d2bcf2631f7092df09944a69505ecf8674953ef21e2c4bea9842982680db242b815c4d7e8b1638b06e735125dbbabf7006dcff019561698430b7edd73751a9e86a3c13635f46e22d858801bf3d04203581b97f2f9c2ff38ecbe6cee6e1ae45fb2e9fd0bf6976fad5b818ccd24845681e30992c1995bbc80b1f0f0d0159762b541e7516afe68c7411aa307a5750067ab01095b55779e3fcadf1a91a0390093656636a3481e195a13bc2fb53d249a1c20302b4bc1453fe432d830f6363e2596cf51e5c7965c1db027a6c5780bc6e79b091c2bdd17370a7232facef3fa790bbe13c2e63f3cbab40dc0c94b8b2482e8816e54f8f33d1ee424259d63593a71a9c4bad3727d3fc5e751ab63e5154e23b59d87e7ed412d34e18a52f91365b66d1a3559f25c70033174ea7ab6e22d2eff006d1ace51b641465655c8382d77ad625c0af52c08b22b616fdc8c757bb8f49b2a97daab0b4c7f26ec49e5660f0f789702569cfb60181a05476cd95bbac2f3c31e39acc1202222ee4540de03d6b2784d8bec318ef7d69e0ff753ad49e817ff26446856aaa272709db71000219bf3971acc42d884987a0241de1d04924b9ace42888571022c995b6358f0749f64c6d499b2fab128dc18fada455d995d7db38901b258fe394b62d93aaab244a5053c9026af4dedca3b46f021ed7a1c391cb282ba2ace91827dabc1d88dad8e71f575d0a9a49f395a52a9095c5ebbe06272b0047b3a6852c1947f2bad9447b4d2a9d52f7ddf6c86cc0d79c59bb88dd872617960819c36778d5a8c00c88cd23fec64a7cf0258079e5439358035b6037d29769408cd9dd27332a7f011d98f1ca7a36781aeb891e4bced02df0524ade258cc56ebb3a11814dc339f5ab642edfa32672bd0bec3546455c33d09203f20478c176756814fea9f4bc8f5d0770ccf7113e2b1353a092f7ff53d36dadc9315faa9030fd4b1648f096d3597f1fcfd906fa2cf5145d9a167983b75d219c7a6daa5d3b96e7f21be025c0dcfdb1f66c75682e6b288e90045d0099e34a43b0378ee64c1f6aba9cb6d16cbbaa4e389ac8079a6b76c76a832ad0bde2d399dfca873d18e4298b3d05b257b3acd5aac0ee11b89ed7b8a8b613caf62ebc63782bfed8b6fa0246dbcf39aed1416c9dd0c6fe893b30630ed02016144d2386c86a7e3aea86a8d901b73bce349379f316381f4e2605d71819d4c6be0ee115d27bf2bc8e5b171949f0c4091a0681df796e29f47e49bd2756fa9f524f1ba89c63dd2024981870df5b7557dcda36d2cc5b29276bb0c8d748cfc4bd413f6a0032f0a42af5eeb2651f8bd67e506214276896a135d4912cec9186a27126f3471f86abca83dfa7d73656308f0fdb56a86ba21a8ca62d1c0e1a1226d56d6c7cc99b0b9294ab7e8c836ac404cd536221ed1cb5b9bc484a85f75ea6fdb40c1aaac5030f151b9681da46e2467a1aae09ad1742ae9a2fad0683f831700c22c306a3dead03050f2898720104fbaee5e300b8b99b8d8bbcb6b242c5dcceefd327663d787557eebac564caff9a8d921096bc1f48ec728273f75645e04e75bf030bf18ee8b49d48275cbc30040f9a4c55f3903f9f3a29b4e4555df115779f362fb7bfc9a23bc086ee119db078c8629941c1639492d00d09bd7b78afa2749466c79bfa3f91aec95e33c0cf87317a9aa1e170446128b308e6749db4074191e8860fe6c2d8e12729b23334a441dea3e717d614e2a0c8953338dd1089aa09670140a5dbf7dd34469b423f6961e9d91b8932eee8d32707d269936ae58d4aa527a5e781e79989e7dfe7104247bb14ecb2552f95572b25b22aa0ed2e55aaf1d9f275bd545a95b8940719000e1e9a77a9b9a13b248b589cab6ccd2659725c571e933db475de2076a0a3e633351e40ef2cd784368be2949df0e2b7f302297686f317d8149a1eb5e684d7d46045cbfdb0655d32151fc5d7c97f92836f8a2375741fa310a6221cd91e41338df2e0f9d6142eea8d19790da8dff37b33f73a100020da5e2a2947e5cd0cef1809095bc8a9fbc66b097359f0a75ffbe9d59779055e8b78112b5c5b3116d78b9374666e21981909c5e328e7bd548bf95ebbbcf5c052257d02ba20393d102ae61437b210a46b656aae31345a761095279925e04c7b4b2a27449bb66eba2ec8a7fc03f4e278c87caf5f6880335f899124cc38d7f6de5e554fb42d8e75e9ac59d93efbc60e72f3851d47a657947b281f44d12788e44fee75f3960de49d1a0d605e70034b1f27a47e31e46e2681ad5689b6b36584d106751d7deea92755dcb1e7f307c69aed0d25e166fd0770c9ba2d658f4ee483131d1596b1962dfda2575d4cabf3efd8ccf76a4e2d10f96e09b56d86815a699eed5558aadf3b42c62ada7718818b6336c811809abc696a07ab29f7585f966c4a5e1c6991167ccd35182b6e2879295da3eba3ac12e7a7e02daf476922a95734bf7c5cd2311c865415cf0f211e77eb5972ef6267202eab017f124ae443bdfd448fd1d763bb0356c4dad5beb44487bcdc488e8990fb2b4dcea743aa0ff6f4bd1e13cf4939c71d496b2dc5e2d339f72a8acff2df39258356ff302ab7d7e45956b36b09bb04d0fc3894bc510df9e954bb67e72673225e1af50b21f05937e88cbf9c7c0cf553a4f50bcf5567ebd598763afadac797e25c1d89ea55fb850639c261a77eda42a4401a07734be7f40092f07e62719cd7c8e7bac5f19dfdcdc01a362a90806a8af7ed27d1aa4af57e8442d140a9f4dace3e52bd3aae3ffd1604e28e16e93892631cda6a9a768585fc6228c4ca24281e804eb1891d87e5f9b33f367c5e633d45bf2136d7bddbc720158997a2ff328c247611cc9b65b8af4b43ea51571a5cd7a9d6bbf7820bec2c2116f9b608846f961ec0825b4ee3e2235ea48a78504185cfb3b3f40690350f4b061053ca70ee2f8afca5a472e519122af9f584e130fa6102d8924f0a0fc0666faa0af5ec49d3abf2ce297ba484fa1ffee20bc49451d53f179101570b5843381306df8e3fde295bf8d2daee651634483b195b2be786ba9abdb2332740498a17ddbb2ac40a94810e05788f12bd6b7bdd89ef46bd00a3f4fc9b33c3b57e7b9b18b90577c71418101e0057dd5200fbf23ac52cd7a6d6b2365508996bc029bf99d41d4cc96e4aa134179dfebe42c0a1f3932af3517d7829cb2dc0d108c1c99cafecb8948974a9a475d7118161bce10a4ed0f0193ea5ae8aeae78f7b5f05e513e417eccc17e9b6b64118a0feeb41af371f53185e4d33fa940c1d205c98dbd62ffe7d89278705b81178dd9c2493dac07861d7fd520e8bbefafc5bed8bce8c577d242144f0e66a0e3a7458c2f0731f03f03a790d64847885d6d54472dc94ab9de1158a9f6ebcb2d55f52534549201d7e2dfa863feceb92470e18d57a828b2b79d33e9ca54bf3b7f4fb565019af27384ea9347552bdab5245d821ac00b41b951c6642a9d97c792869fe5611a33609e1b80b5bd4dcd3196130944b27455af59a5ff40c686136ca95a79d0b5cc4b299ac8a0447b02279798f6f66b81a0d6c60da70281086402a8140bea30a96d694cd11b292b952266bcd18cd962094a53f8180b3548cada21a0612f8efdd2489345ab9dc87010834272b50c13fb0121ed450082e14191537ff7743f0819985ccf662861584be6b5924159596581133ec6c649e20a92b54fd5534eb4008620b70860ced563bf920c3b16d3515cf4f985d7a203b422e5c3100eb68c8429453266be1878a8a2c3c777d57ae897c319e9225c64b3f61cf3a64f0869b1c4a39aa426b0d9bc7f15540de9c07ae47f54063a2741cbde32c7ad58cd9d563f12c3f3b3ff2c1c2826d28f8a7fd02405bca612892999447d37097ce071f9d2c65c3eb22667e2c551d7212c4513bf52634279e40ac0cb0431a019d02a239ffccf6a985a88d4c868c5a248f0c267ecc4961fc183fb7d244bb4a34ef567f639fda7095d29ec4fff2249c2240654ffe335a5f3eb1b4b575caa0199fab2669b9c78486e49bffa6994568421f4984023e5f77bc1dd5664447de6335bc7c182cfc90b04f0efa7f1d7a5235cc4426ca3d91ee775a349f54666436a295d8f722dc74c7f97f14b04e6c259620bef9642df13cd7316723650e9b0e4c7e0b940e6d57151c681b59bbad54c7c7022db1ad0a0d54e6c3d9f746523064d9133092c4ebd5883e3bce071f51f76410172509faf5a5b8042221631182b8aa1dd3aeb23e3f65877d609c27a7f5c8f5fcda161648da601f796e05c2460da935fa7dc7954767056a443dcf0471cf990454ea1d19a4ecdf0c32765454bf9793d20895b5d04031df6ff3d58dca210a5c27e71999fc0b781835bef18ef0f6226980abbd08103e9ec4e1611e64a222e8733c7c6371f920366adf81b54490fac23c7879507ae5816520c747b1c0a2f3805fecc951f7adb40de3d8cde53491ed0caaf9bc64935a89e78aec100873cbfd0229d973228e52165c46a3a6962501bd8fdfc5712f7b267fa368c54e5ce65e1be4d40f02566739357f240978079d1b5f8edbbff047627f2380862c761080de2b61a6e3e95ad20220c0487a56a8a0a579e60247124d39a927c6bbd73df5ec08468e37422b4005f9406e8dbaa0ef193519575986744eb0beefa20f6841d29199af09031359de01530cfbd3cafaae756bcd18b803beff8670efa2d242a06116d46b7ae6d95909671b2b6dc7639fcba8bfd0c4f5a3015cbc56ebb15328d0079f0546999f3bec829dc2158909f3c37059f5d8647b76cb39fe15efd550105253054778bbbc7335e9ca2afc2eb143550545b79afc2cbe56e7e9bd308162698b32d3f6990c40a5a7780829ed2d8ff2627688df400000000000000000000000000000000000000000009101a1e23283136","msg_hex":"5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978"})
Receipt: 2sXkmu5RzhdP1vxdJJS4X47RogphdzBw8RDmmhEYroDb
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":126,"op":5,"digest":"43f60dd0ddc1bf038b6608629c7b802b410befa6b3547cd3663064795b325a12","head":"c698a129c2bcb44b454a45fa6738791c6daeda0f58186165c82446747ad78df4"}]}
Transaction Id GyNkxwfzdovZMjAwxvSyThBV99GTEtUxiVZhUJgxinKU
Open the explorer for more info: https://www.nearblocks.io/txns/GyNkxwfzdovZMjAwxvSyThBV99GTEtUxiVZhUJgxinKU
{ lane: 4, state: 'FALSE', code: 2 }
demo3_l5.txt
レーン 5、SLH-DSA-SHAKE-256s(kind 7)。公開鍵 64 バイト(前半 32 バイトがバイト値 0x5a の繰り返し)と署名 29,792 バイトの全文を含む。結果 TRUE。
- バイト数:60,518
- SHA-256:
c1f089127d5d988bffa7610c8286ce3ef91e2d4d0082df1f4ecf408105b0a71f
demo3_l5.txt の全文を表示(60,518 文字)
Scheduling a call: scp144.near.matrix_lane({"id":"fe15d9aa24475ac58cac3c0f3b7476f97406bf0b0ffed0c0a1428da7eab4ce5e","lane":5,"kind":7,"pk_hex":"5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a139ee5246a71ccd7ba1aab4e95c2b2be0bfb15f725aeda0eeb3ef7a252c871e3","sig_hex":"fff695aad2869a679eadd187299ab2592a469625074b7c69b3b06312704c82b9f011b406e1bac3719a065bcf39b49b5fddd8141511f461d99b980a4bf4b7bb7cfc09b48f93a30399a40e5f5cc61e9b58f0445cb5ec7cef487cc18af4efae40f5938f9cce584b9f4629ec1f60f0858961720a1b70808c0832d5608ffe6e51e540c0215de78e7b8890dd81817e68ba45cde1d6ab61a2a32b4f561a994cc3ee1c23bf2d332333315844e1da61adfe787ec49f7388e070dbeee5b057f01bd8958b7bca7a1515429ff9a9c266f338ce82c315d695f52e659f079fe0aad6ee9a956323e5a19015a3ba350bacf462f052309f82b5103d3de1f0e5ccde4c9ad34cd38dc01405c5ebf89b57755c9007bb6da82bd32b2ea50ae4a3b68089b9ac1c4217228bd4d12f1f1e8a35f2adcedcfdaef7f6cdff3c3d76704872bd7f05efbb474fda52b14f3a8a3500b3792da28fa1c02bf38e96b17572aee6df690264052a8023e4f7feb8c2d9dd52ad2f79b2ade1228cdad926df27ff673487e6f7c493f0f13164ff5e8b7af411a42ce964e56aed4161e9ab288e4384ba3b31eff4b2de0170e24dde24cd203810d34020fb5d4a560367feca37b7cdaaec3a6e317ed60a6383914698bf51999542414050cc4cf4a5067dd6ccba5805dae12db5158879e6542d8cb8d98ca09135d32a881042c199bf2e176317d06a22d8494e3010757fa5d3f932621c1a39406a96250c8fb7f1bcb37b41fe788982f2ce1396ccb3d4667a77a591e8c662c28e435b4d4cb46f9c03705736739fe72651dc0078550c01be93a730e108a5ebf89b32712fdd236c53fea8df47f55dc55255fded6eb7c09a1c1a7e552d7b50bb722528d1ee245ff881b2f4557d6b2d47c0300bf06ff7a08a72a65905a015dadb11024a94f7a719552314a3f9553a0df16b5e6be3657a0e775102e7b6b1a60aa3e628aa17a4b8936bbede33c7ab2361fb5af47beee5991892dba2d69cdbde3036db613afd7d34b58d52997926eabe041dc826663f19a5da4b36db6b80eddf5dde744c082e57ce9d53a785b2e2feed5c653e930ad1d7ae2b6237592d9166d98692499329939050d553cb195726e26b788b68e5b73dfb14f62633b33f81f6712045be91a3efb1c1272e78bb2f0df7b6a701cd7e13f4a048b1ee3199ad442101d2467653c98f8487145174bcb332d0b5e2f0aae2848e07c6ef049c3bead2f029dc6eb31b8e6693f768e8cdb8744e772cd4a8b000c657148dae81fe3764c30af44c155cd84837a751f3b66563de62e17384ea14537a55299264dd81782a86a62849a60198de8d4d04a5815e420eb4aac101059fb33966ceb986157780ef0ce52afb98e77526e15e5a9c1c109b1d8bb8e24f0198be48c909e6ede225762724e8901ecf7327b9189262fc4b2962245429b684bfd0ec3759d40e216df3b75e0985bc58974ace5ac2316326976d24bfa3d2de1230600d33d4715691eb07420d1d2754f9dae70e300bbbe7a495af9532a8c3c4564f4437251493acbce3965266adc70f6bd2d6d27b69c35a925e79754cb3e401994d0af10db2a8e745af360b0f585df599dc81d89c314d3d633af232f780aeeea3aba0472c4eb8c30298263be5ef67cae138354762fe8fdec30c0653d7f2858653ce8e0b7b43f1aefe60dc36ca64f2941b51135cf39c4be78686ee580020135899572b261cba9ae7a2d82c03a33921901eb47163bce765b46de7f59090b3f2f5093a1f8c252748dd297472aa44174ef441faba92ac84b12ad52fff537b7c6d7d28fbdbb23a3197aedc97373b8fbe49d141bc12c3ad28917c82b4ac8fb0ee7f7bf8250edc2b7411adda75cb57edf0a373a77e42310a320996568eed13ab7dcff8865e5de8f31d2a1c5d9d23f46ba4699f50acb760e62dff06aadd4bed6462c178ff3825d37158cf7169ab5a3026a1d2303a2e8915193f706472f681d33d7771ce4765d11c080dd106225b5987ac6c46f8b6b4c33073393fde025c6e052a974ce0f07ccb363976aa1fd5ce6a706f41da516174f1599d13b7dd0ced7222e3b78856bef17887c1b05f7cdc4e976da77cc2cfc982f7e557fd7e8c9881e125bd55fe89f1eef2006329b2719cb1f2bdb03d7fce9e24afcf31baa14485d9fdba0e227380536bf13e86772027a709352576fcfb0ee935eae17df27b1f534c1a4e26eb64adffe4ce9c1272a1ea39a7b5997ef8eefc9bf05da6c3bb018f20087829449778772c275665b7c93a0943fb5db479ccfbf83542848c823de1d7bca6af67d2fe05af957ed2ee977c93207d1e8f056a87c322be759c705cc2e7bbb98e8d45b7ab1fb8ccfaf45a4f22263faa4dd155a648c20f7b0b691be0841d6a35d644162db40654eb3ae4f4c0eb7b6c91fdb7db13282bc7eee93cfc5f50963b965cf2c90b61ab1fdacfb2901e94b5d9e9dda1966bd9188323a2630dbc4ac46cfd3c5c6bf6431e5ab0cd63ca9ee4782f8c0d88ab6fe92ddadcdaca99ef47d14c6a3690aeb74c98535ae6649fe4da83f7c5b62a238ad9d26298f4b93eb960b2df59bebc829e625b92863f377b011f5e2dfa61711b3006a5c06b554ad89e0e7b7dc280078dd921b346527c7792b65f949717de88beb1c4224775760f5d133006f2135eff4168239944176d96ab76d0f2814f8a642f12ece1b785ce1d4e49a25489d33394d81733fd3f8a6beb88fa63f8e3d18dfa9a56bfcc7fd99c72e46222af2620ca72cb627b560d0a44edeac4bc71a810329f2ed0b146fd6a69d08136701061fdb60c1cc80066b61b299824c149472ffec80ea60a100866819f2450d272b1de856c334d911eeb5de371d85ee2763591faf3d8842dbbb5772795bd73201b585f913457131ca320519d76d48522fd8fb513596c1aa6ee60a51fe75d51d90ee3191539486dc547ca8c57639baec5cb09bcce0299770df79254865759bc49a6d4f56953fe43f51975e45badb01a76e77bcb3429f090492009a6b4456a2be4df3a38de0a80b4c0a4da0dadee2d4750e62b91e2ef2bd9e576020464c798527ddd9a523a14e73dcfe1546e1cd1f82a99566a506952f46c8d7288bbb063b8426ed3853a4d28fcba3b5d4fa0f393e7583e28cc3007c28158ca2e9b0421175885abeebf2766e51ed0b8ffc6f2d2d9da2986d43215d96e4f6071ec99a957d97d467cb61572737d4472bf5824f5811194dc0e237e1add6c5db0a2834f0d1e1f18cbf282c733574f5b6f8cedd99167f24197cd8900fd27ab128486813c9d17f509474301e7e19c955666601e5649f131e903a4e0544aa10327215915f1f8af65d65d438f20771a59a5b9985a1c794430e89e90604141e4fd11cb5b2b12b756ac9f5055cbb5cd18e7f5cb0385d00882952480aae932aa104e9e6e340708b317adc1ae79dedb71d0f1a698d7d28726663fbebe58dedb1661019a43672fe1c3c546a1f3efaed75334618b73a528666eaa478e5b124e41db9d264849b23f0db3e28bc4331a7b7e01f1c808f73b30b7d53630549a5562a818a10a5d7cce931c2d8189011e372101777c061b99ac1d917cf77e9c0904eace548bd9f9545eb17d88dccf2adc9c4047315afd1b12f788d8e60d415da5ab8acc51844b7bb97f626e5e5919e0d139b14605d7a2a59459731bb7b250934ab24491ca465f233a68f1db9398633cfc6867b838ae424468bee2b90d26a91fa8990707973083bf0fe24fd56628afb00bc14fd7282c97f65f3111c7521182e9c70c18df8cb55d3a16c190d9cf2dcd80b23c03a7d5c887f0375e35cc2858b8dd36fcf31d635c1dff26c5779ca2fea57935faf69f36612485ef0c9b7ae5deb262b1dfb914c0ced32810da6068b8f59e0af309324b3c708b18f33156a59d21d734c909bfd634ffdd57c282b790c8f79a7454bd833aa6150e98b5cf7337362e7ae46ca4590008e2fd6fa6382c57e9275b4abbae74e3a586f9d6a4d972afc11d269f0672324aac41410bd04ae8928bf4dc47e4aedca5321a2a1b201f11d30c40fead1195374a980d3b405d6127a671a1814cc4dd6ad8f958f551d299be748fe176cf1b306c78fed2514eed5a42d7170339fddf57952d0339260daa52892a43095ad3abf2479ed9025b054d8db739de217f2c7bc36a37912e0fd3888c178f173f090b668a090f7560387cb9fd9e65bd11aa0cbf75597ef5692ab9a43d1fa230ec77ca4e0ea5fa2267cd47228570b5af94cce3409b542c961457ceecf6eca5aecf9ad7eb187ab96b3a693dcc9d62c0567685073c57fef2f5a15bb7b572ff540419ce42576e2a4ca5a5f567fa85787c33b2376088cc96a0bfe6fd35078690d2a98bd34f2233187c61629249dde22d3c7ac3ab5046bcfb65f2f2bc3d60147e49ba7391de8537721333b9a4b735e30501c037789872bdabb26534d1de88ee0e5bc7a2dbb44a0f4f7f998eb299b75c15bc39384d1dd8fdbad9ad8fcbf4984abefccd6b946ecd5805d48a7d20ff880b54db68cb3686771ae24d277f527a24ffc1758853400a420cb6fb693f87ed1809305ee1d4e2bcc3624f1637ea4c1bd2f6bb55e04b27489636da983fe520e1cf23598c5b2e37d25878d476c263528b83a1243394c1ce93951b46dd918ce47ad82a4fb53a4fe4f1acdb5156d05dbf61bd18f8fcb7285149706178a43488d30a958360926a3d394d6e38c06ebdef7427be4a59ed8e9aa7e7a5e61656a03e283260c06fd121291c33368b233b7fe777f8d1e2732ef7c331aec397674e0fc18ba2de379b80682a3681f9794c21647950d8a926aa00062d774a67baecf836aa42ea91ae064fee2790345c8ce29e7af7ca130b76bb3428ce8ec9b3e30500da37b6f664508bd29104da0e8ac99ad2626f4f3f517e050eea68d32871c4aa94dcec88c1aa8603523410425a67545ae3d9b6541e28c869b54abe800f89a6fe1ee3005bfb7b22664ff2fd9d15f62c2440da83f281e97e1caa1b87610a5a0934ffcb0aab8ec2d5bdac3fa72f134d6c7e6dfdd930a153eef96ebd76ecb8a9ca902c60cff6218480d661389423d0ef19c1d12e5a992a037af65e926eaca1889b4a371679e3916a36aadc9daedf5fd4f7643c6e6fbed87068d66ece9d4bf26b5292f538eb51e5384d378449ec376a11506e47102a737fc655c8f45d61ad157632f0b72e24b22ae6049de24349e8e6b22a044b2c5d2d4c33d2f334575ec4d5972e9ecc12ef6fdcfcee70ada027fbf70d34cc31a3718379cbc5a80011a773e72be8884ec67bbeb0482b12e252485f29c4a00111851867b2124579bea3f4967db5484953f2a59686b2100a73baf867defdc7f325742a6a0abd06b6276f45afc21bd9710ba1b7f9f56516d6d1e608b40c4e41cc08a9cd41825242e5a7d377da1d5eb22e2c0dc6d772dfbae4fcc3b4c398fa2ec4f25a26eac0ded0dd8cf1ec5e141c15c83b601392071c76f0807de968bc9714f5212e3d604b4de718b150fc96f682d1cd2f8b09342610b14a6c4f1dc044a0cbf87b6ad002b36745f1a2d4128491d0207e4e3cddf1e9f559205ded775da12460a477999b1e2ea284bd8ac30fcc9e167bd4e70c5d3c8d1a04f810b47532ec981546a42038a6628c677956e47f852e271eddd7cb6c6d843f5ad4315f0d95584809d1d0c1f5335bccab863e9f1d3fc51134eb4c9351cdf99f7da998ae5793bba4ec441aed91ca04703a087b7cd9aa31a9a1236fc59f294954635e706aefff5354834038bb5fb5ab49372ae464127b3aa35f686d4c588712dee9f3f27bb4bbb21e40bd47dfc0389b31bc64f6296448c2013f5cc4d891436a653922c38d6263af448ee87c600942f56964ab1ef4f14013a3d3f512cfc880aa1437f9efe68df71d60b0503e565d48c6d5c8ade53a7c674f484e765808b8be132ea1f4b29f8fcf89630e828bf41e5502cd3747b0c3b2875ed2e32d7cf0b333cf00da2124b0c271566c1cf46fe2e14489f1c7c338c5127f6deaf00acb703337daebf58c780a3d2f138dcd6ce8dc589808b906ac463cd9280aa4063ecd77a38f18baa49825d00759494905255ec36fd6c7dcc1bc3cb990ab960dc47a8903c81f72ef099d97edb3f3e9c6ad64e5b9269c219424e2085e364efe739937953d177390a74ed04d378b76eee0b7976f5abf6dcd29b45fcfffb1a30ed74c00095f6d556c635f3311ad57491d01c210e4efa2ca20d6ab3e070fb455eb847d311cae9a511014574d7106bb81538a05be73385c6736cbc3b1fe4b1fe0ba715f5366d27866daa90049fc4dbee102eb8fa1784ba4bc371ed6a53e44f6f71203c03e42b1804b2394b4a644099ff51efe1ee445f9c631cabdc60a7e71fc385b21ffc2b788b53f42616fae4f4d6040be63dfd068ebb2ae152f1878b047ca77d251a534662dd829b43376ce9644842baafa69819c5135b11a421e49d282cb0bcde0f42c389caf24b0791bf1d5e57a37839b3d40871f5ce96796d74d0e7707f4a1271735ee8d27fe0cf96107507c909560aed8426046da85667ea8e835c48616248fe44a0323faeecdec24c60bf29dfd1c8744f27f1b7e555b577e45451435774db350d23d47c1887924482e66fddaac0d57665ca03a68ca68c14621ab8e9c2c440a377b19d40811772ebb78f04e95bd3abaeb4844a7b891f21df027af16e36cb5e8a3d9b469f0f5b07780a88164f29b55c50c0dea4b48ced506fc075944d7f823fd3ef208bee08c59661e8435452b33419111b8c5af658e581aecd240388196e6adfb57f3a8468a6c60437239cf7f54bb1b5041413b4c689fc02d70a876b70922e062a4df2dff9b0be23a5d76bacc11b0b223eda755832e3948ea106ba168f4c7d71b15350575ed78c413b7b040813e149e4cf8113cd73d153fa87f7a71c5bbe5238a89ca4d1e264e734c7124cfaba1a173692dc3f80df8b5b920b918420ca64d72920d5e23a4d2c8baf5621ce49a997fb6598adc0704037904cd984b587ca74250faf15fed0c4fc8009512e0fdbdfd8d80150baab272b6e85fd06af09735c2b829b91713a2273676f9a634bb7b85e025318d7add8e4f9ee5cad39d5e3dd92d777620474fe2d378a60de6b3e3e144950e4e195f249eb581c44d4ca8904f296c18430354395f494e70611e01568c1cd1676136aec74a1575fd1e6ceb9a1e71babec5f7026e5e9758955d1cd5005a66175fc4640d30d64ca0696d5ee9f20af251e7327f81aeaf6d0f94b1d4f615635a89f699e373a2299087d9fbae691b2083ec5c60f6d08ab7284374e339b5326b386bbf322d83c22f8913380651232f8ba83f5215eb475f3be12cfc996f205bc69881da44ddcca25d555376b1e39d75e0d6a86dc5e97f7d84e5aacc5ded829510caba8649293ed307eec415096c5b16fe5a443776c11e375443fa3f60520203c6fe9c2d87ab4b58c59632e5145797626c49196ff7b7c310a3d411c493086db5034061a5e8ce64f9f65775c3c3e0f3b3ddc7960999998d92ff7916e543d78e85e09f29b4e61e4c5a7ac10f121f412f0d2d8ac7149a0b55f56df3dc2cf6eaadaa6be4804b4bf99cec786858924176abc7e4c12d4d36ea3db8d5deb61e25b39706086bc04982660ea568ceb88322a5891cee921f667782bc56b7d6ec2ac3ecc485bff1e8693579161de1bc6b284568fa15b3f4cc7633d3e27e8a813c6dec6c8d879e5ef3e3f036e36fc70e2633437ac42a25073ade4d725899360d146980eae46134844e0c255d16ceaaf18099e798739c3d647b103b56756a7f5081a781c08f7e92822a2f38110601a85ca8c3c0e0935dbc76665143f2f3bf51380147d2c4dded6b564e8c2449bfbc4a51e460f6ad93b5602a22f39b0fa4565b93a4dc7a9b4a98f406da4a4fc7ce43e36e3db28b5ef467626e676b3efe0a332016b54bf8400d7385cbd9de0a89b342938090f6b58011be26cb9ab97902caa3453426bd1932c92b0130e6e3c4de43f010ac0959d04c47131650c12f946a68d5dc9abd16c2f93921f6ea863f0d55c732625e4e4ffd8a76eda75776e7a2ab7043a59fbbbd7c57ebef31ff9a214d91cf13a0f28737049ee91d3ff3bb737b8fd32bbef4fc5fa1fc53064108257c8f25522ea8fc2621d763d42b34a40073453b43a6af18b0f98962cbae2a970f6b74bdb9bfb4561289ccb34e43c1927966dda5150906bacc054f6ad6f003e3fc0994ec88167838aee131ee4e6e92cfb3f262eab34e88f3253b870a4d26913c0a63a7948d0f8f4f1cce8684c47d73ca8ee2d538b65dedb1b9143de978887da4cecaa309efcdbaf08dfd9efe12c4bf20b3a8c3445293d86a74fa08413ea5c7f2ebef2d40950456505d9baf4bb4183baa18d38dbdcfec675f95bbe1c5a4105caa3c62b657d2fd4d69866ef1381654774dc2c77be24e263d517cfea182cd4a678f8df4c4985552e1f7ac1563cdd4bec9f238f3714b1ce1feb6e14d7a5b2601be4fc2a82ab8683883f6be879d9da83ecf46a220da555d8a0092df065f362a530310b0ad77541c5291933a9763359d4915056093d522bc54472bccc0792ac01457856f3a7dcc6b5f8355d9f195092d7278c7a2b840e18d35fc773399592c60f35d2e340150c261242d591079e9564dc92a6d0ba3e0f59f2d01aa2cd3a14a6bfec8d5f65d7584e598328fc801661a42c4e70d8b310f06ad9c3c386eb14bb9f70158b5838cb6e93735231ad23fccdad2a862345ab7c76ef6ab52d09c319bed3a41038eadb573bc1faa9516fb32bb0e33a8cfb1dc47bec58b7b15b9f685074320ed45cd33eb0c3776d7596f60c78da2ebf200d2b4a74e254a89cdb66048dbcb0c21b9e096f30b7bec056b12ecb6b951bea28c7307bc2ccfc13b18cb6b2c85eb730a0ce9c836673c8812a767b2d0482507df2c67c4ab04b49fc75cd76c30270e9d9db9ae4a374090e4eccd0b31ff2e9a5d3ee8f67ea1107aa8faca12c13ec830f2433a54666ac3b66d7eb011bed1e4a18ee8beaba08d1d5550e1e0ce3bf2f946cef291a4581000f89bbce513c5d68ac25b33489e164c936822734cb9f558e6279eed9721fbc17890dffd1b839b91176f8e72ab1396c56931ac83243c6a4787588d8c908d50ca524684d7210fb77985b2800d2eaad72249be86b35958f4ce3e88c13dbbb3ac90d87bec0dd23d1464d28e1788a4401a248b3aa0d4b7e31e0cd45749df2b4ed44120357ce44ef91538f196a9f03b2c771095a9bfc80fea9185822120af664c0e55211911a453ea500c7fa814447fddd43be3270db43a818510ab06a97f2ec97a7fc185f9d2659b4617d09ea1fb59c9bb7d9b44d1a4997f5b51d7007e001f5ca6ac7fe4480fc0789431d8886063088fd6ef47faa6f703283bd286cc9187d9cde9584ac0d82e5570a325939c9fd53e4d7c5c7111ec3250899d648536ad336f5c9b0760007af5d4ebe20a1e3074a265b89264caa61dede47bf8462f7c5ff3b27cfc4c8b45e178d115f0984266ed4f9eba292396a7d6486616d8a01d07f3e085843f0229196f32863896ae2add39fa4e8b299018349c2760f153dda5b3f8ea284ec532455b3d3d0cf7cbf60240fe6c95e145204e4626c7fc5c78ae0d93b87d2b4bbaf0b7d8861e4831cb804f4bfa6a8bd48e4d1d38e2fcdc2f9e9b27e836af80fde2ccfeca520f7a69cc7b7eb95250e75c53a4cb0e05c0c0a2a39e9a1d7595d7444e851dc6bea47e7a26853984453876e2f95a49b05c178ccd0139436e1581faf4fbbc329a20eeeff08ebfcf2d4572fc02da4dd72c759025823a6f0c6d4ac1a5483cc4ba25c3c1932014a1b2d603b1672b857f290f21584ddf7e2c98a441a72ccc404e2c61bcb167e37f3098301daf605353e297fce602de048fdb8d03b65907db3f2e1bc44b3b96f71277a71de4f426d1c75eb4a0bba7e64ae8284f1ab590b7433e7ae5bcc2b8bb1e67ac9666c92523fa4070cf118c677cebc1badb92768302fbd898bbe0313b21b84421937a3f5af9fe15eeedced77fef8003de6aea13fa3551eedb200a4577156ecfa75308152552048c84fdbe0a809d516299eecc75abea5c518068c328859e4dbaa49b045a46fa08a978db8e3562ce03b06a46391f1a7281d0c4ed4c5b34fef559c8f61a5b71542edcbec261b5c0c1fa0f973d7a20cb333a19d7573db93da7e4879a393311e62c3af24cfe186d0f3989d9807e084bc81e464c01241fd8b0e9d31965c06d80d06589827fde778917ee648c8f3594f9505fa02cbaf21a794465c46647a34da5e2eee979e1cdc378367399b29a5361deb5bf5d9e114b07adfe9d93e6b4ce5275f99ec9d61b996bbea7ee45c824765e260cd7cf8cacaf12dd9ffdf4e998cd2d3ed03c4f80f23aebb34bfb82e31ff0089851abaf7c64e4b63c3393cf8ddad82c07371dbb8be948691cbdaa28b0b42b5902a6ca0c00acac9d032cf20b4633dde45d1a6789ecc59f9af000a0c50811bace1c3b5e0948a1113371acb20fed1a15a6fe2570ba8256046c9bae98d07f7be391ec305ae3712c5acb6dccaaf4508a372fd9185a70e74f63dacde5dc16fe0971d398f8bd7e9d6254cf2a437533cd1152be385c0f6e485012f65e7b1697f298ea577640378b8b300ff135b35d4162117f0e5419f9ec3fc6b0099411db93c1f26bb2ab8e5d306e9b374303ffb920e4104e22e9ecb584c9a14a64cfbf11424559d74ca476514dde5c0f6201184dcd15ee37d0fc300bd8ffab1035472286b48ba6b0db0d9f16c6ebf5c4053a23f2a72c744feb4f6ec7cb78d573ffd755b00fd64f6b651d86ef9667f9727e696e85191162b38fba0ff2a9fddf7e88655929de1ca08d002a3aead75d7918eaf4a01aa946045487424d990072e7e9580243251d73ccd9948f63b6c9f8618779b2a9b27259c349dcb8ab2de099d3f412c58f06ba322a99344b5bf15f7a0c005066177fa13a313dbdda33484b29e4f97e51f84992bfceaf70dc9e03567fee190d5c2532440e22726a77df6dc29fb55a034af7d4b8f62691847b045ded7b275512f9040e84f048089c84a56ee31a598d0bce05bd499b800510c37e513407414109ac9f9c0e2d8757b46d38220dd264e6ed337a19fddada079639c07b84883ac312d19d7cbe3c0c4f9c2c0919dca2a5326e8c30935e6652a9b4927916116dea58945eea9c0dfce2943946430b7ff845e249c0dfa741a94a2ce761082eb2e53cb9febeb55a972e946a417b291b1a47febb554bc1a77ad1fcf8829c162102122db3b003286d294dd6fe88e1b5287cd756d44891316bfba40e6b9492ecd397057e9cf40d7c950e867715f99ed3ccf60b1e4ac0a1f55ba81d3f1da0e6f44e827188852479ad8594fe87ce737d02cdef9f8cacc6ebea7d12aa42897be1f2988d2e519f29e4f845e47d93dc3aa7b4a1f86ea4569ef49ee8e25cfd8c3cec16bd79f474425b2d64c4e78f09a95c93b660855bfe5ea7e5959973d286387ce0308f045ae9ac31bdad79d48604bb6b5044f76ab5527be5a912af981955aee1b97cfbda034667273da6d2823645dd5e31c569ef59c78f1f1d0985dac79318377260af529e69bda145d7296f79c8e9bf695dee6584fa51802e4307760b19434f5b7a34fca481041e5c8f2fb9cbd00db23e8167669c41360a6911d7ffd69f4c1bcff855643add03e0fe223fdd77a119661c4011356d259c76124a1cdcd889cc54272369a3c51e4af1bea7b17b3817de5985abf36d0eb17480bd91b63e88a6e5310ee31b4619b1304a3af23e7d3361894c07c15e72efc08218f5b1387835ebee14fbe11be35c0b98cd5f326ac3cbd3fe6b5cb1c96c032a503a5b3b47b840e3a3e62ef72501c23ec22b98041bd43edeee675b56e100a11c619ab6ff273b5a14a16bcfa5e59b0720ac11c1845cd53763f844b08ce7bfb33bcec8025f0349ca901887821efe2123b9b363e9830c1e1be8faac479a1954a611a46dd00148cd304347ff331c80ac4c8836156c9a6a13773fadbe29472f53732ca5dc8b58377fc18163e4331e8b968a8943977442dbf0bd4cbfb6bc4a92e87822cebf0338c1a63349ea4b14aec8a5e402cdde00a026099b96739aedda79e697da08207a3056b642e14bb3eb3cf5399b6eb1ba942cb5c00840f72f7f48a5e2d9c1375941c7815645073e1510dcee26b7e4c83fff02f0d9a90124f1147b23482949fb21713af16aba6711f823a07695a0dc2e970d05bcb73ffa49204f3facb65e8bbf59a381fb51e5ddb550e1cee3148780dda1aff5b488e7819d0de63d17deb349219f306a122432d125780d1a0a33d622331a3dec377021700c5e7ec693ee2bbf320f6eb16d43d7dfdef1b51af3f515919b23fdaffa8d53ed0e0fa189ca44fc63794d5768742eb9966b4d12e0f8a08bd89ff689c48bc6bf8c584c4702c33c77482d87ff57a2cd6a0202cfd91a3ba86ab0b984f54cce951149f005b28a572ac4b21b0fa2d3162e18d9d7e260475c2a692b9abc823c240e0c4a2d3cf38945f0d65c93d316e634b194d17d1d52c90a263ed64522c55a0ba10dff4913b65b197b977fbdbaefc74b1837a08489cacea8e13faff80a36c947a4354decebad4b6389af93d93c69fe089be5b249040b2a94913d1a544a8acf8cd3cf5217403862a182791924e9876928150d1c581ab248103767773377bbd4f52d369d0a531ae459c2356a81f63c1dbdf9883ec576abe06a8813d74a7fdfe19303138ced45c6c87c7f36f1787ee13f173cc94a6ff22f39933786579ff2603310bdc255a1993c522e02ed52d0e9808610eb2f800841a497c9983898d8a4ecbdcf958b8119457acdbf03131e85c90bbd287d923bf00a723f0a758539ef54185e7801b4b8dfb978df91b6e557e1a49079ad8526a7893ddfe7072109419b4f205554c6f44f5e6c881df87ae4d7d89cf511fbbc6668b2f6c53fddf2f6c506299c531a0adec034bf8c9d5d557fe0d90094fbba789185990d9dbf0d30ee9acec59c3060612ecf93f42e4a3e52fff28ca48379cf81e94ea8270037f96a38d19f6dc7760e8455ee32291c02a8e8014f46ba2151d0f764ad479ad305b499a0c744b1693c818f8e1a7b66b245e0a3ae36b6be788bd0da2e5ae5ed02a86df242f8cf902996c34ec56b36243f6be5e382b53002e70d1ea65beb9c270bbdb16e4fb1bcb6388a04342d5c0776a57cca6808f6e2b2d20f4613353d10ee484f5805b10a41112a840dce1e39832ec101595c8d6ee4b0ed2c54844851ba0064e71e527e6dac81f75c6b23f16f680bd7035990d630e03d72e5524f1985a0dd9b9f73f659604d979bc64d209ff0fae66d3a4b9c714f0813abf3814af684b5106b655f1b99d462987122722655a7b47b41b54c0dc09a669c0addb5dead60c00120ba4aac75af4839a27ae1a09ff256dbeef25d458d7241aa239d25982c1808917328be0c41a1dc23f0e352f05561e5846df79ddd44e3b4baf4807df00ea5ed62c7f73d7baac046e76af674f6b5648304d592fa9074f28ac957a215c25ca238c84507beb4d49c9a43e0e62b3960653d20d7dcce76258e384cc85cbce4aae6a9bd2d0ed469a030d34a1fd7c86fde955f73ba66f07b1847dd1f4ccffd6279ef6fc356fd3017cba6e84298f62349814e6b0f0fa3e8a9034df45b1db795c80b4e2894d99d942104b18e71440ca12798d79e08bc16e03e77ddec2458d0e46ae9c3299265178e0d68e0b83a7c0d4846b094c27a9657d3004a9428b5ab3e502f05bd3da6de1cacd45c7df70ea1550426fb7579c36b91a3bdfcf12060a60c575944ca211252ce13a6b72f0746e9153e1df1ae5081245202ac7d63fffcdb180f5b2ca6d631f494fcd3670688267d050c687f1698ad243c17d78aba9b8f16a025abf4c25f19b99fee74b63cb7dc04fb7035770a6b6c992dd563e7b1594629fa3f71bb9195ee0a95955515ae41f87876608ead623c9825cfe52ce34af7a0e2c54d84f56a324d64c4753b8b018c7861c95eb43368b529bf6681cffc8f9dba6d1e7a51b5787840b25aaf0f32124c34b28aa35c8783ff66074f82b0dbf9cd56c8d4b29ff24cdcc4d23c93a5c2abe73019e087e8caa8f2327a66b8547064d5839f2c44c8b26282898e3e23ee7fda7463e0b8ce0d2fd21925cdc4c2eea1707f9c46bd50991b77bedcad5968e0b176f94eef61c06872d9d36bf2e0a61f51fcd674dfae55ed227604f0de0a7eff316252222e71ac5b47b390a3191fe18dadce3713751a25c3759c1f45e7b37b739628cf297934e411ea76099a2d6c5e30d457f762a46155930c56c53413fef7bd6caec27337d16e38c62a17bf937f873d71e0f8e89dc83ab024988b1d0086b45b59fa512893dca1f0caa3b9dff17426260bee36d2a086089c5fc049439f49db6f66c94cca20340936d2740bbd671306aafb204aa7d31b745b505cd8a9bef30f0cf46a447b56b28188443ca39c192118dd192da42b29032d1d43d856c90cf09308aa27cc70ee14a4c8869ece77d3a1761d69a4639f880ab46060ca9ebb1299a439506e4d3ecaae082628a18ea3704cb5d57564e5883d91f1fbe24eb6f90ef27b85b09d61d9b6dfdafc2221a5eb15c41647e7865b2b38686d834d66c5593cc154e3006e80cc6e8d6b39be45c0ecd396bb9e8ab9fbff037c0f6887b177f39d749aef4ad2d710726cf2950708f335a672b02779dd1c786fb5b6eba02844acb824ede82be930fba3f66c19df535b2c50a10c831d0b483f142cec154f2c759d78a0ccb3d840709c89d8dc9379e109080414369226af0e87982c64cbdd17d1cbf4c9bf746331ea48b8fa9a4422c6634f943707adb3830d7f86c678b7046ed4d044a7133361b679f8059b9d4156c1162840adfb4926225bf61cd2276d0aa98824a51f3ce8f8ef7bc658149ed2ca93abaf9aeea08832c01e5a0f1a82cff83e8170a8ec47ee090cfa14ac67e77fc23f6bb8cc528df6a7a62984a24a32769346f148c9181811b727bd9925793bb4738b13aa93d08fa997d32148047d48e56efa5ea18dca7862c89ea891441e4e98fc4001c0c8f52a6e8f8f49954edc5cbcc6ba2c7711a2b78a17ce9c8853a9ff000bc6874e7b3ec6dd4700dac71164a35ce117b5463d6a9a62d605d5dcd0bb01cc238050a3105c17343ac5e939d73951c44c9629922a0ba6beeef68ac5a63c6e7ea11f7e02630b76bf9162393dbfed253d0fab395e790a13ef46da6b342a12c4b9c3971f46347279faea8f23437d7e1d066d2c9e6289b7d4875279eb261d3791da0a5583d865158d04885642080590b7bcbf7bb70d4eb851523627679d6322d55edc71b2f5af50e69050618fa3df88efac12c7fe329b60c7f20c73211d60dad9e5d56bde90338d57cc0669c4837c2a48a4f8bab8684882f8b5016649a8991bde5d9a0951b421be9f611bc0ddadd9ee344bf7da213e76e5020b26265fb53bd777dee20a55e2b362115a29dd202e3cf71e912ecce9ca96a5dfd13acb6d9256ef2f50347c8650bea3405cbb4b2e1231fb5afb8db4769b18f543f22657c8f87c94f479b5b3e896762300d1ae4982066862b4346dd0405ba7a7013ce507195a94bdea8a6a80ee566565ce4d89f451857f4a3e662ad8e59d7cbb8801d983888131cd65a2ee471b90d2110a9c61f6353563a0b0c354b65402aa9120af433b5937793444aefec00b64ad6942fcf66f573af733b9ef88ce33cccbdb4a0d860c8e29b73604a3bcc2290437d3af303188f08fda8e6f2c26afad4abb548f476e66940d581164b7130639e61a3be2fdac878097efa093ccbd1566087b3a12de0a068f7b6d7a17b213b5dc8178f507f11653ade63469a2ca69f92941a4e02b9147c1a436577c3a904ef9ad13ebcc469ddab88e31e846a4742b968197139fcec60a1d8a511d158ef53edf0221c6e5536afa8a94644af309afe1c26ca169314ee12ec47ed38a5c93204758fa02523ddd1a34fb987678ad326a2b695fe70fed56c731359e17f691d1204db6df7dce0f51e7d79b9901f36058e56c4ca131c81488e0635c6887bc649ec20d530ee49ede0f130c01e8f82772fcd4f7e2c485de17d89e38447d8b3a4ca2ea25541389aafeb628c8a5ff0b15c87e8a00a46a4b807307f8ed1cd7fb1f6388d7dea540942333618073b7e29929de1b7d20c7d8f542eda26876987159adcb3bd1d5f7c840c904c0a179566018c0ed0f9e0252127186f220a2afaf2e07fcd43641441972a21f851d27eaf0caad90851da25b95ecb47de2773c4082973257e0356a54bc5c48652c77b7a9646f10246970a762a861faa73b2ae3d4e99d8f36248b1d886b77675421b91182a312a15271007749de93eb9279a0ea694a87d65f11fc54117a011165e516da1545fc936fc72e49fc26e1896ec97b090d4fae9aa456df0f9561b4afe2d439b812c652b4835e91211c227af77fc10250de347ab8e21ef3bed7ad3d8da621d5e60545174089f27b2ced9e5320f710278bbd5f88f8c4abd5f789042441ec7175421ede588ec19f796775df951f65246891e0bf104a495c6ebd6a0992f449b853ae7356ae555058d10b98163d3265688f9fdeb391c4babc2b94fb42a50f0f69faaca2100ea86aa213cd16b40b3950c5e45a855c6a283165530eb49a72a807c80a4ffd25f39fd528ca4d31a403a09419cc2a026be541adf392d1c87b9ca656c6b9b30b6762a3f502e295935edcbb1b4569b0536f44bfe479c313483746029c5f30fccc1172368bdf21b4d5d8c973ee139ae0c2f07ced4e6f21d24d6a77003ca3e88d7299041014dc1dba25b0ab2cf12e6284d6853782097c3d2d83a05e7f16401e36f63f33427e42f3ceeead695dd2c4c5d4b378a9c5a1d070f0e56282cbf759334b99b0b8e484037a2d6f77770872816e9eab91668576a90151393f343b08596e2b8c07053b6e7ae5300a1f285d059f13d9d6d8ccaac33a093e0d291c50f24f43811cf96ca127d6cfbc5caac40f2513318a09b60f1e55f90d8ab3706e41c7fb05dba490ba553b83d3ce45e6d207cc23ed03c567122822f959f4442b1a00461016e88233de3c3b14d2f847c272590cb27a3ee903a0ba76ddddad70a4b1ea661ee2e072575a1469b955911d9a752b604d0a78d4059355ad0fa32e9fc5b980c156a7f8ad116e6d8e04bdc4dc102f87baa7e74b1acebc4fbfe93657a179a4a9ce7d86f9cba3c7f1facc339a8ec65a69c5bf5bb914d141d4e4d723da974c515d71839c9cdb641a54cd046f596cc286cff9bf35cb0d121cbff1ed4edc4d9985ed97151c695ff2bc358b930bf6dd383c5c429eed44bad2a2b1505f8fdf6ffd2386559fd173b6954d7a85d9e07c8768a604e5a157a907c340721b5f1fc5dffffb43853ff72cc5419e356675209da8acb7b669b828049711d62e6134c5185a0a1999f8da4e99f35c7427b39315987429a9c1844eac4d726bc99933a30bd713700264fad94e7d29a1c97fb81269709159f51c1ce24db002ad33733eb5fbe1df674d1cabf3e4647c9a524ba9bc70be63b64d63055b13666e09216ffbe690bb2187da4fe72ef4c3c236a286c93c730b2f7df311cfad1d877c960464d8d30ba8b6f0f0a86159228425a78fe4d3d3d20cda2050bf43f2bab06beca6e3fc3c9243d98101553c7ec4777f9ebfb4cfecdfb36d60f645adc85f2dc60a743d78eb70f002462b7aacc78344e547b5aa41039922995b2c064abcd291ad5f80bbe5dbce47d7c1427cdbe9763af1e3f9293b6bc41ed8d642f5a0b2b2dca8cff32ba15d7fa1c4ff75e1030ea17b78d8fffa21b168af893261759bfcf0fc3cb95b4323c7944e42f2cf054daa33acdf783a3c69ae6318aa6dfda8390904efa85f7ed3dea1f02d138c7a0fd856318b9c792c14b15d77b6c1f9528a8290c3480c919e788ca6a6b1e41446a16e52a43dac7d967fbd7f50097c1e86997515052a405121871943ee559fae168db397ebd58b2af82d490a75d288126db048aa64cf782776fdd0061cb40e53792babbd2699dd124061876beda4a04efa6edee25e0a821f131ccb9eee32a5acc83639449ad1491aa841d03883ba1ada62d40e9a3005e0d2521aa8658d84ebfb1479c37cf9399bd41241b8bfcba7b046b7e1b00c0408993181ceef1bfcb954610ba03b1a2890d986fc482773fea367486a6556c3615499b249c64ebf0eb61f4458b79d6fe13b7460d865f298024e27ea7d9d33e1fe10e25cf43420f951b3505590e66eb9dac71737df4dcb77f56363efb4988126ee1eeaa39887bfc64a6ae860b6e67cff7d41dea855721dcd540cbc44dc47217c551a226154dede71efe66d9b7f25034dc77dd84f1502edf5327fe7300c89efac84a14340cad8df20101a54467c558657707b6a73b236814a263cc04d85005ec76c977d4c5d7c0ff56efe57b985f1b73ae42990c73ad8d667a4ba5483f631ae70dfdb6fc69b179f605ad5a8799179acb1694a5ef1f52cfa7e636d93aa361429c483ca3d7b1676c6df681a9b7e99b8b6dfd5371d5cb0f51bbbeaf4e7f1da1ed23f01b6520d2a9a43dd0089f160f0237ad061e35e1efeb15f2a21389dd1a6630bc54300c5339cc9906e3fc0d40d6b5009250564a5185ee63a24b97ad51ade400504567a40b26ec5e45bf5991fb4ea5d3b945c4354830d13ae11b61180de44529002e6d5e10da56e67e5ad7362129a86c211b3feb4f0780ead8af8fa38b7d1fd4e2aac6a8c49bd94d41da3497ad1e87016cf4efaf79c17f9b129f2a9471b7bec0ce95e18388038f3affa391065c7c2e25a080dd3e7ca7b50540ff53caa04218b3ad356b0ebb94c3d42fdc43296aeb586dd2bdcefd0f63b76abbcad9a0a36dbb4d4eff74d1766ef95e0d0523233d04678ddddc5e6c96d52cc54392d52f9cf767b0dfbfac26f5c5c0367c6d930e03811a8d1f04c3b765717b408a30c7afe3bb2d309b5c54d8d97c91c51dcaa41abff91368421071cb7655e6a364d429b6d80f63a18027331e5650c4f543982ab7d8602f507ac7e4e1757cfb7cf55b6775b8a2be79de3bb279b3ef6dea121249652072e6d2b91cfa262e76cfa8b8fde354b906496a2c18c9da77c66a6b31d1303491ee824c666539c2fa4c5f85747804923e236daab86c41d47b33f0b8526ea14a7bae910ab8b42d8238900cc23086cbf798032b3de88d2d7164ef1999ae597b911e234568669c2eac9d89cf54e8a68cc398525c47498c8cbefdf2efeddc530462dceded32f245679d9e28d40b3006a01b0ff84407768319600226563a8c2ae2f398cc182528c8ae7f1c5ab2b5010c750744af3a013024f470c57e76ec0798af241bf3b17a5a8314dca18b00fe7ba425603ffeb5153ce0adffe14dc516b3567d3b4f593804ec958aea6ba5cfe8bab64b31db90ab04b845a4dff0e81accdc96ac1bbf296819e3b735ce8bb2ba7cdb590d9651dab7c426a5f81aeefab2478e6b61e97821f088b85990901b708f28deaaa4e49ef22ab4414df56cd943b0487fa9867bf168624894410f3362600406c0ad3f62e05f297bebf16234accc9b2b9e7c79bbea7052556e6a77488a4699850bcc40bb8003e7f19387f6d4b3b03d7ac5e4cc9511c6da42486b725c9a5ca2519856f4be55687dcad6590c0321ca278a9715c05177cf4a36bddae17a127763587914aecb705999318ad05249e3fa04c02b9ecc425bbd9c3ab2a52719d955c826ea74a52d677c76a8309e5c9b310a555f2279a2fbc5c16b7ed0de689720bd14f85cbbecf1631c67ca9bbce4912536d1e926135cca32915cd0eb6d17d1890ca86c81772337f0e0d8ba5d3d9d3323724f1661b71650a4513dfefe64aa6df7c7ee824a03992cea0105009ee4eafe996ce44a3843998e62a7ebee1a10ad1790ccd9fcf1be84ddfae9091a9ca1633071ef9fc3a276641f65208874c1b26363a7775c041eb2f7f549e040c69bb12c6bf7257358d1fb56d767281114fe70aa695f52680b647f21680c8213a2e396aa699dca3fde1ba5682b890186c945a3528bc765079ae422e7e778f649a2e9ecd89669effa21e61e4264c74a6166335e5327286147ebbbec2143106fabacca803dd2b55d323801d0d66483e693eff38999eb3731b908e16247fd4db1eae8dc384a877b17ea23b07dc4374bf268d854b1ea948ca43b3db6dd7b287e5669cc768c617597a5d162b3d639172b2c78587f853effa6b8ab4c9159f21b86d096db6cfe11116fb2a9c03dc485f873e427fd4e62040665d974226e375bb950405dd4cbcef6114d938ceb530b8ac87b3fb26e2cd64d411735a4f868a809db6e858080104ff61fca7695adf136ad996ca4d250acf5b97ec26ea1b264f7ad2c99afd6223b97edb5b51e4d03f36f90ac2cf113f91115ed2377530dd59be6fcc7d8d19c2e38bba80475215736e5d24534f13e816fdba701969229295da72a68bd09052e07b588bd7fe18340b1b9499b0ecd9780f47f31f4621d36bad8b7947b1482015614c99cd627b6078421b8a7180943bb35c83da3f7ed12846bacd2d8b5fcac49f755b369d065f985dd2c4bdfa28366e85dbb4e116470dc72a5a5a27f1c3700bfbf04930c23ae9c7ea9361fa21c5009eeb12ecd11f6433d9e41d20a9f07004717179c485dc6fb20fdf4ba1c69f43a3067108462cde3ac1a80a66f08c08f672715891e4076c43ea92e9637453b50a8b24d4c8a3cb5c6462c016581eec56432aaffc59ad4f48b28d2807dc069e3f713795252f0598039f87efcc5e7f32bae6cd8929a7d515215edafc83bc5ccfcb25b6ddf7e772947ed66fae2dc20506b58a73d4aae05008eb811b0be1e36b96ed874dcecf86207313b5db43752b2464ce20b4d5c22aa7e391b7db0acccb246664fb95f8836415b1ac72b37e8c3a3b49c003a2b0b7a984fe25ff8539dd1a31f016c74ede5bc92cc52635baf70edd9f1063614d06b413c6a52a112183b8ec6f102ede06da71a3a5d70bfe0ae117836b2ab136ba54df6448d86eceef3c52128e917944c4a346691d646b91e0dd4fdb13ef058aadfabb4693bda637744f1cab5d3e312daf1bba6dc36c64de8b70c7728718b817b53f89e73c6d1ec669fcaa2082ca1cec82e5ec84f82befb43c77d674298f5a103e4bb0c6e90fcb7ef63a44ec3d3ceab8411efdda18bbf5faa47b40acfa5434bef9693d68c9b70b234a425d576e71ceb8243d84422e703ebc48bb0114e58412d24efda84c90402311874241774b96500625de47b5926b8d7a2de0c5d166f88f6c23bd2648cbb9275be14b6e808aaa97e09e16c5b9e0df2980da9cdecbca47dbed2d98d7bd318afbc9f295c0e86da7801e5ee79d7352e8c9685620a8a73b25e2b231c82edcf75b264effcd53a8babdf28cea809016aeba013efcb6307efd74b26cbc12927d146743bb9ef6bc0b884336a12cb6f58709aaa29d123e9eb857b535bcd3dcd25ab0209989468e261bbfd4753dd6c0490c90983af6de0a7e88943c9e18f9326493effa16fe16db918b8a82f56be33d5a2bb752476c8696c0c89b418eedbf3772dfdc9dad9760c08d6e8b80ecdfd5aa7be01a0863722909aaf19035efaf506dbf959cf54865e3c2a8eaa18dedac48050c869fe612f45ebb17963d02f67d24703fd6bc14f0063234bb56b82ea6532cd6552d14da45435cb258c157162e5cb65c33d8668cc76346de51ffa7bc757961b623e579568b0a80cb44e37b5460b2dded2ddf9ac016535e966a37ca88755fdd063ca649a573db8283a5522fd299d4e67de6e2586b6c4ab186992839a0c2936c0d073995afe2cc9ebda87db0ca6adda0de3c904499d34392810d8a1d6e5f44ebab97877e405a6a5ec0712636b0fa1f1d62c293a73689159b974a9964c2ad589a363013d3b5cf28a948325141182f9a8a31a6c3280c468ecad7e720b29ba75cae698fa6d586643926adc897bce032825375e961019f0cbda352a197ff7c616b27cada1be6c81bb687db9423ce48eb29ea5526e5bcd6d14583e7ff18db79a7478a7c577e031c5bf33293bb03bfbc4f7166c3ed8427f6b68c6d58879ceb5ea3931a39a50fff836b7d117b0da3e795b2416814bc16854190e48cd9160f73acf3394bee7eb2936dcfcbdef0e42904f4da3841e399cdcd354f2f3b5e63a36f56ef27662b0bab0ac7a365288b0708d6799312d410588b6d41b84543531f4cfa8a834005bf538fa05a7844f2f871afb590de4057681f678ec3d12c9674ca34cf1bccc511c1f6765b4af6ae63ae722074c4d4a4c5c23cc41b40923eae553bc3b0fdfde26eef8b208c80229bb89728d786672cb285d0613b31492c306ee7f9e1ef24120b20b9f5a42b125688869e735d376528e7ff1c49813a0def511f88ebc1129f7470a2a6c81491a006a8f3d184ad9e36ac46edcbbae56016edfb3ee6f8107a2aa6eb838e85e92105360539155cf8fa75ccd66b607f8f88935bb894ac161221e0d12970dabf8a307ae9daa79a6d90f8d1877cc2402cfb92318da1fc56bdf8b3cc5fce35938e38de9f3afe1ce996a236c184c91849a70bab8f171be23d85e5eed6d6bba65e4696ef49a87a21ecd53cb1d1af7f31a5ce98d205fb0c65175b173b0cad3c52852897cbe703664ebca2f19d3ab2282b6be2ebd3833dd8ffb586341c6ffa07eeda71abe86946f42e73999973b9835cdd6ee9300ea69811a8becd1b15cdc59bdf9f087272132011c08574a6ff147503012cf12dde3e4d3403f499754141395d881111c7b4ed66b1b3dd11539f02a2d3651652c8e7cb5accc2ed6d12ee5648b6256edfd599c56510793211afb9cb4a476fd4eff0f5dd1acfeb38b9ae51bc8317198d11099a4dbe476b3e302ac4f45a8119bde25b047578025e14165b3f337e979b4d315eafaa6f2e3f1a5e735a68da863d4229e65f0e3d6437fa64c19ea642da9e56b7bb5906e0b79cb1f01bbe043be0c8785ad6a1bf70090a82ec9b5f07a9259d8ae7047f451dbd7f711796191d08b999f78c090fbc59a7caaf13ab033e134a5bc953960fc8964d31e168ae9a78816a7ba5f394da2d158913e2412eb388da0cf90c9b552ba2ca9d991562a60b7659b9ebffb5f3e534c2aa10dd7751f23f1756a0eb021283a891fa2aadb9ea1c27cf558a6baa5a6027e27877b29fe8b8fcdbcaba2b333e4b60a86fec98fde50224d98c86cf6972abf96299b3bc899f38d23aa621cd44ec25b28cf111ffde76cc3794eae41a8335c6910609c6dbb1614f2daae26c1b0aae31e867c6bb710f47d206d6ba209813acdb2d7f7aa38330be96a41b611d354994cbc71e949e5fecbc6853b5f7a95f4ffec2ab2005ddd2735e7980d41f7acc9d2435ddde651ffec233ae298d962c00a6ab14dd7757217715fa805a425a9120aecb943a4dca6be8d4720da30e1bb963dd4fd1759db60daffd190ed85bd518a181e445e1322509dca4a1988101e0a42eebf32e1718960d4f66de2e3811eddd57f58dc3d5b207f1bfae273ef88f8b700813c6a03b1c7672e4743a691e04fc7afc3a16aa5a7c322d5392fe2d1a0689a3cbe16618e1c710acd6746e61a4169d5eac19957a5454a82232b91235b9e6730012dc3b6d0efce768c9702e2eb94dfc8aaf6285dca1763efc0a724daea66f4e486a3adc7a9a125aebec95564c510b7b88edcc41c00dbcc1e29f1fd4558d1d383081bc93c2d27b1cae08bc7905a0445bfffd91d908d026cb975b3abf17ead0cb356c0513e5d0e7f49d65e43d630047c5cf8f304a0e57447d1b718c166a0d295d280f040ccb837503a9f142f622e0be84ae6d46a359fc069c582997e541e02b3f9aa7856e89d54ba09fab87db4baa401c78e99faa6f2d0139a1786b463cceceb20da9112d6bb334b3eefc0b2c37d7789e44aafd2b2f518d52ee11c231b0cfa36fb18b66683c1a6156fc925ebd9f6f4f256c5fe148a4eefcd8eea094f1b99dba99c40872ce83e230a6a25a8445a5f8e4fac39e9c6874a2fb24dac3321f5067b22986b5798a150277ba6643bebc2b2c9f093e95cb469c855dda7aeb84de42c30b890469754a6d1ed6f1bd70845cfecfe3fbb26f581f1f1f52b50d42dc198c73c1da5da56634e030ebe225b9d913fdbfdabddfac5c440198fa126cb3ef26f0ef234218d6315043a01409b8249bd7deab7336404d446dd729e29ed613b13cd5f89ff1f8ae988c19a6e97735310f50419f5211f95d2fed6b789cda66acb0e948ad0150d88dda61d15390b629dfc418d8d72bf4c1046a480640b93f582e5fbdcc7253aa44ad050ce54ce3703898e967dc19dff83c2143665b3c855e808749df107bffd2e4ce8585fd208f2db72989a61d76f12e8942f2c1deb071bcdff4ec9372cd2109dce3339f7626c0184a1c9bd46e21dd25b6afca9996bca441a1ad05fc21b551364b19f4cb2c68bfc079146be892076d624b572ed11168f09b7faaa2864f9ed8d2c77244af9d880c991a58e750223feef048db1d8de597865a460f89db42ae78b6b67c552cd0d520626119cccbb82bb25a99bf04cd97c0dfef57e09667d25999eb24fad2a8dce5436d46d9a5d61dfccc3e4d04d635efc7ee5bb625ea3a708fe7553c23dbd5597b4a8dfa2fa899f8d3a630d13ca8772d6594dbccbb6933dc56e5a91961a072b0986955c4079463d4eff4d7fe86644ed3aaf1c2bc3ed20ad68b4324be73d6aaca37f1105db326faff79873628107571ac46ac8a0f0d8097b5fdd261496e4e69034517d3e3a4e71d9e4db35a92abca4e630abbf5dd04e1007aa224e3efffa8cb55fb34cb05d1e67e8d0b5b166f24db62fa736eabe127d54fe0f2b7e91c6d7e8e42f3c8e849c1a95551d25893008c1196043c2395658ef8703b0b8299bcc11919af1a264e99c59837e4777b06a77a25daf4cd29d4d6e4de2e9dda66462bc88cb432ffb89326eec64c61d0464dbcf97c9abae4ff958bbb2abfee3f565bdd6d2617db4ebd2109c3bb58a566d75ce5ee8b0a7f63bc0753bbd6b593acceb071a48e77cd22e1a863046102b9fcf6985f8477e4b3ff11d1a1930bf61991fb3b121abe8244af7964c656073647d58e7fca9a19cba83d87baf4b9507387d9161d52bab30e7d93299c67b41466d3ba8b0afbe56f07563dfd61307e34997cc02cd11dae03f312315d228da713aa433513ed24040cdf6418099aa594ce14581f4778d8735d9f44ff9ca7fae5642386ae0e91db30bcaca61cd5112e8bbf145fa9a0b522e3dd86387705dac3434eb7378d1ebf574346e93ccf5a96b5333017e383cf1c1457055c6b768648a17fd3d7f0228396ec1be973171f7c738750ce32935d9b86fe38879156a0631b687b14b65b4c020d8d5754ea2f9b9cbfc24f61d38027506a35dcc5340a7abf9f48e2673b5ccfa16f7b499ac93bb07acf099e019530bed7a72d7ad6ef99f06363a6d1ed73ab3f0965e28612c542f088b9f7fe2afc3ddf42688e19265e3fdd9bbee65b04362b2fe9a73d6d061a62ba149fdc476ed0374e88f4b715ec392a37fec2eb560838d2edf4dec6aad97479fbe6bb8aaeae2e63acf0624031698658e6c0d7d588b64385971767436518da3474881f83635bed3ca0256169b6d25a51b0788803884f1a27e231109b4aa4d4ced3fb13beffaa816ea128d5b69f15787faf819b238cb51a27435f02df8abcc224ef2976a29e74b03d89cfddcce4691fd441f00c918b91a495b75fafacd7bb0d3d90efe1daa09e113583199df77337d84b34138b02df6db8d4e80acd7024b28d7938ed2290d519b5f2b56c91be8a9f867185bef76cc9969764ad429408e88a617d93bc3f2e59106a9378675a0fb9bf4bce65513a1c788dd5c8dfa1e88de908eaf864be68c8aa5bbcfaa4dae7e90e9893a158ee19a8bcf5dbcc6f36945d7a909e20903200d8eee30c1ec53922ff4067e79e3dffac393c03e050e2e4b0516cf0e7d96f9bb5bf7d449778359aebda08938e7c22556bca07a92ccac23c32cca0ea0c66737d72e8dca4655823e1a494c2a6dcd46776865650b392b524656dce3e375039b22660cbdfad86c4fc086da2642df1ece2cfded93f145530432f4a38d1c19211c3886c3d56859515d7b42a04ac5866d4154557cee15a8189c169da774860bee1f57fdbc3fe15164b49093f66c52e51d077a3fff4a47dfc57d31497d9ea03383e43a6941603b8e344508d6eb4246ea8b13db36371058de9f8c19da3336b89c0baa6948b18c8437c2047f1c847ef57360d4d08baa407717b4fffa5f0ce14f9bb043c31735a7d3baa50b3fad448eab5d46ece077f6a2cb4879fbf777e612d841d4d46544f3436f9d0f85b82809f2f825744ae567e299f127f4105f23bd4841e04aeaa3a8235f571eff0a0bddea28bea47a80f18ff9685766ddb6e0a68846571e98d146d02263314bfd6e8ca4b4b5b8ca0fda8222f8ddab2354b81507d7567eb81d43664703599c7dd1eed568d609639f3e02f6ca72a62e4b82393a4305e6a88012eec1031cb6753164b5ff2de8950aa4b1e99a71e8ea29c961d0e3da9ea9e0214ea80149d7a53d216d67a2e98bea158d7978c75ef4f9895d296f2aee767ba293a34c2e2f42ac608f01f4e1c98b5b9eb6342b6427b759e381b3358ffb13c6a537fa6aef03e3b56c249387607f0fc0034282f3a9dffa294404beb0d007f55b2a8434f699f284482bd779e9833056e8701ac92b4490d4bdd29783270a9f5e25b269e2a89eadde8d46c8476ba5fb16f1ff4af6ddfc71c43fcbf7b9ca1422763939bdbcc465fa7782942535773adbb03f478084e92f2ddc1c6905d764ea59f3f4404573dbf4e65c6c1db8438f36f421c292f7d852682e45aaa323ef7f942612ce953876cf622be4e3a2b33ec015fefd5621c7286068fc1dfd9cfb2750e090733174697af89538c6d6f412f73e5513d376bb7fc21a4004e7e523c9573423557af73132bce3d007152e1371d610f6490c0b519fda242b4647d2cac370c03bdf08c51e5d3175e53e80424591ccf08e4559acd6b5895f4ac65cef76e9c66a3d4eead175342c0853ad1abacecb344472760410f4a31ab585fdb2213d082785284345c4c244bcca3c2b9906071ca6d55670d3a342e3f3b4d98882e1a44455e100f77fe5b305ddb650874775aa9b396589a9a642799cb2a0085ffbbbe1ffe5d42259190ac747c4170f37f1d6c05209e2466bcee6741e6c11f0508dc5b24926b7deaf054ad509536cec4d6a9d73e30186a2f1b90c57d4600d3239bf75d4b809602d8413b7d8011fd61099f2455b19dd64d7928fa0ff97ef52edeb3561524973ce4bc05f037285c1cadbf1ca85455c62ca381cd6692ba82f7f5ac6e0ce7713b013bcaff21af9d126e91764f947c91d814b32a67047a9011902b443f79886628e17fde77c86489ded7836d33ecd3001cc226ee871863eb890be2d0a2ffe8f7798f00c25af24ec10255f9abc3dd637526d87aadc483476fc86266c57586762e467071c52a81433bfca7caf436f12b5fc1d1e4c7715c6f4e9d99659345b72254350139fe874865ca213e16205536624de0fe6c43f3a189d8cc74b0d3bb3535b6216927e124bd07eb139b90e8c318ef2086e2f0b9f07cda35a81a09afe712583145e5471b6dc3a4582f42473e84aaa6b0a9c275e72b826c79cdf18359564565129a6357f224a10a3fb66dc8ede2ae972fc7475c55bbcd09a203c592361e349720dce6743b3a09a0f8698c13b215082a0dd2c9e7aea1dbdcf49da19508319b834d91d9dd88dc57ddab8b892f9ce8e6437544fce4144c71e50eb7d56a4336872f1b90a651ad521280a298937331edc07f15d466211a74ec116bcdae246d50d8cdee0b27cabc50988287e190898312e5b1668cccdb26e491c118f0d369c7aae9055d31ec153bfd026530e5ce6b27c37cb5f8330adf9b22ecfae3ecc165712af21737255a7cf10418a3b995448c4579c7061a8f687b01cf3a19958709bd565eeab933455ceaee7e0e2c6d045636c4e693f44103aea0501d7c3a42ab9599d5c5c97b255277b3d9252044878316f31617ccff9d54e5e93fe2ad19df0a1d82684606613501aaeebfe6ad04978665b9c0f222f47f2a398f6aded23706e0b4ecbcf83490ddb7853b50a6ee011ca0717263d171b3152b4f4972a24d2eb28d4a2cbd13a47b15f0c120d702c6360a11c09f4a00d635b2b4719a671df81ea83147ddcaee6599ce6f3f55ce7e2a683851fe755be2bc02205634dbc0ef26c12f9219d96073a54c03da8caf5edc8e27aeff3fe13b35c5fd131003c683463313c6923b001175263b6ecc8bb089a4a50fc41ac5a1a15bb11db03a0507db593ef167aa07fcfe8d0e6735774162bd63d3eada81f40206e03282aba0e8877cab97ab9623ac1255dea8480bf88cb554115c5905609f574b0567d15e6d0224dacb7c6d3ef2452e690c172d676b558d5917bdf9168721a0e38fd5d91a9f5893711e2f8c5c5ab02178caaf37b13900ddb51c87066ae02257ed6829fd4e20ee200a1218356e0f8cdd14e0200d7927bfea1e881a3eb6e189cb92e63eb33d92ee87e458b5f3bc408fa17b23123f074aca3c7aa7af1ea3a9fce6ebe4e1949914992e8a8b281acac4a77af599bade40335be509f95822c04e4258854cb63368d4d70be12b1339f469d52c4e33c063060564f692094f013356f937e4d90740dfea467ee6f0f4a0ed2f740a8c23194ad34d1c922dedf131e24235c325aa2fd9ef3a8d1da95d25e1814afd83bfce9fea2ee8e64b21c745cc70095c2b6473c79a496db81443bcf80de11b98ca31d2e41792e1f3f4ccf58e84fbf264e9865e5c505023fc257d7cc5d61e28f96d0aec92969be9200ef1ffe1ccb0fe8537562a8ef830c978f3a0223447312fcf0c07f974f636fdd306bb0c7417648e442d30cc3a69d714f3f1c2bd4cefda7d546b0f6fafd3b8efe6f624027f4a0c3d1329b5e5218659101d519158a50917c0ef7ec049976353ce57707f60561a77615099ee1398b3a6331f7f69f737e9dded251f2d6ffd081f2e8e1b8cf2a4ddea1c170130a53b0a8c8c808e6e4d4facbaee4b876ff664bb60f287608b632ee6f643a9d7ae0d66eac7e97a5ef2b84690bde36e297b9b79683a10438bede78e2d9b0a706ba4651e6080d38ee4aef9dc189c9c8cffc4f222166725aa644bd982539060de10ab4b5b3babb4f43db00629c2fc931a367a30c8d7246e303d204e8ec5619489a7678c35ebfbe759bd01440cc593fa1dfc0bcae1e2455904cd9319b2bb72faf33cd508a9a2c06597f2a33777180b36313ee43461cba2d414c844bd624edb0f0b5c0ea032a738eb788c229d83c9403af196a4095187d06bfef21e70a53942789b5bc4dcd70781a94438f1c2d54461d0d20d86bbef4482767976c34eb2f8b7c5b1cdf254047c91ca3b71b5714307bd55304f0421595a4871ced4a2e68de5c9b14b7f9f9763b00dddc64ae28d05562df2656f64584d407cb44f684ffc8b39759768b62c31826fb4f6806049f389cf171e06afbc9edf94bc59cf91c10decd591ac35ecfca9101c13d68d289bfda3d405ea4b8dece2ea2d483b4903a825fb210aeece3f128664f393ef1ffae7f0cc77fa1da02de46bbec74a1bbdf915fa2135fe3cf84b5d33700c1d95bd950b1b8c58ee4140b72a915931ec9ae4833c5ec4e257522855f1c31f3d8873073bc3289237db6d83eb8b20b2c5e64501d378da280367e8d69d5bc137101360a1ea5f1023dce8a6837ef6617aa49f31043e8a97045cab2824ed52d9e4aa0952065c29edf249098ca7e072f935e75a0a373bf46194129d52f92837489a883cebcf18686373b31117c8b902bbfaf3b5d28c7512f04eb9d69388d766cb00fac337c623ab06ac2b400308f5a67b57b155f80aa6bafc8088a5d4316a13d6353a6aafbbb0e9b6bfe140c608447378fa8bb97fd230921f4b93005cb3abad840009d8c3b4dcd3bfe72bae41b5f5898a6bba48015f872c2a38b1549cd1b0d172592913ca5289fbc5a3155ea28e1bdd10542a47b17214abd9efdabb6b1a293a56b6ad4ec2196bc9a8d1727b6d7456e5e5e2ddfcee10e20bbcae1ac4acce9a20de7ab7ecaa789eb5fc73419832977ffc21272d83ba538356109be1faaa509fa9baad2f00a03c15469507c33a7e8e904b7446cf9e2e4cc0ae7ad761c4de331bc5ff07798b08ff92e21573c14dc236ce9e2482ec7fb31243c9346a691cdd80f27c16aa2e5fecc957b0a618d462519696bb612743ac105ba51c3735adb51750c3fcd44cae5fcaddc22224388c5195c7ef3108cc0f097dd733c7490d1614a84603f741ff2c49d029a2906505a56d941383048a815ddfb0f1390f5cfe9f32c16cba221a3ec292a9fd6edceea4c68af6a6e46599d0937904b0fa23cfea750297d13819edb7dcf31a7e976f1fd87a889f242ba869ef09ef8e283666543cc4caa2b54446b3f804097239868209f78f9ee86fc43348660efbf692f86a1e319b72f7d7f4a9f71fa1230e1d93191a12f8f5e142a7242a64296a9c349c51fd688704cee834f9e0e29d56daed07d6e2c9d39a106b0831785f7967f231ebfeeff04a59feccaf1433bbeaf937a53505c84bda84aeb956e4c42fe7207503320ccd30f94608fd9eb612601b40d62404206bb1a4b3ea5b7fc9442256dc3c2519c71dfa97e11a72ee8f1c6767e94d16c639e2e71d90f66081382696a0360793aeb79ca17253c80245503930ab1ab1b86b85586d4b9ad1cc9f7984a74f5a15a2938eae62fe622b9a2b6a791068baa60999275d7f5b33df64c58b0a4c4834aea3ce1c51c4ab565f5a06c499270e0ab0d95744415803dd4249e36e9ac258849da16be69cf20bb3608114bca0636f1ac40526d3329902870487e4f8f11cac8949a993acf34b253acc77bb0a908ac7ebba282bd05c2209b397722989872fc638f7aed791db6f655f1502047464f93905c826d0f16bbd9ee034ff9283826ec8b37a5268d4b744d8d793a5843731d655b480ce0e6cb15d78501f8c80b7242dc478b49070ea167ba74423382c9bd357af56f2f7b31d134d6950265e4ee5cc97c43f14299a193253a69a5e285bb6b62b300d66603585b90d4d41d7530a1542d972f192bcd73398f42dbeac4f9305b3569017efd8b13712397e5b27d8204fde021472dd864aa6a95394bd58850d1597acf07a7a4d3cc4457ff2424edce8b9bc5e00754ba5db26765bf948e9705340c4f515ee06b5946604610a4bfad600156ae3eb5b9b38430213398ac6d0838cbc703de2183d79383bf3cef25026a75257eab6ef19d17e6ae8f5a8dae7265b5a02826e64c4a693ba2f4722d51a23b3837cabb1c31d483ab5b13ccc37a35e43dabe8f9bdd03d24027b5e267d5bcb3d17677c8ceaef5de9e54f1d5b18dac65b48731e06ca0790ee0a686ee6ef970d2627328a8927138ad727d7fc43314c49c25f1ea99db91f7dee2c8ab42abcfd57babf682fce210969baf6826d235accc2df01c37dd0b7f6eeed285a3dca9d032524d26c6847facf4a715b8a4a48edb6b4cc1379d80c35d806f08964d378871d6453aac6314d4f0f4d02239f18303c35ede7b46dbd2d24b2788b6c992c6eb863697354c8d8999be271e10527abd50abb418ec39fe7193748dd5e485dab365a715b2102d77075f262c11e62614e264b091c4fefb65e7e558b9189ade866789e43734eae6e9179a6a9a994f9ba81041645cb2d07f2226c65809e00cf65c3362cc3f55aeea1a01e1d93315e8ee19d933289f90a519651cec71c354b8b8a0d217f9ae4eae66565735ec7d98a72e1feaef5ed17a905f77487f5f243bbce54141852e20c7305161f1855ca8ca659040c106be61a68584909ae591136f745d5799f9c67285e65e1ef90179dffbc22183fc21f8d44286453f41d68816a7fd5c2acc553a7367d6de6e5d19715f1fcfdf40df7c60feb1e1f3e68f732fe58206005668a6acf1ce73b6c24dde9969c6a05b89bebd31a789305209745e6c84f01f46d3f85c9c3a6396ede8513c2e2a1cd5d5fa9a601ccc7e867b0cb9070b276dd8fa64cf811865cb3b85e266829b8b585bcca2bd11d9892205f7c100284ebc87d0b41099f7d78175d4035562e28dc50643605ca6d5b446350d9fd582ce097ef353e1e74769f24481e924431bb851877d11b375a09333c85fe1d49a6bc09702ee4f64b9d44b9d3f122e541c12820d2bb2db43b23e5900efc3007bec56d22aaf24dcf3fd48b16d91d3f99a6f598fa15c77b686de5ee748472eaa4d2ba5f3b5d967e4024bd04cb35e0f2e2e373a8d22bde19d20d23d39999e966ecbdb9c8553f9781edbf99c1817d1b90334c324f1d536389b795c34787fae6dbe549bb10c6064cbbe6f8ef10d8d19f37bd65c14fd42c7b95e3ae5d9497c0e780635951b4de5209f18d4a7c6aaa7e09807020c61ecf68e04e5863d06397dedb771923122e310686c4a77d39954589f65a89cb9aa3349cdc519aabb5e59546f69c9dcfc7680d5f28a753705f86797dd8bc13b3c09b83dea438d6aebc79c08b9ed27403a87da67b7c2218e705a1c5d157bfc2cdb30d36db07f8cd1c1b63ed768994d510115f4dd419133b3fc7d306dc6a842d84a980367414a66c199c2db1fb49fdf49c59a7228faaa3fe91db969d752117590c2bc0385b302749a8eb03b937b1ea01bd99e95d0e7b9d4988992183530504a3077e9f74c3a6f2f393cf32889fd26a331827ca017f6d751c5a5911370ec280f17a3f88717813fad2ba83685cb3f8ba1d3fd38f2955cdb7c68574d2f0a6cb16ada1eff037c8308abb1c5ebbe12d1e7741d9d3dd8d5bc5f0398983266b72cd402c9fa211a034fdee7c7224f2be461b9cd24d1e433a1f7fb9344220431790ca9a42faa28e9b29478e2620cadd4997fc55aacf6d36521854ec590fe083648bd08602a4da803387e4ffbc1ce997ad8301057be9eb71f288ce83e006982da339de1c7f31b8c623e4fcb139a003db6e6e9a50a70d3be142f7adcf0d63a78a529215d839742e26f9f5fd799b23030984d643aaa9848bbd49a2f1b7778f8c1abeb858dca00865dfc8899b10767940fda95e45ceb0459e8a95fa5fa7e2fafcc069eaf49c1e8cfefa428cd5fe6481668b859b11a26faeb820199351d8da400e3b70c309d560192250e5e68fc86349eda21e75895bad6ff92e3431bd58b58b13f537904d700725f24d98e184f3875bd03c91d535221f4f0d6b8db4030b3452046ed3c5f9e3a3c52a292ba5c743ef7143bd45d17505870fabab60cf769b4d07207172f0159b8281e907ac12d45f5ba1893be435db974ce85e875f14dfdec513d63c571c9dc9fdc120d06600ec4e2f21d7659a7033d3cc8caa8051ba9d8beb43342b41fafe79292f7e7fbea308d80c5b4a7bdfe71a6ca8c3a1b7f472a2dd2dea95ab6912269f67ee1ad9e1496ea8e41bc69e7583f844465fc8a6036f0dee73fe55d87e71d2bb35b4750eb776c66e8d9d2ad6bee0265c7d8f56c82af8ac73303b3f08c39a8940aaf9ada06d012f0130fd5a668964925013427f0cd43bdf8bb619df9e44bbe19f636a6dbb95a131317ef8d42e21083a71176092a4258c24cf1ce6b6f5a71ecc7300bb769052135eaf97fda1179f15c66eb8540be6262b7380921e9286306eeec060811aa65096c59786da821de4711d3ae02e09bf45dca1e13ef9ad3fed7efa3db69b1414e45c1cd87b10d97f1f1e8ab6dff05bdc96891826f2bc47fed9160a5713fa10fce6d4795d45e34bfecfb277835b4a755cc69e52421884ef933a8a0fa95af3bad2b311feb32e19653b307abdc8a62757370c2c539c4f027a04755acd697c74ed63b0948450a49e968ae26729003f645f7cdae9446f1c647d17810475b79f5dd390c854a14b92936ff8713ec335ca2c664a9cef41f8f1c70dda8dcb93b55a00d56c2563c265f4bbfa9493a57dd346f403b024e1c426796fa81a9bf61716c33d574e26a3cd32af99936c2903204612e842d418173d4d81f1b23581d72d8a1c0c686598f3459e05dd84afb29430f52efe1e81e5973b078c99b3aeed0860d5a51e501e5a40aba56ef0ca2b502cb401352225a02ec342a731539d090ccca66fccb799aa44f0a15920d4d6ad78d0b725f4542df4df2cf68a2348b082a98899654df2ff912bb04b06bc0e5321d1f41e4714ddc01b383df0a5cc39d11f936bf395e5b6148f7e4e01b46a8e13681a82f0676188fec9d507acaf9067ec4edec874821ee6497c70563405c57b6f5f90c4979abec71ba27a755f2cb2fb656980a1114b1db55962924f04cd66110ff512cd6b5fec0e198e564e6264c6100edf4c8fca849136f6c2e18a92fa2c8e0367baedf2a028b686ef75cb57a874e6354cfd3b8ee92751d8887439fef0804ac0808a60352aa31af998bc476e53654b68c3a2ebf48c70e888f6173319ababad310c2dc2b824a8dc4bc8a943f36e64103c552b61bc8ea3d5e33400dbe6862db159393fa19060e66d36e8fcd692e536ade829ad470b85cb970c0141093f182167c9d08d420bb2e24c3deddb5e0e7c43b1c0c694a9d887f5429888475a459921c9c4caa67cef31872e59a3459ffdb5ea23f8c9d10f35bbfefac3d9939baf76d81fc3df318b49c1ba3539659d4bd50425f8cbcc1c9b56daeffa93219b311df06f6c85856c87c4ce5db2af1d125cba67b0aea03ccd53e03f42434aac65c94668487767b0b24fc17785e0b75f2110706b425f808a39fa6cd18dc87c51c8c1a6670e73a8f147a1f343730c03c533db92091f5124de6cdf7923b4d7df1a61dd908a343b7dc4c2ac078ce3f70a4fd8eab888d1cc0f5ea84b992b75435fa41fd450269f3fa265680fc8c99c731b4700d7dfce44562de2766a71b0eaa7284a06d431d1c2fa00be0060813655f4cb16d1067a9e00fe3479b61e28cbde0f39eaa0e7a05ce7c6f7763ea2bc9f6729fbe5170e5edd9bb3d89dd35ea27cd290ead98b8f402a187465a3c2df29a901df376084bbb6844c5ef263fd14f229ae951be761c483b33d4db960af79af0f2f783c658b5c7ba1585db05770911df9f95ce061e7e4cd14075a6f37edbac6926a918858a919c5bcf1db5e31899c6ddfd02cb7ed92b1999e4244f5b4ecc251254bd67e98ae371ba3cd50650baa4770fa649a4cdc97d507fa8e21ec1d26aaed01329ca7a6edccd086a4dddad0d87855f8432eaec1181851b6dfd7858d2765a6300fa67a17f13c8980651b5c0106347dd8ea7f1a89a5c33ad0b944a88359f6abbc366a813db8cea46a9e8fea9b9367313041b3b1c9813f00db0440ac759e367e1ed64b72ce28a3f40b1a19c2f3811981aef1cee00538dad82f884c772d83f732a46d69af09dcc49990c8e93655b6c60f9b26c67bc894c555d20ccb945ea3dbdfae42010c3aacf46de41fa8012f2f7d8bf468c84f6799a0393eac067e92b5e37b3c412ab16fc8cbe893ecbfc7e32b04811866f31ce2e55adc7a157cb0cfe1c59d64cc8afe253d4bbb56c43f188d0423a5b60d30f226cf9b58808b15a3fc503a70b6fd98bd6618330fdd5c5ced6c71de2623839a7a9f3aaea1c1512c6a037c27b60314452441e0d3598d70e5ce0aea5f643dfc5406f12a3cbd9c473239aa9bb52d6d7383797ed818e6cdca12365652eedcfd4e86a801a18eb7cc35fad3aede1aad293e5f213393e02be66313188643a1b5e413400af8cb1209b33a2f7ddf5c119bf17ba66c94da31ca25ac56d85883133a695300626354c255ea5bf9a98b174de0daa34b3e3d35e90691f0a759aacb37b1fde5b294e57cd86ce4bc9215e7a461c40a9be5dbc4c179cb235ebc9382ceb5f1e8527601891cef1bf24e21637fe5d09a461bf3dbb5dc6933f03bba61cb95701257a2d9925c21f2a6a76f7a9d5c57138e441e295a0918b77e7a6d58582c8d59b82200460d4bd04f63ba6811ea2b133652f6bd4631c8a5b50b278cacd7bb5b8101e587e11a550e03fe27b0bfa3dd2b0f9a32e30a0ee1c4bef62e1d8984f6fc4462e17b7e16966a4d197d0c39079b8dc362513ffe79eb1a82d3e6fbe8624012851f9c05331e9957d2549bbaddfe53362db5f2d4fe7653737b4ce16a24ee2949b39b093388d79ebfe2bc9182cb7e449ebb716cde6c809104656b63b896e1d360a7479cc1c707c43524d734803ad43ff850c8fa47455beeff64c25bb0faa28b1afa3ca8cca8136399c60a91c209a3d02ecaf9a204f28862ab8653792f3a7decbf397bb68f7b447a9b48339b349608a5bb6b36461ccd6198aa13bf141bef4c925d94fdd38098213072d734e024609c922f8b5c216f9945e1e6a7d3d1a6ad83ed7821bc5b3ef913535116f16ed8444324a6779ada12e87d1be4f67bc37afc7eee9a1b8283b1455558e875a9e2c1880b5d2f5d30178dbb057862f555282dc3b4af7e975eb43063efb3d1b69d778e26e54617ce863251bfe45bbfc3d1a93320deb3f04088a7899791bc367620928f96dac0cfbc406b41e69892ab8173d3f5649dce20f8f56a2a370a4fc197e4deccddea9a58f7190c06ab8593d147f919508ceaa4f97d61d7c1ad3e363a3158e6140f9810b84da3cf9597680b39231cc20ce7feb8eaf99bd25a1ba4add7ebdf823117cf5e3256c32934e78e480f4032fa27f4dde4a39c8e7ca36837d23b5ec1f10625286030581a3d2b82a550815dfabe0f536885a5f6259d1b726edd784f64a1bb2fd7b81899aa4649a44c67cf9ee878b47bf850fcb602192d8e0c954a9b6766ea71f77c669a1f09490f7c4d4faf94b9913c18e0ceb28c4dbf9b01865f9d74309f0b47c819c091c39cf481103a73b42022b7fb58ab9aa61f7a3ba26028f4a306cde79be90e7173206e8aab8d606a048d95c06d61c2161031ef8922b3a411e44923aaf53aa5a0c7943d4e1ba5bcb73de81c5af1018f1f534386867df6b46b28297ce12d08b925ec3a5b6da1e7642e1a4667559fb77d14001bd242901e61552a6e45aad30f6b089df190a8cfed872825b7c0f7696b198366decf281ccc701dea26976a52d2c7e7cd6523ca09855cc1941f27d4151387bceba988612d77c33e19830e9130167e58998ced434a34c982dc4def63cf9de01a498183edfe019d924dbde55f3357c2c2c91215fc5e822715a0f7bca54befcb715c8f36e8eff0942e2d3b9a63cbfba8ba6239ae662867cb0ef436cd604714288bcc8d42cc91179b2a6c458190a3095c86b0bb589bc974d31874aaa9589ac0cc2ea642a944859e96701b6b0b32db14166aa3e1f1dd541421bc836a997d7df67265ffe7247671daea849e579055fcefc4fe11152f61bb38afe47ef2d7ee8955da3d9dda24676efaf36284179bdb0d672953a9ee2f0f62e3a1689989fbb127f062e753afbe523155dba08a22e155bfc4fc9a5a843dd6f2e395524d13cfc145fe2bd07e8e8c93be5d2bacfc7f82d9255faecc8d5ec2ebd8d5b3cc6fddcf5d3b23b61f67a36d3371b047a7f8c62a770aa86065e917d678bbf68669936c032fe173ea51006ce514d8199cad0df4c759afaf72b64887ad8afda6afaf60f1f4059c6bc344f2d3c59adf8daecfeffcb1b22cbecf5bdf43c694771a5d2971afe358fde10d0e679f3a988951452380aee22f58e2dd568c0c3f35986e27b7fd1da8f22cf0c780ae5bc82aea08f63010d6503e5e0e8257a1fbc938f7a0ddd60befbbeb4399d2a5e99f764284574034c1a2f8b5aea42f2041ee39c5428a82f768073356eac6113583be8e2142d756d740d30d9275ea5023e94b3a9ebbe135f998794c88613261220d067a2e7cc7663d8a99bf8783e8763b136be8647a451f480c589220cc1e001acf33b528b83e4f92019d642d736401c2d95063a566778719a194481feb3567cda291966ac58bbce98d6d0dd036674de835edfb951b754d95f737020f22e079926f2ae6b624fee4c8fad631e39272c532e1ad622a2713735b1589e8f023ffb21bb0f246f5e6d1567c628697b24c60508a8f65a3a6df1a02674c5c5273594f5220a56c5981973d577a22c3abe258ce2ec7eda665987066482678a0431e4d9c7559a8981aef010009c9f7edd18bf7cc9fd509e598c921ad746797ea8324cc501e2ce8b31c88abe723ebbc4ad1bfed6e67d178fc920bd246ceb1c51bd5a931e33eab5e737ba06df386f2f1437ba405ad81d6dac29a88246fb289a4aadcc7d376e5e633994ff14b90df7d50fcd1e4e58510aae2ad51805e0676ec06060c8ff842539e83724e10b6f48439c07eae6e820252bd3a44dae7794e17cf2a044edc93f13e26adf78380d0047b0ce143e1fbfd62dad1be6506b814cd0cc6a02482aa951f791f873abca644d25138189d07cae0ef181fb48d17e1caad9f08ed3d02ed2b90d4731dacb9c908141aba09e99512db3429445d24ff69ec9de1020f4ad2548769de53270e770bc0eb66735bf18421352c9fe88340dda51c6a24353dec1bc881a23e0a1c746544ebab111d9d20302caf649e349c5c5d48556b46496b9fed926688b0a251c94b9262b0b9f2673c9c41a493317b57f27fee10fe328656677408559c262bd9860cadd01746116358039222e77f64f7ff1299443bf0040bdfe5233c1f463fbd6d3645f9c7f29ce360564846716dc8c998e5c4fc8871125529e2e2412ebfa550218ea8dcf3872d97fe081cb23536bde857dcf6df180beff60bfbc0b40536b12cadbeff068f0b043c00061cd88791befd0e516dd66f946c80298db1a9c5420663802523f6294d07eb6c1a1bc20f88d96a9d1950c0eb5ba6e6635626ab49f834f5b976f19a10386185c4ca8a7c6716cba6b8062578b69b47cdd509a06cf51aa353c290c2390129f7e9be2df9406af24082605a3aba060776e620643336c4a2ffad815f3998f875cfcee96c0ac53dc05fc8de58b795324b838e65ba705e44b91f04e11ee92c145d40cffd7761946622c6b534573392192b1152e5c3aebf6ff003d07804128375fcc4cb3b72b4f65a778e7de5c0d6c9cf0deb0e1237583b467d41e3d69bd51603c3507d7689ebaa25b50f86a91dfe348471a7028281d1baf5461ba9fab3d3b2cab78afba41c601843807ba46beb97cd1db80cbf073875875d8c98be2ab2e25dff0ee2db4ccf89b2bd4da5424a501d30a9e0d3e24f993b44dfe0557f9655811d24bf4199a3c2187387785daa0871b195dbaeba499bdab89da4427dc560e99fb2cefa131b42739757d0dd6875e85d46610461762fcec15e03a1d62af17370639f513b1af3502c5ae5f913e99d8e3ef17f20fe78bd8fe25cbe8afd13e509b99cd307f5d2a6c957c29fd1af939ceced2b8c4f93eb068296474a18af90fa488dae1a91e0d6a3621c2272656e7ba0f0efec79a4be8f406ecad5e8fd87352ec9df1ee5f4da480a55afc4522ed49ecaa8fba5d86b3b8873b283c33627b063e234e86f1c8adbc75a386d191a342573422c95d322cb43ddff27986513d3b627aa292119426418460faf74eabab2787cdf11a8b7331416e324f01acb650d29a03e8536a8ec61a172177fb118fa9884205da73bded4f95b1a2ed048bed0574b5ca54c17abf835a07ddff35bb5ab596a969fffa417457d51dd556a3f2c491f0053b2846b7c393f6dcbdf329193dadd89f8b16ca667203e12f023ed753348d4eb726ae74eb723a7c725de3f5e9958b396b50d91e9e7253e76ec9ec45a9aa5b7779df1849f16d0e1f28196877154dcf6c8fb30c563cc4f81a829c8d0e3dcb6d5d6d82ba57c8c9caafa7fbea2e845297cdc4fa24c8c77206eed897171c2942a6947fdc636d61f270e068d302df85a85fe1ddc774e1f6f144ebc45ff388e51449b234efedd2d691fc2ef51f067cea80911ca69669eeff30877d95cfb6f5fc694a2a45100e82d34199247bc6566fd534fd80162a46c436e5b1e8342c2e74dcdf12af73ea457e4307f0dbdd6dfd4d1002715812e12e4ae75bc857e31a18f6ded8a310b2d46b18cf57904c2c45d4fab413c8f85dd65ae84f2bef831af003ed3fc0b968128d4e715b06fa89a9f283c667709b5537415dba41914f8f19d48e335038e7f9bb2fd9dbb280f115669c319753577c99dc1644b6c760f4a0a7c17a4cd2846e512a6ba9c173707e76b663fc41958e6ca5097f6c27c2285a4c35606667bc07903e1e9f9475c4423c5c268c8d2e0202af45ee639174070d04fcd6a897dacb63c92c7bb3d7d1c16a7ce1e2d4341d277130db27620bf786e45f73457245e605301a8da6dd07f6bf0264e9de95cb10f1835b4f160830839a5ccf071264b096afbcf676debe93eec5d7651a9f35517e02050cf972ec1d4a268f54ea372703d97332d8776493b0d225f42dc083e7d20da4bec5bd0308e3243667f8c385ae9fa213d012a22f0a8eee0f5548f7eaf154ab6b14147fb4e12eeae459926f2b787f270fadfa8f1ccb02e1d75e76713482ddf44d6b69638b4f2b7a214e45ebaae2ed5c4e98d4dab8bb10489c6dad09a12cae5e9f3d172601f0fd50e8cf5dee33e6f1f3b04ebcb1019d3e09bdae903e6f3dfcd8beadb9ca8fee2bab9ebb41000e267c97a357b3626a1cf7f194b47af880f7419db6be642b5c31cf34bf0719fa1ea8676e2611b3dab2228c3a9852765358e74804fd4800747c05452284af9f0c12243507bbefae469717f4f29b2173b42297c3e63cd88aa09c4970dab9f954995498191cdc2a54810ed4275a755bbe02722fce80efed5f45e3e6df4d9e7607f666609a2abb36d24f568ce92c3a00338fd81648913bcf1df6906e2a30d2365d96a03b6429d50ffeaaf69313c9dcff127c9ffe4b1670374a8a0b1dace227e0af519bc9b617cf574ac5dc244d8b82e756e772a6e80a85e12a64a1f27b3b697c6d24fe4ede858dde98cb7c1e43ade2e3f92f77924b86a80f6002158c608860b788f5cf222dfcd589307833031a1d15afb7bd453b52509703755615258c680b0e47833f585bf0bd607f730a95e118e43faaba4626fa656d711d87f86f06868470bef0922eca8f1e20f73401e81a1e16f325ae34a42bbeb7b7010e2065a87f84a9e57f963c8ef21e6cd8737af3eea17f49c3ded5c3afa40b29c8e3925e71e40bdd74db698c877abcab925d0effa03be058e1b9ede96fd668c5f1ac12164a2c6590b981c58ef4b11735565ff4bf007e487a3ef175d43b2a21a424e5a8fe2e840cb4ccf36bd969e368fcf1124a56c5d7bc236c3881a66a87005056a18b2664cca3f1c5251852dfaaba0fe8734f4999eb5c46c3a892e8d35179bd2857f99dbce5df516286fd8062d3b2dc78b1149def16e1a9ff949805b873fbae115a8170cd1fd63afb470d0110782ab6f8af167f4644d95c1f6b4a6c8e82c4a3c905bc9a41007df6df857771374c57ce271fb6a672c31469487d14dd74b6b5f31f3db0dc966038503ad94bc6faae961facf0421bb19d6192393b9208ac340411d57608710cadd2725461e9bc5e5c07bbe59c58c2907da51859bb903b8b8538bd211c247869ab9db35d148f1eec7bf912b48fe88680355f81cbd226a137f4a31975ff52a776797bc216a756bc6af2c51154abce5ca04ad72191f127d9b0086a563218abbdae7f090df9f35f3ff23408de5b66183e4b2b9adaf507e9ca14c2d794ff85c17f3ad736c6eadd364e0b7bcccbb3d61c166a2ca239cbdd7267085f2574b3673d48a87418fa0a11addaa57c75bfe972b3aaf711a300f0e64b64d3ef4a6ba16678843ba07972f23f6e06198751ba54f923ab241ea38b7cabf806b6d3057748d9c4b65df372c7f4c39d47dc2a6b631c1e170ca5fb44a318a58b624e3bf98d35d9da902130d64ad0e3ec478c16614601df8507c65fdb2f348362c0ef4418638c181edae113aea02f97d44495a94f633bd350ea782290f26c08dec08ecf485f90b8d126d39e3026a63a446dc8936c666c19dafbf6ed57ee5fe3e803df55337c920d7a3617ba149911ec2370a26e11bab1fc50ec6515529f92af629ee8d6761df3687e1e4a111cb812f187ae44bb7824c4214336d36b5b6d8379a30b97038161479b95f9d1849fe46d181acb730da603ce75c12c0807cffaed28a93f79de824fc58cacc7c9c09bfa5e48210c9da3f2c13065ebf670e6ba48416dced9cd7ddf9c50702953e25e4cbffb45877446f60a31981ca9d2d497556540a067e74abf64fe06c679b7b25fe6952427396d003a44f99e9baafc4da60233e4e60509a766ee49d412ec9e8583f6fa7309aec5944ae30764d62d091fa54ac17f943a5c7dc354df201e52140edd09067656b34af258b5194c9abda09363a69e2e28bb0680d627556f671ec1544d0ebea6c63023491c534522e52c411acf537611cbd393addaaee8498bdeba88a97f43a7cab94860c6e5e03f98c730ebc46ed1a3","msg_hex":"5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978"})
Receipt: 8mucmJqn4He9oVqpFC6cMgVmvSuksQXhovH8qMgkvkTm
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":127,"op":5,"digest":"6f2c46e7e629d326646468817b8e7b7a15fa8c077f4225b64681fc6653d774b9","head":"027115cb67e03e1106a908f27a04bcb9019845ba7261335317938c382e5a658a"}]}
Transaction Id J5A7vDbv61YmyA6xQyFuTSFwk3KpRTLXfibtTxDVZKAb
Open the explorer for more info: https://www.nearblocks.io/txns/J5A7vDbv61YmyA6xQyFuTSFwk3KpRTLXfibtTxDVZKAb
{ lane: 5, state: 'TRUE', code: 1 }
demo3_keccak.txt
このセッションで用いた Keccak-256 の期待値(32 バイト)。
- バイト数:64
- SHA-256:
cf9e39597a46dfbdcd311ebab9ba95fd22de37c73c90be60c9fcee30535d7c0a
a0a7de8d3b6610f918f8d4242f2e76dc3f4e175e8a28f3ff5f673316ae6f482e
demo3_ed_pk.txt
Ed25519 の公開鍵(32 バイト)。demo4_ed_pk.txt とバイト単位で同一。
- バイト数:64
- SHA-256:
25f578ee40fd903d47753dab144a834d683f759efa4c7e62b874873fcec40a06
03a107bff3ce10be1d70dd18e74bc09967e4d6309ba50d5f1ddc8664125531b8
demo3_ed_sig.txt
Ed25519 の署名(64 バイト)。demo4_ed_sig.txt とバイト単位で同一。
- バイト数:128
- SHA-256:
369c4e7c2d5b19149c8892600eb743f6861c41606e4f8ef9bd39fdc54e2c002d
5bf0bb7e247112418ceafd1dba18f1efb8e54dc114cb698090ab5c051946870bea9d73109bbb7f0ab0a69d51031065a4fd71cc47779b289fb42c2da0ed4f2904
25. ターミナルログ:デモ 5 フェイルクローズの probe
本章は、外部コントラクトへの matrix_probe を 1 レーンだけ持つセッション d865db5f559dd2284f0555c555c75c0c79c31eccafeacc8f4ceee837cea41abf のログである。9.4 節・11.2 節で述べた「他のコントラクトの応答を期待ハッシュと照合するレーン」の実例であり、照合が成立しなかった場合にレーンが NEITHER で記録され、セッションが TRUE でシールできない状態に留まる(フェイルクローズ)ことを示している。第 19 章の FULL_MATRIX_DEMONSTRATION_LOG.txt 末尾で言及されているトランザクションはこれである。
demo5_open.txt
matrix_open のログ。必須マスク 0100…(レーン 0 のみ)、トランザクション 5vf38UdQBnBsdDVz18uKCeUraB4PKL8DwDK4yEsFBfVe。
- バイト数:811
- SHA-256:
0e000de8eb142b475f22dd3b81cef4ba62f6298ac6903b0173b7862efa570f37
Scheduling a call: scp144.near.matrix_open({"label":"382e4c66dad52aeca9bd8eebff60f0f6ab3e427c0ae7db12b7cbf12d3931e491","required":"010000000000000000000000000000000000"}) with attached 0.01 NEAR
Receipts: 9eS3jsXXUtmTSDBpzc2JFqiykJ9H46sbFfXuNQYhN5WW, FBJJGv9wfuKNt1JUTvEkr9JMKWPUDZGgfZ7YNmy4bByh
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":138,"op":4,"digest":"d865db5f559dd2284f0555c555c75c0c79c31eccafeacc8f4ceee837cea41abf","head":"1b8ef17db6af55f6fcd4d55043c3e0f9b7054b578ea8d997d2f8bd8148676b59"}]}
Transaction Id 5vf38UdQBnBsdDVz18uKCeUraB4PKL8DwDK4yEsFBfVe
Open the explorer for more info: https://www.nearblocks.io/txns/5vf38UdQBnBsdDVz18uKCeUraB4PKL8DwDK4yEsFBfVe
{
id: 'd865db5f559dd2284f0555c555c75c0c79c31eccafeacc8f4ceee837cea41abf'
}
demo5_sid.txt
作成されたセッション ID。
- バイト数:65
- SHA-256:
d673e6b08ed6383663a0f1f679d566a578d6088eb9a42fd5b03a09879509e71a
d865db5f559dd2284f0555c555c75c0c79c31eccafeacc8f4ceee837cea41abf
demo5_mask.txt
このセッションのマスク値(レーン 0 のみを示す 144 ビットのマスク)。
- バイト数:36
- SHA-256:
3c351595a45da15f99cce2290903e355cad069aa3ff6d561a558621853cbe9b1
010000000000000000000000000000000000
demo5_probe.txt
レーン 0 に対する matrix_probe のログ。デバイス oracle_pc の price を引数 {"asset":"NEAR"} で呼び出したが、呼び出し先のレシートは Failed to deserialize input from JSON で失敗した。呼び出し元のレーンは { lane: 0, state: 'NEITHER', code: 0, recorded: true } として記録され、トランザクション AerthyJFr1B3QTipxUAqCQfHtpS2YVgkPhhUkodxGqSt は成功している。
- バイト数:1,047
- SHA-256:
4cee2c08ac8795057da40d486892a3e45671d578ee68c0a56bddea7fae980f65
Scheduling a call: scp144.near.matrix_probe({"id":"d865db5f559dd2284f0555c555c75c0c79c31eccafeacc8f4ceee837cea41abf","lane":0,"dev":"oracle_pc","method":"price","args":{"asset":"NEAR"},"expect_sha256":"7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451"})
Receipt: 7sLH668uxpxFKiNRYLKrtHXs6bp8ZYuwPWNe78PNBEg4
Failure [scp144.near]: Error: {"index":0,"kind":{"index":0,"kind":{"FunctionCallError":{"ExecutionError":"Smart contract panicked: Failed to deserialize input from JSON."}}}}
Receipt: ACN7yU5nhw1Fp7JQDgMxyFbvVhXVbkkbyD4msPh6ooL7
Log [scp144.near]: EVENT_JSON:{"standard":"zedei","version":"1.0.0","event":"receipt","data":[{"height":139,"op":5,"digest":"b4b86d1e3539f89487b76a351c75c789dc98cf9416ded9b20d9ebaa1abaf9780","head":"49625e6cf2b6afd890954bb03b9feab052b7ff21e4c722d82962dd80113bb20b"}]}
Transaction Id AerthyJFr1B3QTipxUAqCQfHtpS2YVgkPhhUkodxGqSt
Open the explorer for more info: https://www.nearblocks.io/txns/AerthyJFr1B3QTipxUAqCQfHtpS2YVgkPhhUkodxGqSt
{ lane: 0, state: 'NEITHER', code: 0, recorded: true }
26. ターミナルログ:公開鍵・署名データとゴールデンベクタ
本章は、各レーンで用いた公開鍵と署名、およびゴールデンベクタのデータファイルである。いずれも秘密鍵ではなく、オンチェーンの呼び出し引数として公開済みの値である。サイズは 16 進文字列の長さの半分(バイト数)で示す。
demo4_ed_pk.txt
決定版セッションのレーン 3 で用いた Ed25519 公開鍵(32 バイト)。
- バイト数:64
- SHA-256:
25f578ee40fd903d47753dab144a834d683f759efa4c7e62b874873fcec40a06
03a107bff3ce10be1d70dd18e74bc09967e4d6309ba50d5f1ddc8664125531b8
demo4_ed_sig.txt
同レーンの Ed25519 署名(64 バイト)。
- バイト数:128
- SHA-256:
369c4e7c2d5b19149c8892600eb743f6861c41606e4f8ef9bd39fdc54e2c002d
5bf0bb7e247112418ceafd1dba18f1efb8e54dc114cb698090ab5c051946870bea9d73109bbb7f0ab0a69d51031065a4fd71cc47779b289fb42c2da0ed4f2904
demo4_ml_pk.txt
決定版セッションのレーン 4 で用いた ML-DSA-87 公開鍵(2,592 バイト。FIPS 204 の ML-DSA-87 公開鍵サイズと一致)。
- バイト数:5,184
- SHA-256:
2e17e5167b9cd4abe7d9c8011e85357770674d885431eab5911e7a59a0e9224f
demo4_ml_pk.txt の全文を表示(5,184 文字)
c09591c4992af293b5461d3c95ed9c6f9ea56b312416f2cb1c981d4d36a39a448110a468b0bf7842fc98b035053d5ad8273018d7d92da1d48338cd9e1c8e5647b42c1d89c5f4bed1d37c4128ecf6faaeca0113ab6cd8c3b4c3c8131ac047320b7f26ebb8dba3fb42df0d4d2f089c8c43e72b0096d005bd670e5b47029a48c97e513d894d5263fb52d138ea29c6bd9a980fad4aa4bd78a85750c3409b4f7a5cc0eb16c02d5290a7e3922fd824dd3adc5637792ed93a4b11f75251ae99cc4bd6e34d210af7eaf0e7eba3a2f11ff5ccef737fdaf4e1bbc7ee4176c93d47af2768386397885241db4fcbe6fa90783d9e120c88d92dd73f113bea9e66448f55e49f8da7e84795612ce1fd7cec8ceb7ccc9859c34e8303be35f72140540dcaf34afa97c2e1344c0a28a620e4d9f10bcf994922e902e2936cf8458a34b97055afc47c720195217195e88d0d93415ece7d6245065413a2cbb5521491e67fb9805c3454d8e262f1ddd1bf77e0f972ba34a52b4b52231ec9dc379a9daffb2cafc5c158d6d50aead983b13a9ec12cb65faae3f393fdeea73bd80e16a1aa84fcbeaa64048fb15d8b1739ff216896fe93ffc1d86b6e51581feed9492ff5f48bec5b4bf303c54f8a47d5dad26414a7b487d15c39857ac8b10cc5840fe3a1b555a700dc9d4b15d5fca5bdfd8b9eacffe1d949c051f40587b5d38a2d4cd5543073ed53651136e99708544786997926cfe49b9598da1305eaa3db1a2d3d484e53906af07120017033bb65aaa9ce096dc6ab7f80438726a7f6745b2c8325937d728206f31b31cc085e88ccf7188441f988be807bf049d5d207c33efb5278af5c938e1e7657f3cf798ea0504a4f76205b6f30c5c5c3f83660be594b78ce0513a5c94a001b16abeea6405b1dbc706ca504f0083d869e9a4b5e597be3bff1328ad8eab3349c49c9737ab7761cbb37fcd926bff3292778fe9a693cc26902872ade0ed0d8e3072af4ab11186fe75b04e4313b66029cf537d5426106bad781488cf074010c68d92dae78f1010788c033178c525ec471f1b5b2d4514ca70abf170f0e8542c1aeef3e505f40f2744a098282b21fd1e4168ad3a41dd4457d05233fed0366b6c12c0c15157c07defbb8b4ed02850a42683c6609d5a83f0874313484b49663a9e6eaa2a098015e6bba9b6630596484b9d831377524a33326dc7c53bf9e62bdabf6674c603493550e99e89c08359572224b5fdcaba2253b0dfaba8bc9407d2b772eba39cd497db6bd5a55d85a69ed66d5d429bdf44b8c9de1bd07144a476f5dded5eaa6e6aa2c5520029a22c1fe7b136b393c920370f147f778115c8dcb21a736098e2d5ad98babef7e9a1361c3a22e9a0233d00003ce93c9e7b2847e06c158d0cabdc66167f7518beef1b956e35d3af7ea7e4f6d819cc5cb59c720b8ee1bc2fc2018fc56b6161732a2cb61f5d598cfebb9d14a4984a3cd878d464baf2ab1dbd4470d60363588d6d4d43215de61c0c2465e1c2bf6a67f298b9a05ec95a14649e825c8c5cd45a02a97a3a17f252228828ec86af712ff9e366caf936ac6f831e26fcef91d21764e47f2701e70dc22e05a6beac565b5e61d27862d96fcb8299c79cb33a19a6a3ed2adb13b40b9442f8bfc83ac894fe2a1ac96a0b17b63de3678013885f041b526bf38211d94378764098520ef738941c3832896b61e387c5eee6690ed4b5b155a418dcf627d45811f927ce2a88f4f6f692cdb8cba69d41ac20467181be0d295811741d8acc38498700bf832930bf2a040a1b982816a6801608614edd29defe2e53473ca29229c969f5f0facdb876599a273ae4016be70bc2a2aa0fba41f0c962c811813e8cb7d44cef74a2d36f3e3ba5f125cdfa7f39951d55e8d77e0d9105b302f48af18a700d99fdc457b9aea0024073c022ae493ce39100abfb6b64f99cfedf0dfb3f73ec3ae61eee158298dba1a7c4ef89e811ce98608bd3a15f726ebe444e684dfe40bc7992b73fa506629284cfe73f504a1ea3e4183cfec890f0c35a43aef5bc9a70452f5c99d605e621098b3bf696518afb89af5a4de0229cbf170022f216ec3d7dcd5b1b6cbaf311b36af74391b2caac1368da9efe114251f24eefed5a6ceccfbad2227c59075347707b884aa210227037c5d4c7a59dceb0865957841fcc749977b14990fdd1826488c1900a6899f7bd52a21ee8e1b4fd1eb4695dd57869e32545ebfd4c43bb3b70d3b413126b38c7111e3263c27b7ed906f05a0188aa0896f0aa34095371d6cefe1d3333981466ea9da55e33867aa9be9ed305c5a4e504e60446137d4389ae4c504ad239e7babba7acdb5aae768b23e77da7f99a480009342eda2cb89da51aa06e778cd2ae36cb90ac4de447d361f5b2bf47f12f0c29293d5f017ad16899b63a53866dfb837871b28cac12add289348f8a4cdaccfab14d1d3f68da216872a47cc7889c271bb773dff35c30c0a030628011a36445c3b00b8c52a787e373f1b16f9087b2b7352cf82496de6dbb7ddfb97f80a0b0d2caf93d821a826e9703be804a4d8b61c8a6efc41eaee83156544c780153b76bebabddec0b689bd9d41ca0047c93b836fb6460471daa5d38a50dc91ae6ad4698d659b116157a84b8e622a01a57d6112312d5fc830d5342598b37ca03865b9dab91f46c61ac37eccaaed74b71d4da1af812928f2ed14dc11bf92a024135102b33f8f44abcf97da287c6c1933e58efa82db7359c8fc7470a25e4049d2efe23266c88b68cb40c0a1eb555a282239d9e0a260dae0fb0c4ade06fb20314167513f6c26957f972885b7fe19a86c75e746a3f7ea1edfa750fee5b7280e77ec5dc846efa19c737276d2f0eb065db6ec506ac8bd6c2528c217cb4eb09152fb0b88d1e40628a254e346ecff1e0953d1a5d8afbcb357c1569488030c03536993e088e73f2b2d876e0b1824dab4d62f8c7c3ae23d823b8bf6acc27fdefabb1ed225836f1125b0cb437b08e2245a04c3eb219bff3ca56b5b3a23d6694d546d3e55b0e7cfca0d924554b03f4c4c2b9be2f22c099cf3dcbe3271080d26d23221da1ffcc4fe2b5e62283db8a4b7900db7512184e1d36c0cfa7f39d99ff961ac07be018d9c3649d00301f1932ee486a9e647521d5072a2766dec194982722f48d5a1b6a96bcf73a8db61d871c8187d78e8af28237e05a420a6614e4d996d949453b14530b85e1058738c3570073bdcedf7c10eadbc902dc96c80aa79ae8956d105ccfb83a63a6304ae0eb15a8d5c95075f3fa776cd411f64ecf3c03b0c79bde3956d67d98608b06d88569d88c67765fec6118c720daa91ea1ccb45cc3e509fc7cd02f9e8bc760c4f4d8b43103e484c12ed376ac01a28832a176282fedb5e47d94c740705b12ad7a093d0edef177b8877d5155ceb83b45be8f43209b9dc31ad3b198694e34a63f0211dc12fa178e42832ce8dfbb6828fa713f9a5fe94ac10ea7554dc7860ffec4251bc65571e665877d767c13b2979e85e9f11fe9e36aded5c3540a0e6aeaab0df9983899a2c496c1e728a52d7af58630759a2fcdff6281da871216f206ae28ad7c8c10e98be30d1c4036ef780d0f58dc68279be5a5922a5ce00520c2b23d26b4551a9886ea06c69530e88880298944177784b88a4dd648cb344858e018e1c21cd7a9f3c09e1cd12
demo4_ml_sig.txt
同レーンの ML-DSA-87 署名(4,627 バイト。FIPS 204 の ML-DSA-87 署名サイズと一致)。
- バイト数:9,254
- SHA-256:
8f7aa8b59d5bbe218a1a09eb376a24766acf8df75231a20081576d650b38abde
demo4_ml_sig.txt の全文を表示(9,254 文字)
1e5ed161d5188f0ef4e1fd256ce67774beefb997635726d61c17f765ac6b90d1cd3ebe1688a31f4434e0bb32c5cfab04b01935e40a06aa8c4f38bc72e1f4f0255a2013da2d6aaa42c828bd90625177b546769ed24d6747120c178a1c3e6bea57bdd88d974db518dda935a1e7803e74717693cab8e67c5f7d032ad35570d5bf1b04ed95302cbc446d8106d6113f971a79df2ed755313aa8b1cfd0c296d02799a6502ca513aa4465631e755ac3c247c64483501f5267c5dbe7d53b7fcb359c4518cddc009617dbeb0587baccb1d4a953b721f42082297adceef41c70403fd6056285febaaf44b02eb1e0ae112ae438bac57287ead9ab17043199dbc8f8fdbdf4c45c99afb8694639c259ae2e4d24c2fcca1c03607a462319552cf90a0a685bd29dde8f971b1a0899a5bad905b6c353612dd423d4037d53b0616e3b752e458588fbc96e9f51e6a5768099a336bfaf6822fa643789d8cbd89a18df4cf50591e07c4bd9cc37a39c077f338d51c7daa7f95ee0dad35041c3013684d2b0ee3fc6f9e5181e198fd44be77a0b8ddb6687f7aa77d499922fa1d321fab06d5ec81e98d81dff599a36fe9690b3b142b6e7b2bed7e9039ab8a6c9ddf9496c79d228afd8fcd3e89fd6a3687130be89cbc1c8e7afcc523dafe2821c08fb180fa80f677193713aa174beba956471ad52b078457c49c16af96ee4dc571ac538a3e9addaed0ce5f28394ab8bb9aca5254420fc80ef3927fc0e6b7eb389be385b4bb7bf0e60a47bc3d06cb384bdd89fc67c55e3a1b7fb136398ba41a68158fb4c08d10dc8e5fd73dfb6ce59421d41ede7a8b2aa3085f5b9a087fc89ce6cf2c8e9fb7b34334a099f8ba90395afa0748ae413462e7b8e5050bfa9c4b869c9fc1d98f0edbf28ceebe6734f525e59ce800433d2709614a2a8a88e92d45de923ffe2a09ef3f2fe763b8666aa20f456710e78a6c520ade82e8529c4180d539bd577a96f37ff801586b6225cb5ba6f142162e1f02ea79bbea103bee3362abce87d28ba78f892dfd9102078446baa1000765b5623f38b8b21ec3a34544cc6999946486d18692ae423af06aa9bb7084daf58c0fa81372a1e5f64d94fde133163877849d1a38755c0e724c24ee54756d4830003f33b4bb0d19fef698a1678432b6b7b65e9512f171f7d1a19d5e9ee6df7eb9b435de3f9780e750369f252d5beda7be17a16e4bc37408dee066a86b7d84ae20fbc1ec98cf526c0b05390458d78d0690048f1edff8ba119698dfe52fe00cb33746136aa632f8afa1d288cada95c58a8b565fb6cf62f7dbf965593e358745e7249a27b63b57a2158bdf70f3ccb3cb31c890811acc29311df31658978e09af1e1030a091bb5b09bb66362bfeee13d8a4f71fd5d30744feae4469cb4d4ef8af26211d08fae1a47da5aa012087d2b69ef06668cca70afa18f3ed413f25313cd0fb46f670bf2de7b01bc0f24e09e029b2d95e69e389711462f0459bbb2c6e4c358172e799dcb97d465e3fa6882bb8c51f7a23eb176db4cb5f6c5808eda775f98eeda12e4fbb6d22def84cb9f498f9f4a2d78fb484128040e7e4ee8dbe1bf882c874189b3e28efb1dbee125940c0837db57e3c462d13ff6dc89ceb43b89d622a3b707c3f4717146db08cf9aebb02fb09a41c4c115c12e9dd161a350dd3fb47e910bbb7a232714f0a1dd3458b124262ff259e6a7ca05b628fa643651d0053132981cdad29f19802de847a5b854099fc267419d40553fc38cc7dd89f899cd66c3bf529d58dd254e9cc537a96428f92a0670fe6c9e3d267ccc0d30f05dec9bbeca5002517eaedc9983a0037f5d5ed66dc76154552a4f37c53094dd2e4c3d0f369bbab8c75b4d0407569060bc1f3965a1d461b27e28f45e63a1a5e070b18f52c34727961bffc0d7a7d384abd4b0aed60ed4001849a90b265f3f3e5bc92d12869d7887687a6fa2cc3a28342406e07e1826408705e5aff9d3bf59d67211b400b89818ad752bd98be18355389129f0a59af14e62b81fc64be987fac7c41ac0eaf97645d08fe4b012f3dc238df1d2e7e170fe2b31ce3f607395aee95d599ad5468c52c87c2809efbe5366d5bae21e26003bfd0174e6c0dae1a29a622bcc78c5b165b102e78d81bed128813fa73fcd1671750e1ddf1dd4ed0c601be910a587a533f7a6fe166fe50d4c5df54f8fe13ef9bd9da603e9560bf3bc72515a92aef49cbde986bee0fd2caf47df379a4f373cb99dd51208bafec3528209c75928abf86c9c9ccb9382e1b779c6bdfe28b982660fe7d441f08dbb497b9f01bfbf827b3c7945f82ae83516c61ceffdb32be1222977f524362dadb692c630e30ee71cc8289f5e8f212d90abf8ccc0a7d70d9aa778e9002ca6b8080de90510a5d85b6550e94cfc433207f0e0d5a482d38f68d49e6a576fcb6cf206ccba6eac8e351b4ab6b9b21ab12a5050cc9ffbb396651ebc1db353fa1f3a3eede830832b752c34dd7ce350808ce282730a08b9f8fdcf5d11756ce02524acb736ad77f9533f6a3b6a21c69b01735ae14e0b503782728e58104eb57baa1158aa357b6191bee740a25a583e0cff07c6a1d910e84cb2ea9ed18a2336166ab90379355780778a86b0885c8219cfe2a2b459aefeefd09cebc92137fb8f30773a751da1a896997ec9e8545708e4046cd3f5b4f4f609e66cf705168e306a93e434fbd97d31392822fd93fb5eab4f66ee7452288311f0447d699f8cfc5a6d2bd261d09973f2f59b026644c63d42fc166c96a623f10bad5f65967f25748dd70d4e4ead1cbd3179faf96c0568c428c08447331a825d24a27b8b7786c4d28ee42e75f8bf5adec98a3ae5dd787a967280193a7736e27cb61c166e77dfaa4a669173bcb48fb0ed5e621facc3a52988995395a321c508dca15ef506ad81cc6240d905539f2b1fbcad554ce55d8b5c33e09bb7abd577e4cc0d6c70aeb4ebf7bd987e45890a8376f68afbe33e8365b3663731044c30a37c4e9e33e34dd429fc2ccb190847266948c148e364e1d7ed9865931a6acde91fc9e048f39b7f0a531575d24acb50076af3bfe9c0a733520d4b705e264eeb73b6d6a2a679af51e91aeffb8cd04b98d0e54ad4331a03c6ceb7fbdf5bacb9be7a3e9b54e3eed1175003d3f7519c78b02d208323c138b075ae0fc7d0c32971530a00624645a0368e7695a934832de025ff7ab485646a38caeefbb9a2458c5ce88752b964c49537df07051dacfba2a067076b38523fcb1aa55420b30fc3ad2ac832bf6147b2be1bd5fbdd46a7cee6e23a81e76537727cd8a4da5bcadaa71d469b28f93d5ff9457ff3912b929bcf47a2d5fdc2fc613388d2a2a1163878c717188292e13eb2ed0e0afb52a74b8f695fa80d0a1bc95f986f2917ea536e0d68a8f8afdf233a68afe1eb4747bb87a07f01a592e1bc425ce79bc75e7dfec9b0074034dfa4acd46771c35410fe79cb0a4373ecdd6ca686680eedc50e2122c02be3746fee03aa7f4c07d1eb02398d619608ae369dab53161c3279e1c365fe78a460e8a5218d9df78339baaf3a809382cefa4f0d08cf7bf195fd1f04a3b5cf4ec461f178a281ed2afd70de74ce1bc8c8699f175d820ac504eacef187cec9e5423b1d7d2aeb39e86a89e7c76fffe27cb1ec82b0e23fad9d39633e0f2fab7d0b2e0085c4998e2ae4e44d5c8209bddb23a6a2efae916c4a77c1ca02c41d061515197c8d512f6c9f1a2d334582067ac6ff579d6b9772f5a70b67e6763c5f8cddd0fdbeaf576e901d1610c043dfc447e62f63f124fe2735957dc3291c50171aebe1634bad8e4539d3239af98afbacfa4ed42681921271fa11d6dc12364a583eb12d612c3b71132c64c0e9e84d0ff3b1b7e1704b98c8b6f2952e47a5d64bc758233a1bcfef0cbc55a7875c8c7aa1f6db06e7c5ff47192cb05a32d196078d801f271fdd6012177f1322222fe07c8bd299554f095aead5e7234041e5eb1d457243da43d3567ffcc45c5b384668923c4c2569b43b50cc9b56c67d9ab017955e2eee25462c04b367c47501faef244bb3c1a5fc8091ebbafc4054e5044accb5d994d5bf28e2ea02e7c453e4d61f8faf316f47a785f34e477e97c47ca3d473e276ce694c6ebbfadff37c99244853fd87df2ee0eeb39277cdb92657a2977ad879bb6ffd3dfe183b59c8918de39af347318f3ec488c136df0bc4c3dd5ac0bb1dfcc867e5142233390b17bc22f8ca9dc8b88544676d5d6c386d9aba708a2d3ccaef665fa798951682e18ff6244ba128f7c145bb8614d29e411a4523cc8cfbe2a5980616769fb457844fab90e9c4ab13893b5f327a5e6e220226744d534f70fd1e56e739250b49a57d445dda3bf28505bd285e8ab46bc79e050a708e5b373fd9ba904df430888c20e36936705c666d9db6aee0582fb98c158f5029a26bfa0b50d5c27243340ed51dfd1e65a6c6d5325f9b4645288b7b53c3d7aaa8451480751a1a6060b23734076978d3c345594bed50b10271aee3a24ef8930e3f2cf2ed453b2e0f9a0bc0a4edca6bf4ca08f75f3f41f47a474bf267254fdf32164ee84e863fd8a088c4cc7ce0a3d2b4d275fdec1b5f3e9d04a7567e87d904aba0afbfa9f886a3ecb702f07aa99c97dd0275e1aa9f71f3eefa7d678106e62012fa2101366895f792bee328f3685c15b3ea9f99d29e7bf140fe88b9b048e41973154ca80ad3dce5e115d758d19c49a92d72e4a781a67ca1dd7deda353515ac8f3e674cf8f767ffcf084108cd08f04ca431291782973a8d9be14c8c54f6e0098b311b05e89332dc58be83ff704e95caac1ab61e4ad358cb9f18ce6c01cf79c64f9a50f032b2bb3ca1b649819184ec566704a1cfccd8fdb97db1e11a480a1cd5641a519464aa03f08f535812bf2f5d54c70d4cefe11f37036cf25d696c29a55378153aa4c68fc1c497617517ab15f59b1b53bb4edd222848e3011dcca924807dd5ee5b11f81bb30c0b9d37aff14da6ff1b622dd72c8fd82f42aa7756fb6893f17c684e543c06e7ca4e783bece5b713e6aaa6cf95f7d750ef408f60f0b53dd52105465b659a8defee886201335ecfba4197de5038b67adb66b0596e4c1d513063bb44390f5c8e6f19908872fcdf2dd872b220b68e8c19cdf149295979e38df676228feb6a674f39356dc2aa64b658f99655ea9574d02c4dd0835c5e97d4dfa175f88f02c65cdf13a90d2841eacd8e7b4140657b7cbcfb0f0d4a5ba7dafd62825cd73e4922a5d29ffcdc954bbdbbf6691a46923dcfa4d003a3282c7ed6adaceac893d37e5251281b79067df9b767fc8627dac8c8677f914939740bd1d200e6de9d25071541a1e63358a576112593a3b3cefa128c4f75b0cbc7a53b29193df02938c91fd359817d0230ae4e85ee1c80ef30ce590edd90ddc5c7f3ce3b22de7d4e506cb6e29a1f58d215ec2c211741a032626c4d1188975f0de0551a13f8c3f91f550fdf9fd88f12b6a00fcc8fde342db2e023cda54df2a1b5bf32e72d9da20b9f28a7f23a140e7834db4fd2b2ad86ffdce2ad60c601e9dffbfead228537ec9359cc34f9593958536592a9cbe7c6ad0c0823c6e361c866c5fc9f31dea95eaf58a0040dc8c987aa28b43fa7320420d345b8ad76072aa926aae82079e9c3839a5b55d30e8b947b1c0f087d62f2922da508fc4267af15d7956a4cfe5e5576b0007bc2a84b03e636ac71166b61fef49710364e25951c1adab49b5a6663e7d70082de9322e9869cd9427e6a1671f5b6e572f74010acb35d36053cf7be1d7e02f4d7efe1af53511e6c5800fa91a9f147ce89316df78b0be75087564078ba30f7117fed318678d6eb372b1a2ae39e4b9349a693792c26bd565fff5206383d9ecb78585baa2a1f3ac2cdf267bd9bc635df10f81f053ee835dbcb857314c619460d99f29ac39b46bf0118d7ef49202758b83aed8520d0a036936f0267caa977dcf62bd3f5d45c1453bb0c08d7efa95a51c4c108d598d561540ac5df19661b93511411044cdea4ff31bacc62f8dd14e95b12f43f3a1249576fc493d43bd386e10b040d650f8fd8c7d889fbe8012516369d778b62f1cee556cf6dd393a0ceb93ddd1da6f92bbf9594b9005dc158283b2333ec208fbc9431bccde401376e5e2a0467bbd830fe9f14e5d19a8da785bf537d1e7caa1af8f3984fec57d5c4eb8acd83e4a35f0afdfe1e41a021ac13d4a43f05f3d91df9fa752c93614a2181e42e85b4d655e6588c654b6f5f2e679bbf58043ce1e6ee65889cfae0ddb67e7abe37d2128db0d764bc29894ff847386232871740354bb3833ef1079c65e0ab374e7de2c81d7b172066a0773c5776dc17a24a0c1e12341cc7f36cde4ff539a222af30e8d2a66f94725ae22b7251441f9a1b96936227e50ea944d114a45c715e90888e4c25e1651dc7eb2e8ce98e3a6ed95f2d1616895e5defacf51892abcaf76d55e89053861d9ef4b5a85101f2d3855565daabad3dae11d515667707595a6acb6bcc4010e3dbc1238459ea7b2d00a405054646c70a8d90d114353586c6da3c1cc0000000000000000000000000005081420242b343e
demo4_ml_out.txt
署名ツールの出力(2 行)。1 行目は demo4_ml_pk.txt と同一の公開鍵、2 行目は demo4_ml_sig.txt と同一の署名の直後にゴールデンベクタのメッセージ(52 バイト)が連結されたもの(署名済みメッセージ形式)である。
- バイト数:14,544
- SHA-256:
f3531f1f652999c0da3ef40d82f20a191548b1673fd46cefb41ed90731440493
demo4_ml_out.txt の全文を表示(14,544 文字)
c09591c4992af293b5461d3c95ed9c6f9ea56b312416f2cb1c981d4d36a39a448110a468b0bf7842fc98b035053d5ad8273018d7d92da1d48338cd9e1c8e5647b42c1d89c5f4bed1d37c4128ecf6faaeca0113ab6cd8c3b4c3c8131ac047320b7f26ebb8dba3fb42df0d4d2f089c8c43e72b0096d005bd670e5b47029a48c97e513d894d5263fb52d138ea29c6bd9a980fad4aa4bd78a85750c3409b4f7a5cc0eb16c02d5290a7e3922fd824dd3adc5637792ed93a4b11f75251ae99cc4bd6e34d210af7eaf0e7eba3a2f11ff5ccef737fdaf4e1bbc7ee4176c93d47af2768386397885241db4fcbe6fa90783d9e120c88d92dd73f113bea9e66448f55e49f8da7e84795612ce1fd7cec8ceb7ccc9859c34e8303be35f72140540dcaf34afa97c2e1344c0a28a620e4d9f10bcf994922e902e2936cf8458a34b97055afc47c720195217195e88d0d93415ece7d6245065413a2cbb5521491e67fb9805c3454d8e262f1ddd1bf77e0f972ba34a52b4b52231ec9dc379a9daffb2cafc5c158d6d50aead983b13a9ec12cb65faae3f393fdeea73bd80e16a1aa84fcbeaa64048fb15d8b1739ff216896fe93ffc1d86b6e51581feed9492ff5f48bec5b4bf303c54f8a47d5dad26414a7b487d15c39857ac8b10cc5840fe3a1b555a700dc9d4b15d5fca5bdfd8b9eacffe1d949c051f40587b5d38a2d4cd5543073ed53651136e99708544786997926cfe49b9598da1305eaa3db1a2d3d484e53906af07120017033bb65aaa9ce096dc6ab7f80438726a7f6745b2c8325937d728206f31b31cc085e88ccf7188441f988be807bf049d5d207c33efb5278af5c938e1e7657f3cf798ea0504a4f76205b6f30c5c5c3f83660be594b78ce0513a5c94a001b16abeea6405b1dbc706ca504f0083d869e9a4b5e597be3bff1328ad8eab3349c49c9737ab7761cbb37fcd926bff3292778fe9a693cc26902872ade0ed0d8e3072af4ab11186fe75b04e4313b66029cf537d5426106bad781488cf074010c68d92dae78f1010788c033178c525ec471f1b5b2d4514ca70abf170f0e8542c1aeef3e505f40f2744a098282b21fd1e4168ad3a41dd4457d05233fed0366b6c12c0c15157c07defbb8b4ed02850a42683c6609d5a83f0874313484b49663a9e6eaa2a098015e6bba9b6630596484b9d831377524a33326dc7c53bf9e62bdabf6674c603493550e99e89c08359572224b5fdcaba2253b0dfaba8bc9407d2b772eba39cd497db6bd5a55d85a69ed66d5d429bdf44b8c9de1bd07144a476f5dded5eaa6e6aa2c5520029a22c1fe7b136b393c920370f147f778115c8dcb21a736098e2d5ad98babef7e9a1361c3a22e9a0233d00003ce93c9e7b2847e06c158d0cabdc66167f7518beef1b956e35d3af7ea7e4f6d819cc5cb59c720b8ee1bc2fc2018fc56b6161732a2cb61f5d598cfebb9d14a4984a3cd878d464baf2ab1dbd4470d60363588d6d4d43215de61c0c2465e1c2bf6a67f298b9a05ec95a14649e825c8c5cd45a02a97a3a17f252228828ec86af712ff9e366caf936ac6f831e26fcef91d21764e47f2701e70dc22e05a6beac565b5e61d27862d96fcb8299c79cb33a19a6a3ed2adb13b40b9442f8bfc83ac894fe2a1ac96a0b17b63de3678013885f041b526bf38211d94378764098520ef738941c3832896b61e387c5eee6690ed4b5b155a418dcf627d45811f927ce2a88f4f6f692cdb8cba69d41ac20467181be0d295811741d8acc38498700bf832930bf2a040a1b982816a6801608614edd29defe2e53473ca29229c969f5f0facdb876599a273ae4016be70bc2a2aa0fba41f0c962c811813e8cb7d44cef74a2d36f3e3ba5f125cdfa7f39951d55e8d77e0d9105b302f48af18a700d99fdc457b9aea0024073c022ae493ce39100abfb6b64f99cfedf0dfb3f73ec3ae61eee158298dba1a7c4ef89e811ce98608bd3a15f726ebe444e684dfe40bc7992b73fa506629284cfe73f504a1ea3e4183cfec890f0c35a43aef5bc9a70452f5c99d605e621098b3bf696518afb89af5a4de0229cbf170022f216ec3d7dcd5b1b6cbaf311b36af74391b2caac1368da9efe114251f24eefed5a6ceccfbad2227c59075347707b884aa210227037c5d4c7a59dceb0865957841fcc749977b14990fdd1826488c1900a6899f7bd52a21ee8e1b4fd1eb4695dd57869e32545ebfd4c43bb3b70d3b413126b38c7111e3263c27b7ed906f05a0188aa0896f0aa34095371d6cefe1d3333981466ea9da55e33867aa9be9ed305c5a4e504e60446137d4389ae4c504ad239e7babba7acdb5aae768b23e77da7f99a480009342eda2cb89da51aa06e778cd2ae36cb90ac4de447d361f5b2bf47f12f0c29293d5f017ad16899b63a53866dfb837871b28cac12add289348f8a4cdaccfab14d1d3f68da216872a47cc7889c271bb773dff35c30c0a030628011a36445c3b00b8c52a787e373f1b16f9087b2b7352cf82496de6dbb7ddfb97f80a0b0d2caf93d821a826e9703be804a4d8b61c8a6efc41eaee83156544c780153b76bebabddec0b689bd9d41ca0047c93b836fb6460471daa5d38a50dc91ae6ad4698d659b116157a84b8e622a01a57d6112312d5fc830d5342598b37ca03865b9dab91f46c61ac37eccaaed74b71d4da1af812928f2ed14dc11bf92a024135102b33f8f44abcf97da287c6c1933e58efa82db7359c8fc7470a25e4049d2efe23266c88b68cb40c0a1eb555a282239d9e0a260dae0fb0c4ade06fb20314167513f6c26957f972885b7fe19a86c75e746a3f7ea1edfa750fee5b7280e77ec5dc846efa19c737276d2f0eb065db6ec506ac8bd6c2528c217cb4eb09152fb0b88d1e40628a254e346ecff1e0953d1a5d8afbcb357c1569488030c03536993e088e73f2b2d876e0b1824dab4d62f8c7c3ae23d823b8bf6acc27fdefabb1ed225836f1125b0cb437b08e2245a04c3eb219bff3ca56b5b3a23d6694d546d3e55b0e7cfca0d924554b03f4c4c2b9be2f22c099cf3dcbe3271080d26d23221da1ffcc4fe2b5e62283db8a4b7900db7512184e1d36c0cfa7f39d99ff961ac07be018d9c3649d00301f1932ee486a9e647521d5072a2766dec194982722f48d5a1b6a96bcf73a8db61d871c8187d78e8af28237e05a420a6614e4d996d949453b14530b85e1058738c3570073bdcedf7c10eadbc902dc96c80aa79ae8956d105ccfb83a63a6304ae0eb15a8d5c95075f3fa776cd411f64ecf3c03b0c79bde3956d67d98608b06d88569d88c67765fec6118c720daa91ea1ccb45cc3e509fc7cd02f9e8bc760c4f4d8b43103e484c12ed376ac01a28832a176282fedb5e47d94c740705b12ad7a093d0edef177b8877d5155ceb83b45be8f43209b9dc31ad3b198694e34a63f0211dc12fa178e42832ce8dfbb6828fa713f9a5fe94ac10ea7554dc7860ffec4251bc65571e665877d767c13b2979e85e9f11fe9e36aded5c3540a0e6aeaab0df9983899a2c496c1e728a52d7af58630759a2fcdff6281da871216f206ae28ad7c8c10e98be30d1c4036ef780d0f58dc68279be5a5922a5ce00520c2b23d26b4551a9886ea06c69530e88880298944177784b88a4dd648cb344858e018e1c21cd7a9f3c09e1cd12
1e5ed161d5188f0ef4e1fd256ce67774beefb997635726d61c17f765ac6b90d1cd3ebe1688a31f4434e0bb32c5cfab04b01935e40a06aa8c4f38bc72e1f4f0255a2013da2d6aaa42c828bd90625177b546769ed24d6747120c178a1c3e6bea57bdd88d974db518dda935a1e7803e74717693cab8e67c5f7d032ad35570d5bf1b04ed95302cbc446d8106d6113f971a79df2ed755313aa8b1cfd0c296d02799a6502ca513aa4465631e755ac3c247c64483501f5267c5dbe7d53b7fcb359c4518cddc009617dbeb0587baccb1d4a953b721f42082297adceef41c70403fd6056285febaaf44b02eb1e0ae112ae438bac57287ead9ab17043199dbc8f8fdbdf4c45c99afb8694639c259ae2e4d24c2fcca1c03607a462319552cf90a0a685bd29dde8f971b1a0899a5bad905b6c353612dd423d4037d53b0616e3b752e458588fbc96e9f51e6a5768099a336bfaf6822fa643789d8cbd89a18df4cf50591e07c4bd9cc37a39c077f338d51c7daa7f95ee0dad35041c3013684d2b0ee3fc6f9e5181e198fd44be77a0b8ddb6687f7aa77d499922fa1d321fab06d5ec81e98d81dff599a36fe9690b3b142b6e7b2bed7e9039ab8a6c9ddf9496c79d228afd8fcd3e89fd6a3687130be89cbc1c8e7afcc523dafe2821c08fb180fa80f677193713aa174beba956471ad52b078457c49c16af96ee4dc571ac538a3e9addaed0ce5f28394ab8bb9aca5254420fc80ef3927fc0e6b7eb389be385b4bb7bf0e60a47bc3d06cb384bdd89fc67c55e3a1b7fb136398ba41a68158fb4c08d10dc8e5fd73dfb6ce59421d41ede7a8b2aa3085f5b9a087fc89ce6cf2c8e9fb7b34334a099f8ba90395afa0748ae413462e7b8e5050bfa9c4b869c9fc1d98f0edbf28ceebe6734f525e59ce800433d2709614a2a8a88e92d45de923ffe2a09ef3f2fe763b8666aa20f456710e78a6c520ade82e8529c4180d539bd577a96f37ff801586b6225cb5ba6f142162e1f02ea79bbea103bee3362abce87d28ba78f892dfd9102078446baa1000765b5623f38b8b21ec3a34544cc6999946486d18692ae423af06aa9bb7084daf58c0fa81372a1e5f64d94fde133163877849d1a38755c0e724c24ee54756d4830003f33b4bb0d19fef698a1678432b6b7b65e9512f171f7d1a19d5e9ee6df7eb9b435de3f9780e750369f252d5beda7be17a16e4bc37408dee066a86b7d84ae20fbc1ec98cf526c0b05390458d78d0690048f1edff8ba119698dfe52fe00cb33746136aa632f8afa1d288cada95c58a8b565fb6cf62f7dbf965593e358745e7249a27b63b57a2158bdf70f3ccb3cb31c890811acc29311df31658978e09af1e1030a091bb5b09bb66362bfeee13d8a4f71fd5d30744feae4469cb4d4ef8af26211d08fae1a47da5aa012087d2b69ef06668cca70afa18f3ed413f25313cd0fb46f670bf2de7b01bc0f24e09e029b2d95e69e389711462f0459bbb2c6e4c358172e799dcb97d465e3fa6882bb8c51f7a23eb176db4cb5f6c5808eda775f98eeda12e4fbb6d22def84cb9f498f9f4a2d78fb484128040e7e4ee8dbe1bf882c874189b3e28efb1dbee125940c0837db57e3c462d13ff6dc89ceb43b89d622a3b707c3f4717146db08cf9aebb02fb09a41c4c115c12e9dd161a350dd3fb47e910bbb7a232714f0a1dd3458b124262ff259e6a7ca05b628fa643651d0053132981cdad29f19802de847a5b854099fc267419d40553fc38cc7dd89f899cd66c3bf529d58dd254e9cc537a96428f92a0670fe6c9e3d267ccc0d30f05dec9bbeca5002517eaedc9983a0037f5d5ed66dc76154552a4f37c53094dd2e4c3d0f369bbab8c75b4d0407569060bc1f3965a1d461b27e28f45e63a1a5e070b18f52c34727961bffc0d7a7d384abd4b0aed60ed4001849a90b265f3f3e5bc92d12869d7887687a6fa2cc3a28342406e07e1826408705e5aff9d3bf59d67211b400b89818ad752bd98be18355389129f0a59af14e62b81fc64be987fac7c41ac0eaf97645d08fe4b012f3dc238df1d2e7e170fe2b31ce3f607395aee95d599ad5468c52c87c2809efbe5366d5bae21e26003bfd0174e6c0dae1a29a622bcc78c5b165b102e78d81bed128813fa73fcd1671750e1ddf1dd4ed0c601be910a587a533f7a6fe166fe50d4c5df54f8fe13ef9bd9da603e9560bf3bc72515a92aef49cbde986bee0fd2caf47df379a4f373cb99dd51208bafec3528209c75928abf86c9c9ccb9382e1b779c6bdfe28b982660fe7d441f08dbb497b9f01bfbf827b3c7945f82ae83516c61ceffdb32be1222977f524362dadb692c630e30ee71cc8289f5e8f212d90abf8ccc0a7d70d9aa778e9002ca6b8080de90510a5d85b6550e94cfc433207f0e0d5a482d38f68d49e6a576fcb6cf206ccba6eac8e351b4ab6b9b21ab12a5050cc9ffbb396651ebc1db353fa1f3a3eede830832b752c34dd7ce350808ce282730a08b9f8fdcf5d11756ce02524acb736ad77f9533f6a3b6a21c69b01735ae14e0b503782728e58104eb57baa1158aa357b6191bee740a25a583e0cff07c6a1d910e84cb2ea9ed18a2336166ab90379355780778a86b0885c8219cfe2a2b459aefeefd09cebc92137fb8f30773a751da1a896997ec9e8545708e4046cd3f5b4f4f609e66cf705168e306a93e434fbd97d31392822fd93fb5eab4f66ee7452288311f0447d699f8cfc5a6d2bd261d09973f2f59b026644c63d42fc166c96a623f10bad5f65967f25748dd70d4e4ead1cbd3179faf96c0568c428c08447331a825d24a27b8b7786c4d28ee42e75f8bf5adec98a3ae5dd787a967280193a7736e27cb61c166e77dfaa4a669173bcb48fb0ed5e621facc3a52988995395a321c508dca15ef506ad81cc6240d905539f2b1fbcad554ce55d8b5c33e09bb7abd577e4cc0d6c70aeb4ebf7bd987e45890a8376f68afbe33e8365b3663731044c30a37c4e9e33e34dd429fc2ccb190847266948c148e364e1d7ed9865931a6acde91fc9e048f39b7f0a531575d24acb50076af3bfe9c0a733520d4b705e264eeb73b6d6a2a679af51e91aeffb8cd04b98d0e54ad4331a03c6ceb7fbdf5bacb9be7a3e9b54e3eed1175003d3f7519c78b02d208323c138b075ae0fc7d0c32971530a00624645a0368e7695a934832de025ff7ab485646a38caeefbb9a2458c5ce88752b964c49537df07051dacfba2a067076b38523fcb1aa55420b30fc3ad2ac832bf6147b2be1bd5fbdd46a7cee6e23a81e76537727cd8a4da5bcadaa71d469b28f93d5ff9457ff3912b929bcf47a2d5fdc2fc613388d2a2a1163878c717188292e13eb2ed0e0afb52a74b8f695fa80d0a1bc95f986f2917ea536e0d68a8f8afdf233a68afe1eb4747bb87a07f01a592e1bc425ce79bc75e7dfec9b0074034dfa4acd46771c35410fe79cb0a4373ecdd6ca686680eedc50e2122c02be3746fee03aa7f4c07d1eb02398d619608ae369dab53161c3279e1c365fe78a460e8a5218d9df78339baaf3a809382cefa4f0d08cf7bf195fd1f04a3b5cf4ec461f178a281ed2afd70de74ce1bc8c8699f175d820ac504eacef187cec9e5423b1d7d2aeb39e86a89e7c76fffe27cb1ec82b0e23fad9d39633e0f2fab7d0b2e0085c4998e2ae4e44d5c8209bddb23a6a2efae916c4a77c1ca02c41d061515197c8d512f6c9f1a2d334582067ac6ff579d6b9772f5a70b67e6763c5f8cddd0fdbeaf576e901d1610c043dfc447e62f63f124fe2735957dc3291c50171aebe1634bad8e4539d3239af98afbacfa4ed42681921271fa11d6dc12364a583eb12d612c3b71132c64c0e9e84d0ff3b1b7e1704b98c8b6f2952e47a5d64bc758233a1bcfef0cbc55a7875c8c7aa1f6db06e7c5ff47192cb05a32d196078d801f271fdd6012177f1322222fe07c8bd299554f095aead5e7234041e5eb1d457243da43d3567ffcc45c5b384668923c4c2569b43b50cc9b56c67d9ab017955e2eee25462c04b367c47501faef244bb3c1a5fc8091ebbafc4054e5044accb5d994d5bf28e2ea02e7c453e4d61f8faf316f47a785f34e477e97c47ca3d473e276ce694c6ebbfadff37c99244853fd87df2ee0eeb39277cdb92657a2977ad879bb6ffd3dfe183b59c8918de39af347318f3ec488c136df0bc4c3dd5ac0bb1dfcc867e5142233390b17bc22f8ca9dc8b88544676d5d6c386d9aba708a2d3ccaef665fa798951682e18ff6244ba128f7c145bb8614d29e411a4523cc8cfbe2a5980616769fb457844fab90e9c4ab13893b5f327a5e6e220226744d534f70fd1e56e739250b49a57d445dda3bf28505bd285e8ab46bc79e050a708e5b373fd9ba904df430888c20e36936705c666d9db6aee0582fb98c158f5029a26bfa0b50d5c27243340ed51dfd1e65a6c6d5325f9b4645288b7b53c3d7aaa8451480751a1a6060b23734076978d3c345594bed50b10271aee3a24ef8930e3f2cf2ed453b2e0f9a0bc0a4edca6bf4ca08f75f3f41f47a474bf267254fdf32164ee84e863fd8a088c4cc7ce0a3d2b4d275fdec1b5f3e9d04a7567e87d904aba0afbfa9f886a3ecb702f07aa99c97dd0275e1aa9f71f3eefa7d678106e62012fa2101366895f792bee328f3685c15b3ea9f99d29e7bf140fe88b9b048e41973154ca80ad3dce5e115d758d19c49a92d72e4a781a67ca1dd7deda353515ac8f3e674cf8f767ffcf084108cd08f04ca431291782973a8d9be14c8c54f6e0098b311b05e89332dc58be83ff704e95caac1ab61e4ad358cb9f18ce6c01cf79c64f9a50f032b2bb3ca1b649819184ec566704a1cfccd8fdb97db1e11a480a1cd5641a519464aa03f08f535812bf2f5d54c70d4cefe11f37036cf25d696c29a55378153aa4c68fc1c497617517ab15f59b1b53bb4edd222848e3011dcca924807dd5ee5b11f81bb30c0b9d37aff14da6ff1b622dd72c8fd82f42aa7756fb6893f17c684e543c06e7ca4e783bece5b713e6aaa6cf95f7d750ef408f60f0b53dd52105465b659a8defee886201335ecfba4197de5038b67adb66b0596e4c1d513063bb44390f5c8e6f19908872fcdf2dd872b220b68e8c19cdf149295979e38df676228feb6a674f39356dc2aa64b658f99655ea9574d02c4dd0835c5e97d4dfa175f88f02c65cdf13a90d2841eacd8e7b4140657b7cbcfb0f0d4a5ba7dafd62825cd73e4922a5d29ffcdc954bbdbbf6691a46923dcfa4d003a3282c7ed6adaceac893d37e5251281b79067df9b767fc8627dac8c8677f914939740bd1d200e6de9d25071541a1e63358a576112593a3b3cefa128c4f75b0cbc7a53b29193df02938c91fd359817d0230ae4e85ee1c80ef30ce590edd90ddc5c7f3ce3b22de7d4e506cb6e29a1f58d215ec2c211741a032626c4d1188975f0de0551a13f8c3f91f550fdf9fd88f12b6a00fcc8fde342db2e023cda54df2a1b5bf32e72d9da20b9f28a7f23a140e7834db4fd2b2ad86ffdce2ad60c601e9dffbfead228537ec9359cc34f9593958536592a9cbe7c6ad0c0823c6e361c866c5fc9f31dea95eaf58a0040dc8c987aa28b43fa7320420d345b8ad76072aa926aae82079e9c3839a5b55d30e8b947b1c0f087d62f2922da508fc4267af15d7956a4cfe5e5576b0007bc2a84b03e636ac71166b61fef49710364e25951c1adab49b5a6663e7d70082de9322e9869cd9427e6a1671f5b6e572f74010acb35d36053cf7be1d7e02f4d7efe1af53511e6c5800fa91a9f147ce89316df78b0be75087564078ba30f7117fed318678d6eb372b1a2ae39e4b9349a693792c26bd565fff5206383d9ecb78585baa2a1f3ac2cdf267bd9bc635df10f81f053ee835dbcb857314c619460d99f29ac39b46bf0118d7ef49202758b83aed8520d0a036936f0267caa977dcf62bd3f5d45c1453bb0c08d7efa95a51c4c108d598d561540ac5df19661b93511411044cdea4ff31bacc62f8dd14e95b12f43f3a1249576fc493d43bd386e10b040d650f8fd8c7d889fbe8012516369d778b62f1cee556cf6dd393a0ceb93ddd1da6f92bbf9594b9005dc158283b2333ec208fbc9431bccde401376e5e2a0467bbd830fe9f14e5d19a8da785bf537d1e7caa1af8f3984fec57d5c4eb8acd83e4a35f0afdfe1e41a021ac13d4a43f05f3d91df9fa752c93614a2181e42e85b4d655e6588c654b6f5f2e679bbf58043ce1e6ee65889cfae0ddb67e7abe37d2128db0d764bc29894ff847386232871740354bb3833ef1079c65e0ab374e7de2c81d7b172066a0773c5776dc17a24a0c1e12341cc7f36cde4ff539a222af30e8d2a66f94725ae22b7251441f9a1b96936227e50ea944d114a45c715e90888e4c25e1651dc7eb2e8ce98e3a6ed95f2d1616895e5defacf51892abcaf76d55e89053861d9ef4b5a85101f2d3855565daabad3dae11d515667707595a6acb6bcc4010e3dbc1238459ea7b2d00a405054646c70a8d90d114353586c6da3c1cc0000000000000000000000000005081420242b343e5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978
golden_bare.json
ヘッダなしの ML-DSA-87 公開鍵(ml_pk、2,592 バイト)と署名(ml_sig、4,627 バイト)。値は demo4_ml_pk.txt / demo4_ml_sig.txt とは異なる鍵ペアのものである。
- バイト数:14,465
- SHA-256:
a8f2db8124cb16ad5c8c0e7313e5b92de271b811487166dfbad9ac89977a7fa7
golden_bare.json の全文を表示(14,465 文字)
{"ml_pk": "a59a18f15e4febf1d8a910042bedaff9d8665edd3a069da989f82d732dc5b9beaed922ddd93e5e954710455fa6bdffb7a59fea2ad146c7641768131b0832151f58108a6d4aa8f8b24ce67329b17591f0726df2bf10f4b69d3de9eb14427d69703763b40b6e586d2e5e514ed798e2b294f71d7275e0a85fd78d68d8c0ff3080a2b3e943838519914deb10ee0891c313ef6a512eceffd71fcd195d0cd8c465aaac9f255d6bc3df6d6eb4f403d15359aec198e7908471a7d9456dcb49d2ca9f7be5c65c92abcfc0324ae73332376c1c0191152fee05f43bdd073636020e0209a4c41543a565692246e3f83e76336e2d566afc42cc6c43ca1d5b5f1d5340c86b6299218d6d0e8915011205b4917433388ab366c6d68a8a043144963e6ba591643811e6ab30142d73e17411d540781a2837c3d3cfa1c809e1aca4d80eb654e2e963b4ba1befccd3b2d465ae387fa627d2974fb3c71c3f249cd42cf6ca097ae9c03877e3a0fa170e40f065b68b574c5ed01ce960beaf80524c2ce058b78a8af2d57dd67300c705f541a481b529aa3bac93f4a10423f05677ab85f2ac0a5db472f6f46cf5b37750c779ad6047bd587170af3cbf6d660319b84e28b9e5c2d0dba3af03423b24f1ef46ca7d9133c695f7be21656220490c4836a17801be26e2a943360a15cbf4a0795509f77a4112d859558fdbf385f299912b0e146e3c72b83f5d21de636c770d54614ca0f2870bd654c720b471f2fb4cc882b844c0c6f6d98e204dd664f07d0515520184c4edd3c552e970194fb58bda91091928c3c6eb479ae67de1ad084fe87cd05807b645572410a8ce81d983ed763af22b565d9225c2b8d4dd11ee8349e752df57179623f8a72acc0891bc92c1aabf98339a26164287a4d717e507d8b83f51c708034456716c16e5ddd9cbce76b659a883bf05264b20e9cc829e126d8090b053b73e4ef4649ca72cc32f6c06b0bd6e2f3c899ca90f6f0618c7653bdb7e675b6ceab0ebe2c82b5cb02b58525d6d9808df37d083c6868cefef5004f6def710f34a146ea0a13f75e70121ae4ed61cd1783b215435aed98b2bf8986cdc3885a6c348181bccd6371057f4661dfb82fcacc7c6ead0e20749aa3985e5ee778296d0ec3551b4a408c2e8a4eb82d6d5817df832a93d9ea5fac6f777ffdf985c5288ae33cd81f87d31cbcff93a6fd7319288e447d7ad50fa3bb281d2d4cac4759814d546e049c5065e84e89423446de4b3700f5c517776bf70edffa36e76d7fed9674af8b473263d996f3ddaf7f60b2e11090da583e7aaeddcd632bd1e957234ef09d09be037b4685f897313bbf7ac7e99056313dfee2efc9c0e973445b734da033984be11446e524dafb62e96a56c05be3f5e46c2493c14d1e659380000ed9ddfaefa90c130bda3f9ca6fde96ab5572e91f4526845e56915bcc3718ab99ae8527a5938a41e1b0d46b816962cf9b1a68ed67281b7e4fef2a6860c4f7e9015a1bc8f9a5f95c7c5e7d7e5f542c93e3e89401c50270cce5ee7de2bd0dc3d1da3a946743cea74bc16b32c87303f34ea19b71f6e52583f49a8a30b9e51ef72a0a252d40655fe635af193219a00b1aebb384b65d06f95c41e75041e9d00fcf21534e1cb2d6d27f5c911b5a8206a9293286d91af2ae3849ed51a9cfd315ff115dde3d464782af82446cb41b13db467e0aac76e5a18c5940670778cbff0e72f8e0cbeefaa34169063bba56e4d668dcdaed0fd1f1bc3a8d53efbb06c415bbcf2128d3e6a55b80f702422943c4e7c30c709763897f84eb00b345304d3c0a253d293c54e53b0365b945322b1ed9a8c48ad8f0d29a775ca5c4d14af22970c540fa0292b261fdeb3e16b94b18b7c1286e1960802c4ada4aadf08a17f4d4375f62670a2181aaba846ee066f41cb9eef39a15b361afe66b93d6fd6960b8a5c8f82e4612cbc3d82292b4a81a3f2e5a0648017f47deaa2bb936f4567777dc24f9c43af7e0cc425ded80e3bc6d52813f3c79f118d4c6d505b70d306c6ba2ae44dcf9a5aa3dfa9f47530e13d2ccc63be2bca354901d4daedd9d8e1d0850c999ab0a16b86506e4b0a7eafed32f0ed06ca6732b99ed0fdc5f8669ac1058f8193d2525e6e1056e6c8809d8603373c8c018478d5d5d16b91403d22c9d4efa3b3f283ba9896f7c9eec1eee91c85b6d6f4f1e1980e8002643e77b13b2176daf2ceb6763b15f1f078e6f02b6f64283fac3c4fc13d32629707a2d51745fa5b70831dd725c99b458cbd13aafae5c3b445ce8824b7a5c108a260601f971f04e5ecef9209069c52507874c68eb64ff597ea565425c668ee9438d0987b5e78cbdc3d12bf184591a5bdf85729d9945f0bb93b74235e4e6afb4f5c972a0ae73dca891491b986789b2c1c01121c72bc407a81d4808ca72e397aa7c4cad63ed8a71afa636d83e1277e24e7831ee19eaecfe1fb1b73c6b8c2388dbb0804f5f7a70371ca89a6632a718ae2ae197e508461607e3a1d2f5e2bdce7fb2a993bea6a9156592146dfdb63f2516eaaf6d3e5fbaa2ff80abc1b990d55ce2ae8b9c63cf6325b56871ad8a7aaedeae7fb0ccaf917dc4e3d5f251e1d61ea0205dd264c8ef5175df07445739dde68ff0cb9a95d00eb1cfa18435e1a9474af4f9e9a61cfeaae8d3f9fb4601347f13247a60656803ccb5051064a13bef4acf3c3bb11a632b5bad56e8b48af9c6f783956969a8626a136318cd5c10ca2f7b3e204e094bc23fb2be79db357eed38a1e1a3424a511f43c43ba8f4f2f9500d8ea0e2b7b5e75fff8515ba2c8dcb59e581db7bcac3d742e1f70b355da9469da4b28bf2e8d7b089add34f50617afd7575b35c35b2f3fc992a290d8518979b0567dbf8b7a4915567e5f63500a75a3d89c1ad5b3b1dce7ad7923aee0b6b394126428b728f4f3c507058cbf1c4f3de28ba2bff165432ead213e5ba7711cf7f8e237fe7d0c1226c03bc126bd49c976a3f077c17156e85cde67377ede26ad199f4f42649b4e5d643f0f94df0a1f4c651b8a90a56dde65ad29ebdaba6b8cb8ecec46b2c7b6121d6e5da75729e6cae650c544068904e74f131390cfae9b74ced3c4d0142501b8d27ca802391e92d5a21adb6f86bce8cff448382a0442cce82b2fb86fbebdb9af940f3e784fcfc28081c8523c3476d66d05912f332c855770bb95266dedd267da64fd4eb8b1ecd4ff4c5dedfa5379e0ef8d4d37101e22f10b7bd395591a95edc32d647bb9ebacab59d8a783ccba6d4923c4f366bc4b7244a1e4967692e5349416985b39d41b603f1549ad885022e09aed609e2cb828c505a13930441e1c87ddfdb01151033e7f22fd698eeb73d8ae3ddee6b4dfb4c9cccbb90a014105d3dec4d4b0d68074cee9ba7fccd5753ac7a9062b4c267ca99faf7fc714c6f2c06c5f50211b921150b8b701978a132dadb08ce32247d386d0bcf9716886aafb93eee38647a075ba33e82b4c0b2755bee9cd24a93ef6eaeb324c60086b3f37b90cf9efc10384a62fec3ddbef94438e9e04049a3ef0a4c1c9f2259365d6e7a80251d0cd42673af6653548481d6f66fba47beea221c8a0c180f89a39f2c3dd9b7b73e16d6122e47e88f2083eb909cf35c44eb77cce1a50607c5b449176aaa91f9574e8c42d2fc84b38e771a8c8f6e6a426ea4f0cec054db4260a41dd9068f12", "ml_sig": "2b57a70f481999d218ba98a51da249d8c2957b50a05c13380f351acc36b317077ba0fb0adcf12e87af10525631a93775e350a8a8e88cd2f7901848c2b18a681c47e4069f48271f1c3496ec668be9b82d0da9387c7e2cd1e1eefee9c295a0f19cc3bb5ebc4f1324a4f7ef219a959b12746f75f49374f778acc59f5400a71ceff2dabb0193ea5683259efc2dcc3c9b655aa380ce4927bd6cdd62315f6f4131a93a2b5856cd1b1b5083b1cb04848d8312b7b66a4ae81e7b997ba3b376cb92c78eb3849b5cec44fe8a3943ef2b78e6338622c60727567a8cee1661f4d35ccc6df99431df5c557f0ef27855c2ea196fafa70cdec4708887cde5eb52549443ceeed8601a595bc2dc126e2868783c7e7954f1182787a8f16708dc06f21502463b4775666441c18e278950052c0031b802dcb2650b5825dbbe15ca886ec7e1f5f0e9f3b8f6aed483c9ba772a22ad44defcab4df4d31a76703f34c5e65cbcd82a29e739562d284b7dbd898e1a428b8143b7582f938eb795dfa077577f1e4e6e47dcf7c860c26a0e9920e3036cf9d30e1e810795137c915e7b0d71f3dbe7b6d426397d18a31fdaca0cae5d55b7ef18c3ebc463e5e83d3606aa0bc3095f95d7f25d17d67b473cb3e5bddfb1c5f440825397d2af5674f58296651ef027d025c4f37ae6a4e25312b01262526e208809f44a6f394cb34a74387df5ecea49b85ba7c361421b929eda4d0eba7fa82b99ba2ab1b7ba9d000e115ec684698b606295ccd60270b83a871314e03a8d72a394c13b3b959eb4b16fc9e0c135207a97eddd35681be4725c541cf4e9b3039b2effe6cc24579827397f9f9eac552508d7d745cf0df27b5c67966d5a585345ee982ab20675b11bbb815cd7c024c46df3e6f5d78b24faaa767020e82cb9c30d72a482c369f812933d2c997993fca361e1c442fdb900bd6cc30efa11abd0c68895e2cc23fd8f0129a6d023236c4b9fe218b7bfbfcc3ece7a3580216a81d3b7b35727ee631ffa475b5fdca21050bbc41ff91cbb84d72dd55b87390f9570b1d010fd43a96f9bde63eb3a39ae1624d183284382a194cb57d371fad38d98516a76ac0ae237c4966cadf750d6ccbd8ffe16c02d277e3c496f6e5681f98b5217070cc7f2648bd02418174e5bc4c7b1b40e02745746773cb595863ecf173a1c7719c60a2e308c61dc7fc3555e7b8d0bf7f03d725f03eaa1027b26aba816f75ba8370c249c15423b986722d9c3dfe615ad7a6aa6def45521e5190ca3ae7247254f1628e0f50ab9d83103ef4b8490b3a3594d15fb9be571fa79143e60477239c7758d9b17cb19ffc03396ff490a9aa72f3355ffdd4368555ff92261db57019abdfb6d8905bfb8b3e74382f28c1b55fb1a7f9532218c6ca26b2bc4895c9e3007eb03c16f9f33abb0922204e731e71260df8eecee2649555f022a5d7d17c471a7e9884b98a57ff4e77aac700701925e0e33d5b30324660971bc18577cd036e4a2d13ed155d33c766eff87e299f7a45eb1cad803b54a54b336f16496577c309830c597a011f50ae384e59a886bc7bd40945a6194ccb810841555ca65655fdf55c0362f065be7c67bb5cdc19cfe32b6ec48bf2f3dc153a19535568830ec3e03f2e593c975bdc006a4bb96ea8d2bcf2631f7092df09944a69505ecf8674953ef21e2c4bea9842982680db242b815c4d7e8b1638b06e735125dbbabf7006dcff019561698430b7edd73751a9e86a3c13635f46e22d858801bf3d04203581b97f2f9c2ff38ecbe6cee6e1ae45fb2e9fd0bf6976fad5b818ccd24845681e30992c1995bbc80b1f0f0d0159762b541e7516afe68c7411aa307a5750067ab01095b55779e3fcadf1a91a0390093656636a3481e195a13bc2fb53d249a1c20302b4bc1453fe432d830f6363e2596cf51e5c7965c1db027a6c5780bc6e79b091c2bdd17370a7232facef3fa790bbe13c2e63f3cbab40dc0c94b8b2482e8816e54f8f33d1ee424259d63593a71a9c4bad3727d3fc5e751ab63e5154e23b59d87e7ed412d34e18a52f91365b66d1a3559f25c70033174ea7ab6e22d2eff006d1ace51b641465655c8382d77ad625c0af52c08b22b616fdc8c757bb8f49b2a97daab0b4c7f26ec49e5660f0f789702569cfb60181a05476cd95bbac2f3c31e39acc1202222ee4540de03d6b2784d8bec318ef7d69e0ff753ad49e817ff26446856aaa272709db71000219bf3971acc42d884987a0241de1d04924b9ace42888571022c995b6358f0749f64c6d499b2fab128dc18fada455d995d7db38901b258fe394b62d93aaab244a5053c9026af4dedca3b46f021ed7a1c391cb282ba2ace91827dabc1d88dad8e71f575d0a9a49f395a52a9095c5ebbe06272b0047b3a6852c1947f2bad9447b4d2a9d52f7ddf6c86cc0d79c59bb88dd872617960819c36778d5a8c00c88cd23fec64a7cf0258079e5439358035b6037d29769408cd9dd27332a7f011d98f1ca7a36781aeb891e4bced02df0524ade258cc56ebb3a11814dc339f5ab642edfa32672bd0bec3546455c33d09203f20478c176756814fea9f4bc8f5d0770ccf7113e2b1353a092f7ff53d36dadc9315faa9030fd4b1648f096d3597f1fcfd906fa2cf5145d9a167983b75d219c7a6daa5d3b96e7f21be025c0dcfdb1f66c75682e6b288e90045d0099e34a43b0378ee64c1f6aba9cb6d16cbbaa4e389ac8079a6b76c76a832ad0bde2d399dfca873d18e4298b3d05b257b3acd5aac0ee11b89ed7b8a8b613caf62ebc63782bfed8b6fa0246dbcf39aed1416c9dd0c6fe893b30630ed02016144d2386c86a7e3aea86a8d901b73bce349379f316381f4e2605d71819d4c6be0ee115d27bf2bc8e5b171949f0c4091a0681df796e29f47e49bd2756fa9f524f1ba89c63dd2024981870df5b7557dcda36d2cc5b29276bb0c8d748cfc4bd413f6a0032f0a42af5eeb2651f8bd67e506214276896a135d4912cec9186a27126f3471f86abca83dfa7d73656308f0fdb56a86ba21a8ca62d1c0e1a1226d56d6c7cc99b0b9294ab7e8c836ac404cd536221ed1cb5b9bc484a85f75ea6fdb40c1aaac5030f151b9681da46e2467a1aae09ad1742ae9a2fad0683f831700c22c306a3dead03050f2898720104fbaee5e300b8b99b8d8bbcb6b242c5dcceefd327663d787557eebac564caff9a8d921096bc1f48ec728273f75645e04e75bf030bf18ee8b49d48275cbc30040f9a4c55f3903f9f3a29b4e4555df115779f362fb7bfc9a23bc086ee119db078c8629941c1639492d00d09bd7b78afa2749466c79bfa3f91aec95e33c0cf87317a9aa1e170446128b308e6749db4074191e8860fe6c2d8e12729b23334a441dea3e717d614e2a0c8953338dd1089aa09670140a5dbf7dd34469b423f6961e9d91b8932eee8d32707d269936ae58d4aa527a5e781e79989e7dfe7104247bb14ecb2552f95572b25b22aa0ed2e55aaf1d9f275bd545a95b8940719000e1e9a77a9b9a13b248b589cab6ccd2659725c571e933db475de2076a0a3e633351e40ef2cd784368be2949df0e2b7f302297686f317d8149a1eb5e684d7d46045cbfdb0655d32151fc5d7c97f92836f8a2375741fa310a6221cd91e41338df2e0f9d6142eea8d19790da8dff37b33f73a100020da5e2a2947e5cd0cef1809095bc8a9fbc66b097359f0a75ffbe9d59779055e8b78112b5c5b3116d78b9374666e21981909c5e328e7bd548bf95ebbbcf5c052257d02ba20393d102ae61437b210a46b656aae31345a761095279925e04c7b4b2a27449bb66eba2ec8a7fc03f4e278c87caf5f6880335f899124cc38d7f6de5e554fb42d8e75e9ac59d93efbc60e72f3851d47a657947b281f44d12788e44fee75f3960de49d1a0d605e70034b1f27a47e31e46e2681ad5689b6b36584d106751d7deea92755dcb1e7f307c69aed0d25e166fd0770c9ba2d658f4ee483131d1596b1962dfda2575d4cabf3efd8ccf76a4e2d10f96e09b56d86815a699eed5558aadf3b42c62ada7718818b6336c811809abc696a07ab29f7585f966c4a5e1c6991167ccd35182b6e2879295da3eba3ac12e7a7e02daf476922a95734bf7c5cd2311c865415cf0f211e77eb5972ef6267202eab017f124ae443bdfd448fd1d763bb0356c4dad5beb44487bcdc488e8990fb2b4dcea743aa0ff6f4bd1e13cf4939c71d496b2dc5e2d339f72a8acff2df39258356ff302ab7d7e45956b36b09bb04d0fc3894bc510df9e954bb67e72673225e1af50b21f05937e88cbf9c7c0cf553a4f50bcf5567ebd598763afadac797e25c1d89ea55fb850639c261a77eda42a4401a07734be7f40092f07e62719cd7c8e7bac5f19dfdcdc01a362a90806a8af7ed27d1aa4af57e8442d140a9f4dace3e52bd3aae3ffd1604e28e16e93892631cda6a9a768585fc6228c4ca24281e804eb1891d87e5f9b33f367c5e633d45bf2136d7bddbc720158997a2ff328c247611cc9b65b8af4b43ea51571a5cd7a9d6bbf7820bec2c2116f9b608846f961ec0825b4ee3e2235ea48a78504185cfb3b3f40690350f4b061053ca70ee2f8afca5a472e519122af9f584e130fa6102d8924f0a0fc0666faa0af5ec49d3abf2ce297ba484fa1ffee20bc49451d53f179101570b5843381306df8e3fde295bf8d2daee651634483b195b2be786ba9abdb2332740498a17ddbb2ac40a94810e05788f12bd6b7bdd89ef46bd00a3f4fc9b33c3b57e7b9b18b90577c71418101e0057dd5200fbf23ac52cd7a6d6b2365508996bc029bf99d41d4cc96e4aa134179dfebe42c0a1f3932af3517d7829cb2dc0d108c1c99cafecb8948974a9a475d7118161bce10a4ed0f0193ea5ae8aeae78f7b5f05e513e417eccc17e9b6b64118a0feeb41af371f53185e4d33fa940c1d205c98dbd62ffe7d89278705b81178dd9c2493dac07861d7fd520e8bbefafc5bed8bce8c577d242144f0e66a0e3a7458c2f0731f03f03a790d64847885d6d54472dc94ab9de1158a9f6ebcb2d55f52534549201d7e2dfa863feceb92470e18d57a828b2b79d33e9ca54bf3b7f4fb565019af27384ea9347552bdab5245d821ac00b41b951c6642a9d97c792869fe5611a33609e1b80b5bd4dcd3196130944b27455af59a5ff40c686136ca95a79d0b5cc4b299ac8a0447b02279798f6f66b81a0d6c60da70281086402a8140bea30a96d694cd11b292b952266bcd18cd962094a53f8180b3548cada21a0612f8efdd2489345ab9dc87010834272b50c13fb0121ed450082e14191537ff7743f0819985ccf662861584be6b5924159596581133ec6c649e20a92b54fd5534eb4008620b70860ced563bf920c3b16d3515cf4f985d7a203b422e5c3100eb68c8429453266be1878a8a2c3c777d57ae897c319e9225c64b3f61cf3a64f0869b1c4a39aa426b0d9bc7f15540de9c07ae47f54063a2741cbde32c7ad58cd9d563f12c3f3b3ff2c1c2826d28f8a7fd02405bca612892999447d37097ce071f9d2c65c3eb22667e2c551d7212c4513bf52634279e40ac0cb0431a019d02a239ffccf6a985a88d4c868c5a248f0c267ecc4961fc183fb7d244bb4a34ef567f639fda7095d29ec4fff2249c2240654ffe335a5f3eb1b4b575caa0199fab2669b9c78486e49bffa6994568421f4984023e5f77bc1dd5664447de6335bc7c182cfc90b04f0efa7f1d7a5235cc4426ca3d91ee775a349f54666436a295d8f722dc74c7f97f14b04e6c259620bef9642df13cd7316723650e9b0e4c7e0b940e6d57151c681b59bbad54c7c7022db1ad0a0d54e6c3d9f746523064d9133092c4ebd5883e3bce071f51f76410172509faf5a5b8042221631182b8aa1dd3aeb23e3f65877d609c27a7f5c8f5fcda161648da601f796e05c2460da935fa7dc7954767056a443dcf0471cf990454ea1d19a4ecdf0c32765454bf9793d20895b5d04031df6ff3d58dca210a5c27e71999fc0b781835bef18ef0f6226980abbd08103e9ec4e1611e64a222e8733c7c6371f920366adf81b54490fac23c7879507ae5816520c747b1c0a2f3805fecc951f7adb40de3d8cde53491ed0caaf9bc64935a89e78aec100873cbfd0229d973228e52165c46a3a6962501bd8fdfc5712f7b267fa368c54e5ce65e1be4d40f02566739357f240978079d1b5f8edbbff047627f2380862c761080de2b61a6e3e95ad20220c0487a56a8a0a579e60247124d39a927c6bbd73df5ec08468e37422b4005f9406e8dbaa0ef193519575986744eb0beefa20f6841d29199af09031359de01530cfbd3cafaae756bcd18b803beff8670efa2d242a06116d46b7ae6d95909671b2b6dc7639fcba8bfd0c4f5a3015cbc56ebb15328d0079f0546999f3bec829dc2158909f3c37059f5d8647b76cb39fe15efd550105253054778bbbc7335e9ca2afc2eb143550545b79afc2cbe56e7e9bd308162698b32d3f6990c40a5a7780829ed2d8ff2627688df400000000000000000000000000000000000000000009101a1e23283136"}
golden_params.json
ゴールデンベクタ一式。msg はメッセージ(52 バイト、ZEDEI settles under the kernel-1 post-quantum matrix)、slh_pk / slh_sig は SLH-DSA-SHAKE-256s の公開鍵(64 バイト)と署名(29,792 バイト)で、デモ 3 と決定版のレーン 5 で用いたもの。pk2 / sig2(2,604 / 4,639 バイト)は ML-DSA-87 のサイズより 12 バイト長く、pk3 / sig3(2,674 / 34,437 バイト)は ML-DSA-87 と SLH-DSA のサイズの合計より 18 バイト長い。いずれも先頭が 5a51 で始まるヘッダ付きの形式であり、run_full_matrix.sh は pk3 / sig3 をレーン 6(pqm 二重署名、kind 8)に用いている。
- バイト数:148,610
- SHA-256:
bb1a5ca95dc77e9178b3f8b4f5cac0ffe2c29ac446daacf88c28ad4e1d80ffa3
golden_params.json の全文を表示(148,610 文字)
{"msg": "5a4544454920736574746c657320756e64657220746865206b65726e656c2d3120706f73742d7175616e74756d206d6174726978", "slh_pk": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a139ee5246a71ccd7ba1aab4e95c2b2be0bfb15f725aeda0eeb3ef7a252c871e3", "slh_sig": "fff695aad2869a679eadd187299ab2592a469625074b7c69b3b06312704c82b9f011b406e1bac3719a065bcf39b49b5fddd8141511f461d99b980a4bf4b7bb7cfc09b48f93a30399a40e5f5cc61e9b58f0445cb5ec7cef487cc18af4efae40f5938f9cce584b9f4629ec1f60f0858961720a1b70808c0832d5608ffe6e51e540c0215de78e7b8890dd81817e68ba45cde1d6ab61a2a32b4f561a994cc3ee1c23bf2d332333315844e1da61adfe787ec49f7388e070dbeee5b057f01bd8958b7bca7a1515429ff9a9c266f338ce82c315d695f52e659f079fe0aad6ee9a956323e5a19015a3ba350bacf462f052309f82b5103d3de1f0e5ccde4c9ad34cd38dc01405c5ebf89b57755c9007bb6da82bd32b2ea50ae4a3b68089b9ac1c4217228bd4d12f1f1e8a35f2adcedcfdaef7f6cdff3c3d76704872bd7f05efbb474fda52b14f3a8a3500b3792da28fa1c02bf38e96b17572aee6df690264052a8023e4f7feb8c2d9dd52ad2f79b2ade1228cdad926df27ff673487e6f7c493f0f13164ff5e8b7af411a42ce964e56aed4161e9ab288e4384ba3b31eff4b2de0170e24dde24cd203810d34020fb5d4a560367feca37b7cdaaec3a6e317ed60a6383914698bf51999542414050cc4cf4a5067dd6ccba5805dae12db5158879e6542d8cb8d98ca09135d32a881042c199bf2e176317d06a22d8494e3010757fa5d3f932621c1a39406a96250c8fb7f1bcb37b41fe788982f2ce1396ccb3d4667a77a591e8c662c28e435b4d4cb46f9c03705736739fe72651dc0078550c01be93a730e108a5ebf89b32712fdd236c53fea8df47f55dc55255fded6eb7c09a1c1a7e552d7b50bb722528d1ee245ff881b2f4557d6b2d47c0300bf06ff7a08a72a65905a015dadb11024a94f7a719552314a3f9553a0df16b5e6be3657a0e775102e7b6b1a60aa3e628aa17a4b8936bbede33c7ab2361fb5af47beee5991892dba2d69cdbde3036db613afd7d34b58d52997926eabe041dc826663f19a5da4b36db6b80eddf5dde744c082e57ce9d53a785b2e2feed5c653e930ad1d7ae2b6237592d9166d98692499329939050d553cb195726e26b788b68e5b73dfb14f62633b33f81f6712045be91a3efb1c1272e78bb2f0df7b6a701cd7e13f4a048b1ee3199ad442101d2467653c98f8487145174bcb332d0b5e2f0aae2848e07c6ef049c3bead2f029dc6eb31b8e6693f768e8cdb8744e772cd4a8b000c657148dae81fe3764c30af44c155cd84837a751f3b66563de62e17384ea14537a55299264dd81782a86a62849a60198de8d4d04a5815e420eb4aac101059fb33966ceb986157780ef0ce52afb98e77526e15e5a9c1c109b1d8bb8e24f0198be48c909e6ede225762724e8901ecf7327b9189262fc4b2962245429b684bfd0ec3759d40e216df3b75e0985bc58974ace5ac2316326976d24bfa3d2de1230600d33d4715691eb07420d1d2754f9dae70e300bbbe7a495af9532a8c3c4564f4437251493acbce3965266adc70f6bd2d6d27b69c35a925e79754cb3e401994d0af10db2a8e745af360b0f585df599dc81d89c314d3d633af232f780aeeea3aba0472c4eb8c30298263be5ef67cae138354762fe8fdec30c0653d7f2858653ce8e0b7b43f1aefe60dc36ca64f2941b51135cf39c4be78686ee580020135899572b261cba9ae7a2d82c03a33921901eb47163bce765b46de7f59090b3f2f5093a1f8c252748dd297472aa44174ef441faba92ac84b12ad52fff537b7c6d7d28fbdbb23a3197aedc97373b8fbe49d141bc12c3ad28917c82b4ac8fb0ee7f7bf8250edc2b7411adda75cb57edf0a373a77e42310a320996568eed13ab7dcff8865e5de8f31d2a1c5d9d23f46ba4699f50acb760e62dff06aadd4bed6462c178ff3825d37158cf7169ab5a3026a1d2303a2e8915193f706472f681d33d7771ce4765d11c080dd106225b5987ac6c46f8b6b4c33073393fde025c6e052a974ce0f07ccb363976aa1fd5ce6a706f41da516174f1599d13b7dd0ced7222e3b78856bef17887c1b05f7cdc4e976da77cc2cfc982f7e557fd7e8c9881e125bd55fe89f1eef2006329b2719cb1f2bdb03d7fce9e24afcf31baa14485d9fdba0e227380536bf13e86772027a709352576fcfb0ee935eae17df27b1f534c1a4e26eb64adffe4ce9c1272a1ea39a7b5997ef8eefc9bf05da6c3bb018f20087829449778772c275665b7c93a0943fb5db479ccfbf83542848c823de1d7bca6af67d2fe05af957ed2ee977c93207d1e8f056a87c322be759c705cc2e7bbb98e8d45b7ab1fb8ccfaf45a4f22263faa4dd155a648c20f7b0b691be0841d6a35d644162db40654eb3ae4f4c0eb7b6c91fdb7db13282bc7eee93cfc5f50963b965cf2c90b61ab1fdacfb2901e94b5d9e9dda1966bd9188323a2630dbc4ac46cfd3c5c6bf6431e5ab0cd63ca9ee4782f8c0d88ab6fe92ddadcdaca99ef47d14c6a3690aeb74c98535ae6649fe4da83f7c5b62a238ad9d26298f4b93eb960b2df59bebc829e625b92863f377b011f5e2dfa61711b3006a5c06b554ad89e0e7b7dc280078dd921b346527c7792b65f949717de88beb1c4224775760f5d133006f2135eff4168239944176d96ab76d0f2814f8a642f12ece1b785ce1d4e49a25489d33394d81733fd3f8a6beb88fa63f8e3d18dfa9a56bfcc7fd99c72e46222af2620ca72cb627b560d0a44edeac4bc71a810329f2ed0b146fd6a69d08136701061fdb60c1cc80066b61b299824c149472ffec80ea60a100866819f2450d272b1de856c334d911eeb5de371d85ee2763591faf3d8842dbbb5772795bd73201b585f913457131ca320519d76d48522fd8fb513596c1aa6ee60a51fe75d51d90ee3191539486dc547ca8c57639baec5cb09bcce0299770df79254865759bc49a6d4f56953fe43f51975e45badb01a76e77bcb3429f090492009a6b4456a2be4df3a38de0a80b4c0a4da0dadee2d4750e62b91e2ef2bd9e576020464c798527ddd9a523a14e73dcfe1546e1cd1f82a99566a506952f46c8d7288bbb063b8426ed3853a4d28fcba3b5d4fa0f393e7583e28cc3007c28158ca2e9b0421175885abeebf2766e51ed0b8ffc6f2d2d9da2986d43215d96e4f6071ec99a957d97d467cb61572737d4472bf5824f5811194dc0e237e1add6c5db0a2834f0d1e1f18cbf282c733574f5b6f8cedd99167f24197cd8900fd27ab128486813c9d17f509474301e7e19c955666601e5649f131e903a4e0544aa10327215915f1f8af65d65d438f20771a59a5b9985a1c794430e89e90604141e4fd11cb5b2b12b756ac9f5055cbb5cd18e7f5cb0385d00882952480aae932aa104e9e6e340708b317adc1ae79dedb71d0f1a698d7d28726663fbebe58dedb1661019a43672fe1c3c546a1f3efaed75334618b73a528666eaa478e5b124e41db9d264849b23f0db3e28bc4331a7b7e01f1c808f73b30b7d53630549a5562a818a10a5d7cce931c2d8189011e372101777c061b99ac1d917cf77e9c0904eace548bd9f9545eb17d88dccf2adc9c4047315afd1b12f788d8e60d415da5ab8acc51844b7bb97f626e5e5919e0d139b14605d7a2a59459731bb7b250934ab24491ca465f233a68f1db9398633cfc6867b838ae424468bee2b90d26a91fa8990707973083bf0fe24fd56628afb00bc14fd7282c97f65f3111c7521182e9c70c18df8cb55d3a16c190d9cf2dcd80b23c03a7d5c887f0375e35cc2858b8dd36fcf31d635c1dff26c5779ca2fea57935faf69f36612485ef0c9b7ae5deb262b1dfb914c0ced32810da6068b8f59e0af309324b3c708b18f33156a59d21d734c909bfd634ffdd57c282b790c8f79a7454bd833aa6150e98b5cf7337362e7ae46ca4590008e2fd6fa6382c57e9275b4abbae74e3a586f9d6a4d972afc11d269f0672324aac41410bd04ae8928bf4dc47e4aedca5321a2a1b201f11d30c40fead1195374a980d3b405d6127a671a1814cc4dd6ad8f958f551d299be748fe176cf1b306c78fed2514eed5a42d7170339fddf57952d0339260daa52892a43095ad3abf2479ed9025b054d8db739de217f2c7bc36a37912e0fd3888c178f173f090b668a090f7560387cb9fd9e65bd11aa0cbf75597ef5692ab9a43d1fa230ec77ca4e0ea5fa2267cd47228570b5af94cce3409b542c961457ceecf6eca5aecf9ad7eb187ab96b3a693dcc9d62c0567685073c57fef2f5a15bb7b572ff540419ce42576e2a4ca5a5f567fa85787c33b2376088cc96a0bfe6fd35078690d2a98bd34f2233187c61629249dde22d3c7ac3ab5046bcfb65f2f2bc3d60147e49ba7391de8537721333b9a4b735e30501c037789872bdabb26534d1de88ee0e5bc7a2dbb44a0f4f7f998eb299b75c15bc39384d1dd8fdbad9ad8fcbf4984abefccd6b946ecd5805d48a7d20ff880b54db68cb3686771ae24d277f527a24ffc1758853400a420cb6fb693f87ed1809305ee1d4e2bcc3624f1637ea4c1bd2f6bb55e04b27489636da983fe520e1cf23598c5b2e37d25878d476c263528b83a1243394c1ce93951b46dd918ce47ad82a4fb53a4fe4f1acdb5156d05dbf61bd18f8fcb7285149706178a43488d30a958360926a3d394d6e38c06ebdef7427be4a59ed8e9aa7e7a5e61656a03e283260c06fd121291c33368b233b7fe777f8d1e2732ef7c331aec397674e0fc18ba2de379b80682a3681f9794c21647950d8a926aa00062d774a67baecf836aa42ea91ae064fee2790345c8ce29e7af7ca130b76bb3428ce8ec9b3e30500da37b6f664508bd29104da0e8ac99ad2626f4f3f517e050eea68d32871c4aa94dcec88c1aa8603523410425a67545ae3d9b6541e28c869b54abe800f89a6fe1ee3005bfb7b22664ff2fd9d15f62c2440da83f281e97e1caa1b87610a5a0934ffcb0aab8ec2d5bdac3fa72f134d6c7e6dfdd930a153eef96ebd76ecb8a9ca902c60cff6218480d661389423d0ef19c1d12e5a992a037af65e926eaca1889b4a371679e3916a36aadc9daedf5fd4f7643c6e6fbed87068d66ece9d4bf26b5292f538eb51e5384d378449ec376a11506e47102a737fc655c8f45d61ad157632f0b72e24b22ae6049de24349e8e6b22a044b2c5d2d4c33d2f334575ec4d5972e9ecc12ef6fdcfcee70ada027fbf70d34cc31a3718379cbc5a80011a773e72be8884ec67bbeb0482b12e252485f29c4a00111851867b2124579bea3f4967db5484953f2a59686b2100a73baf867defdc7f325742a6a0abd06b6276f45afc21bd9710ba1b7f9f56516d6d1e608b40c4e41cc08a9cd41825242e5a7d377da1d5eb22e2c0dc6d772dfbae4fcc3b4c398fa2ec4f25a26eac0ded0dd8cf1ec5e141c15c83b601392071c76f0807de968bc9714f5212e3d604b4de718b150fc96f682d1cd2f8b09342610b14a6c4f1dc044a0cbf87b6ad002b36745f1a2d4128491d0207e4e3cddf1e9f559205ded775da12460a477999b1e2ea284bd8ac30fcc9e167bd4e70c5d3c8d1a04f810b47532ec981546a42038a6628c677956e47f852e271eddd7cb6c6d843f5ad4315f0d95584809d1d0c1f5335bccab863e9f1d3fc51134eb4c9351cdf99f7da998ae5793bba4ec441aed91ca04703a087b7cd9aa31a9a1236fc59f294954635e706aefff5354834038bb5fb5ab49372ae464127b3aa35f686d4c588712dee9f3f27bb4bbb21e40bd47dfc0389b31bc64f6296448c2013f5cc4d891436a653922c38d6263af448ee87c600942f56964ab1ef4f14013a3d3f512cfc880aa1437f9efe68df71d60b0503e565d48c6d5c8ade53a7c674f484e765808b8be132ea1f4b29f8fcf89630e828bf41e5502cd3747b0c3b2875ed2e32d7cf0b333cf00da2124b0c271566c1cf46fe2e14489f1c7c338c5127f6deaf00acb703337daebf58c780a3d2f138dcd6ce8dc589808b906ac463cd9280aa4063ecd77a38f18baa49825d00759494905255ec36fd6c7dcc1bc3cb990ab960dc47a8903c81f72ef099d97edb3f3e9c6ad64e5b9269c219424e2085e364efe739937953d177390a74ed04d378b76eee0b7976f5abf6dcd29b45fcfffb1a30ed74c00095f6d556c635f3311ad57491d01c210e4efa2ca20d6ab3e070fb455eb847d311cae9a511014574d7106bb81538a05be73385c6736cbc3b1fe4b1fe0ba715f5366d27866daa90049fc4dbee102eb8fa1784ba4bc371ed6a53e44f6f71203c03e42b1804b2394b4a644099ff51efe1ee445f9c631cabdc60a7e71fc385b21ffc2b788b53f42616fae4f4d6040be63dfd068ebb2ae152f1878b047ca77d251a534662dd829b43376ce9644842baafa69819c5135b11a421e49d282cb0bcde0f42c389caf24b0791bf1d5e57a37839b3d40871f5ce96796d74d0e7707f4a1271735ee8d27fe0cf96107507c909560aed8426046da85667ea8e835c48616248fe44a0323faeecdec24c60bf29dfd1c8744f27f1b7e555b577e45451435774db350d23d47c1887924482e66fddaac0d57665ca03a68ca68c14621ab8e9c2c440a377b19d40811772ebb78f04e95bd3abaeb4844a7b891f21df027af16e36cb5e8a3d9b469f0f5b07780a88164f29b55c50c0dea4b48ced506fc075944d7f823fd3ef208bee08c59661e8435452b33419111b8c5af658e581aecd240388196e6adfb57f3a8468a6c60437239cf7f54bb1b5041413b4c689fc02d70a876b70922e062a4df2dff9b0be23a5d76bacc11b0b223eda755832e3948ea106ba168f4c7d71b15350575ed78c413b7b040813e149e4cf8113cd73d153fa87f7a71c5bbe5238a89ca4d1e264e734c7124cfaba1a173692dc3f80df8b5b920b918420ca64d72920d5e23a4d2c8baf5621ce49a997fb6598adc0704037904cd984b587ca74250faf15fed0c4fc8009512e0fdbdfd8d80150baab272b6e85fd06af09735c2b829b91713a2273676f9a634bb7b85e025318d7add8e4f9ee5cad39d5e3dd92d777620474fe2d378a60de6b3e3e144950e4e195f249eb581c44d4ca8904f296c18430354395f494e70611e01568c1cd1676136aec74a1575fd1e6ceb9a1e71babec5f7026e5e9758955d1cd5005a66175fc4640d30d64ca0696d5ee9f20af251e7327f81aeaf6d0f94b1d4f615635a89f699e373a2299087d9fbae691b2083ec5c60f6d08ab7284374e339b5326b386bbf322d83c22f8913380651232f8ba83f5215eb475f3be12cfc996f205bc69881da44ddcca25d555376b1e39d75e0d6a86dc5e97f7d84e5aacc5ded829510caba8649293ed307eec415096c5b16fe5a443776c11e375443fa3f60520203c6fe9c2d87ab4b58c59632e5145797626c49196ff7b7c310a3d411c493086db5034061a5e8ce64f9f65775c3c3e0f3b3ddc7960999998d92ff7916e543d78e85e09f29b4e61e4c5a7ac10f121f412f0d2d8ac7149a0b55f56df3dc2cf6eaadaa6be4804b4bf99cec786858924176abc7e4c12d4d36ea3db8d5deb61e25b39706086bc04982660ea568ceb88322a5891cee921f667782bc56b7d6ec2ac3ecc485bff1e8693579161de1bc6b284568fa15b3f4cc7633d3e27e8a813c6dec6c8d879e5ef3e3f036e36fc70e2633437ac42a25073ade4d725899360d146980eae46134844e0c255d16ceaaf18099e798739c3d647b103b56756a7f5081a781c08f7e92822a2f38110601a85ca8c3c0e0935dbc76665143f2f3bf51380147d2c4dded6b564e8c2449bfbc4a51e460f6ad93b5602a22f39b0fa4565b93a4dc7a9b4a98f406da4a4fc7ce43e36e3db28b5ef467626e676b3efe0a332016b54bf8400d7385cbd9de0a89b342938090f6b58011be26cb9ab97902caa3453426bd1932c92b0130e6e3c4de43f010ac0959d04c47131650c12f946a68d5dc9abd16c2f93921f6ea863f0d55c732625e4e4ffd8a76eda75776e7a2ab7043a59fbbbd7c57ebef31ff9a214d91cf13a0f28737049ee91d3ff3bb737b8fd32bbef4fc5fa1fc53064108257c8f25522ea8fc2621d763d42b34a40073453b43a6af18b0f98962cbae2a970f6b74bdb9bfb4561289ccb34e43c1927966dda5150906bacc054f6ad6f003e3fc0994ec88167838aee131ee4e6e92cfb3f262eab34e88f3253b870a4d26913c0a63a7948d0f8f4f1cce8684c47d73ca8ee2d538b65dedb1b9143de978887da4cecaa309efcdbaf08dfd9efe12c4bf20b3a8c3445293d86a74fa08413ea5c7f2ebef2d40950456505d9baf4bb4183baa18d38dbdcfec675f95bbe1c5a4105caa3c62b657d2fd4d69866ef1381654774dc2c77be24e263d517cfea182cd4a678f8df4c4985552e1f7ac1563cdd4bec9f238f3714b1ce1feb6e14d7a5b2601be4fc2a82ab8683883f6be879d9da83ecf46a220da555d8a0092df065f362a530310b0ad77541c5291933a9763359d4915056093d522bc54472bccc0792ac01457856f3a7dcc6b5f8355d9f195092d7278c7a2b840e18d35fc773399592c60f35d2e340150c261242d591079e9564dc92a6d0ba3e0f59f2d01aa2cd3a14a6bfec8d5f65d7584e598328fc801661a42c4e70d8b310f06ad9c3c386eb14bb9f70158b5838cb6e93735231ad23fccdad2a862345ab7c76ef6ab52d09c319bed3a41038eadb573bc1faa9516fb32bb0e33a8cfb1dc47bec58b7b15b9f685074320ed45cd33eb0c3776d7596f60c78da2ebf200d2b4a74e254a89cdb66048dbcb0c21b9e096f30b7bec056b12ecb6b951bea28c7307bc2ccfc13b18cb6b2c85eb730a0ce9c836673c8812a767b2d0482507df2c67c4ab04b49fc75cd76c30270e9d9db9ae4a374090e4eccd0b31ff2e9a5d3ee8f67ea1107aa8faca12c13ec830f2433a54666ac3b66d7eb011bed1e4a18ee8beaba08d1d5550e1e0ce3bf2f946cef291a4581000f89bbce513c5d68ac25b33489e164c936822734cb9f558e6279eed9721fbc17890dffd1b839b91176f8e72ab1396c56931ac83243c6a4787588d8c908d50ca524684d7210fb77985b2800d2eaad72249be86b35958f4ce3e88c13dbbb3ac90d87bec0dd23d1464d28e1788a4401a248b3aa0d4b7e31e0cd45749df2b4ed44120357ce44ef91538f196a9f03b2c771095a9bfc80fea9185822120af664c0e55211911a453ea500c7fa814447fddd43be3270db43a818510ab06a97f2ec97a7fc185f9d2659b4617d09ea1fb59c9bb7d9b44d1a4997f5b51d7007e001f5ca6ac7fe4480fc0789431d8886063088fd6ef47faa6f703283bd286cc9187d9cde9584ac0d82e5570a325939c9fd53e4d7c5c7111ec3250899d648536ad336f5c9b0760007af5d4ebe20a1e3074a265b89264caa61dede47bf8462f7c5ff3b27cfc4c8b45e178d115f0984266ed4f9eba292396a7d6486616d8a01d07f3e085843f0229196f32863896ae2add39fa4e8b299018349c2760f153dda5b3f8ea284ec532455b3d3d0cf7cbf60240fe6c95e145204e4626c7fc5c78ae0d93b87d2b4bbaf0b7d8861e4831cb804f4bfa6a8bd48e4d1d38e2fcdc2f9e9b27e836af80fde2ccfeca520f7a69cc7b7eb95250e75c53a4cb0e05c0c0a2a39e9a1d7595d7444e851dc6bea47e7a26853984453876e2f95a49b05c178ccd0139436e1581faf4fbbc329a20eeeff08ebfcf2d4572fc02da4dd72c759025823a6f0c6d4ac1a5483cc4ba25c3c1932014a1b2d603b1672b857f290f21584ddf7e2c98a441a72ccc404e2c61bcb167e37f3098301daf605353e297fce602de048fdb8d03b65907db3f2e1bc44b3b96f71277a71de4f426d1c75eb4a0bba7e64ae8284f1ab590b7433e7ae5bcc2b8bb1e67ac9666c92523fa4070cf118c677cebc1badb92768302fbd898bbe0313b21b84421937a3f5af9fe15eeedced77fef8003de6aea13fa3551eedb200a4577156ecfa75308152552048c84fdbe0a809d516299eecc75abea5c518068c328859e4dbaa49b045a46fa08a978db8e3562ce03b06a46391f1a7281d0c4ed4c5b34fef559c8f61a5b71542edcbec261b5c0c1fa0f973d7a20cb333a19d7573db93da7e4879a393311e62c3af24cfe186d0f3989d9807e084bc81e464c01241fd8b0e9d31965c06d80d06589827fde778917ee648c8f3594f9505fa02cbaf21a794465c46647a34da5e2eee979e1cdc378367399b29a5361deb5bf5d9e114b07adfe9d93e6b4ce5275f99ec9d61b996bbea7ee45c824765e260cd7cf8cacaf12dd9ffdf4e998cd2d3ed03c4f80f23aebb34bfb82e31ff0089851abaf7c64e4b63c3393cf8ddad82c07371dbb8be948691cbdaa28b0b42b5902a6ca0c00acac9d032cf20b4633dde45d1a6789ecc59f9af000a0c50811bace1c3b5e0948a1113371acb20fed1a15a6fe2570ba8256046c9bae98d07f7be391ec305ae3712c5acb6dccaaf4508a372fd9185a70e74f63dacde5dc16fe0971d398f8bd7e9d6254cf2a437533cd1152be385c0f6e485012f65e7b1697f298ea577640378b8b300ff135b35d4162117f0e5419f9ec3fc6b0099411db93c1f26bb2ab8e5d306e9b374303ffb920e4104e22e9ecb584c9a14a64cfbf11424559d74ca476514dde5c0f6201184dcd15ee37d0fc300bd8ffab1035472286b48ba6b0db0d9f16c6ebf5c4053a23f2a72c744feb4f6ec7cb78d573ffd755b00fd64f6b651d86ef9667f9727e696e85191162b38fba0ff2a9fddf7e88655929de1ca08d002a3aead75d7918eaf4a01aa946045487424d990072e7e9580243251d73ccd9948f63b6c9f8618779b2a9b27259c349dcb8ab2de099d3f412c58f06ba322a99344b5bf15f7a0c005066177fa13a313dbdda33484b29e4f97e51f84992bfceaf70dc9e03567fee190d5c2532440e22726a77df6dc29fb55a034af7d4b8f62691847b045ded7b275512f9040e84f048089c84a56ee31a598d0bce05bd499b800510c37e513407414109ac9f9c0e2d8757b46d38220dd264e6ed337a19fddada079639c07b84883ac312d19d7cbe3c0c4f9c2c0919dca2a5326e8c30935e6652a9b4927916116dea58945eea9c0dfce2943946430b7ff845e249c0dfa741a94a2ce761082eb2e53cb9febeb55a972e946a417b291b1a47febb554bc1a77ad1fcf8829c162102122db3b003286d294dd6fe88e1b5287cd756d44891316bfba40e6b9492ecd397057e9cf40d7c950e867715f99ed3ccf60b1e4ac0a1f55ba81d3f1da0e6f44e827188852479ad8594fe87ce737d02cdef9f8cacc6ebea7d12aa42897be1f2988d2e519f29e4f845e47d93dc3aa7b4a1f86ea4569ef49ee8e25cfd8c3cec16bd79f474425b2d64c4e78f09a95c93b660855bfe5ea7e5959973d286387ce0308f045ae9ac31bdad79d48604bb6b5044f76ab5527be5a912af981955aee1b97cfbda034667273da6d2823645dd5e31c569ef59c78f1f1d0985dac79318377260af529e69bda145d7296f79c8e9bf695dee6584fa51802e4307760b19434f5b7a34fca481041e5c8f2fb9cbd00db23e8167669c41360a6911d7ffd69f4c1bcff855643add03e0fe223fdd77a119661c4011356d259c76124a1cdcd889cc54272369a3c51e4af1bea7b17b3817de5985abf36d0eb17480bd91b63e88a6e5310ee31b4619b1304a3af23e7d3361894c07c15e72efc08218f5b1387835ebee14fbe11be35c0b98cd5f326ac3cbd3fe6b5cb1c96c032a503a5b3b47b840e3a3e62ef72501c23ec22b98041bd43edeee675b56e100a11c619ab6ff273b5a14a16bcfa5e59b0720ac11c1845cd53763f844b08ce7bfb33bcec8025f0349ca901887821efe2123b9b363e9830c1e1be8faac479a1954a611a46dd00148cd304347ff331c80ac4c8836156c9a6a13773fadbe29472f53732ca5dc8b58377fc18163e4331e8b968a8943977442dbf0bd4cbfb6bc4a92e87822cebf0338c1a63349ea4b14aec8a5e402cdde00a026099b96739aedda79e697da08207a3056b642e14bb3eb3cf5399b6eb1ba942cb5c00840f72f7f48a5e2d9c1375941c7815645073e1510dcee26b7e4c83fff02f0d9a90124f1147b23482949fb21713af16aba6711f823a07695a0dc2e970d05bcb73ffa49204f3facb65e8bbf59a381fb51e5ddb550e1cee3148780dda1aff5b488e7819d0de63d17deb349219f306a122432d125780d1a0a33d622331a3dec377021700c5e7ec693ee2bbf320f6eb16d43d7dfdef1b51af3f515919b23fdaffa8d53ed0e0fa189ca44fc63794d5768742eb9966b4d12e0f8a08bd89ff689c48bc6bf8c584c4702c33c77482d87ff57a2cd6a0202cfd91a3ba86ab0b984f54cce951149f005b28a572ac4b21b0fa2d3162e18d9d7e260475c2a692b9abc823c240e0c4a2d3cf38945f0d65c93d316e634b194d17d1d52c90a263ed64522c55a0ba10dff4913b65b197b977fbdbaefc74b1837a08489cacea8e13faff80a36c947a4354decebad4b6389af93d93c69fe089be5b249040b2a94913d1a544a8acf8cd3cf5217403862a182791924e9876928150d1c581ab248103767773377bbd4f52d369d0a531ae459c2356a81f63c1dbdf9883ec576abe06a8813d74a7fdfe19303138ced45c6c87c7f36f1787ee13f173cc94a6ff22f39933786579ff2603310bdc255a1993c522e02ed52d0e9808610eb2f800841a497c9983898d8a4ecbdcf958b8119457acdbf03131e85c90bbd287d923bf00a723f0a758539ef54185e7801b4b8dfb978df91b6e557e1a49079ad8526a7893ddfe7072109419b4f205554c6f44f5e6c881df87ae4d7d89cf511fbbc6668b2f6c53fddf2f6c506299c531a0adec034bf8c9d5d557fe0d90094fbba789185990d9dbf0d30ee9acec59c3060612ecf93f42e4a3e52fff28ca48379cf81e94ea8270037f96a38d19f6dc7760e8455ee32291c02a8e8014f46ba2151d0f764ad479ad305b499a0c744b1693c818f8e1a7b66b245e0a3ae36b6be788bd0da2e5ae5ed02a86df242f8cf902996c34ec56b36243f6be5e382b53002e70d1ea65beb9c270bbdb16e4fb1bcb6388a04342d5c0776a57cca6808f6e2b2d20f4613353d10ee484f5805b10a41112a840dce1e39832ec101595c8d6ee4b0ed2c54844851ba0064e71e527e6dac81f75c6b23f16f680bd7035990d630e03d72e5524f1985a0dd9b9f73f659604d979bc64d209ff0fae66d3a4b9c714f0813abf3814af684b5106b655f1b99d462987122722655a7b47b41b54c0dc09a669c0addb5dead60c00120ba4aac75af4839a27ae1a09ff256dbeef25d458d7241aa239d25982c1808917328be0c41a1dc23f0e352f05561e5846df79ddd44e3b4baf4807df00ea5ed62c7f73d7baac046e76af674f6b5648304d592fa9074f28ac957a215c25ca238c84507beb4d49c9a43e0e62b3960653d20d7dcce76258e384cc85cbce4aae6a9bd2d0ed469a030d34a1fd7c86fde955f73ba66f07b1847dd1f4ccffd6279ef6fc356fd3017cba6e84298f62349814e6b0f0fa3e8a9034df45b1db795c80b4e2894d99d942104b18e71440ca12798d79e08bc16e03e77ddec2458d0e46ae9c3299265178e0d68e0b83a7c0d4846b094c27a9657d3004a9428b5ab3e502f05bd3da6de1cacd45c7df70ea1550426fb7579c36b91a3bdfcf12060a60c575944ca211252ce13a6b72f0746e9153e1df1ae5081245202ac7d63fffcdb180f5b2ca6d631f494fcd3670688267d050c687f1698ad243c17d78aba9b8f16a025abf4c25f19b99fee74b63cb7dc04fb7035770a6b6c992dd563e7b1594629fa3f71bb9195ee0a95955515ae41f87876608ead623c9825cfe52ce34af7a0e2c54d84f56a324d64c4753b8b018c7861c95eb43368b529bf6681cffc8f9dba6d1e7a51b5787840b25aaf0f32124c34b28aa35c8783ff66074f82b0dbf9cd56c8d4b29ff24cdcc4d23c93a5c2abe73019e087e8caa8f2327a66b8547064d5839f2c44c8b26282898e3e23ee7fda7463e0b8ce0d2fd21925cdc4c2eea1707f9c46bd50991b77bedcad5968e0b176f94eef61c06872d9d36bf2e0a61f51fcd674dfae55ed227604f0de0a7eff316252222e71ac5b47b390a3191fe18dadce3713751a25c3759c1f45e7b37b739628cf297934e411ea76099a2d6c5e30d457f762a46155930c56c53413fef7bd6caec27337d16e38c62a17bf937f873d71e0f8e89dc83ab024988b1d0086b45b59fa512893dca1f0caa3b9dff17426260bee36d2a086089c5fc049439f49db6f66c94cca20340936d2740bbd671306aafb204aa7d31b745b505cd8a9bef30f0cf46a447b56b28188443ca39c192118dd192da42b29032d1d43d856c90cf09308aa27cc70ee14a4c8869ece77d3a1761d69a4639f880ab46060ca9ebb1299a439506e4d3ecaae082628a18ea3704cb5d57564e5883d91f1fbe24eb6f90ef27b85b09d61d9b6dfdafc2221a5eb15c41647e7865b2b38686d834d66c5593cc154e3006e80cc6e8d6b39be45c0ecd396bb9e8ab9fbff037c0f6887b177f39d749aef4ad2d710726cf2950708f335a672b02779dd1c786fb5b6eba02844acb824ede82be930fba3f66c19df535b2c50a10c831d0b483f142cec154f2c759d78a0ccb3d840709c89d8dc9379e109080414369226af0e87982c64cbdd17d1cbf4c9bf746331ea48b8fa9a4422c6634f943707adb3830d7f86c678b7046ed4d044a7133361b679f8059b9d4156c1162840adfb4926225bf61cd2276d0aa98824a51f3ce8f8ef7bc658149ed2ca93abaf9aeea08832c01e5a0f1a82cff83e8170a8ec47ee090cfa14ac67e77fc23f6bb8cc528df6a7a62984a24a32769346f148c9181811b727bd9925793bb4738b13aa93d08fa997d32148047d48e56efa5ea18dca7862c89ea891441e4e98fc4001c0c8f52a6e8f8f49954edc5cbcc6ba2c7711a2b78a17ce9c8853a9ff000bc6874e7b3ec6dd4700dac71164a35ce117b5463d6a9a62d605d5dcd0bb01cc238050a3105c17343ac5e939d73951c44c9629922a0ba6beeef68ac5a63c6e7ea11f7e02630b76bf9162393dbfed253d0fab395e790a13ef46da6b342a12c4b9c3971f46347279faea8f23437d7e1d066d2c9e6289b7d4875279eb261d3791da0a5583d865158d04885642080590b7bcbf7bb70d4eb851523627679d6322d55edc71b2f5af50e69050618fa3df88efac12c7fe329b60c7f20c73211d60dad9e5d56bde90338d57cc0669c4837c2a48a4f8bab8684882f8b5016649a8991bde5d9a0951b421be9f611bc0ddadd9ee344bf7da213e76e5020b26265fb53bd777dee20a55e2b362115a29dd202e3cf71e912ecce9ca96a5dfd13acb6d9256ef2f50347c8650bea3405cbb4b2e1231fb5afb8db4769b18f543f22657c8f87c94f479b5b3e896762300d1ae4982066862b4346dd0405ba7a7013ce507195a94bdea8a6a80ee566565ce4d89f451857f4a3e662ad8e59d7cbb8801d983888131cd65a2ee471b90d2110a9c61f6353563a0b0c354b65402aa9120af433b5937793444aefec00b64ad6942fcf66f573af733b9ef88ce33cccbdb4a0d860c8e29b73604a3bcc2290437d3af303188f08fda8e6f2c26afad4abb548f476e66940d581164b7130639e61a3be2fdac878097efa093ccbd1566087b3a12de0a068f7b6d7a17b213b5dc8178f507f11653ade63469a2ca69f92941a4e02b9147c1a436577c3a904ef9ad13ebcc469ddab88e31e846a4742b968197139fcec60a1d8a511d158ef53edf0221c6e5536afa8a94644af309afe1c26ca169314ee12ec47ed38a5c93204758fa02523ddd1a34fb987678ad326a2b695fe70fed56c731359e17f691d1204db6df7dce0f51e7d79b9901f36058e56c4ca131c81488e0635c6887bc649ec20d530ee49ede0f130c01e8f82772fcd4f7e2c485de17d89e38447d8b3a4ca2ea25541389aafeb628c8a5ff0b15c87e8a00a46a4b807307f8ed1cd7fb1f6388d7dea540942333618073b7e29929de1b7d20c7d8f542eda26876987159adcb3bd1d5f7c840c904c0a179566018c0ed0f9e0252127186f220a2afaf2e07fcd43641441972a21f851d27eaf0caad90851da25b95ecb47de2773c4082973257e0356a54bc5c48652c77b7a9646f10246970a762a861faa73b2ae3d4e99d8f36248b1d886b77675421b91182a312a15271007749de93eb9279a0ea694a87d65f11fc54117a011165e516da1545fc936fc72e49fc26e1896ec97b090d4fae9aa456df0f9561b4afe2d439b812c652b4835e91211c227af77fc10250de347ab8e21ef3bed7ad3d8da621d5e60545174089f27b2ced9e5320f710278bbd5f88f8c4abd5f789042441ec7175421ede588ec19f796775df951f65246891e0bf104a495c6ebd6a0992f449b853ae7356ae555058d10b98163d3265688f9fdeb391c4babc2b94fb42a50f0f69faaca2100ea86aa213cd16b40b3950c5e45a855c6a283165530eb49a72a807c80a4ffd25f39fd528ca4d31a403a09419cc2a026be541adf392d1c87b9ca656c6b9b30b6762a3f502e295935edcbb1b4569b0536f44bfe479c313483746029c5f30fccc1172368bdf21b4d5d8c973ee139ae0c2f07ced4e6f21d24d6a77003ca3e88d7299041014dc1dba25b0ab2cf12e6284d6853782097c3d2d83a05e7f16401e36f63f33427e42f3ceeead695dd2c4c5d4b378a9c5a1d070f0e56282cbf759334b99b0b8e484037a2d6f77770872816e9eab91668576a90151393f343b08596e2b8c07053b6e7ae5300a1f285d059f13d9d6d8ccaac33a093e0d291c50f24f43811cf96ca127d6cfbc5caac40f2513318a09b60f1e55f90d8ab3706e41c7fb05dba490ba553b83d3ce45e6d207cc23ed03c567122822f959f4442b1a00461016e88233de3c3b14d2f847c272590cb27a3ee903a0ba76ddddad70a4b1ea661ee2e072575a1469b955911d9a752b604d0a78d4059355ad0fa32e9fc5b980c156a7f8ad116e6d8e04bdc4dc102f87baa7e74b1acebc4fbfe93657a179a4a9ce7d86f9cba3c7f1facc339a8ec65a69c5bf5bb914d141d4e4d723da974c515d71839c9cdb641a54cd046f596cc286cff9bf35cb0d121cbff1ed4edc4d9985ed97151c695ff2bc358b930bf6dd383c5c429eed44bad2a2b1505f8fdf6ffd2386559fd173b6954d7a85d9e07c8768a604e5a157a907c340721b5f1fc5dffffb43853ff72cc5419e356675209da8acb7b669b828049711d62e6134c5185a0a1999f8da4e99f35c7427b39315987429a9c1844eac4d726bc99933a30bd713700264fad94e7d29a1c97fb81269709159f51c1ce24db002ad33733eb5fbe1df674d1cabf3e4647c9a524ba9bc70be63b64d63055b13666e09216ffbe690bb2187da4fe72ef4c3c236a286c93c730b2f7df311cfad1d877c960464d8d30ba8b6f0f0a86159228425a78fe4d3d3d20cda2050bf43f2bab06beca6e3fc3c9243d98101553c7ec4777f9ebfb4cfecdfb36d60f645adc85f2dc60a743d78eb70f002462b7aacc78344e547b5aa41039922995b2c064abcd291ad5f80bbe5dbce47d7c1427cdbe9763af1e3f9293b6bc41ed8d642f5a0b2b2dca8cff32ba15d7fa1c4ff75e1030ea17b78d8fffa21b168af893261759bfcf0fc3cb95b4323c7944e42f2cf054daa33acdf783a3c69ae6318aa6dfda8390904efa85f7ed3dea1f02d138c7a0fd856318b9c792c14b15d77b6c1f9528a8290c3480c919e788ca6a6b1e41446a16e52a43dac7d967fbd7f50097c1e86997515052a405121871943ee559fae168db397ebd58b2af82d490a75d288126db048aa64cf782776fdd0061cb40e53792babbd2699dd124061876beda4a04efa6edee25e0a821f131ccb9eee32a5acc83639449ad1491aa841d03883ba1ada62d40e9a3005e0d2521aa8658d84ebfb1479c37cf9399bd41241b8bfcba7b046b7e1b00c0408993181ceef1bfcb954610ba03b1a2890d986fc482773fea367486a6556c3615499b249c64ebf0eb61f4458b79d6fe13b7460d865f298024e27ea7d9d33e1fe10e25cf43420f951b3505590e66eb9dac71737df4dcb77f56363efb4988126ee1eeaa39887bfc64a6ae860b6e67cff7d41dea855721dcd540cbc44dc47217c551a226154dede71efe66d9b7f25034dc77dd84f1502edf5327fe7300c89efac84a14340cad8df20101a54467c558657707b6a73b236814a263cc04d85005ec76c977d4c5d7c0ff56efe57b985f1b73ae42990c73ad8d667a4ba5483f631ae70dfdb6fc69b179f605ad5a8799179acb1694a5ef1f52cfa7e636d93aa361429c483ca3d7b1676c6df681a9b7e99b8b6dfd5371d5cb0f51bbbeaf4e7f1da1ed23f01b6520d2a9a43dd0089f160f0237ad061e35e1efeb15f2a21389dd1a6630bc54300c5339cc9906e3fc0d40d6b5009250564a5185ee63a24b97ad51ade400504567a40b26ec5e45bf5991fb4ea5d3b945c4354830d13ae11b61180de44529002e6d5e10da56e67e5ad7362129a86c211b3feb4f0780ead8af8fa38b7d1fd4e2aac6a8c49bd94d41da3497ad1e87016cf4efaf79c17f9b129f2a9471b7bec0ce95e18388038f3affa391065c7c2e25a080dd3e7ca7b50540ff53caa04218b3ad356b0ebb94c3d42fdc43296aeb586dd2bdcefd0f63b76abbcad9a0a36dbb4d4eff74d1766ef95e0d0523233d04678ddddc5e6c96d52cc54392d52f9cf767b0dfbfac26f5c5c0367c6d930e03811a8d1f04c3b765717b408a30c7afe3bb2d309b5c54d8d97c91c51dcaa41abff91368421071cb7655e6a364d429b6d80f63a18027331e5650c4f543982ab7d8602f507ac7e4e1757cfb7cf55b6775b8a2be79de3bb279b3ef6dea121249652072e6d2b91cfa262e76cfa8b8fde354b906496a2c18c9da77c66a6b31d1303491ee824c666539c2fa4c5f85747804923e236daab86c41d47b33f0b8526ea14a7bae910ab8b42d8238900cc23086cbf798032b3de88d2d7164ef1999ae597b911e234568669c2eac9d89cf54e8a68cc398525c47498c8cbefdf2efeddc530462dceded32f245679d9e28d40b3006a01b0ff84407768319600226563a8c2ae2f398cc182528c8ae7f1c5ab2b5010c750744af3a013024f470c57e76ec0798af241bf3b17a5a8314dca18b00fe7ba425603ffeb5153ce0adffe14dc516b3567d3b4f593804ec958aea6ba5cfe8bab64b31db90ab04b845a4dff0e81accdc96ac1bbf296819e3b735ce8bb2ba7cdb590d9651dab7c426a5f81aeefab2478e6b61e97821f088b85990901b708f28deaaa4e49ef22ab4414df56cd943b0487fa9867bf168624894410f3362600406c0ad3f62e05f297bebf16234accc9b2b9e7c79bbea7052556e6a77488a4699850bcc40bb8003e7f19387f6d4b3b03d7ac5e4cc9511c6da42486b725c9a5ca2519856f4be55687dcad6590c0321ca278a9715c05177cf4a36bddae17a127763587914aecb705999318ad05249e3fa04c02b9ecc425bbd9c3ab2a52719d955c826ea74a52d677c76a8309e5c9b310a555f2279a2fbc5c16b7ed0de689720bd14f85cbbecf1631c67ca9bbce4912536d1e926135cca32915cd0eb6d17d1890ca86c81772337f0e0d8ba5d3d9d3323724f1661b71650a4513dfefe64aa6df7c7ee824a03992cea0105009ee4eafe996ce44a3843998e62a7ebee1a10ad1790ccd9fcf1be84ddfae9091a9ca1633071ef9fc3a276641f65208874c1b26363a7775c041eb2f7f549e040c69bb12c6bf7257358d1fb56d767281114fe70aa695f52680b647f21680c8213a2e396aa699dca3fde1ba5682b890186c945a3528bc765079ae422e7e778f649a2e9ecd89669effa21e61e4264c74a6166335e5327286147ebbbec2143106fabacca803dd2b55d323801d0d66483e693eff38999eb3731b908e16247fd4db1eae8dc384a877b17ea23b07dc4374bf268d854b1ea948ca43b3db6dd7b287e5669cc768c617597a5d162b3d639172b2c78587f853effa6b8ab4c9159f21b86d096db6cfe11116fb2a9c03dc485f873e427fd4e62040665d974226e375bb950405dd4cbcef6114d938ceb530b8ac87b3fb26e2cd64d411735a4f868a809db6e858080104ff61fca7695adf136ad996ca4d250acf5b97ec26ea1b264f7ad2c99afd6223b97edb5b51e4d03f36f90ac2cf113f91115ed2377530dd59be6fcc7d8d19c2e38bba80475215736e5d24534f13e816fdba701969229295da72a68bd09052e07b588bd7fe18340b1b9499b0ecd9780f47f31f4621d36bad8b7947b1482015614c99cd627b6078421b8a7180943bb35c83da3f7ed12846bacd2d8b5fcac49f755b369d065f985dd2c4bdfa28366e85dbb4e116470dc72a5a5a27f1c3700bfbf04930c23ae9c7ea9361fa21c5009eeb12ecd11f6433d9e41d20a9f07004717179c485dc6fb20fdf4ba1c69f43a3067108462cde3ac1a80a66f08c08f672715891e4076c43ea92e9637453b50a8b24d4c8a3cb5c6462c016581eec56432aaffc59ad4f48b28d2807dc069e3f713795252f0598039f87efcc5e7f32bae6cd8929a7d515215edafc83bc5ccfcb25b6ddf7e772947ed66fae2dc20506b58a73d4aae05008eb811b0be1e36b96ed874dcecf86207313b5db43752b2464ce20b4d5c22aa7e391b7db0acccb246664fb95f8836415b1ac72b37e8c3a3b49c003a2b0b7a984fe25ff8539dd1a31f016c74ede5bc92cc52635baf70edd9f1063614d06b413c6a52a112183b8ec6f102ede06da71a3a5d70bfe0ae117836b2ab136ba54df6448d86eceef3c52128e917944c4a346691d646b91e0dd4fdb13ef058aadfabb4693bda637744f1cab5d3e312daf1bba6dc36c64de8b70c7728718b817b53f89e73c6d1ec669fcaa2082ca1cec82e5ec84f82befb43c77d674298f5a103e4bb0c6e90fcb7ef63a44ec3d3ceab8411efdda18bbf5faa47b40acfa5434bef9693d68c9b70b234a425d576e71ceb8243d84422e703ebc48bb0114e58412d24efda84c90402311874241774b96500625de47b5926b8d7a2de0c5d166f88f6c23bd2648cbb9275be14b6e808aaa97e09e16c5b9e0df2980da9cdecbca47dbed2d98d7bd318afbc9f295c0e86da7801e5ee79d7352e8c9685620a8a73b25e2b231c82edcf75b264effcd53a8babdf28cea809016aeba013efcb6307efd74b26cbc12927d146743bb9ef6bc0b884336a12cb6f58709aaa29d123e9eb857b535bcd3dcd25ab0209989468e261bbfd4753dd6c0490c90983af6de0a7e88943c9e18f9326493effa16fe16db918b8a82f56be33d5a2bb752476c8696c0c89b418eedbf3772dfdc9dad9760c08d6e8b80ecdfd5aa7be01a0863722909aaf19035efaf506dbf959cf54865e3c2a8eaa18dedac48050c869fe612f45ebb17963d02f67d24703fd6bc14f0063234bb56b82ea6532cd6552d14da45435cb258c157162e5cb65c33d8668cc76346de51ffa7bc757961b623e579568b0a80cb44e37b5460b2dded2ddf9ac016535e966a37ca88755fdd063ca649a573db8283a5522fd299d4e67de6e2586b6c4ab186992839a0c2936c0d073995afe2cc9ebda87db0ca6adda0de3c904499d34392810d8a1d6e5f44ebab97877e405a6a5ec0712636b0fa1f1d62c293a73689159b974a9964c2ad589a363013d3b5cf28a948325141182f9a8a31a6c3280c468ecad7e720b29ba75cae698fa6d586643926adc897bce032825375e961019f0cbda352a197ff7c616b27cada1be6c81bb687db9423ce48eb29ea5526e5bcd6d14583e7ff18db79a7478a7c577e031c5bf33293bb03bfbc4f7166c3ed8427f6b68c6d58879ceb5ea3931a39a50fff836b7d117b0da3e795b2416814bc16854190e48cd9160f73acf3394bee7eb2936dcfcbdef0e42904f4da3841e399cdcd354f2f3b5e63a36f56ef27662b0bab0ac7a365288b0708d6799312d410588b6d41b84543531f4cfa8a834005bf538fa05a7844f2f871afb590de4057681f678ec3d12c9674ca34cf1bccc511c1f6765b4af6ae63ae722074c4d4a4c5c23cc41b40923eae553bc3b0fdfde26eef8b208c80229bb89728d786672cb285d0613b31492c306ee7f9e1ef24120b20b9f5a42b125688869e735d376528e7ff1c49813a0def511f88ebc1129f7470a2a6c81491a006a8f3d184ad9e36ac46edcbbae56016edfb3ee6f8107a2aa6eb838e85e92105360539155cf8fa75ccd66b607f8f88935bb894ac161221e0d12970dabf8a307ae9daa79a6d90f8d1877cc2402cfb92318da1fc56bdf8b3cc5fce35938e38de9f3afe1ce996a236c184c91849a70bab8f171be23d85e5eed6d6bba65e4696ef49a87a21ecd53cb1d1af7f31a5ce98d205fb0c65175b173b0cad3c52852897cbe703664ebca2f19d3ab2282b6be2ebd3833dd8ffb586341c6ffa07eeda71abe86946f42e73999973b9835cdd6ee9300ea69811a8becd1b15cdc59bdf9f087272132011c08574a6ff147503012cf12dde3e4d3403f499754141395d881111c7b4ed66b1b3dd11539f02a2d3651652c8e7cb5accc2ed6d12ee5648b6256edfd599c56510793211afb9cb4a476fd4eff0f5dd1acfeb38b9ae51bc8317198d11099a4dbe476b3e302ac4f45a8119bde25b047578025e14165b3f337e979b4d315eafaa6f2e3f1a5e735a68da863d4229e65f0e3d6437fa64c19ea642da9e56b7bb5906e0b79cb1f01bbe043be0c8785ad6a1bf70090a82ec9b5f07a9259d8ae7047f451dbd7f711796191d08b999f78c090fbc59a7caaf13ab033e134a5bc953960fc8964d31e168ae9a78816a7ba5f394da2d158913e2412eb388da0cf90c9b552ba2ca9d991562a60b7659b9ebffb5f3e534c2aa10dd7751f23f1756a0eb021283a891fa2aadb9ea1c27cf558a6baa5a6027e27877b29fe8b8fcdbcaba2b333e4b60a86fec98fde50224d98c86cf6972abf96299b3bc899f38d23aa621cd44ec25b28cf111ffde76cc3794eae41a8335c6910609c6dbb1614f2daae26c1b0aae31e867c6bb710f47d206d6ba209813acdb2d7f7aa38330be96a41b611d354994cbc71e949e5fecbc6853b5f7a95f4ffec2ab2005ddd2735e7980d41f7acc9d2435ddde651ffec233ae298d962c00a6ab14dd7757217715fa805a425a9120aecb943a4dca6be8d4720da30e1bb963dd4fd1759db60daffd190ed85bd518a181e445e1322509dca4a1988101e0a42eebf32e1718960d4f66de2e3811eddd57f58dc3d5b207f1bfae273ef88f8b700813c6a03b1c7672e4743a691e04fc7afc3a16aa5a7c322d5392fe2d1a0689a3cbe16618e1c710acd6746e61a4169d5eac19957a5454a82232b91235b9e6730012dc3b6d0efce768c9702e2eb94dfc8aaf6285dca1763efc0a724daea66f4e486a3adc7a9a125aebec95564c510b7b88edcc41c00dbcc1e29f1fd4558d1d383081bc93c2d27b1cae08bc7905a0445bfffd91d908d026cb975b3abf17ead0cb356c0513e5d0e7f49d65e43d630047c5cf8f304a0e57447d1b718c166a0d295d280f040ccb837503a9f142f622e0be84ae6d46a359fc069c582997e541e02b3f9aa7856e89d54ba09fab87db4baa401c78e99faa6f2d0139a1786b463cceceb20da9112d6bb334b3eefc0b2c37d7789e44aafd2b2f518d52ee11c231b0cfa36fb18b66683c1a6156fc925ebd9f6f4f256c5fe148a4eefcd8eea094f1b99dba99c40872ce83e230a6a25a8445a5f8e4fac39e9c6874a2fb24dac3321f5067b22986b5798a150277ba6643bebc2b2c9f093e95cb469c855dda7aeb84de42c30b890469754a6d1ed6f1bd70845cfecfe3fbb26f581f1f1f52b50d42dc198c73c1da5da56634e030ebe225b9d913fdbfdabddfac5c440198fa126cb3ef26f0ef234218d6315043a01409b8249bd7deab7336404d446dd729e29ed613b13cd5f89ff1f8ae988c19a6e97735310f50419f5211f95d2fed6b789cda66acb0e948ad0150d88dda61d15390b629dfc418d8d72bf4c1046a480640b93f582e5fbdcc7253aa44ad050ce54ce3703898e967dc19dff83c2143665b3c855e808749df107bffd2e4ce8585fd208f2db72989a61d76f12e8942f2c1deb071bcdff4ec9372cd2109dce3339f7626c0184a1c9bd46e21dd25b6afca9996bca441a1ad05fc21b551364b19f4cb2c68bfc079146be892076d624b572ed11168f09b7faaa2864f9ed8d2c77244af9d880c991a58e750223feef048db1d8de597865a460f89db42ae78b6b67c552cd0d520626119cccbb82bb25a99bf04cd97c0dfef57e09667d25999eb24fad2a8dce5436d46d9a5d61dfccc3e4d04d635efc7ee5bb625ea3a708fe7553c23dbd5597b4a8dfa2fa899f8d3a630d13ca8772d6594dbccbb6933dc56e5a91961a072b0986955c4079463d4eff4d7fe86644ed3aaf1c2bc3ed20ad68b4324be73d6aaca37f1105db326faff79873628107571ac46ac8a0f0d8097b5fdd261496e4e69034517d3e3a4e71d9e4db35a92abca4e630abbf5dd04e1007aa224e3efffa8cb55fb34cb05d1e67e8d0b5b166f24db62fa736eabe127d54fe0f2b7e91c6d7e8e42f3c8e849c1a95551d25893008c1196043c2395658ef8703b0b8299bcc11919af1a264e99c59837e4777b06a77a25daf4cd29d4d6e4de2e9dda66462bc88cb432ffb89326eec64c61d0464dbcf97c9abae4ff958bbb2abfee3f565bdd6d2617db4ebd2109c3bb58a566d75ce5ee8b0a7f63bc0753bbd6b593acceb071a48e77cd22e1a863046102b9fcf6985f8477e4b3ff11d1a1930bf61991fb3b121abe8244af7964c656073647d58e7fca9a19cba83d87baf4b9507387d9161d52bab30e7d93299c67b41466d3ba8b0afbe56f07563dfd61307e34997cc02cd11dae03f312315d228da713aa433513ed24040cdf6418099aa594ce14581f4778d8735d9f44ff9ca7fae5642386ae0e91db30bcaca61cd5112e8bbf145fa9a0b522e3dd86387705dac3434eb7378d1ebf574346e93ccf5a96b5333017e383cf1c1457055c6b768648a17fd3d7f0228396ec1be973171f7c738750ce32935d9b86fe38879156a0631b687b14b65b4c020d8d5754ea2f9b9cbfc24f61d38027506a35dcc5340a7abf9f48e2673b5ccfa16f7b499ac93bb07acf099e019530bed7a72d7ad6ef99f06363a6d1ed73ab3f0965e28612c542f088b9f7fe2afc3ddf42688e19265e3fdd9bbee65b04362b2fe9a73d6d061a62ba149fdc476ed0374e88f4b715ec392a37fec2eb560838d2edf4dec6aad97479fbe6bb8aaeae2e63acf0624031698658e6c0d7d588b64385971767436518da3474881f83635bed3ca0256169b6d25a51b0788803884f1a27e231109b4aa4d4ced3fb13beffaa816ea128d5b69f15787faf819b238cb51a27435f02df8abcc224ef2976a29e74b03d89cfddcce4691fd441f00c918b91a495b75fafacd7bb0d3d90efe1daa09e113583199df77337d84b34138b02df6db8d4e80acd7024b28d7938ed2290d519b5f2b56c91be8a9f867185bef76cc9969764ad429408e88a617d93bc3f2e59106a9378675a0fb9bf4bce65513a1c788dd5c8dfa1e88de908eaf864be68c8aa5bbcfaa4dae7e90e9893a158ee19a8bcf5dbcc6f36945d7a909e20903200d8eee30c1ec53922ff4067e79e3dffac393c03e050e2e4b0516cf0e7d96f9bb5bf7d449778359aebda08938e7c22556bca07a92ccac23c32cca0ea0c66737d72e8dca4655823e1a494c2a6dcd46776865650b392b524656dce3e375039b22660cbdfad86c4fc086da2642df1ece2cfded93f145530432f4a38d1c19211c3886c3d56859515d7b42a04ac5866d4154557cee15a8189c169da774860bee1f57fdbc3fe15164b49093f66c52e51d077a3fff4a47dfc57d31497d9ea03383e43a6941603b8e344508d6eb4246ea8b13db36371058de9f8c19da3336b89c0baa6948b18c8437c2047f1c847ef57360d4d08baa407717b4fffa5f0ce14f9bb043c31735a7d3baa50b3fad448eab5d46ece077f6a2cb4879fbf777e612d841d4d46544f3436f9d0f85b82809f2f825744ae567e299f127f4105f23bd4841e04aeaa3a8235f571eff0a0bddea28bea47a80f18ff9685766ddb6e0a68846571e98d146d02263314bfd6e8ca4b4b5b8ca0fda8222f8ddab2354b81507d7567eb81d43664703599c7dd1eed568d609639f3e02f6ca72a62e4b82393a4305e6a88012eec1031cb6753164b5ff2de8950aa4b1e99a71e8ea29c961d0e3da9ea9e0214ea80149d7a53d216d67a2e98bea158d7978c75ef4f9895d296f2aee767ba293a34c2e2f42ac608f01f4e1c98b5b9eb6342b6427b759e381b3358ffb13c6a537fa6aef03e3b56c249387607f0fc0034282f3a9dffa294404beb0d007f55b2a8434f699f284482bd779e9833056e8701ac92b4490d4bdd29783270a9f5e25b269e2a89eadde8d46c8476ba5fb16f1ff4af6ddfc71c43fcbf7b9ca1422763939bdbcc465fa7782942535773adbb03f478084e92f2ddc1c6905d764ea59f3f4404573dbf4e65c6c1db8438f36f421c292f7d852682e45aaa323ef7f942612ce953876cf622be4e3a2b33ec015fefd5621c7286068fc1dfd9cfb2750e090733174697af89538c6d6f412f73e5513d376bb7fc21a4004e7e523c9573423557af73132bce3d007152e1371d610f6490c0b519fda242b4647d2cac370c03bdf08c51e5d3175e53e80424591ccf08e4559acd6b5895f4ac65cef76e9c66a3d4eead175342c0853ad1abacecb344472760410f4a31ab585fdb2213d082785284345c4c244bcca3c2b9906071ca6d55670d3a342e3f3b4d98882e1a44455e100f77fe5b305ddb650874775aa9b396589a9a642799cb2a0085ffbbbe1ffe5d42259190ac747c4170f37f1d6c05209e2466bcee6741e6c11f0508dc5b24926b7deaf054ad509536cec4d6a9d73e30186a2f1b90c57d4600d3239bf75d4b809602d8413b7d8011fd61099f2455b19dd64d7928fa0ff97ef52edeb3561524973ce4bc05f037285c1cadbf1ca85455c62ca381cd6692ba82f7f5ac6e0ce7713b013bcaff21af9d126e91764f947c91d814b32a67047a9011902b443f79886628e17fde77c86489ded7836d33ecd3001cc226ee871863eb890be2d0a2ffe8f7798f00c25af24ec10255f9abc3dd637526d87aadc483476fc86266c57586762e467071c52a81433bfca7caf436f12b5fc1d1e4c7715c6f4e9d99659345b72254350139fe874865ca213e16205536624de0fe6c43f3a189d8cc74b0d3bb3535b6216927e124bd07eb139b90e8c318ef2086e2f0b9f07cda35a81a09afe712583145e5471b6dc3a4582f42473e84aaa6b0a9c275e72b826c79cdf18359564565129a6357f224a10a3fb66dc8ede2ae972fc7475c55bbcd09a203c592361e349720dce6743b3a09a0f8698c13b215082a0dd2c9e7aea1dbdcf49da19508319b834d91d9dd88dc57ddab8b892f9ce8e6437544fce4144c71e50eb7d56a4336872f1b90a651ad521280a298937331edc07f15d466211a74ec116bcdae246d50d8cdee0b27cabc50988287e190898312e5b1668cccdb26e491c118f0d369c7aae9055d31ec153bfd026530e5ce6b27c37cb5f8330adf9b22ecfae3ecc165712af21737255a7cf10418a3b995448c4579c7061a8f687b01cf3a19958709bd565eeab933455ceaee7e0e2c6d045636c4e693f44103aea0501d7c3a42ab9599d5c5c97b255277b3d9252044878316f31617ccff9d54e5e93fe2ad19df0a1d82684606613501aaeebfe6ad04978665b9c0f222f47f2a398f6aded23706e0b4ecbcf83490ddb7853b50a6ee011ca0717263d171b3152b4f4972a24d2eb28d4a2cbd13a47b15f0c120d702c6360a11c09f4a00d635b2b4719a671df81ea83147ddcaee6599ce6f3f55ce7e2a683851fe755be2bc02205634dbc0ef26c12f9219d96073a54c03da8caf5edc8e27aeff3fe13b35c5fd131003c683463313c6923b001175263b6ecc8bb089a4a50fc41ac5a1a15bb11db03a0507db593ef167aa07fcfe8d0e6735774162bd63d3eada81f40206e03282aba0e8877cab97ab9623ac1255dea8480bf88cb554115c5905609f574b0567d15e6d0224dacb7c6d3ef2452e690c172d676b558d5917bdf9168721a0e38fd5d91a9f5893711e2f8c5c5ab02178caaf37b13900ddb51c87066ae02257ed6829fd4e20ee200a1218356e0f8cdd14e0200d7927bfea1e881a3eb6e189cb92e63eb33d92ee87e458b5f3bc408fa17b23123f074aca3c7aa7af1ea3a9fce6ebe4e1949914992e8a8b281acac4a77af599bade40335be509f95822c04e4258854cb63368d4d70be12b1339f469d52c4e33c063060564f692094f013356f937e4d90740dfea467ee6f0f4a0ed2f740a8c23194ad34d1c922dedf131e24235c325aa2fd9ef3a8d1da95d25e1814afd83bfce9fea2ee8e64b21c745cc70095c2b6473c79a496db81443bcf80de11b98ca31d2e41792e1f3f4ccf58e84fbf264e9865e5c505023fc257d7cc5d61e28f96d0aec92969be9200ef1ffe1ccb0fe8537562a8ef830c978f3a0223447312fcf0c07f974f636fdd306bb0c7417648e442d30cc3a69d714f3f1c2bd4cefda7d546b0f6fafd3b8efe6f624027f4a0c3d1329b5e5218659101d519158a50917c0ef7ec049976353ce57707f60561a77615099ee1398b3a6331f7f69f737e9dded251f2d6ffd081f2e8e1b8cf2a4ddea1c170130a53b0a8c8c808e6e4d4facbaee4b876ff664bb60f287608b632ee6f643a9d7ae0d66eac7e97a5ef2b84690bde36e297b9b79683a10438bede78e2d9b0a706ba4651e6080d38ee4aef9dc189c9c8cffc4f222166725aa644bd982539060de10ab4b5b3babb4f43db00629c2fc931a367a30c8d7246e303d204e8ec5619489a7678c35ebfbe759bd01440cc593fa1dfc0bcae1e2455904cd9319b2bb72faf33cd508a9a2c06597f2a33777180b36313ee43461cba2d414c844bd624edb0f0b5c0ea032a738eb788c229d83c9403af196a4095187d06bfef21e70a53942789b5bc4dcd70781a94438f1c2d54461d0d20d86bbef4482767976c34eb2f8b7c5b1cdf254047c91ca3b71b5714307bd55304f0421595a4871ced4a2e68de5c9b14b7f9f9763b00dddc64ae28d05562df2656f64584d407cb44f684ffc8b39759768b62c31826fb4f6806049f389cf171e06afbc9edf94bc59cf91c10decd591ac35ecfca9101c13d68d289bfda3d405ea4b8dece2ea2d483b4903a825fb210aeece3f128664f393ef1ffae7f0cc77fa1da02de46bbec74a1bbdf915fa2135fe3cf84b5d33700c1d95bd950b1b8c58ee4140b72a915931ec9ae4833c5ec4e257522855f1c31f3d8873073bc3289237db6d83eb8b20b2c5e64501d378da280367e8d69d5bc137101360a1ea5f1023dce8a6837ef6617aa49f31043e8a97045cab2824ed52d9e4aa0952065c29edf249098ca7e072f935e75a0a373bf46194129d52f92837489a883cebcf18686373b31117c8b902bbfaf3b5d28c7512f04eb9d69388d766cb00fac337c623ab06ac2b400308f5a67b57b155f80aa6bafc8088a5d4316a13d6353a6aafbbb0e9b6bfe140c608447378fa8bb97fd230921f4b93005cb3abad840009d8c3b4dcd3bfe72bae41b5f5898a6bba48015f872c2a38b1549cd1b0d172592913ca5289fbc5a3155ea28e1bdd10542a47b17214abd9efdabb6b1a293a56b6ad4ec2196bc9a8d1727b6d7456e5e5e2ddfcee10e20bbcae1ac4acce9a20de7ab7ecaa789eb5fc73419832977ffc21272d83ba538356109be1faaa509fa9baad2f00a03c15469507c33a7e8e904b7446cf9e2e4cc0ae7ad761c4de331bc5ff07798b08ff92e21573c14dc236ce9e2482ec7fb31243c9346a691cdd80f27c16aa2e5fecc957b0a618d462519696bb612743ac105ba51c3735adb51750c3fcd44cae5fcaddc22224388c5195c7ef3108cc0f097dd733c7490d1614a84603f741ff2c49d029a2906505a56d941383048a815ddfb0f1390f5cfe9f32c16cba221a3ec292a9fd6edceea4c68af6a6e46599d0937904b0fa23cfea750297d13819edb7dcf31a7e976f1fd87a889f242ba869ef09ef8e283666543cc4caa2b54446b3f804097239868209f78f9ee86fc43348660efbf692f86a1e319b72f7d7f4a9f71fa1230e1d93191a12f8f5e142a7242a64296a9c349c51fd688704cee834f9e0e29d56daed07d6e2c9d39a106b0831785f7967f231ebfeeff04a59feccaf1433bbeaf937a53505c84bda84aeb956e4c42fe7207503320ccd30f94608fd9eb612601b40d62404206bb1a4b3ea5b7fc9442256dc3c2519c71dfa97e11a72ee8f1c6767e94d16c639e2e71d90f66081382696a0360793aeb79ca17253c80245503930ab1ab1b86b85586d4b9ad1cc9f7984a74f5a15a2938eae62fe622b9a2b6a791068baa60999275d7f5b33df64c58b0a4c4834aea3ce1c51c4ab565f5a06c499270e0ab0d95744415803dd4249e36e9ac258849da16be69cf20bb3608114bca0636f1ac40526d3329902870487e4f8f11cac8949a993acf34b253acc77bb0a908ac7ebba282bd05c2209b397722989872fc638f7aed791db6f655f1502047464f93905c826d0f16bbd9ee034ff9283826ec8b37a5268d4b744d8d793a5843731d655b480ce0e6cb15d78501f8c80b7242dc478b49070ea167ba74423382c9bd357af56f2f7b31d134d6950265e4ee5cc97c43f14299a193253a69a5e285bb6b62b300d66603585b90d4d41d7530a1542d972f192bcd73398f42dbeac4f9305b3569017efd8b13712397e5b27d8204fde021472dd864aa6a95394bd58850d1597acf07a7a4d3cc4457ff2424edce8b9bc5e00754ba5db26765bf948e9705340c4f515ee06b5946604610a4bfad600156ae3eb5b9b38430213398ac6d0838cbc703de2183d79383bf3cef25026a75257eab6ef19d17e6ae8f5a8dae7265b5a02826e64c4a693ba2f4722d51a23b3837cabb1c31d483ab5b13ccc37a35e43dabe8f9bdd03d24027b5e267d5bcb3d17677c8ceaef5de9e54f1d5b18dac65b48731e06ca0790ee0a686ee6ef970d2627328a8927138ad727d7fc43314c49c25f1ea99db91f7dee2c8ab42abcfd57babf682fce210969baf6826d235accc2df01c37dd0b7f6eeed285a3dca9d032524d26c6847facf4a715b8a4a48edb6b4cc1379d80c35d806f08964d378871d6453aac6314d4f0f4d02239f18303c35ede7b46dbd2d24b2788b6c992c6eb863697354c8d8999be271e10527abd50abb418ec39fe7193748dd5e485dab365a715b2102d77075f262c11e62614e264b091c4fefb65e7e558b9189ade866789e43734eae6e9179a6a9a994f9ba81041645cb2d07f2226c65809e00cf65c3362cc3f55aeea1a01e1d93315e8ee19d933289f90a519651cec71c354b8b8a0d217f9ae4eae66565735ec7d98a72e1feaef5ed17a905f77487f5f243bbce54141852e20c7305161f1855ca8ca659040c106be61a68584909ae591136f745d5799f9c67285e65e1ef90179dffbc22183fc21f8d44286453f41d68816a7fd5c2acc553a7367d6de6e5d19715f1fcfdf40df7c60feb1e1f3e68f732fe58206005668a6acf1ce73b6c24dde9969c6a05b89bebd31a789305209745e6c84f01f46d3f85c9c3a6396ede8513c2e2a1cd5d5fa9a601ccc7e867b0cb9070b276dd8fa64cf811865cb3b85e266829b8b585bcca2bd11d9892205f7c100284ebc87d0b41099f7d78175d4035562e28dc50643605ca6d5b446350d9fd582ce097ef353e1e74769f24481e924431bb851877d11b375a09333c85fe1d49a6bc09702ee4f64b9d44b9d3f122e541c12820d2bb2db43b23e5900efc3007bec56d22aaf24dcf3fd48b16d91d3f99a6f598fa15c77b686de5ee748472eaa4d2ba5f3b5d967e4024bd04cb35e0f2e2e373a8d22bde19d20d23d39999e966ecbdb9c8553f9781edbf99c1817d1b90334c324f1d536389b795c34787fae6dbe549bb10c6064cbbe6f8ef10d8d19f37bd65c14fd42c7b95e3ae5d9497c0e780635951b4de5209f18d4a7c6aaa7e09807020c61ecf68e04e5863d06397dedb771923122e310686c4a77d39954589f65a89cb9aa3349cdc519aabb5e59546f69c9dcfc7680d5f28a753705f86797dd8bc13b3c09b83dea438d6aebc79c08b9ed27403a87da67b7c2218e705a1c5d157bfc2cdb30d36db07f8cd1c1b63ed768994d510115f4dd419133b3fc7d306dc6a842d84a980367414a66c199c2db1fb49fdf49c59a7228faaa3fe91db969d752117590c2bc0385b302749a8eb03b937b1ea01bd99e95d0e7b9d4988992183530504a3077e9f74c3a6f2f393cf32889fd26a331827ca017f6d751c5a5911370ec280f17a3f88717813fad2ba83685cb3f8ba1d3fd38f2955cdb7c68574d2f0a6cb16ada1eff037c8308abb1c5ebbe12d1e7741d9d3dd8d5bc5f0398983266b72cd402c9fa211a034fdee7c7224f2be461b9cd24d1e433a1f7fb9344220431790ca9a42faa28e9b29478e2620cadd4997fc55aacf6d36521854ec590fe083648bd08602a4da803387e4ffbc1ce997ad8301057be9eb71f288ce83e006982da339de1c7f31b8c623e4fcb139a003db6e6e9a50a70d3be142f7adcf0d63a78a529215d839742e26f9f5fd799b23030984d643aaa9848bbd49a2f1b7778f8c1abeb858dca00865dfc8899b10767940fda95e45ceb0459e8a95fa5fa7e2fafcc069eaf49c1e8cfefa428cd5fe6481668b859b11a26faeb820199351d8da400e3b70c309d560192250e5e68fc86349eda21e75895bad6ff92e3431bd58b58b13f537904d700725f24d98e184f3875bd03c91d535221f4f0d6b8db4030b3452046ed3c5f9e3a3c52a292ba5c743ef7143bd45d17505870fabab60cf769b4d07207172f0159b8281e907ac12d45f5ba1893be435db974ce85e875f14dfdec513d63c571c9dc9fdc120d06600ec4e2f21d7659a7033d3cc8caa8051ba9d8beb43342b41fafe79292f7e7fbea308d80c5b4a7bdfe71a6ca8c3a1b7f472a2dd2dea95ab6912269f67ee1ad9e1496ea8e41bc69e7583f844465fc8a6036f0dee73fe55d87e71d2bb35b4750eb776c66e8d9d2ad6bee0265c7d8f56c82af8ac73303b3f08c39a8940aaf9ada06d012f0130fd5a668964925013427f0cd43bdf8bb619df9e44bbe19f636a6dbb95a131317ef8d42e21083a71176092a4258c24cf1ce6b6f5a71ecc7300bb769052135eaf97fda1179f15c66eb8540be6262b7380921e9286306eeec060811aa65096c59786da821de4711d3ae02e09bf45dca1e13ef9ad3fed7efa3db69b1414e45c1cd87b10d97f1f1e8ab6dff05bdc96891826f2bc47fed9160a5713fa10fce6d4795d45e34bfecfb277835b4a755cc69e52421884ef933a8a0fa95af3bad2b311feb32e19653b307abdc8a62757370c2c539c4f027a04755acd697c74ed63b0948450a49e968ae26729003f645f7cdae9446f1c647d17810475b79f5dd390c854a14b92936ff8713ec335ca2c664a9cef41f8f1c70dda8dcb93b55a00d56c2563c265f4bbfa9493a57dd346f403b024e1c426796fa81a9bf61716c33d574e26a3cd32af99936c2903204612e842d418173d4d81f1b23581d72d8a1c0c686598f3459e05dd84afb29430f52efe1e81e5973b078c99b3aeed0860d5a51e501e5a40aba56ef0ca2b502cb401352225a02ec342a731539d090ccca66fccb799aa44f0a15920d4d6ad78d0b725f4542df4df2cf68a2348b082a98899654df2ff912bb04b06bc0e5321d1f41e4714ddc01b383df0a5cc39d11f936bf395e5b6148f7e4e01b46a8e13681a82f0676188fec9d507acaf9067ec4edec874821ee6497c70563405c57b6f5f90c4979abec71ba27a755f2cb2fb656980a1114b1db55962924f04cd66110ff512cd6b5fec0e198e564e6264c6100edf4c8fca849136f6c2e18a92fa2c8e0367baedf2a028b686ef75cb57a874e6354cfd3b8ee92751d8887439fef0804ac0808a60352aa31af998bc476e53654b68c3a2ebf48c70e888f6173319ababad310c2dc2b824a8dc4bc8a943f36e64103c552b61bc8ea3d5e33400dbe6862db159393fa19060e66d36e8fcd692e536ade829ad470b85cb970c0141093f182167c9d08d420bb2e24c3deddb5e0e7c43b1c0c694a9d887f5429888475a459921c9c4caa67cef31872e59a3459ffdb5ea23f8c9d10f35bbfefac3d9939baf76d81fc3df318b49c1ba3539659d4bd50425f8cbcc1c9b56daeffa93219b311df06f6c85856c87c4ce5db2af1d125cba67b0aea03ccd53e03f42434aac65c94668487767b0b24fc17785e0b75f2110706b425f808a39fa6cd18dc87c51c8c1a6670e73a8f147a1f343730c03c533db92091f5124de6cdf7923b4d7df1a61dd908a343b7dc4c2ac078ce3f70a4fd8eab888d1cc0f5ea84b992b75435fa41fd450269f3fa265680fc8c99c731b4700d7dfce44562de2766a71b0eaa7284a06d431d1c2fa00be0060813655f4cb16d1067a9e00fe3479b61e28cbde0f39eaa0e7a05ce7c6f7763ea2bc9f6729fbe5170e5edd9bb3d89dd35ea27cd290ead98b8f402a187465a3c2df29a901df376084bbb6844c5ef263fd14f229ae951be761c483b33d4db960af79af0f2f783c658b5c7ba1585db05770911df9f95ce061e7e4cd14075a6f37edbac6926a918858a919c5bcf1db5e31899c6ddfd02cb7ed92b1999e4244f5b4ecc251254bd67e98ae371ba3cd50650baa4770fa649a4cdc97d507fa8e21ec1d26aaed01329ca7a6edccd086a4dddad0d87855f8432eaec1181851b6dfd7858d2765a6300fa67a17f13c8980651b5c0106347dd8ea7f1a89a5c33ad0b944a88359f6abbc366a813db8cea46a9e8fea9b9367313041b3b1c9813f00db0440ac759e367e1ed64b72ce28a3f40b1a19c2f3811981aef1cee00538dad82f884c772d83f732a46d69af09dcc49990c8e93655b6c60f9b26c67bc894c555d20ccb945ea3dbdfae42010c3aacf46de41fa8012f2f7d8bf468c84f6799a0393eac067e92b5e37b3c412ab16fc8cbe893ecbfc7e32b04811866f31ce2e55adc7a157cb0cfe1c59d64cc8afe253d4bbb56c43f188d0423a5b60d30f226cf9b58808b15a3fc503a70b6fd98bd6618330fdd5c5ced6c71de2623839a7a9f3aaea1c1512c6a037c27b60314452441e0d3598d70e5ce0aea5f643dfc5406f12a3cbd9c473239aa9bb52d6d7383797ed818e6cdca12365652eedcfd4e86a801a18eb7cc35fad3aede1aad293e5f213393e02be66313188643a1b5e413400af8cb1209b33a2f7ddf5c119bf17ba66c94da31ca25ac56d85883133a695300626354c255ea5bf9a98b174de0daa34b3e3d35e90691f0a759aacb37b1fde5b294e57cd86ce4bc9215e7a461c40a9be5dbc4c179cb235ebc9382ceb5f1e8527601891cef1bf24e21637fe5d09a461bf3dbb5dc6933f03bba61cb95701257a2d9925c21f2a6a76f7a9d5c57138e441e295a0918b77e7a6d58582c8d59b82200460d4bd04f63ba6811ea2b133652f6bd4631c8a5b50b278cacd7bb5b8101e587e11a550e03fe27b0bfa3dd2b0f9a32e30a0ee1c4bef62e1d8984f6fc4462e17b7e16966a4d197d0c39079b8dc362513ffe79eb1a82d3e6fbe8624012851f9c05331e9957d2549bbaddfe53362db5f2d4fe7653737b4ce16a24ee2949b39b093388d79ebfe2bc9182cb7e449ebb716cde6c809104656b63b896e1d360a7479cc1c707c43524d734803ad43ff850c8fa47455beeff64c25bb0faa28b1afa3ca8cca8136399c60a91c209a3d02ecaf9a204f28862ab8653792f3a7decbf397bb68f7b447a9b48339b349608a5bb6b36461ccd6198aa13bf141bef4c925d94fdd38098213072d734e024609c922f8b5c216f9945e1e6a7d3d1a6ad83ed7821bc5b3ef913535116f16ed8444324a6779ada12e87d1be4f67bc37afc7eee9a1b8283b1455558e875a9e2c1880b5d2f5d30178dbb057862f555282dc3b4af7e975eb43063efb3d1b69d778e26e54617ce863251bfe45bbfc3d1a93320deb3f04088a7899791bc367620928f96dac0cfbc406b41e69892ab8173d3f5649dce20f8f56a2a370a4fc197e4deccddea9a58f7190c06ab8593d147f919508ceaa4f97d61d7c1ad3e363a3158e6140f9810b84da3cf9597680b39231cc20ce7feb8eaf99bd25a1ba4add7ebdf823117cf5e3256c32934e78e480f4032fa27f4dde4a39c8e7ca36837d23b5ec1f10625286030581a3d2b82a550815dfabe0f536885a5f6259d1b726edd784f64a1bb2fd7b81899aa4649a44c67cf9ee878b47bf850fcb602192d8e0c954a9b6766ea71f77c669a1f09490f7c4d4faf94b9913c18e0ceb28c4dbf9b01865f9d74309f0b47c819c091c39cf481103a73b42022b7fb58ab9aa61f7a3ba26028f4a306cde79be90e7173206e8aab8d606a048d95c06d61c2161031ef8922b3a411e44923aaf53aa5a0c7943d4e1ba5bcb73de81c5af1018f1f534386867df6b46b28297ce12d08b925ec3a5b6da1e7642e1a4667559fb77d14001bd242901e61552a6e45aad30f6b089df190a8cfed872825b7c0f7696b198366decf281ccc701dea26976a52d2c7e7cd6523ca09855cc1941f27d4151387bceba988612d77c33e19830e9130167e58998ced434a34c982dc4def63cf9de01a498183edfe019d924dbde55f3357c2c2c91215fc5e822715a0f7bca54befcb715c8f36e8eff0942e2d3b9a63cbfba8ba6239ae662867cb0ef436cd604714288bcc8d42cc91179b2a6c458190a3095c86b0bb589bc974d31874aaa9589ac0cc2ea642a944859e96701b6b0b32db14166aa3e1f1dd541421bc836a997d7df67265ffe7247671daea849e579055fcefc4fe11152f61bb38afe47ef2d7ee8955da3d9dda24676efaf36284179bdb0d672953a9ee2f0f62e3a1689989fbb127f062e753afbe523155dba08a22e155bfc4fc9a5a843dd6f2e395524d13cfc145fe2bd07e8e8c93be5d2bacfc7f82d9255faecc8d5ec2ebd8d5b3cc6fddcf5d3b23b61f67a36d3371b047a7f8c62a770aa86065e917d678bbf68669936c032fe173ea51006ce514d8199cad0df4c759afaf72b64887ad8afda6afaf60f1f4059c6bc344f2d3c59adf8daecfeffcb1b22cbecf5bdf43c694771a5d2971afe358fde10d0e679f3a988951452380aee22f58e2dd568c0c3f35986e27b7fd1da8f22cf0c780ae5bc82aea08f63010d6503e5e0e8257a1fbc938f7a0ddd60befbbeb4399d2a5e99f764284574034c1a2f8b5aea42f2041ee39c5428a82f768073356eac6113583be8e2142d756d740d30d9275ea5023e94b3a9ebbe135f998794c88613261220d067a2e7cc7663d8a99bf8783e8763b136be8647a451f480c589220cc1e001acf33b528b83e4f92019d642d736401c2d95063a566778719a194481feb3567cda291966ac58bbce98d6d0dd036674de835edfb951b754d95f737020f22e079926f2ae6b624fee4c8fad631e39272c532e1ad622a2713735b1589e8f023ffb21bb0f246f5e6d1567c628697b24c60508a8f65a3a6df1a02674c5c5273594f5220a56c5981973d577a22c3abe258ce2ec7eda665987066482678a0431e4d9c7559a8981aef010009c9f7edd18bf7cc9fd509e598c921ad746797ea8324cc501e2ce8b31c88abe723ebbc4ad1bfed6e67d178fc920bd246ceb1c51bd5a931e33eab5e737ba06df386f2f1437ba405ad81d6dac29a88246fb289a4aadcc7d376e5e633994ff14b90df7d50fcd1e4e58510aae2ad51805e0676ec06060c8ff842539e83724e10b6f48439c07eae6e820252bd3a44dae7794e17cf2a044edc93f13e26adf78380d0047b0ce143e1fbfd62dad1be6506b814cd0cc6a02482aa951f791f873abca644d25138189d07cae0ef181fb48d17e1caad9f08ed3d02ed2b90d4731dacb9c908141aba09e99512db3429445d24ff69ec9de1020f4ad2548769de53270e770bc0eb66735bf18421352c9fe88340dda51c6a24353dec1bc881a23e0a1c746544ebab111d9d20302caf649e349c5c5d48556b46496b9fed926688b0a251c94b9262b0b9f2673c9c41a493317b57f27fee10fe328656677408559c262bd9860cadd01746116358039222e77f64f7ff1299443bf0040bdfe5233c1f463fbd6d3645f9c7f29ce360564846716dc8c998e5c4fc8871125529e2e2412ebfa550218ea8dcf3872d97fe081cb23536bde857dcf6df180beff60bfbc0b40536b12cadbeff068f0b043c00061cd88791befd0e516dd66f946c80298db1a9c5420663802523f6294d07eb6c1a1bc20f88d96a9d1950c0eb5ba6e6635626ab49f834f5b976f19a10386185c4ca8a7c6716cba6b8062578b69b47cdd509a06cf51aa353c290c2390129f7e9be2df9406af24082605a3aba060776e620643336c4a2ffad815f3998f875cfcee96c0ac53dc05fc8de58b795324b838e65ba705e44b91f04e11ee92c145d40cffd7761946622c6b534573392192b1152e5c3aebf6ff003d07804128375fcc4cb3b72b4f65a778e7de5c0d6c9cf0deb0e1237583b467d41e3d69bd51603c3507d7689ebaa25b50f86a91dfe348471a7028281d1baf5461ba9fab3d3b2cab78afba41c601843807ba46beb97cd1db80cbf073875875d8c98be2ab2e25dff0ee2db4ccf89b2bd4da5424a501d30a9e0d3e24f993b44dfe0557f9655811d24bf4199a3c2187387785daa0871b195dbaeba499bdab89da4427dc560e99fb2cefa131b42739757d0dd6875e85d46610461762fcec15e03a1d62af17370639f513b1af3502c5ae5f913e99d8e3ef17f20fe78bd8fe25cbe8afd13e509b99cd307f5d2a6c957c29fd1af939ceced2b8c4f93eb068296474a18af90fa488dae1a91e0d6a3621c2272656e7ba0f0efec79a4be8f406ecad5e8fd87352ec9df1ee5f4da480a55afc4522ed49ecaa8fba5d86b3b8873b283c33627b063e234e86f1c8adbc75a386d191a342573422c95d322cb43ddff27986513d3b627aa292119426418460faf74eabab2787cdf11a8b7331416e324f01acb650d29a03e8536a8ec61a172177fb118fa9884205da73bded4f95b1a2ed048bed0574b5ca54c17abf835a07ddff35bb5ab596a969fffa417457d51dd556a3f2c491f0053b2846b7c393f6dcbdf329193dadd89f8b16ca667203e12f023ed753348d4eb726ae74eb723a7c725de3f5e9958b396b50d91e9e7253e76ec9ec45a9aa5b7779df1849f16d0e1f28196877154dcf6c8fb30c563cc4f81a829c8d0e3dcb6d5d6d82ba57c8c9caafa7fbea2e845297cdc4fa24c8c77206eed897171c2942a6947fdc636d61f270e068d302df85a85fe1ddc774e1f6f144ebc45ff388e51449b234efedd2d691fc2ef51f067cea80911ca69669eeff30877d95cfb6f5fc694a2a45100e82d34199247bc6566fd534fd80162a46c436e5b1e8342c2e74dcdf12af73ea457e4307f0dbdd6dfd4d1002715812e12e4ae75bc857e31a18f6ded8a310b2d46b18cf57904c2c45d4fab413c8f85dd65ae84f2bef831af003ed3fc0b968128d4e715b06fa89a9f283c667709b5537415dba41914f8f19d48e335038e7f9bb2fd9dbb280f115669c319753577c99dc1644b6c760f4a0a7c17a4cd2846e512a6ba9c173707e76b663fc41958e6ca5097f6c27c2285a4c35606667bc07903e1e9f9475c4423c5c268c8d2e0202af45ee639174070d04fcd6a897dacb63c92c7bb3d7d1c16a7ce1e2d4341d277130db27620bf786e45f73457245e605301a8da6dd07f6bf0264e9de95cb10f1835b4f160830839a5ccf071264b096afbcf676debe93eec5d7651a9f35517e02050cf972ec1d4a268f54ea372703d97332d8776493b0d225f42dc083e7d20da4bec5bd0308e3243667f8c385ae9fa213d012a22f0a8eee0f5548f7eaf154ab6b14147fb4e12eeae459926f2b787f270fadfa8f1ccb02e1d75e76713482ddf44d6b69638b4f2b7a214e45ebaae2ed5c4e98d4dab8bb10489c6dad09a12cae5e9f3d172601f0fd50e8cf5dee33e6f1f3b04ebcb1019d3e09bdae903e6f3dfcd8beadb9ca8fee2bab9ebb41000e267c97a357b3626a1cf7f194b47af880f7419db6be642b5c31cf34bf0719fa1ea8676e2611b3dab2228c3a9852765358e74804fd4800747c05452284af9f0c12243507bbefae469717f4f29b2173b42297c3e63cd88aa09c4970dab9f954995498191cdc2a54810ed4275a755bbe02722fce80efed5f45e3e6df4d9e7607f666609a2abb36d24f568ce92c3a00338fd81648913bcf1df6906e2a30d2365d96a03b6429d50ffeaaf69313c9dcff127c9ffe4b1670374a8a0b1dace227e0af519bc9b617cf574ac5dc244d8b82e756e772a6e80a85e12a64a1f27b3b697c6d24fe4ede858dde98cb7c1e43ade2e3f92f77924b86a80f6002158c608860b788f5cf222dfcd589307833031a1d15afb7bd453b52509703755615258c680b0e47833f585bf0bd607f730a95e118e43faaba4626fa656d711d87f86f06868470bef0922eca8f1e20f73401e81a1e16f325ae34a42bbeb7b7010e2065a87f84a9e57f963c8ef21e6cd8737af3eea17f49c3ded5c3afa40b29c8e3925e71e40bdd74db698c877abcab925d0effa03be058e1b9ede96fd668c5f1ac12164a2c6590b981c58ef4b11735565ff4bf007e487a3ef175d43b2a21a424e5a8fe2e840cb4ccf36bd969e368fcf1124a56c5d7bc236c3881a66a87005056a18b2664cca3f1c5251852dfaaba0fe8734f4999eb5c46c3a892e8d35179bd2857f99dbce5df516286fd8062d3b2dc78b1149def16e1a9ff949805b873fbae115a8170cd1fd63afb470d0110782ab6f8af167f4644d95c1f6b4a6c8e82c4a3c905bc9a41007df6df857771374c57ce271fb6a672c31469487d14dd74b6b5f31f3db0dc966038503ad94bc6faae961facf0421bb19d6192393b9208ac340411d57608710cadd2725461e9bc5e5c07bbe59c58c2907da51859bb903b8b8538bd211c247869ab9db35d148f1eec7bf912b48fe88680355f81cbd226a137f4a31975ff52a776797bc216a756bc6af2c51154abce5ca04ad72191f127d9b0086a563218abbdae7f090df9f35f3ff23408de5b66183e4b2b9adaf507e9ca14c2d794ff85c17f3ad736c6eadd364e0b7bcccbb3d61c166a2ca239cbdd7267085f2574b3673d48a87418fa0a11addaa57c75bfe972b3aaf711a300f0e64b64d3ef4a6ba16678843ba07972f23f6e06198751ba54f923ab241ea38b7cabf806b6d3057748d9c4b65df372c7f4c39d47dc2a6b631c1e170ca5fb44a318a58b624e3bf98d35d9da902130d64ad0e3ec478c16614601df8507c65fdb2f348362c0ef4418638c181edae113aea02f97d44495a94f633bd350ea782290f26c08dec08ecf485f90b8d126d39e3026a63a446dc8936c666c19dafbf6ed57ee5fe3e803df55337c920d7a3617ba149911ec2370a26e11bab1fc50ec6515529f92af629ee8d6761df3687e1e4a111cb812f187ae44bb7824c4214336d36b5b6d8379a30b97038161479b95f9d1849fe46d181acb730da603ce75c12c0807cffaed28a93f79de824fc58cacc7c9c09bfa5e48210c9da3f2c13065ebf670e6ba48416dced9cd7ddf9c50702953e25e4cbffb45877446f60a31981ca9d2d497556540a067e74abf64fe06c679b7b25fe6952427396d003a44f99e9baafc4da60233e4e60509a766ee49d412ec9e8583f6fa7309aec5944ae30764d62d091fa54ac17f943a5c7dc354df201e52140edd09067656b34af258b5194c9abda09363a69e2e28bb0680d627556f671ec1544d0ebea6c63023491c534522e52c411acf537611cbd393addaaee8498bdeba88a97f43a7cab94860c6e5e03f98c730ebc46ed1a3", "pk2": "5a5101040201030200000a20a59a18f15e4febf1d8a910042bedaff9d8665edd3a069da989f82d732dc5b9beaed922ddd93e5e954710455fa6bdffb7a59fea2ad146c7641768131b0832151f58108a6d4aa8f8b24ce67329b17591f0726df2bf10f4b69d3de9eb14427d69703763b40b6e586d2e5e514ed798e2b294f71d7275e0a85fd78d68d8c0ff3080a2b3e943838519914deb10ee0891c313ef6a512eceffd71fcd195d0cd8c465aaac9f255d6bc3df6d6eb4f403d15359aec198e7908471a7d9456dcb49d2ca9f7be5c65c92abcfc0324ae73332376c1c0191152fee05f43bdd073636020e0209a4c41543a565692246e3f83e76336e2d566afc42cc6c43ca1d5b5f1d5340c86b6299218d6d0e8915011205b4917433388ab366c6d68a8a043144963e6ba591643811e6ab30142d73e17411d540781a2837c3d3cfa1c809e1aca4d80eb654e2e963b4ba1befccd3b2d465ae387fa627d2974fb3c71c3f249cd42cf6ca097ae9c03877e3a0fa170e40f065b68b574c5ed01ce960beaf80524c2ce058b78a8af2d57dd67300c705f541a481b529aa3bac93f4a10423f05677ab85f2ac0a5db472f6f46cf5b37750c779ad6047bd587170af3cbf6d660319b84e28b9e5c2d0dba3af03423b24f1ef46ca7d9133c695f7be21656220490c4836a17801be26e2a943360a15cbf4a0795509f77a4112d859558fdbf385f299912b0e146e3c72b83f5d21de636c770d54614ca0f2870bd654c720b471f2fb4cc882b844c0c6f6d98e204dd664f07d0515520184c4edd3c552e970194fb58bda91091928c3c6eb479ae67de1ad084fe87cd05807b645572410a8ce81d983ed763af22b565d9225c2b8d4dd11ee8349e752df57179623f8a72acc0891bc92c1aabf98339a26164287a4d717e507d8b83f51c708034456716c16e5ddd9cbce76b659a883bf05264b20e9cc829e126d8090b053b73e4ef4649ca72cc32f6c06b0bd6e2f3c899ca90f6f0618c7653bdb7e675b6ceab0ebe2c82b5cb02b58525d6d9808df37d083c6868cefef5004f6def710f34a146ea0a13f75e70121ae4ed61cd1783b215435aed98b2bf8986cdc3885a6c348181bccd6371057f4661dfb82fcacc7c6ead0e20749aa3985e5ee778296d0ec3551b4a408c2e8a4eb82d6d5817df832a93d9ea5fac6f777ffdf985c5288ae33cd81f87d31cbcff93a6fd7319288e447d7ad50fa3bb281d2d4cac4759814d546e049c5065e84e89423446de4b3700f5c517776bf70edffa36e76d7fed9674af8b473263d996f3ddaf7f60b2e11090da583e7aaeddcd632bd1e957234ef09d09be037b4685f897313bbf7ac7e99056313dfee2efc9c0e973445b734da033984be11446e524dafb62e96a56c05be3f5e46c2493c14d1e659380000ed9ddfaefa90c130bda3f9ca6fde96ab5572e91f4526845e56915bcc3718ab99ae8527a5938a41e1b0d46b816962cf9b1a68ed67281b7e4fef2a6860c4f7e9015a1bc8f9a5f95c7c5e7d7e5f542c93e3e89401c50270cce5ee7de2bd0dc3d1da3a946743cea74bc16b32c87303f34ea19b71f6e52583f49a8a30b9e51ef72a0a252d40655fe635af193219a00b1aebb384b65d06f95c41e75041e9d00fcf21534e1cb2d6d27f5c911b5a8206a9293286d91af2ae3849ed51a9cfd315ff115dde3d464782af82446cb41b13db467e0aac76e5a18c5940670778cbff0e72f8e0cbeefaa34169063bba56e4d668dcdaed0fd1f1bc3a8d53efbb06c415bbcf2128d3e6a55b80f702422943c4e7c30c709763897f84eb00b345304d3c0a253d293c54e53b0365b945322b1ed9a8c48ad8f0d29a775ca5c4d14af22970c540fa0292b261fdeb3e16b94b18b7c1286e1960802c4ada4aadf08a17f4d4375f62670a2181aaba846ee066f41cb9eef39a15b361afe66b93d6fd6960b8a5c8f82e4612cbc3d82292b4a81a3f2e5a0648017f47deaa2bb936f4567777dc24f9c43af7e0cc425ded80e3bc6d52813f3c79f118d4c6d505b70d306c6ba2ae44dcf9a5aa3dfa9f47530e13d2ccc63be2bca354901d4daedd9d8e1d0850c999ab0a16b86506e4b0a7eafed32f0ed06ca6732b99ed0fdc5f8669ac1058f8193d2525e6e1056e6c8809d8603373c8c018478d5d5d16b91403d22c9d4efa3b3f283ba9896f7c9eec1eee91c85b6d6f4f1e1980e8002643e77b13b2176daf2ceb6763b15f1f078e6f02b6f64283fac3c4fc13d32629707a2d51745fa5b70831dd725c99b458cbd13aafae5c3b445ce8824b7a5c108a260601f971f04e5ecef9209069c52507874c68eb64ff597ea565425c668ee9438d0987b5e78cbdc3d12bf184591a5bdf85729d9945f0bb93b74235e4e6afb4f5c972a0ae73dca891491b986789b2c1c01121c72bc407a81d4808ca72e397aa7c4cad63ed8a71afa636d83e1277e24e7831ee19eaecfe1fb1b73c6b8c2388dbb0804f5f7a70371ca89a6632a718ae2ae197e508461607e3a1d2f5e2bdce7fb2a993bea6a9156592146dfdb63f2516eaaf6d3e5fbaa2ff80abc1b990d55ce2ae8b9c63cf6325b56871ad8a7aaedeae7fb0ccaf917dc4e3d5f251e1d61ea0205dd264c8ef5175df07445739dde68ff0cb9a95d00eb1cfa18435e1a9474af4f9e9a61cfeaae8d3f9fb4601347f13247a60656803ccb5051064a13bef4acf3c3bb11a632b5bad56e8b48af9c6f783956969a8626a136318cd5c10ca2f7b3e204e094bc23fb2be79db357eed38a1e1a3424a511f43c43ba8f4f2f9500d8ea0e2b7b5e75fff8515ba2c8dcb59e581db7bcac3d742e1f70b355da9469da4b28bf2e8d7b089add34f50617afd7575b35c35b2f3fc992a290d8518979b0567dbf8b7a4915567e5f63500a75a3d89c1ad5b3b1dce7ad7923aee0b6b394126428b728f4f3c507058cbf1c4f3de28ba2bff165432ead213e5ba7711cf7f8e237fe7d0c1226c03bc126bd49c976a3f077c17156e85cde67377ede26ad199f4f42649b4e5d643f0f94df0a1f4c651b8a90a56dde65ad29ebdaba6b8cb8ecec46b2c7b6121d6e5da75729e6cae650c544068904e74f131390cfae9b74ced3c4d0142501b8d27ca802391e92d5a21adb6f86bce8cff448382a0442cce82b2fb86fbebdb9af940f3e784fcfc28081c8523c3476d66d05912f332c855770bb95266dedd267da64fd4eb8b1ecd4ff4c5dedfa5379e0ef8d4d37101e22f10b7bd395591a95edc32d647bb9ebacab59d8a783ccba6d4923c4f366bc4b7244a1e4967692e5349416985b39d41b603f1549ad885022e09aed609e2cb828c505a13930441e1c87ddfdb01151033e7f22fd698eeb73d8ae3ddee6b4dfb4c9cccbb90a014105d3dec4d4b0d68074cee9ba7fccd5753ac7a9062b4c267ca99faf7fc714c6f2c06c5f50211b921150b8b701978a132dadb08ce32247d386d0bcf9716886aafb93eee38647a075ba33e82b4c0b2755bee9cd24a93ef6eaeb324c60086b3f37b90cf9efc10384a62fec3ddbef94438e9e04049a3ef0a4c1c9f2259365d6e7a80251d0cd42673af6653548481d6f66fba47beea221c8a0c180f89a39f2c3dd9b7b73e16d6122e47e88f2083eb909cf35c44eb77cce1a50607c5b449176aaa91f9574e8c42d2fc84b38e771a8c8f6e6a426ea4f0cec054db4260a41dd9068f12", "sig2": "5a51010502010302000012132b57a70f481999d218ba98a51da249d8c2957b50a05c13380f351acc36b317077ba0fb0adcf12e87af10525631a93775e350a8a8e88cd2f7901848c2b18a681c47e4069f48271f1c3496ec668be9b82d0da9387c7e2cd1e1eefee9c295a0f19cc3bb5ebc4f1324a4f7ef219a959b12746f75f49374f778acc59f5400a71ceff2dabb0193ea5683259efc2dcc3c9b655aa380ce4927bd6cdd62315f6f4131a93a2b5856cd1b1b5083b1cb04848d8312b7b66a4ae81e7b997ba3b376cb92c78eb3849b5cec44fe8a3943ef2b78e6338622c60727567a8cee1661f4d35ccc6df99431df5c557f0ef27855c2ea196fafa70cdec4708887cde5eb52549443ceeed8601a595bc2dc126e2868783c7e7954f1182787a8f16708dc06f21502463b4775666441c18e278950052c0031b802dcb2650b5825dbbe15ca886ec7e1f5f0e9f3b8f6aed483c9ba772a22ad44defcab4df4d31a76703f34c5e65cbcd82a29e739562d284b7dbd898e1a428b8143b7582f938eb795dfa077577f1e4e6e47dcf7c860c26a0e9920e3036cf9d30e1e810795137c915e7b0d71f3dbe7b6d426397d18a31fdaca0cae5d55b7ef18c3ebc463e5e83d3606aa0bc3095f95d7f25d17d67b473cb3e5bddfb1c5f440825397d2af5674f58296651ef027d025c4f37ae6a4e25312b01262526e208809f44a6f394cb34a74387df5ecea49b85ba7c361421b929eda4d0eba7fa82b99ba2ab1b7ba9d000e115ec684698b606295ccd60270b83a871314e03a8d72a394c13b3b959eb4b16fc9e0c135207a97eddd35681be4725c541cf4e9b3039b2effe6cc24579827397f9f9eac552508d7d745cf0df27b5c67966d5a585345ee982ab20675b11bbb815cd7c024c46df3e6f5d78b24faaa767020e82cb9c30d72a482c369f812933d2c997993fca361e1c442fdb900bd6cc30efa11abd0c68895e2cc23fd8f0129a6d023236c4b9fe218b7bfbfcc3ece7a3580216a81d3b7b35727ee631ffa475b5fdca21050bbc41ff91cbb84d72dd55b87390f9570b1d010fd43a96f9bde63eb3a39ae1624d183284382a194cb57d371fad38d98516a76ac0ae237c4966cadf750d6ccbd8ffe16c02d277e3c496f6e5681f98b5217070cc7f2648bd02418174e5bc4c7b1b40e02745746773cb595863ecf173a1c7719c60a2e308c61dc7fc3555e7b8d0bf7f03d725f03eaa1027b26aba816f75ba8370c249c15423b986722d9c3dfe615ad7a6aa6def45521e5190ca3ae7247254f1628e0f50ab9d83103ef4b8490b3a3594d15fb9be571fa79143e60477239c7758d9b17cb19ffc03396ff490a9aa72f3355ffdd4368555ff92261db57019abdfb6d8905bfb8b3e74382f28c1b55fb1a7f9532218c6ca26b2bc4895c9e3007eb03c16f9f33abb0922204e731e71260df8eecee2649555f022a5d7d17c471a7e9884b98a57ff4e77aac700701925e0e33d5b30324660971bc18577cd036e4a2d13ed155d33c766eff87e299f7a45eb1cad803b54a54b336f16496577c309830c597a011f50ae384e59a886bc7bd40945a6194ccb810841555ca65655fdf55c0362f065be7c67bb5cdc19cfe32b6ec48bf2f3dc153a19535568830ec3e03f2e593c975bdc006a4bb96ea8d2bcf2631f7092df09944a69505ecf8674953ef21e2c4bea9842982680db242b815c4d7e8b1638b06e735125dbbabf7006dcff019561698430b7edd73751a9e86a3c13635f46e22d858801bf3d04203581b97f2f9c2ff38ecbe6cee6e1ae45fb2e9fd0bf6976fad5b818ccd24845681e30992c1995bbc80b1f0f0d0159762b541e7516afe68c7411aa307a5750067ab01095b55779e3fcadf1a91a0390093656636a3481e195a13bc2fb53d249a1c20302b4bc1453fe432d830f6363e2596cf51e5c7965c1db027a6c5780bc6e79b091c2bdd17370a7232facef3fa790bbe13c2e63f3cbab40dc0c94b8b2482e8816e54f8f33d1ee424259d63593a71a9c4bad3727d3fc5e751ab63e5154e23b59d87e7ed412d34e18a52f91365b66d1a3559f25c70033174ea7ab6e22d2eff006d1ace51b641465655c8382d77ad625c0af52c08b22b616fdc8c757bb8f49b2a97daab0b4c7f26ec49e5660f0f789702569cfb60181a05476cd95bbac2f3c31e39acc1202222ee4540de03d6b2784d8bec318ef7d69e0ff753ad49e817ff26446856aaa272709db71000219bf3971acc42d884987a0241de1d04924b9ace42888571022c995b6358f0749f64c6d499b2fab128dc18fada455d995d7db38901b258fe394b62d93aaab244a5053c9026af4dedca3b46f021ed7a1c391cb282ba2ace91827dabc1d88dad8e71f575d0a9a49f395a52a9095c5ebbe06272b0047b3a6852c1947f2bad9447b4d2a9d52f7ddf6c86cc0d79c59bb88dd872617960819c36778d5a8c00c88cd23fec64a7cf0258079e5439358035b6037d29769408cd9dd27332a7f011d98f1ca7a36781aeb891e4bced02df0524ade258cc56ebb3a11814dc339f5ab642edfa32672bd0bec3546455c33d09203f20478c176756814fea9f4bc8f5d0770ccf7113e2b1353a092f7ff53d36dadc9315faa9030fd4b1648f096d3597f1fcfd906fa2cf5145d9a167983b75d219c7a6daa5d3b96e7f21be025c0dcfdb1f66c75682e6b288e90045d0099e34a43b0378ee64c1f6aba9cb6d16cbbaa4e389ac8079a6b76c76a832ad0bde2d399dfca873d18e4298b3d05b257b3acd5aac0ee11b89ed7b8a8b613caf62ebc63782bfed8b6fa0246dbcf39aed1416c9dd0c6fe893b30630ed02016144d2386c86a7e3aea86a8d901b73bce349379f316381f4e2605d71819d4c6be0ee115d27bf2bc8e5b171949f0c4091a0681df796e29f47e49bd2756fa9f524f1ba89c63dd2024981870df5b7557dcda36d2cc5b29276bb0c8d748cfc4bd413f6a0032f0a42af5eeb2651f8bd67e506214276896a135d4912cec9186a27126f3471f86abca83dfa7d73656308f0fdb56a86ba21a8ca62d1c0e1a1226d56d6c7cc99b0b9294ab7e8c836ac404cd536221ed1cb5b9bc484a85f75ea6fdb40c1aaac5030f151b9681da46e2467a1aae09ad1742ae9a2fad0683f831700c22c306a3dead03050f2898720104fbaee5e300b8b99b8d8bbcb6b242c5dcceefd327663d787557eebac564caff9a8d921096bc1f48ec728273f75645e04e75bf030bf18ee8b49d48275cbc30040f9a4c55f3903f9f3a29b4e4555df115779f362fb7bfc9a23bc086ee119db078c8629941c1639492d00d09bd7b78afa2749466c79bfa3f91aec95e33c0cf87317a9aa1e170446128b308e6749db4074191e8860fe6c2d8e12729b23334a441dea3e717d614e2a0c8953338dd1089aa09670140a5dbf7dd34469b423f6961e9d91b8932eee8d32707d269936ae58d4aa527a5e781e79989e7dfe7104247bb14ecb2552f95572b25b22aa0ed2e55aaf1d9f275bd545a95b8940719000e1e9a77a9b9a13b248b589cab6ccd2659725c571e933db475de2076a0a3e633351e40ef2cd784368be2949df0e2b7f302297686f317d8149a1eb5e684d7d46045cbfdb0655d32151fc5d7c97f92836f8a2375741fa310a6221cd91e41338df2e0f9d6142eea8d19790da8dff37b33f73a100020da5e2a2947e5cd0cef1809095bc8a9fbc66b097359f0a75ffbe9d59779055e8b78112b5c5b3116d78b9374666e21981909c5e328e7bd548bf95ebbbcf5c052257d02ba20393d102ae61437b210a46b656aae31345a761095279925e04c7b4b2a27449bb66eba2ec8a7fc03f4e278c87caf5f6880335f899124cc38d7f6de5e554fb42d8e75e9ac59d93efbc60e72f3851d47a657947b281f44d12788e44fee75f3960de49d1a0d605e70034b1f27a47e31e46e2681ad5689b6b36584d106751d7deea92755dcb1e7f307c69aed0d25e166fd0770c9ba2d658f4ee483131d1596b1962dfda2575d4cabf3efd8ccf76a4e2d10f96e09b56d86815a699eed5558aadf3b42c62ada7718818b6336c811809abc696a07ab29f7585f966c4a5e1c6991167ccd35182b6e2879295da3eba3ac12e7a7e02daf476922a95734bf7c5cd2311c865415cf0f211e77eb5972ef6267202eab017f124ae443bdfd448fd1d763bb0356c4dad5beb44487bcdc488e8990fb2b4dcea743aa0ff6f4bd1e13cf4939c71d496b2dc5e2d339f72a8acff2df39258356ff302ab7d7e45956b36b09bb04d0fc3894bc510df9e954bb67e72673225e1af50b21f05937e88cbf9c7c0cf553a4f50bcf5567ebd598763afadac797e25c1d89ea55fb850639c261a77eda42a4401a07734be7f40092f07e62719cd7c8e7bac5f19dfdcdc01a362a90806a8af7ed27d1aa4af57e8442d140a9f4dace3e52bd3aae3ffd1604e28e16e93892631cda6a9a768585fc6228c4ca24281e804eb1891d87e5f9b33f367c5e633d45bf2136d7bddbc720158997a2ff328c247611cc9b65b8af4b43ea51571a5cd7a9d6bbf7820bec2c2116f9b608846f961ec0825b4ee3e2235ea48a78504185cfb3b3f40690350f4b061053ca70ee2f8afca5a472e519122af9f584e130fa6102d8924f0a0fc0666faa0af5ec49d3abf2ce297ba484fa1ffee20bc49451d53f179101570b5843381306df8e3fde295bf8d2daee651634483b195b2be786ba9abdb2332740498a17ddbb2ac40a94810e05788f12bd6b7bdd89ef46bd00a3f4fc9b33c3b57e7b9b18b90577c71418101e0057dd5200fbf23ac52cd7a6d6b2365508996bc029bf99d41d4cc96e4aa134179dfebe42c0a1f3932af3517d7829cb2dc0d108c1c99cafecb8948974a9a475d7118161bce10a4ed0f0193ea5ae8aeae78f7b5f05e513e417eccc17e9b6b64118a0feeb41af371f53185e4d33fa940c1d205c98dbd62ffe7d89278705b81178dd9c2493dac07861d7fd520e8bbefafc5bed8bce8c577d242144f0e66a0e3a7458c2f0731f03f03a790d64847885d6d54472dc94ab9de1158a9f6ebcb2d55f52534549201d7e2dfa863feceb92470e18d57a828b2b79d33e9ca54bf3b7f4fb565019af27384ea9347552bdab5245d821ac00b41b951c6642a9d97c792869fe5611a33609e1b80b5bd4dcd3196130944b27455af59a5ff40c686136ca95a79d0b5cc4b299ac8a0447b02279798f6f66b81a0d6c60da70281086402a8140bea30a96d694cd11b292b952266bcd18cd962094a53f8180b3548cada21a0612f8efdd2489345ab9dc87010834272b50c13fb0121ed450082e14191537ff7743f0819985ccf662861584be6b5924159596581133ec6c649e20a92b54fd5534eb4008620b70860ced563bf920c3b16d3515cf4f985d7a203b422e5c3100eb68c8429453266be1878a8a2c3c777d57ae897c319e9225c64b3f61cf3a64f0869b1c4a39aa426b0d9bc7f15540de9c07ae47f54063a2741cbde32c7ad58cd9d563f12c3f3b3ff2c1c2826d28f8a7fd02405bca612892999447d37097ce071f9d2c65c3eb22667e2c551d7212c4513bf52634279e40ac0cb0431a019d02a239ffccf6a985a88d4c868c5a248f0c267ecc4961fc183fb7d244bb4a34ef567f639fda7095d29ec4fff2249c2240654ffe335a5f3eb1b4b575caa0199fab2669b9c78486e49bffa6994568421f4984023e5f77bc1dd5664447de6335bc7c182cfc90b04f0efa7f1d7a5235cc4426ca3d91ee775a349f54666436a295d8f722dc74c7f97f14b04e6c259620bef9642df13cd7316723650e9b0e4c7e0b940e6d57151c681b59bbad54c7c7022db1ad0a0d54e6c3d9f746523064d9133092c4ebd5883e3bce071f51f76410172509faf5a5b8042221631182b8aa1dd3aeb23e3f65877d609c27a7f5c8f5fcda161648da601f796e05c2460da935fa7dc7954767056a443dcf0471cf990454ea1d19a4ecdf0c32765454bf9793d20895b5d04031df6ff3d58dca210a5c27e71999fc0b781835bef18ef0f6226980abbd08103e9ec4e1611e64a222e8733c7c6371f920366adf81b54490fac23c7879507ae5816520c747b1c0a2f3805fecc951f7adb40de3d8cde53491ed0caaf9bc64935a89e78aec100873cbfd0229d973228e52165c46a3a6962501bd8fdfc5712f7b267fa368c54e5ce65e1be4d40f02566739357f240978079d1b5f8edbbff047627f2380862c761080de2b61a6e3e95ad20220c0487a56a8a0a579e60247124d39a927c6bbd73df5ec08468e37422b4005f9406e8dbaa0ef193519575986744eb0beefa20f6841d29199af09031359de01530cfbd3cafaae756bcd18b803beff8670efa2d242a06116d46b7ae6d95909671b2b6dc7639fcba8bfd0c4f5a3015cbc56ebb15328d0079f0546999f3bec829dc2158909f3c37059f5d8647b76cb39fe15efd550105253054778bbbc7335e9ca2afc2eb143550545b79afc2cbe56e7e9bd308162698b32d3f6990c40a5a7780829ed2d8ff2627688df400000000000000000000000000000000000000000009101a1e23283136", "pk3": "5a5101040302030200000a20503a7ebbf4df11b623972fa74dcf6cb0ae0154bcef672aad5ddee52a512e9f3a85313af601e3b3d9278a6bbff58caae7f35947a6cfb461f6c4242a75a9adcb96029f2e91b25331907f8bf6620957dcc1573641d622182bad71408c7c150c1eaf541467fd60964b3e804b5a9808e13e9ea8257e2cfab28f5c292214573a224442248d67c0c299be89b2cf7813a6b1d16afb94a2694b5c9553192611c2a0412403dfbd966ad4265447a0d8706bd38c017962d63d5c28768539b396b6fe00902b6403dcb28077cd294123c8ef7679e6c2da9113a5fc9b9605e2f4488ea6d32c56ae2965b81d37b4554369d83fcdd528c92819320a35812281e44a5fc76414e43deb5a6dc50854aa44e4b069f7357a6e8d11d744fe7313e7d9fbc20c73bd14c2ec93da349c377f87a2e31b265ff9ac55784dc2e160620ed37b1b283ecacfa4f534ace316a2d9591f96dbe7b7ff8bdade3fce74395460f58e7ceabe2758038ecbb1af1e6c3da0cb643053e08f1d0eff5a607bb51650b69e4dcaa25f6af53f6eb99bd23e48517093423c99ad8c0a9459084c4400b49f0491e57c0833d6bd64a9959c6a39185f5e4a238ea70e7b196fc7431cc72824da5f890483053684fadb9f0c7a7689da8e3d294298b3898083ad012acb89837fef307e6a81422b1e828ea6a8db4185149f711250f15e7bd9e4b0c46ed7dc79b2619703c1499db0706c161cc5346e9cfa1f32f2dc09221cdbb79ff0c1337afa7cbd6aa46cbfa39cea187063ab7f3f2e58e91f221d2b77cb83f9a12b295c470d84a381475b1d0d0f6d9f7068904117fca69ba2a944c26acfe531c3ed409c338d5192ad8b21e8547ad83ecb007389bed8119d51e610a84f6f9ab97a0185782957bf6c39817fa18ff36c377d185e9df7651c5190c4dd9986835baa3bd3382b5b0fa25c112eed468acfc27bdacb1f87671248552d4e8921380baf5bfc53ba1a49dba998c8bdb468c117ceec43b93bd0e6bb796029c3403a19b6c9bb8c27f2c6b8996496596e847eb7e4df497c9c20ae4db0e0e047350b396fe44933e22794233d4465aab86feb038f272c3bf458404685140701fdf8666350c7dd21ac18a01d2f1b34402871be0860d6b8e05f8e279ba26ea9afc13f4cd6a0cc9087cbcb592950e5bc4ee830b216f1dc4255bb9c3dc75d0e2e6c7b12307814c578cc1e03bfb7fcebc24b1ab780fcc27fae94629fda0a27986c2ebc328dbf22e62125a8cd448657f975a6c2b0cb3b9d3497ee7d2fdb6edd7e16ba896c60302ad462af8a65399704bd8b82f6c4c13026e6e485753f26e34f7626a48dbb13d82b8fc9773a380dbd50694d535b9af260c9378a8c3bcef9b66b2223734474adaf03d7b101bf1add15a6515b6081aaecff5ec45e87921beb9ed2265c66f2b5d4805febcfb6b085b56c90c6c5827e147b3f2033db1291b4f56f2908c98d1f697f88c1899596bca96bc78ab794c336892635f7e2f180817251f93d1188afc7db985ae6b08c350e4902e6d14762aa4528731455ceb2d817034309a35a34c429b34dd3db71a25d78a03c066904cdaad900f942f8b28a8ee3e697c7f4a8dd3425a52fe03faca8226a6ea14c0fea9eab37c43e447c373c083973c2571240fcd978831ec4662fd9c1f7dcd782ddd06eed60a93d5c00f2c772420be69bdcf7acd41849b0ef11093c2a33e34cbd198d7c454c2fd2f77e7467fd0a7eaed31e719fa87598b0fa7f61443b440e054ff2f0da1c1dbe3aa22ed2e2a5324c2098f47df8ae18baf473c389fa7682c8f7412083f00ca097d019a085ba58c41e63a3b6f4361637ab06f4601df5290cd0412373e46b6e47d54cadec4aa0009d134f10a36ce660a2b6f50ec810d12fe11734433a82db14a280b42d8d327f79ab190d7e29520b5663594bbeb105fd7df6dce5a43b8ba853664a6046b51302f141ea4757566b9502ad9ade2cb7da90a630318cde89abda61f8028d592b87fb58fa7168044f70704b087573cf00c19f0233aed6be981cd81ddeb97b47cb7f4322642e25cc1ea8277ddb35325667833877c1b4c88b881361a17b84c51ca9c9e6193606437ac4be0975ba248500cc023b7c333edc730d34ec06abdf4bdd73ef5bfbf43a927767fdf815aa95addf7527bf2ed39d55ad0bed35f9cf9d6b61bb1d60dca40a385353f33aca2a70179ae104a8dca005674006f0efac8e025d42f75fcfdaadc0db418e353f08c387ccdc39abd0544b17bb660f56901dafcabf13c75996e020fd362d56a85c1d632150b76924a6c2130bc375d1c69ca64bab3c9a7e24c3877eb5c0db79ffdd5915eaadd949e52ecba4782230f526afa60185bb814ffb677b2e2ade8d5b7310a76b0094c2db2f355c930f3b5467be9a1f987304672bce02a8a5658a32ccbd47834afa70ff1c738ece0c81932b6010a4bc2f134be4363d7d47c026ae28bddc6701b55055c3e5778d8c48cd15bcd6924eec1e7f984805bf59489f66afe306074ca8ffac2fc9261a1a52f0759a93b63a9f9b056e5f2b185ff0460a5d681a6e9b4e72aeafbfe25e7c63f52ec7d344083feb279fd10c1cd86565e276156fafe221c2769963dc262f808e58613b0d64560e42b8307e4a20d9796f82a2a13a9c2646cd1017fe5685f4515336399e5288979fbd9f4eb05f9e68776811c36efe5584c4baa6f56108952a5d4e118edfdc3961ad2c2abffb586c5ca1499c140a5f7de1fab8bc3332c4d54ad9e7dba562f66da166f626a0cfb5be09d5cd171cfcf0f03bbe65baf6976d1d18336aa77fee668608ef7e9093d52e88ff761159d292dba28c4fe9f386fffad0e78c697287815f6146f3f1789563e4f53519cf5d1358d9cc658214f448f7198f6af82315282af57e9f5f6b29b80f939bb0062089b650d8f521b45b63841f21cfe5a9f2f966a9ec410bb7ea16365f3806bf5fc323e2ee9677d4d4cf34e6782b4ffa050188f6c7fd91ebb14ffb5519881766fecbdf824984d61da8bcb5e6e9f5ea05c6deea9b0a01d1104140b2c956f3125520db18df304a0aa015532726c9244528171ba0cd2a19bbb86f26a8e13792a638cc2a651a335504cad145b35f1082be6ac8678f7dd091e5b9803b649befdd6746a4c5ec2ba7fb1636df68d636c80cc5b8c108de37a33b8082bedb1eb92456a6885f15524dbb3d43dc70f5f49e73e1f8843e4f45838f88a6155a6bfa1a22e834a5a0f263063f10e1048a10f007e659bb4a26c1018f07562a2872de13d0aa7e4f29e8f7b25cd3dc3276cac5465568273ef5da0789099efb7b03251a3f53471f6e802e197275b6f35b729cb9c3f63d1542ccb3355cdf0553c71f4532873ff035caeaece671ff489d9035fab40d191f4a9a1b63e3be619ba0526c3ded2cad4c6d0221b3556ff30e030ac3d2e06b14c85cd84498234afcf9d133318cfc543e798ccca38ae9b43084bd567fac1e1a172d8ee177338e8fea4425eab75a99d8c5b736b7f70c3ea49ec3774920782057cbad050eb0b6d676f87e86afbb24cb083811ab8f9c7601e2b13c8612ecea08c7fd20de142f37f97327d72965ebb52f1112c0f8fb8a46a01b9fc0d272026c61e5d06f9135b2f8ce35536b3e07c954d2e06d8c3c57ba70b29aa83dca00e41914db966f29c734bfe507489145c70411b01e2e32a03ff77051558518435dea040100000040512fa708f79e54594b191f5fcc6974ea839b243fda2af541593e1ba3199ac2e4e91b24a31ac14443629e055cced8963acfd9d189bc07c3deda39b025da8d9ab9", "sig3": "5a510105030203020000121312d132d9305ac34803dbc283a6d2d5616e5c0a63eba79ee398e7269cd45fa77a85e6c9c53ff8b9b41ba5d0bc202db488a4f8c50bc48df01d1aa94757ab097bc6c299bec1c5d71f17dc50e67a5f09924a2d87cda4ed19dc13f54918c0b9bee497d829b02b8bd2c5f06e763be3fbd991c3282875617c6e3345ee4bb8cc9ce1774c2b7bdc9efab4ff6221a1ac2220d735990e72d83b80555ffb31425be611668f9a0d5e274c0059a73e43439a42505c339c0c97463535fedcb087202bdf9d1ab93f51a09acc880c72be9ab56c1a232564ce81a82f722c6185bc0879ea29f318c9e8bda395428b60c75e9b9bf54405a19eeab675efdf6ff348848fa455e5c0905172204260c64b9d5207a0ba6352ff890bddc8ee34269275bf6d6d5cba456b78feebfb0dcf9cdfbe1bf8a4be162aad7eecd9bdb750ba2f9eae860e8996b5065f4dc381e187c69c643749a2d8c8a27c4821fa4e4571dedae30e78653e64420967d7a70dfc2c7d47353527b85378184c95de55c541701c193bce68bda4a90413bbf680a02d5046101aea89887aa2279d6fcca97950bcfd07ce74a4ab84b883862513abe18236c12846ea9e5f47a32ee12ad32b9ac3285fa4d2291d889e5c4b251662fc5b173ba49627f6705a41d17134a71e6b2c935dbff9be5e193936c413b6a129fd7d1281644823740b7e5a61bfeba4d3b8509791dbe5900ecc75919b2fcfc7e498c0dd0277f308db6af8581e1a584d6bffb79f39938e6cfa5e53d250aca2041aa7630f16bd4050cfa4afb9c2cf6510b0daab286a91273a2283e35f4c208a02594848b474d7a3221413e0a2964467e5f8304e0641348f2bd37aade7a826f868dae8058883b9e5b45ba484258efee9bac339181f9538058f1ffa4ebea1b5ccf8d629d2fe09419fee6a6bb944d261097bc6de66156d13deea6f184401ae8be152b5523a77a9dc30d50ad9d4c580205e9b389917306a1a8336b47610b33438cef20c1390a5826b31c88a6f08a9b623502dea2169be29e72a5591e819754fbf9f9de104513fafbcf1a756d63030728604766b7955b0da8c8920eaf4ab335d94f97983e6faa4f0a91b459bd7d41a92a76a7a607d0e2609cbf352404638997016d34769dce9e5b2b14d921eb7fded7dc1143784991dfa8c56e7472084d51fff1912a98461e5ab52118a47d1d1d5e6374ca1dab4e0652f459973db2b0eb6b8eceeb246a6e316baa322edaed1016f6f532750740750ec6f077159b38a05803ce324ab13db24620f136958b2ed15dff3cfaf482f7da479ceff613672feab50f13da190858644dc1f886deb69807c439a4533e4d610aada4b355cf892f34dcd9d0c00e43d6ad3847736576f303e49e26e2eec463ecd8af72b595fc42f18acdd88556deb8a1c66a4bf19877a09432621ef3d7941ff269de9be5df33e2a7bce11cae3294a6a0b02ca43c1f1aec2158f7c8ca00b41f93e5a12e7f4403f487d73a2dcd79bc927e0836051d69837a3a86d4ac819cc8448212a671d83fda3645b3b5f8a616fb7205957bc638dd957f147bc95db2f0eda882688c82b5f186b2330f31d5c4cded28df97254bb4d2c15d5fdb53d2e6eb996778ba57e21ae19d80077543c527c939d0d8ba84f593d1dd3d8099bcb6dcac24d7652e9931d926c7afa0cd42a15ba4a53f4d507e42d24939710771990b5b4d3fd8ddea8453c5bb766aa0be5c0811434dcb6dd34525ccd6571755c9981efb2f4dec8f05ec55bd0b7f04cc924bbc6aafba83b3c196b97e19a8afec3e05e84110e4d1e43d4a4cec37b5a3cbbc0497da64f4bb06b7d1157481207c6d0c306531f05303aaede29b83e700d485dff72ccaf76d9303c5338ac72f8a7a9cbd9220e367ba513aed0ab85e5ba02b38c102acee7e43c608ff3c610423ffc01b6621f754fd728fd8b6728b007ab3c18bcf2327ca56c71224d7b53065bfba4abbb410baa5c5ef0ceb43ccba6385b928f9f27703b2b63bdcc4693eee51c7d062cba7c0ec7011adf8935c538782d213e1f81f74ed84096d823cd844bccdb14d37862c4af423325c243888c79932e02cbdb36ecb43fd03302ece04a18d9fc107c3bb4e7ce6b135394c53fe569f42d8d1503d14f125255fb74f7422d21e1ae2f11d86e9b14f59562235f26e2d110bb4112cf3e79dc2efe422e42fedd36f413bc10653c7ff4116f64d230812a7ce5227eaffcb82bd667d50662c902432c9262f897e77e64cc5a40b714aea18d14f921f0c04756ae3ad044eee1ec3b0cade4f0712bcea849813edbd5158c9d8af395d0e2ac934d3bc6ac548b810abee8a56b662047ec1828daa12d2dfccded3104b000f0d3d6813c189ad5d56b2d6d5eb5a8f6e1134c3a51b055c3471d6d00cf18f67ca28890dd7f59cee5bda32d14988d2a87e36a1a41d093f74bbeace156d329c057ffe64dffecbb6948f5d835507abfd172324d1418a3b28c2de931990e3ea09c5bc9b16ef146b3253a246d7261b35bbee524ed92314932991650937d2acbde1674cf19ca9a33a33b212a309eb58133f185d23e15211e4dac72101d8b6d685d410ccd6dc0becb8c882f8e15ec303489f78057a19febff5fa0a3e59cb9066211acbf6e3ab7d2230cd5ad5622d874f542b4a2d2c1999b4e6b2b0b9d13dc3d5dcffa6ef76a4895840e932d24d1995b6bcf22f7835241e5bfedbf63ff50e2ff84fd28d8cad225a074f8af1560f24302568954041c3a11b505702dc4a931a59280ef23ab02647135b89315b341f5d2c2af02d1ed994eb26cbdd6b183ddcc65630eb6c77df97f21d152d2d77b9b80268b833d9f2bc87f9b103d50b307bf295267efe834a9612051f6766234a0c1625caae0abb59e30837074b5085d8f2a2db33aa1620a68a462b22a26d7dc7163b56892bdc08133b6db1ddc062f263ed25a554859dc779e57838a3ef75014e27a503342ce0d03421d0ecf8ad43987b3b17d6e2501b7f5adbc54fc2add1859af21717b422c859b54d30b8fb9ce0ef3e1706b945ba0ed96e4afee5eeb76c7c5a3f11fcabc5327a59eb7212c2856714ad9e6b7a93c55184d1a10f123d33fb78ce766c3010b4086dc60a71ef7a8f41d1080693c864f3c2d1e2ad32e10adce477fe622e3a6bd8e4f18d7e6e963f7e59ac701adfba38ce744c7a41cca821f1745ed29b987816a669cedffe5f1be6089daf76bee3474ffec8ed3da6bf21246399b2b6f62b09da53db3376b69979f2564350508ee99058dfcb6961d48757fc9961e8d82c4db1de83c387b679ebbebea81499e150c5b995116f5ef1dcba1476bd521d3d79d939b426942127bc6fee352892817d02c0cfe0009074600eaddf97c9ead2a496f8f7147e0f0f54bf7a88c9e4400f892d68c115a736fa4fbebb28a91f0f86536762da7f5ec914becab9a4ef8314282022feeb72e4c4a9c22a7120f95e13ecbb2838ba6c67cd430247607431754a79d432a448dcb69ed7ab0602a2b73454bac9b57579e7f640fd4c19929d40cfff658fc24454ee05b272ffd7b6083904dfdaed35ee16a9b1e734feb5e7b6c14ff1936939dc2a589d91ed31e74fdb465344921981a4a795189c083d75ccd163f4f90fdfa35de9842df8b711fd54b58936cd266084197f60009dd924363d8215808f65785dc324d3eaea16d1ad0af66796e7032d4493c51dd9d08a0a9636cd97a8950cf4c0c935935067714a961261ff2563f5b0e0ec0f2b2c27b4cd6c9ecbc9b58714e8a01436c624444fafab459dd0740201669ae54bcbcb0a3727ddd2d30df7550bcfb3456c954ec175eeb269f7618bd75065d2825f363fe938400a902ceb12a7c542ee82ec4b19b85fd303a31a8707dbcaeb796f2993ef27cc9dabc160970298f08772301a124250678e423115430b098423b1b6a0b569390f9e242b140f27e8ec86184c963898333377fdc20583677fdd60a4184dfa25cd865134a2dbe513ba3ae45e3d23c2dfcc926e7bb1d6278509c9266169eba570e84610fa46ffb506648a5d0ad76edf45ee2fa2a864664bc04769d0d2ee950d76377d02668d7d23ea5665e28391affd3c5839754eba34fcf81a691e990a3c4faf09ae09aafa1465c860045ce8280a57d74bd5926aee06c7289f2a247e36c0f90a9de3a7176745c0e6722318736dcc990576473fcefd3f8bb801857b65fa862bfc850bea82c6be77052942e7b696ae34b366391a630a0e845048c95933a74c10ba374baecc34dfdcce5800e284b6e377ebbb430b9a02bd8ab388533bb887c90805dd9be807b5aed9ea949261bb6d0ebfecc37da7020a447761737992f9995da5bf76f7525df8cd83ae7b5908b62e0008b262b279c2a3bbfda62a4530881ec7f39699232d8a9bf65906f3af1b9b5c190b689d84fcd76dd8e6fb96b46157eb30422489d4499ba0ca5168145e2fa2d2c432a5effc54515d0ad6a6d391b7be0ff2e267c644e0ee18f51af54cfb2a16794dc4bb07aed09cbeda33b5f5285d4bfc82171d2400c536e095c52be4cce7c72e1212321edd417f742a64abb4de9bb1b106b29741cf814e9e122031bdffa8feb5b9f260bba3b6cbdea0a2ca690832b8b963675b207d2d73a1ff829516861bcbfab2c6437b67eb86561da53e8bdc0ecd356c02b36600404d0595c28957d3a51eb978b667b19eb4b305188f2e24dff6adcb699074bb3ebad198a43d43afadedad7ee5481bca8440ab2dc7327a9faefdc8d8db8512bd612539a0027b683306c209b63aaa02517fe940c7e7168ab2c0b41334d5d49b3b0a6df22d191be99c283a50cba3f8068f3f0312e89dcff00f694afa24d6e9ad960ed884857539825cb759e9ca5aa4b1f932a84b7611b0bde7c24eb0d059bc18cf04ebd8db35ad2655865d1115583ea543caa790277d6e6b4beeb47c468f9c3a2f35e7947ddfc99a52868a6053a1f68ea3a37caca33bc240c1bf4b2d56139ebfc754039c432c905ff7c1f5b4af074a1b76e472dffd00cff838ba0eff37f302a226e7451a1da8d20047a887efec989b55c970e9c094fb5a8f0629c84a6046c67848f1bc2c647f4cbf0a72d03520eca2a11543210844670216084224d6d38f6c0bc5797d571f387324305da546d58c4cf031df1332533f452abeae7c6f4660364f0fcf9db26d39cfa86d831d0244c50497c3df799845668f8c533d40531eb80307c4029143686aa8fd812a10019dfaba223c4c58fe2f6d349fdbf1979b78991af9399a373e99af06f4b86e22556f03b79e335cd78dd16f807096f53ff4d78f40813b310defeae29ddc4213c4b3fb880091469b3047bed7511f55c393b9b5d2b81513dfebc0fd5b3245eebd98a6179242fdee48fee8a32fb6c755b32258d7d78488060204b47fdd75ac200ab688d3ee0c110bbbd9ab9d9f65898460fc75579fcb6f6deb4ddab587d63b88e115c9c3281e9aea6324437011746703fb58fe0baa8fcad2346086c377501f00cb248c176420c7394e04bde1a70ac034b1ec24aa275df3dd75d9c9460e5d9282aa68566fcc9b893d4c1e8c70a8eb00b5f5491acb12f8f51a1e9bd7f9b826f0d8f27b4a6fa968599a7fdaf9feec0f7966e417b315d7359bee40c281f8938d95930aa1d92c357374ea4ef9722c2f918877a756df8498053d218bac4edc7b5286bdabbf9737b88dd0ceb3f65a1e3cb15a553fca250ef5ab26e69b16eb86b924fe523216338c525f79ce85b5cd081a91f047cad3e9ea3b1fae3bcb0e168796098a7f9a52804183201569e25a1081715c0aacd45a89938bcff99f5c0e0d8bf048f8806642ff19146f2bc994e8141c1d3c11210a95351e1a6beeb32f538c40f7f989d17c3e4ae367ac731fa29970b74989d99c8b74a740500db11390781b9fcaccd302e30e6140984586676626de217704bd7857c337f6fb9ece764a3207f2c1393420532f2c155ef4f49e81c8daa0b6813546219fab472fb37141abe899e8a0fb5a1a709656f6a52bc4933c59a08d37002e2b5b14818b0b5822cbdd5c0747a3e42c9169f64760cb6ca783366ebbf01bd65178b8982e55b01a664f5a7cbfbccc9e2e2bec4092b1c38b0fbc606c96109524f571ab7f53f63025c5b4913cedb20a3a749ca18cf3cd86eb3ece791fb26a02b99a2bc183ab37852f78ccb3d124c4dac14128f6ab602ca78b65d69321a90d2f77944b395fa37ec6bec7466ba639dd84b5ec70e320caf7835bebd6a9d9530b8f64232199075dc3ecc7e6ae5af8c3c9315ea92265d0b6f847ae394ccb4cd1d32727a69bde864b6fea36f23c80a6d612ee04ad8a600c47612e6fcf598e613c9947b1f425513f6a1ee047ea1e4de9e4de8ae42e94f0c7e398692bf0f5c60c2e5e750d5ecf5804e93e585ec0e1595e8bdf4a008a5adfcb8964d34e76c3b327e33d20c8206354d8c10e28a5fabacf68928fd8fefde3b94d881ac74cda58c377d8f531c0129082417c104287a57037e94afc2f00c8e98edfe0e1561858c909ca0e44782a5b7ebf11e52acf6456f75aad873a0d5ddf121346e80defbfc00000000000000000000000000000000000000000000000000000000060b141a1e23282f040100007460f11ad4943c06f541d9344321bc960355531f2b7bf38fb7815a5d955538c1ae6991bd35314a5544a031e71242c9230f3058982b5cc9b97868bd1cbb0a98e97109b3c9bfab559ecf82f615326fdd6d2dd414d61438416250e26facad2fba7c09f6dac148242bb3658eb20f13d11e80c337d07a90bb7d38f8f5d5dea391e2a7ebf955f2feafd4efab5c1f84053fa7fb4a8666203ad725ad7ba7ba81cfabcf6338241b43dcff8dd02892a160c1e9a304f5b0794165687dc8ae8e4ba67c5da9676e9d05bbc599cfa1734b0eea24362f2ab8c00e0b6e733998026ccf3ee52742630fb1c96cc9dd3c86bcb885d0501f2dcd29a53f678b2e2b3043c7ef6c4bb0088286b803ae1fe07b7f0ac62e6973c56f3978abdbdd35054e0a58ee79913a2981b10f92e5eedf3a1acb805c9d57bcadb94ee80d2f44ed231bf9000bc6b5cc15e31f3d6bdac2a78751322c8074cb4bb63dcf004c453a57fd94e369fd83d9640b751158cd03aae48c070b61f8df4b5cc3a8914c8428abaa0cfddbfd14d9f5b92486968202fbb1b3d4c4527c083914815100af2f2b2eee9f9c5b5569975514adb4d93965ff15e3fa745783402f79fd22ed1de576e8632ad1df81c0be4dace39c473818449596eef673e492cb04bf9c7dca35210f809a809978674ec0904f02c93f4c382ebcb2bdce4f03f943666960c5b2f4c24250e4306d5bb7135640d7605ea4ba06edaf76f47c46d3c015d18b7dd7ad3b2f85378df181ac16d99452ece826767b66dbac2569853fa19b491d7c327abe43185b3a66fdd08b3435ee9289604a53d358cc852dad42e6e3402bc32909adec8cbee7dc18c8489a2fcaf75127b9b1bc18d869bc8d27b8dbed681b7a3c938596eba8650ff445b559c0bc6699b0e6b3713dd5ccaa7dbe79151090eed9e40996d41f8b1bc445c38ea2bbdd21aa4c04bf7c61358b07c70508e5472fe255228fde401b491e1152a1730b8d94e955bc7319f8808047cd795738638638532e84084ba7241717ec7544500a191e72a4f253065dc484792054fd06b1acee791cc2b4cfa1237efd56e0b57b77f2669f66db621b21decd13148fe59c9280bf3828169066583043a8d2abb77ccc80417b963707d0f3886dea08dfb7407b8c54074b1fcf7c706450f67734996d18353e08e12393b33aae059374f94d66c79c2493afaae58ed1edef96fffc5dbf0e8547788da11cceec30cb765eb3c268478f5bc9c0a9fc41a095c3269d67497d311a8038a725b1e4514bd3fb6fd97c9f2e2d3b78f74a0b48e42d3563bb4324c7c79bf875b17063ab66a1d93149de6aebb3e3dec91737e1a2474aac530c605c41ba92a2683b0a0b1f0d14b9af35ae29ae4d719451c724208661995f43bf2c42418c679838d2142694663f3eb760d52968b5563ed7b422afb6cff6264812f02ee8b5932fac5199762ac4cc2a577d3800e1eff30c4633f812e2d6f9b229d6732b0b9afdea12fdd39fe662150c1b586bc3817bd184e1454cad4336f999dbd0de39398a2fecbb35b08c06b0484737e7a821d7d88049264129aa9ab5d24eb6ae6047ed795f16b6b502e7d8e7d2b88ea809bade9ad631d4066e34c207514ca21654aea1650562ef81d0e25030061fe8ee82c1e698d80b009fcefb8f63dbfb443361d08955e8d1eaee9b1f63b384e77445b703e7f3f7ad81d01e301ebfc44515a0be41ecc64ff96db0b9ecf05ace22ce6e4358370d3a67ae71e7cd6828a66a258cef4d63d516c035eb563d1e8cf010a62199893562fc403e776a589ab7a8e64c78277fc695669bbb81d8bd0a6cfaa0100d6eb050138f920974da2fdeff4871314aae64fc42d045d0c225c3cf4f52820b96282fb4f61d72b82b403506428f56d45326d76f2cc1132f98bd9bb7f348a5aaef39a345e1a79993c8f9a5e54307fa069e5f48bc45511e51e5f13d86e2cdbb4e9aa1e6756bc9be9793877c0c5e8e0afba658441335a55323db53a0eb1c7ab175eeb95a168b20a9bc3fabc6c133a8bf33883ccc45f41e49ed646ed72f129cab9185b3c6098417e03bcee58f52d4c0a1a78e6d41cfcd2c28150e17e2f188e02fd737a8aa5b4fc47e5d339f762c42a265cc346f4dbd3e0e73bb60493b15d548ddf07a3b696236dbf530962adb2610219694937112ebcf76e2eb564226689a868b75a1cfa2ab1e28e21bbcb0a4d1758c8aae80017169ce35c37f8d03b0ef1853546007923f975ee5f9724f4b3927f0499b3b08a33e46a38087311f331c07c41543b9479a9e9a1506b142921645d83e74f607c058b54de497162d3af4db0cf8d5e27d7cad4d0a79cd7e7042d0b1c5e0bb43a2035992f9a265d42ef0bcd4aab8ace4b9fae1dc4b9a7d247002ea3954aa6e96518b770460493bca9dd909fb8208ce9242ba6b5afecd5ee4e33973cac43a13f8f1c8dd77e7bdcd68aae3335255ee4717ef9634c148b3bbdac556f0e7bef200b88197b6c6a3e1d407c5f8054048433f07c58cd32dfa513000bcfa3996959873c0217a19fa807de377c983c4a2edf7f24a13736f6304b612cd13ecbdef3ba2153bb83698b5c85210626d53252ba3df67f8e6652545583cf1717448e8b2b93f2ecdda62c81e09a7c9e6401d2ec8245a8e55a5a67cebf21e939ceee1132cd650537937981b44c67cf9fc33aa726a2b7da0c7e1b4026dc0e12e74ad60a3629a090157f63752f6ea743ee7a7db9f543cc9f4a59dc7eeb7fdd4bfd0430d0f2d32725548c35bd70ac29dd6768cc86b8594f7ac66c2b570bfa291789a442cff63e427a88fcc4b9bab9c36837b5c13d1e3391887730ace343495883ed13926b5456227075b36462b47e2a837b9b68f6dcc4c520163746927d836bb2766e36fefe0ef6308aa5c87d79673960313b0a13d769cdbaaaa1260f05d8ffc4913713d9767ab6f998f52b33aa16e43932de1b676a12cd1e51f45dd266828e2e3feafe8914a82250784102eace031f481143dc64120f5047ab35bc3f44dd3ede94603fa3e6bd8b21bf5958a574d5dbd4fedce4b02d9caf64223f0a1cbcdcc08bf48a369944c9a183563eaa44ade08708eac9914e91771c037fba3244461363b75c116b44aa2ce34a74c66d9d232e6010117bba80f56f9c7356fde96ea91380b84bcd7df26feceb4f8cd71ad2511c33f3bd461569adb3c2acabaaafca8cee251d836b782c902644a4614e202eeb70b43c9c768c22d2b25bd6c34368a4f643e5b5a30899c16049ed7a3e8b948f26d9a1b0760b0af6758c904f66b3d7cce9f3334a28e3e3f146584dc7f2279572d473741b9628b42887d8899b15affe03e7c8e91b3337a71781e5fa3520c4ca5411d6399b5a438bb821ee8f52fffae35d6e6d01d6616ba97867fcfc83fd706d814157aecc92242f618f820f3fbafea121d94919e75418b05b880a56b0ab80a259d07a149d8e0576bcae83cc932bba9d57d1891d9b68d6471a166bdabb2a5086645ca8b804de2dba3309c459d5c12f0e805d527bd8af431b2c3334a859c17e26b74b8454aed60434f75c64f3f843e51186fb43b71fff1584cbcc0bb0d12614664d5d0489635148d95d4256ab6b69ec9e00d97b6ed3ba7d1d8668e9d976db858cd4e87e1d9b72d1903d7e25c3d47811b0721873bb28b480f5cde2f030d32aa70a89f618a4dd6adc92fee88cbca7718f4c3176c4b757b2553519a9e3190dd53a212445f3fb17d2ad1d2e42a5cf4a7e3a657585f96f2767b67024af19265b9eeb5628ccc3bd76ee3a44a6f856c58fc26473d022187dd37d0fc57c852f677ccfe22287f52a2a6ca98e5d04066f7f1cca668580dbf96dc7c539ba7bcb1134081e9440a1153c882eb28f1bb09288a628afbf61b73c0b1640b0da8004253ccd2864153933b4d5afbdf6ccc09e66d875357e48fc5fb62ed8c7e48f5cdfc897c95cf4ffb7a3326280887eac5edf3521c02adc1c9f02c504ce4fec054932f762145f17cd4f3e5f083619435ea372072accb28028c412f54cf6e9ee35f0236d1b98207832d3280fa11f022a3da76f070bf3011665c489b618451c7385c437b14950747b0b9dd4d630e4e5002fe4c0a6dff511e3bba6beba893814a6edf1bcd9186100b7c1587a978e0bd6950f31a8a68b590cc0c56a74caa06fadc4528094b06b6ae07767530f41f8742a5a566e5f19d029a936ff6e86173b1dcc56fb0d89f93387609d0ea4b16857f491b8564562bb5d84342693ab2b532d4b6dcff0a9a26dd144464699494fd7f9e82da22c9de7f4e4efc383da25dc17064b614d4bb310334fbb20942825347ba3eb02fff33926a28318fedd7159fb40731608117b497e7b45e9675946c7728b60b015771f0474832e4e5f6a6345f07d7f59b7a64c67b7c8a3b37e1cbe54828e9a7fdb768c47c1e923bd8dd708b96251f6a2e9edd1a6a70f21764eb2491214d9ef52cf669ee45ea04dd23e29f74346071c335e3c766a1edf221bf2f6944b02dcdb907ac6234e4ee9b8ec059282e2f56ed7abfce46848bf3dc4978022ba4e8759f78d18904cd9a68ba6d45b8f88b9c9bb3d2c18161972d461764b0ca8228c7b5e6d23cf25d3e0fb3cf0fe92116059670e90dbba29d4b4f1ded2d88272a4be5b7e1855213f0efbf38f5a50d89c94ebc4daf0b9e04daca1957441925a5953b213d17194c5dbfffa98d74068af118b9d2fceaff734568a983d661b14ceaad9e9cd1b433ebd1bb1c659b461675590b463e24c9f6cb8f0882cb88c967bc7b874754503de2d0a912ef99212c0f2b7b7612759fc58feb215125b58a5c132130a573f5edf2358dc386fdbfc697f9f08105940ff26c41c7f9816a736d55a325ff50221399968661cdbc3024668bc49aba63b794a9568f965250edc9a768283d3b378385ffbf9d0c5fb0faa4ed368572d20295aeb96eea0d63c441f7f25fc8118a93a3461a9aada9d6af992b090a6dcd04b13148f2bea7f48e06bac466a78dab3836916858db91ed95170fbf2d9c7818a929aaef669ae66212ca63d9259fa62bf3738798b83519c6ec691569898559ac86a5be849db642d82b36d4c078cbe73e23caaeeb45a0cff6eb5c2a269602334dbd1561fd0d0bf470068243d6ff11f4dc6f9652ab99935ff82a3bc0ee4e0c6ae4e39ec0ba90dfe3fb4836a849651fede122a2751ef18a11fa381e586d31ba980753e7de9e4ccfb9acad21c2be8aa37f7bf410a7db8dfc5c37069273663bea8be85813a6006748183fa7fcfa1c67d015691b877f45d8c86992ed73203c83b3e7a678982a34e90f7317b34f623e21c922292334926562a076c476ed41b945bbf760ffe38a6b0b05b9d4764d075cc22b8d73684853742496eb7d0757050de6e2f1a2457a5296b0c6be8588e2f6c06c4b16a3a423d8f08b737ad9dac435915c872b155e5d70fc9904b64bb89d7b07399f8bb3f605789a2644f10c10f582278620f82ce1a48242be8d1fd3b211896b0fc98b0c3180b4ebdb476446d32cdd74a4c6c90fefc12466c7283f6c0af05a54352d270dcf570ffe616cf73c991856e32c9656677c16f7af7e64b7ca219ea615e4a2b438b3f6af33ed21627e8eef13381c45dfedda27c4eea6a9e8db41a9c2522c179e1012aa7aebf9cdc9308e3876ed2e1db3237a90cce33066e4810b874c77dcc7954597ab9245532e879b2c24fbfab0b8bc8f93d5e107fb0d45357c3282aecf19a4180fc649cf80392b8b8cfcb0c92a5b6e5cd5f6ae6d7469f4249ab839be1a876ff4b8d87ee0a971332f53757cf052f0a5b915188d22207ce5c4af0cbc22e150293cb8014b4de011ef99e7f14fb8e95c710d382b0cabf276d9219110e7a96c8d525cc7590509cf588d21e5d654337d029418ba185660c603c7c01efb7560278186ef2686565a281096144eff59f728e5725acba74b87fc4e793182a54774f124def566261496866940e1acd9f35d5efc4bacebfb5e6d2989a258e38e1b3348454697748544e2785896d65f1f1094a4b1773bccf38b982f18e8285f6d2e794a88c118cc3903ab557ca1e1912e3a2c8bcac6c8807b1493c71c066682dadef4d6d64089aac8336b9d10367bc8337913847e9771ba2c0d7ca7cd13d5cb6d997c6b210a4e14429140774b9380721d9bd92d128ccdfe3f84214be384406c6a6e074b911530e207746c0db3243301a1660fc9a44fca60fc31f9c72bd94942ee6ef33fa9cb9e45f8f0ad5f4bd7a19a10662dbe6c25b12d78140ff77d991e989e8cfb2c0ff5b7c422c250610ac183920dcd9901f3c5a7c21e1b9d145ad8d6ee54bfc74b245ec414858eccbc567cab0522c0b6f829710e7c4b11129ea929c38f687b9eebaf1ad58dfb77b786964d8e81eac581c03f242d28f1a52f0e0d6fe2c7c4e9bd65224f50dadf8aad1f1f4d8b2a77ded4f336a20d4556c8d45e2d6527d5c1fb74ee6054618e4ea322f6e9840331f6b0fe61d49ab8fcd80ceeeb90b22c5f50b7fd61772d9cccb8a1bf7400dd29c34e02d9f1055d82e0327367e8fd633065141a9df85b8b47e56de1fed13e8b6e23cc59826421318262f4803f8bb44dd3af930000d99539aa2e75da7a5a7c2c84fa3fb6483698209260fb6dc0291ecc0985dfb15b116cfd8bd31de0d0d25c09097026beb5164198a6604acc8e8f53b5297071eda1f75f284eb47bb2bbec7a84031ca2fa66e5c5b9664cc648ebe2d0e43f09214065416c73eae87e87f9c9f43eb484ecfd70c1007330635e2b65a5e17c5d0ca8bfe90331bdbb792977f43fdeefa58fdf175cd250e6afab0193f0e703a41b3357a0e7e9b18597efe59bcfcdbe67225e3fa86d6f4ddfcac43a48fa6ac5c25054d5c8cf0e4fd0e218d1127a7242f5bb701ecebf74051db19c9dfb7c821d1db5e4f528ea3970f9b260f7d292394350f91b6c506718023a9ea89f09fd2c400d145000b3d79f71cd2f98dd62439c355055bd4e7181cdb206dd1ec7f029b8b9f2528feddcd99c301fb4940631c23d1620eaf606917e44c0c44531b7b2b5e7826d928d879cd78a8cb55e16fa5b7eeff3595ae3224b09ea5d747067742650fcbfc49fbfc23b4c876b43bbd09940556aff8b3261152657270d465782b48179f25658d7da9483ea8fdea3e78cc5df8a95bcd1c73af0a37a95229a7692ceb294fc85b9d9be8c41f3b6c542826005bbd9ff467efed70d9b3df35892f83d21fbb2f0723712c04e2fbf03013dc066c11f3379094edd889f876adf94bcb7fa27c99be804d49ee5c2fd941d281941937a78239a60cd7ccbf374c9e00f595184f05ec52890680936a10b82442b609ae484f1edb9055f418f9894b98ad2060c2472915a9fdc01068a166637c321f08c4b0398c0299b09d9e781fa3cacbc4b8771bea2634025f81d0cb080aa9e6727404d437ccb669ac4a03d30cf07f39d27b87f80a17428b745161853473805449c877a9c93e8c44e096e51aaee78a2ff790d2c0881f821af8b548ab9988a44d161261481247edc5e11c6bde4a9957b5173231481ae9cf5f91309e58d7bd0d4a4cd9e951bc19cabb113f825f501ba8a87f9232e47e03bcab66078e02506e7e897eaf4734c6e912214671046e733979295c92702f9d167cc9d74be864d391ff7e9d58ef2d1632d88986154db70bc05c5790ea6d46f07da14cb453a26b83406bae81095049c0a0a8d00a7bc678533692636a2e2d2c24361743b0616787e496d151a2e1e176ea94ede89d7eac8afa67933cce74769f8481d6076c22764f1ba89bd84999854d01694ab5218479a92535efa46f6e873e18bbf161a980e4846dd9fc11eae8a367b6f56744f87db68ae6fecba90bd3dc70e9567c5da6c3aa5d9f8c8edadc045339c1901d4e572356283e9bfefce4980ec1881d51013792f8de84f7b16bf567809948efeef9a189541098c16614d1a550942901713f082340bf622f0de1688f83de5480e96e6ae1e05f96e4ca70f7982f86541af2e4d5fa0943853862aa9f91390bb7a99ec2f693043c613fbf7fd2d76694a0b44b21694d2082aa1bccb51bf2aa1fab208eb9742127b224260059863d875d477bd60735e41745331ed78868c116a756d4fb61c0533b8d96fd0b0bb8ce8dc59ae2ed236e1a4e575fd97bac9af011911a952b81ccad6524110e439b7ef3908cbfc712bfe8b8abab74a19420d3c3515f5eb7adcbddb30f6084b203c4828df0aa7d4c80b49cec1cfcca2de110b53dd248125de42ad965631a3fcd9bd4fa8f439d9ccada6107b79a7663e730d84512cf2cac94af6d10ed10461afcd3dcc17bb382db385c317637bb7e2b040339b79b81ef20f5d91cb6b8df6f004a55752f4e1df69c02ebfdd43f4165569158aac1399131b9514389c1ddfd36a2f983adb2c7fa82c3854678233946259f2fedc595344f3453b12934e3ac4709289cf37f8eac3f33ee6789c588bc4435bfbc5aa98330e654df5e4e765cc5cdb9db42365b3492e3c5352c08a67494b19a9ed69382cd0a35edf7f002c26debcfcf643895598ec1e8c514cad5a6c2658a982071ed570db0755df4d49219a60f2c83087beb1497a6aa070dab190f46c20635b0d347ab0c80929b9bf7fed2b26497691d3a20e68287aa14af3929737be1b01d89c171e17e589188212951ab7df1b248845f52d9f69c54944ddaf135ebcb5fa45270b58be295c2b0edabbb18c1c77b6b8451eeef4b175b439c5f90b0b453449b325d49e4964af0f7d9d12fb161db2200e33751c9e114c8fdd830dc2fc77fe3909625acdb3158e90832895ae23223e11c63559d40f62c52ba7fd645c79d09b061149e10f53567b16ac509ec277361b1fcb8972ae2d8a62c038f8ed83055e1b3837b7ae1fb3c4f3e58ca7b195b4bf0dda94e36992055a81c7fac95cea917c129edf0c9f909e46b42aa98f4798a35953184b4c781283ce971252a39d7a36254ca79a25e11946c7d8a2b016f2b92a923546f28cff0bb429fa10101cb7baa70b32e470cafeb31789553432050765e98fdeac2f385f6ebc249bf3cfae8ce20af8364b4a272a90ae8b7e8b017c589b79a662f7a41e0778d7d0c158cc9e7e58d1d2c0562ae79510a2552d8b7ce27bb4166457c1968cf1ffed943e052c06ab994eea13a486cd8954f962347f8cbefccab702382727cc68f7369c477d8ebe05f05217ff3811b32b4d83fd14e447c1531525dcc19ce1435ab48c6660a534c49bf9e38e4f7e952ae18c44c5d6b75572c0c1a55315f502de883c14e7af824137b9a7675628d8935622cf21145a9db0861f5f1b64af45e6dbd40bfa216cc5c228f036213831d50d7bf3f18f88dd2f3ce0a536b1f9b194b0b5f6dcc7942eb25f10ba6811f4a23ad1401269b2ec2f71e33991a3fe960f8bd37ab4ce1c81b88262809bdb41daa761577788d214e05f415c3962eeaa05f98b15d43a1db7330e89ae617c6b552684aa444427afef227e740a97b764a431626b44750ec945b947ec7177ece3e511033a1e47685f4ca71941f9f2f289b921434a432a0df96be7bd23f0e2284884ee264f000bee1d4eb71dcf58bf64804e94a883b3602dea60ec8781ed142582a5b2536cd96fe7de61fc6caa18aea945101c37893f235d102120281e24b2ba98331563a708f00add9f0ce9a999f793ec136823c150b7a8126bc8199076731c7c3afc54bdc69a80d4f266f50280821b76e3cc49a7a23f88c59ed3116563b5c2581253bc591cb4c8096046404716313b344f4898789ca1dafde70880d94a164f29471eefc8614bf2c1a456f002a50b1cf00b3b30aa535362272b800e0e4bc8d0d02b54b00e8df02a28565407c435c26fbe9391a642b58098afde613a66acbf2941152d1ea7195d8fef126c34759421de5c2d910ad7611d9ac94ebf22df4848aba6e148c4eda0fa6591be761a607c7c988c7c1abed45d79528dab723788f3c52bca622c5b9dfedf776184c35e79d9162ed9913c526ba7b836d3cfd214995a6e8a79d4aa0e74be34c473553072ecc1d2c75a22c3ac5274ac2a09c22709de535325e78364eadd6ff69209c2c697c4231880c0791b30b43ddebbf057dd817bd8154b04171c09c69a35c1ee6fc4c79dcfef5c7c16a661a1d5cd6c86e38a6805cf4a53197c3742140429c56bfb8a4349a7facbaa269c03fd317fb4dd24071243c0234963c315016e9a91a7e1c21fc4b39573cc32b35e47959f162ade4fd19cc10de9580d226f0cd05b4066d6722f8f23d024bd37e55f4241e1d8b1430ec272c955a1597c5aee4d006c823095b71b1be4f4d04cc3b8ea9d8c60fd90e076a4de67543de95cc2badfdbe5cb5a0d847df79bd6cd431526f679a0400c275558804d99fb9772996a6c612a11885f170348828e9f7f236199293e5135256151b1ac68f740ce1de40d153c3e27e97b1eaf17d939158964b5ecce3bb082a15847f9a84dae0a138988c5acbcab7990d9279ce46d385a76202dd081f000bddb9c60b4aeca7c32046c226b8228293183d51c0d18d9274ac208ce2651eeb66ab94e76f46ce6d93912fdd6e14d558344694b137f838abd4a17d83fd14fa59bde5737d2872f5e8c2b049004cd89e5fced4fef6014c9424f98fce35f450048549f51eb3e3274293586aada60237f6d33e015445cb0269e7c3d4e7f17baa64e091cd506d9fed6c8aa87b355edbd69ebd9f30e9a6eec8160434eee208ac4fde612aa28ce9b4937f630b74fa64fa0e50ae2cf2aecfbc3dcd8ca7a274175561f50dbc895a17e96a9043736a942d6d45ccf6da68b06ceb37125c8677368f0867bdfce561949efe548dd55bf808715bb0811c42a9186eccefd3da0197696abfd29fb00f0ba7d3ae10bac4ab36c0d926088f7ff9e99b6dc1aa184bd4a07633d71cb66f36f4d98c5b2cab4731010aba258e631c98d4afd3416ad953872c0b1d1c0559d36dc8670fd5dc869702636839b18fbe1a671c19efb9d330d59ac09261c55d002d15aba6ce13ff79aaf3306551eec1589e6985b33663abd0efcac7c2346bee299e21797297f0f4cd6a37c16a3d59e4ee82393ecfc0f69091b69eae64711ccfc1fadb53caa3a1d370b770bfb74d67b4893ea990bbaf7811cce333f9044ea7a5224256949c463da49e18c0899d4cae2ee807cbce53b935d421c9e0d8a0b7b8236d736c3be602aec94422ca0614e22cb94a976e4ca75521b3e1ee29c4fb7dfa6b326bdad57ea5638e9a3fc12c2506a0af078fd8df01e1570d027b23a6f7308d5d1bf9ad0c433effdecabb63542ca1387bce516cace7351137217086a5886ec87b32acb24c53fe64ae93816fbb9795e072e115eb34f89afb95cd354b408c9823df30288d70a1e550f74e5a89949833445c8b282bfd47b121475e0d34ec75c22875b48ec8d08c8f3212477855e462aceb943af6ff077aab2a04d7ccfa1733e4b7853c87d19f30f623abb58a4dac7202dafb93b2d04236b84c2de85c6dc0d11f4349bcf65ada46d8c5ff15c9c6a007a97700ee5cfa064f6883032e71c75e48138c8aed7742b3f3ad1e1279c6ccf17c6719fa653b70f27a96ccfc32c772e82206f018697e5b958300afed09effe5a8746c17f983986707ab0986a395a104daee7d5fb5d7d4f2ae3283125a790fe1892b04d71f656ed75ce675384a97877333d748af750ade03b0317457ec5e5a0c24fe9cf1fa6305ee2a5bcbae4f2fc71a87ea170cb48cdca7bd32eb08b10006863d97413148fb9f781bbf7107addb64ec9a723eee2add14b5c1facf1930e245edd89bd6a7703349f40072cb9dc7ad6356ab6729d8ad57e7bff5d40d636beda5cd7ca5a091b4f8e340589192a799b3ae2e2fa29ca9e72f2da4986fb8a3578f4ef0a78426081f69baa9b9e1cf1881bde6de9aaf834e34fe157907ed5fa5c5b77ede3a9157c666ba31ec529e0bde55dd352afe7dd5614ca3b9d5fb7d9345326de812f1b686717d2199d54ef410f293cecce04a73a05886028d6816e29a484375bc684767260ece569288575fbc260a067f32faa444133177a98e062acabf2bc4e95f984aa75fd026917bf12463a7184d47d28081e110effc44a7d2ee7b4f697915bb99b04855e7a117e3840473329769e35f954a04b10237d140db3eaf3d2c8e1dfeb02153a260c337e40941ecab6822025099ec041c34e7abf1d6862f7bf4de4b2dac89968c2f388279d7046b1be417cf349dd25cdbd96b6c155096247adf76a63d1a7c0f9c241cbbd2cc4b9205db599d4010aff6f429876856cf0177007d2dc8204feb105583674c25f153148279b1f74f9e4cffe513ea1dd2176b02c8a5524b3ae825c35947af0cc113350244e3ed76c1088e9ff1d3f1b3adf032bab282aaa94b34f2a9e85c424e35bbf952bdde87b2d9d37915918b736caebb2bf678b1d74d002d25c5d0a4c09b571e1ff4f267fa6139428d7e6adafa2e75e8b0ce4e97213314af313caf8e17d34e20182d83a20d6d51238809fa1a08990709cdf1c4a942119d0ac300d0ffa903d4e967411d6f8901c484f3d52e912a97e4b1ab243eaf1eb51ece094c88a6d288b457c5d2e4b831ccfcd14b5437e1808b9aeb9517aaea8cc41e31d7a218de55d19f681d48a42e7e2cef0b1a588c92eb2d9b80952a5584ec4bb810c57f0cfaeb702c4b070a705ab19281738ca3b2d4f244fae285fd72e0602d7b568e13a69047d17db936252e0752626ffb9a9a87ad5450896f3bf76cc66db3463706647bfea1d2cc56de8e564b500edf2dbf034276aa662ef04948d88481b06f7614a58b68ad32509edcfdf8e2324da27c1e377c1cd9ad894c1cd8b7328c288e1b12b65c1ee24f2a31c0a00ec6a1756a9cc9d56e96f1d430039e6ce2b84ea96cb3218251f3504760081a67a709f15601669a380a39984b55340a3f1660762f40f974d57431b20e796d7ed4f261744ad3d9e9b90fb8a6b30df516cba4a27b525181b100b0c3456de438eb184913064bd8fc77816f73fd80e3638764bfbdca031ac831ae4a36430ea15a280975761fd3ef7195e199ced34d57e94b796828532d6c379c37b0b9397526ff39440463e18deb4025e5b0751516b5b6b900714deebe42ab7d14d03ab930ed244d0332c4455a8d72ba0a3a14465303cc5d9101a6e87cfaea668050aa79124b970340cf6690e1c4f51c4c61b0523b1550fc76fd8d8d5dc13a36068d940305aff6af9e210280ebaa96671b6dc80397316e74ff81b9d33a18f1b10ae2c0c47230e185d95c37d271d2ca2531eb289d8e9e84e239782adf9884448eedbbc4658c77fa246911f7ef81b30163fe844c3f87c75bac836d35879ba4862581aa9d3937da08afd30bd68d7ce5804b93ae9a8db57e46d0b1152b1411dec6b6b791c3f5aa62befce181868c78be1af6d7f1d2f9eb0d0ea5a7df1968e6956200316171ea4acb919a21ab685459335ed02d850db6c2f879b5b7e8b87919df2259584690bd76135b846c2ae2c68257acc2175b2fdafd4a6ac1cdafb17c61f27ea1f99b6e5a9ab80cdb00a81c20670a90bab1faf457533217aa12ac7dacb5ba84f320178338e5eded650b3b02490a54279dc5f73a7cc13645d9de8d5644d69e643466c0ed757c2c93df51bdeb8168a2fbbe1b10b69e4613e2c819d6e11ebc11f21970b673388f94f4461aaf6099210d5d95515deb243d4bb4c6029c8dba817efd82fae3dc0e9e94e31399ffd8c1fb322a2e80505f1b41f78bf4a324f855c5683db2337e8b0d23b621ad4ab410ff6ef4b1bc65113a8d863478cbca845820c6afbc5c944c3dabfe7d4b546ad64bb494276bc3466c45850224b4a754f22c746bfb4e72776740428b0f5f7ce9f415de0d69ee90caa9f95aa2f31fcbe3c4eac70a0ee79cbc3d11515f5195f4b840789f98b3f348837d35b668b7297b0ae54ef2ae4df5852f489fd708ed4d904a9df1724fab68882849a9a9149c8357145afb892ee3d3b57d7df587f07929e5a163e3325721cf601bb69c7cb20cead5f67b87c14b6690e0a927d51ab67bf6d638f09bc99469175c81c230564cb73ed2a5a7c36ac6dad81c365306dacede289c182296b3e2959d7e9223ad9ac9cfae00f4751ed7468dc21526219f2b48ced66a12b9e90f04567fc624d2f548949f4be2d144f287391c63f95181d751241fd0a223077efa3420c71b35ef5d7d2e6773e2d86324ebc233edc55e562368b1b365ee564f0fc62221f303adbfd25ef3b83169216aeadba7ccd7fbd2b3f9fff7405fe3b415e2df1b2a228b9e296931bd5ffbf8170217e64e035d41c724f4b185afccde071c8a9a58aaf3631b1448e0dc2c22324d9191df0dd1a3c4cddfd25abaf374a151403703a873eba571b1ae61eee8a5b7bc8ab3c5cf313943dc256b38b8e80efd7d8bd66b3f54dfb8d751cdada6d52ff3513b9e5dea41410c1d988fbedf625c56aa45668fa4ba4dd947527a50caf425dd3be7af27f37e5ebd369e2d5ae78089ecf677d458953f6d13d27e84369b525fff0c563a7f01befcb1d3736d174b69f7b901550f71b78c2207157e15b7ff7f6edc49defd0a964505f1e76fa580f2bc50cd7de12e70670ea7a70d2de99086671194226b8bd615adfa6fab2455d5c29d2106e74299a6378edf6a696718384af1d0986ca941c87077ba8d772b7ba395f4276013bc8a6672b80feff92bf1b8b3413e852885e78479d207cf970f3fd7e78a8b546e549b7f1d7a597edac974d9547d9c75aece37ca5f533d12261d6619eff1b1e4cba808117277763d7b3e27632cf83892b6678067d65dc8d60f662df919bddbfcbb3c2c61a667089cce1fc723e54e043ebad97a253054ea977c062e049181ea13f441cb18b203e172ba4921534f86eb8fad8c8e6170bb5485a01013b78bfbbdbdb1c0e0c50d2653dfeccf2feec90aaa09d022f3c6b2e65c2e61dd17c1a3fc0e3019c9b0e439aaf86af94e22b5f977df670a9700fb2eec21f0474c010a23afaa06b4e7637393f7c97699489fb80a63f307971a36c8da891304c6b032e16fd4ea6998886d7e2ce11d6aadd0fbd44e282ee65c305b97ef1bb27acc1ffc8fe07d6cb349aae544f179f7f1e0bee02472e548d33de8439d220cc45d14f81595cae631e0ceb21729b25ee09f3c705a342e53940ee3c45a7b35eb9dd76a489ea40fb0ebafaf41c0fa594fdf3f774bda91b7e572a3ec5e5802fb0cbcc4037857adbadb3ee181de663a925b93fd5d0295d2e145079e13c6b3335dd60fa70aada8df17f6c382524fe33f1772fb15d890ed7f8c284698cebfb513e8588225c31866dd89a8a08a68fded50e82dd4034a2b527092a7ec1e6e98bb60e174589d0fdb325afb7f23525b7618d269744ff1918f9eb5cb4d3109c673393e8d9476935effe9540957c445de1033f5f9a28d5b5d471197d9f38de1635632328f53c8130b5fdc4868618fd40ad37c7349cba156d3dcada387c299e1bfb25e5f95534f66edb7635e30fcd817bb6ca776613843ee056b7f8838a621651b0bb791c835e16f27cee80616ec6c80a2421aea6052617c960ba8897e32f84d0ed1bbdcbe8468a73ab4e2c0b2da7d76f3fabbce602675771a4c9be902a515eacbaf5736ceb74e389213b3c35c385adf5a7932d816b8d234b7c1f6a67e68f1e8896943e8188a1aa9c988f138514548a414dafda7c49f6e30752427224877aa1026d44c6712cde76ae016cd359ed5aa251ce703175d40c3940817837411bca691c47be60d2e6800dba625e319665deb261669ef6ea96b88506ede4abe5f48dffedd5ebb48f0ce92946dc4bbde33e16973368d263cd3526e140c47be851389c4b58e6c4a3f32b82a645372bdc62fb8499b63f217103177445c6e838a213b78f6b13ceb5e3dab90f42904f3a4506587d55256831094acc513c08dd733801217b7f6dae8de2107589b9cf5bfbfa4216f34da118ed0fbb4c3d7f19571de137acc65898118955a0de5b54da378934c6e8a65fd2d3e2da0504d3aafac75d5cfc391f4dc80961ec1e8513639c702405805219cd60775ce4b649e69e5a15f3687126f1d3882c414b85f13d80a803fcea375e736cd0b86aa7045e089eaf3d3f48c0c7074a8cada01092e6d89ccc004dd33dbb32636a97a4cefdaa528a507ca196a2825be583ec4fed85ce5449e2038e31c8e59617056863de9252e05cfea72c2a6fd95053aefb1794aa76270c7bae60fe585f4e3f9ffa07ab439c7af249518edcf212c6bc0e425f184fef27a9ea7f372c478037a95f50fa4db0841dea61631968e4ba61a08dbcdde5d5868ecb1631e6394e4b8dfd9280cf2d51bd67c5b464491f8358de7a55f0e07529ec55f801ebd5f557a0d4d0c19162dc8274ba4ffd3cf7045270fd87b757a02ff9e25e7ae205b371be24c6a4d258e8a1c2025ac1d7e9635ac5f3fe7fec48a97e11906d03e7094063fd555fa3b11cfd3dc59cd279454563ec116791e6e99f09702a33a8464e752d0965dfe050c6ff1c15e33a8ec964e73e432f6941c27223851cff6e533f1ce94ca3aa235b39f9ae3316e6abe63806b5d671294f8cbde44bb8ef93ce46eb2d9eccdc05f26d49bc175d824ba3b6d40fe6130f2006567fab821754ac94d167af4ef44109aad57a616bbc1a0b823fd07a03952825cfe76069feea6f4954beed65740696eccf7288044ca2b2327c5fb74c51a51b19bdf852f78d80cfe45a1ee38a58fff5bde627a1f4af250a6eafd49dd80bc4b60ee759977236ec09f8e44d62d0a04f9ba72bf3b593a604bdc658b632b6a8edba72aa291f95864b04fc8e3e53ef5fcee02b8ff0c62802bf5e9fa4122a5f1bb59de65add6a5faad96b840b8a426c03f5f945938f7f17ed9f46246aa3aeeed3d93ebce8cd0ed446efd95ceaea1a5ad7f9326484ffc6b335a5c7ec7c6dfc98835156087a795ca1fcb7282829d93314e8041eb9c0432eb53c4053f1475a411aa089d36663e8bed0d32311115822d53dd66deae6b9ae68bd6ce0368bb4b6d1a226cad3439ef0e765327a6cc997802fb76d33048c0a18d15ea6f488d53dad0d7afae451525b932ee69351ed1603633f7e21f50ce70f6504924d6ce0d3520ed40ee30f3b55488f8769d9138fe79db2a7a1da4873012bda29fa305c6b110d8499f52359a996287c4d4c0b8667f70eea027e48b54409e5facde915a742591505c6f971d29fb0abee97e8f7fab6cb4b885cf179a56be13160ad36108e270d79a9725e236aa36f4a29a90eff4fabc3a8fbafb89512fd6625a0fd5db6355b968827cf4e6efd4c42d0d9ef9bd6ee4eb3197aeebf1601f34cce1e0ea55888370dade0659c1cddba6fdc2f93bab37abc24dc844048a854308c25f77d525aabf4e59594a52050964bc6039cdb64a09d10684b59c48c34850c2e8d62a44a9f55ee5fac92ae90b330747b760c73860c8f42a75106e3e1ca2eb7c8f9335048fd3b9e301210ab3c045d3020a686e39289c014d0c7cfa7a5523697456807af69e155ce682cbecc4b6eb9e2b9c26aa1546ff18d80fe1e791ef680a072227d30f06ad518cc3d271f635733f25e9d0d21403b8d467b9c33df94f777201dcab25b0340b310fed8314bafc2e7374270eaa44faeedfce9d6670a2f855d92059a499e8307106cd26353cdf7019e7ac88761d1b8e240ccddf5ae1209134818806acfe63cf2c4f9d49dd54fd477238f1be2d34f22691641b3d6a5278afac26070e87313edd8a0c883ff5c20873946da4ee88f5063f3570d3180d36438fc2a1e08f61e2cdde24638fb34c6773f18abb8958345d97b1f715f2da4e19f183ea7e0be034e05ebc121dafd12099b5091d3241ff2c2da70d8bcec581242302af89103b90d8afd39bf71f123a87609149fd7ac3f7138489a3b210e62b04c803934126bb2c621e132c20b641b8068ffbde7f9c6d7a139dc3cd542c0cfe4e240ab6115ce4ac3c832b72602ee5d5ca78cf1b9cb61910b4b0547934df125475a4c35ded6c948e01335d277d151750cd709f5316e7a55401d1322fca1e154d8f27a50c1ccc6bed6064df5d60989dfa7a3818b3972d60ea140155fc960737f950af7b43320114e26db3eed3326148b6ba064984e7a7bfa4ddab06f53a060838baf628483432c97fd05086cf21c7be7977174a7c0d659a4783b4d88d7dde6f01586ba6d5dddcafa389f207bb10b99a529b6a85ea5c25dc2610fab40ff8e29e0e78647dc0dfff7ce90a19311970d7a7c24ef7fd7864677991edd31a9069c61b8afab5e8c78f2e92f623d44e02cea7b8e1f4e4fda1ead6afe0dcaf39ec2ced77c378525fe9669829d264647363813529da172934578050eca3a10b65b6a0c3fd1193be987f7ce89d5d5bfe4511ad8b80c4d07152dbd43aa71b31e2221a19ad57370834a1d0f4e67c06c33dbec424d8c427d815feb99a8c53949627790702ff5a5806363d2bf705cc36a72357687b54abaa1949ffb5cd3d7bd414b2722f5daee291f1018754c31b27739a984eb32007d9d31cd60eb7660d072489391609432ae663dd19ab8da6f8a04624ea94ee63fc02b979a9e988ba2345079c0732294b4dd9a30365cbe055e13ac95a769fd01a94b7e22733ed1e21c2fa47039e1a4e3914ddfe5db1e7e454554d2cfc70e64e1a7e426e2cce9863490f1a28d7a08d3516c6bef4adb5461ab1f8344949983ee093490ac6aee4fedaf2a1b7de32f6dbdb1f44fbc1c91a707c59700a0122c9e81bfcd7f13b1e920374519340071c41643f1f618c0416d91a72113ecc5a1d237e6472a3873d344539feca112950260bcd79390179efd54655bdb4ecdadc309649799637b672808815ac6205b79f4d6a2f89c99d5fece8e04ca118cdeb8d7a660ec03bdb880239b98b989690d78a3692cd683f0ae47e4755f41f8c95f573cdbc0d24aad15350ec01bbf60d612189578848bc798fe801f6777af34fa3edd15b558d1959b4b134ece9df6d79d5fbe015185cf7cf27a5d674598bfecbe9886f71a5efcdfc18a7b9e3a49052b88359062c76c57fa1cd974af577d1bffadcbb5ff8538c5a3e3821b57fa46e43fd965faeeaa08a266bd0ab86f4f629f59cb95b06e92b8c5052bf708bb0d7e470b7cd758b9c01b326ccf0fe48a074684ca3d9e847c1bef288e65c64b4f7d007826dbed9c2bf18aecb4c276ca0b7e7dea0294198897d5c70fa554bfaef7aa8d34ba7b599e7e0d61187d9b3a82a014ba821e4628ce0e054ec1ef355c023ee760ab45a113e38296f06b53ecf63c4935d86ede528fe043d4c8213f9fc24c71df37b1d549771dc89a80253327da6809a449884c89b4d65028308a9baffa905fcaf3afaf708ca15701258a8768991aa5d0007b4fabb2752f53f1e0bc24203b8c7499c05a4878efab8667877c7502fd736c0c3763ac32c53d8e8705e8261b070c2f2913bb945515d8817482cc2311831f935e28b9254e59a1f3070d65c0bcde94ab5a8277773c883bfc13f7d96ef48d272c7ffc6891b672c27fa2e14da573ee96fa3cbd13fe2a66ff754069e41bbb4ff627a9317124d54b7d18d61d4555e29f9ff9b1b26b6477cd1f67cef98dc05f5c98ffd6ee69b5413bbfa8184b9273724dbbab0c65b5356c7f63c27a25f1d06dc01f2d752ddfc048b823be17e597004ebee54e7b49c5d1c13d7e48019be18e427e9648eb43747a0bfbb0e54e76b21f8975a5e95d7946780e0e7bf36bf323b92168d4897e6aae8fd0a3cedecb7f1e94379179c3775ad9077588e2dc666e754b95dcb844933ecf27fee55ce06e10b26f77c3511a78f5fbaa5b69128cbe3f19105710d63c1ec7af60981b7eae129877bc09fcc0d6fbda083065eaab4374c239293ae44a13feabfb9c6ac169fc674677ded5a4e2f995745c34056feba2f0813eec6ac1c8093e516499ebde6ec57745c2b9aad2814db067793cc37e6031f4fa2321adc4d1ca402ff280abcb6f8bd7992c3840b49449cdaf41a6dc31ab0f16523c80bf85c1515ee12a0cfe4758a87be17d6fbaf89bf9ec59ccdfee4521cbaa4d27fcd3177b513b2a87f7e6208b21284701cb44684768d93caf750914496043bdd79f1f927a4eb04ba0a4ae4bee479016b4d2031eeab54cd12e0b6993596e417a97b9f306b4842c762adc3ca0cd15e677b0d77cc4b876e49de1100bee08233121b85cae8c4b5aa1a7eb336f714c40b50dc94c855e502470798f0c9ec536dc172681250c22b368b3be7937a1a5180ad745b28376b818fdc139d68177f3c79bcb7b84d88fcf1b3721896d0fcacf1359c080e470f7fa6f3604d4528ee22d954fe37730d7c67c8a234eb9b635eb41bfb63f07001f861eb453151369c565b96057ea5d74149408ea3b6c0d10d27bf1a111353e6b877b8715d55dc509e016fbb06299b22b75338cb5d89b2949181ef23940237600f2f40d1cccb91029c2994dbcbf9ccee67bf5e05383c3a733dc347bea043bd9fb47b9918cc3417a63b3af89cc22bd9bc837f170adc48b93950c6ced5372376cdeee9fa7d55ad2417d8c8416933a5aad20b7ce3dcc9ba9e15d129c4952104a30723c90ee6874f52a929bfd69ee99194cff389aac94bd658f9cd98cb404092809f23686b9decc0dd7803ecce77acbbba2228bf019dff2e1644eddb7885e9a8bcd93ab81670930fb44e6ee0886cb8b3afc7598f3f6da342a56c731ebc92850564f0a59ca249a9b2ffe69ec65775577478db48d29e201d153a56fa4682c93ce59a2f27a2653cb0bc5e7712750c14bdd8f19c90e14425eefc7d9abdc1b290cb20f68590ddc7d3114a0c25eded650c90f95aef0be41114b1e92c3131bacc014d521191a44b69777360565f1cd31836611286bf0e5b441176a45886ef689fa5e094ce4fe4c2371e6594be635be329c013637e3033eddaa0e275011fe3730d1b0bec015c65ed280f713cfc65d2ab5f572e5e23d82cca8ed2944f1e60f646fb6b7504f7f31f9216eb0471a6a123c11657a7703990ae503b88a453299ffc67b56dbbb64684b17b3ae4b2a15a5f090736a442eff6e2eedb16ade11fec3f3a4110bcf7fe80596e29d4b4d3154a8ed3d91ae4ea00693011f47c5998d1d39c70257f7320e09f81dc83682e5e5ec796324c365e1c3ffb3844f3ffabe8442316607d0a28d32afaad65cd023e4fef933623aef90b44991c4577b6264aa5c20e5cbcd17c4646e7d20f5def37ca0a24cafe88cf4acd02b36d9ca96efd0cd1a20a9fa8f3116b3736bccf422e3bb6050579c30a89c207c13e9eeb2c23a75203cf6d728eead384a9b0cbb66c82a4abcabbb52f970c7976c51c8794b309c3f84c817662981e93cb880bc24b5f38136186ea8b4f43751819856ec0de70ac1a2edf02999a123e6b00ddffdcffdddad0cde2a54ca0e673ed9a744062bbbe2c85a081e9063169dea713a708e0006b938ff0686c2375272c492b3c9ab43c5cbf6f54e20349fb2db7821458041131c3e15805ecc5b83db58969b994603abc73353082b890fa93717108313c9b1adce048252a6408d54212e01e21a7e580ed0416dd15ed57fe3176b90bfdc27e50fe45cf605843c8433595ec9117248eec126b99236925efaa5cd77ed0564271b34aba5e360fd2e0d162574400f421c8aeb0e53aa7744aac80a781d60048635fa9e425068902d7734532bb9d572d229324cc2a83b8c24684de1e84140f15bda389f65f9d85a121e03a6a64275fc7e49b850e0863d77fc69e3278889dbe7a4d017a8838319e2ff593cca78d4e10cd0e87bba5f95121e58bfd37f86dc57b6c7af705377a12e1f78431e9f02b02308429b059ca5e56dc7c5463c445cdad32f9ffe7fd6b2ea024266ccde43c53403a9dc96c99c67de8841cb0992899ec07e379d9dec550f7082d1b0a0c577e1cae07772a305c35f16449197f298c1cb664c842b8ebb0fd7dffa03b41bf963afbbf5458f7609f793c83349ff685b1685a3041aefc9412df0192ad8e94483b5fbbee5140f2f14c13e946d6b18f4590946074d9dd27969404ccc085be28c4259a763fcd211889cda1ad73dd1b62d83ec786db293ef31073cb40e476b8c3eac40983afd63e0eb5c1547bc9c36c9d9b367c069fe7ec7d7bfcb35a4d20c86f81f7a4b200a142655cf13d2729ac910540167292debae525049807c6cd5184f7c7ba671512c024f08c9fa82fde3da60c6ea58b40ba2dbe31f9406bf4dff69222ed8eb4aa1f38f599130dcce5adda8cad8bf941944f4fbec872ed084929ac44e72e7de8cdd2a0dc35baeccd76b1b7b9447b70df9639fd038104515b5da16e1dfae27aaf73158c299f45c36d34c9a9d3b26831d9f9820cc25fb72a44693662fd28b67f65b0b1190a98806aff7176cb86cb016d8008ae7d72dea6bcdf62df3b90ddf6c4a5e5f9fc89562835ec3adbc57e9b50e2eee328f2bb0df988614b459fd7638b198649d2c5a60fd3d8d1294c1989478c1033c1fe21aac235c4431bc1622dbd9cf0be15a84ff923e5d3a71b4d7916e39898c15558b5f0d1a35b52538c9363551cd20a9cc02c78216b947564d41399896cb0923d58fd7fed908cf8b74cb6ae94671d2baf8b538b93bb900f448f8afc8fe0d2b8ab9e3c554bc9e2c614fd8491f6e7b4bcb620e0eeff04335db84bb6408281119c0fad51487f75cc1528708ffcf3deaf85919ed5be8fc57baa8c395b86e93adbc60ed295c71157ee353ce8f27339f1f83d80fa92b76cf8c5e04c9cd2925778f63e17ba6f20b8b4a03cac03bd760425d38a52acc57e465a7a5c06a025e38758cd1a60ca4c5420e8705bb845c36ccbe230573222a215be82dd25bc89ebac9c33d1699f26b733cb00962daf9e834857cb9c92acfcb9f1a36a2a0d34e093ecfd0114a3df426b29e1f06813bddf87a51b80e4049b8e77904a203df024daa4beef283ab9ef2242114653a2f458aa90fb943af74c162e0229a76fa827362c84233fea1a84c4cfaa742432670bcd4140998574a2884e36525b01f9d40bbfd120dc497ebca03081e668f7fb568955ab8b87cfe55ad7defe5b4a328cd68e1a2c0459d53a31b91f8df96dec742fc34267d185a8e392000b0236420cd4d0cc7e39f23ad0c2adcfb5177f5c72f8903bde8af9dc1165c32d06b039f519313ff0834e87487e4a795748ef0119dd20f7dd87f8a67fdb13434946b1f9c4354ca2abb1ecd12b8fee6518c0b7e2544a38532b624947aa98c4fe1d3d8ed89c83ddd62cf832708009e6ddfebed72fd9c4e55498cd1cc13025dde79a2de5e7d77272d55031b3619e4e5ef0eb760d75856c37fab35ccc42d43de3c2b658037d9bc108cbd8e4bad86b2d780769050dbd23b23a6f12cd2f615c6458c1e8959d3f92228da130a7a83492b44a372ab38c9e788b548139590f070779305acd07bbdd63408d761a382c8ba422a275f8e7b4f8464298c168992d64b8280b9ef63feb6ee2dcc4832e7ee17c01deb90720fe5e6953d3e501bc4a7c1f042aae75f169ee0d63a9d2fe0533772f4889767c304cbc719cf7db9ea51238f0b7ccffeb4611f4b3f3c788f0dedf9c6d3d2b87490bda0416ba047f7d677f60a6864c5098a32807e6f05d850c0fd95de5de909e76043d83077571454c7c762c85a53ff64bb59838f5f910e54aff316d2a42734f653054d0d1c1fcf41252e386cec07203010f728d4bf15831994e185427e4d6a5db1dfc035fcec14e4859353e9acf43fc0956f6d3bf9e5a509a0f5ac2206664f42ab327011590d5629545435e25e58d2efec54bedf8729c06e1a48bfbe698dff5da9e196cd7457d37e01c30f184f8726a22141d99353f43ea30bd5ae01c13de7efa0f39dfc98cfaca2e444663071d3390b886a6a733edf9fdc287951d8bc91c7699f0f1752697185e216d3a68d074f100fa368c7fc6078faf86ee525ea203e3924a612efa57b861a06a2b14de0600463cc9a8c65238c0356199d5410fa9d0aecbc0334eb6729d7e63e36144b70b41d5c516545e4f0795b68a1b81aecdcdf1ba020a83d1a8b64377a977628f338c3dd945ee721bf4184d4cd8bd9f3c936d33b1ffabc32eed602c63dce8015b4b36a39b07ef45dc27a73de7373a9bfedb9ddcd19b223910ce672643847a0e399599f82378dc79f1e4226e1dd3f5382d19643fb85e34fe4a38eb8009eca7312ff5c071ec5ea61b0e61b1d8baffcb8424daa6eafba588086f2d920a045c8c71c34b4d8bada6268ca50f0c45661ec7e58ac12c1c5137b2b8fcce8074e0cdfee39e327448ebb108f1a665455df348a167fecc8520b54a3bd59d45a7a699848fb2bad157c31a14b03d5af9efcd7b496660328777f1add42c2cf267bd3a48cd22784dccb206d96f9bd0996bd6b2cef473b29501b29d9df72962e0798c41033d811e0dbc58d0732a6f0bd58b1615c8fdef31a657eb9aa99d75d2f8abb97bd918b364908fd1f63171a21f1ed3904b041cb4ebd102837c10bb53a39dc28cc632e3a28a6a79991147927132ae8e9c03f5da57420d52115c7ef6d81b2508e6f7c646440e2e1a437478e554f34194a43ca11bbe93ec587d55543e6242d28ba6aab76bf155a7ab903c3084259835c5e0863d0787012b261ca271fe72818dc9f30afd911c4210597116d6d30372fbd8052124c05709348bdd93fa9e32dfdbbc690f572e063a1abf9a4b94c008bd1127a1e6a2622688409c90607be177755e91f3dc917bac77f17fc63eb1afbee4e230a00b174a459bd4986294ef90f59e777729fe7a6ed72d7f88d5c577c05add5dada9c7e90e23b4c9573cf6e439773db533db162aa7fe40a093c0e491f2f7a8d21c11551b552710e53311a3dd457cfba34d012c716ab03f36d3525558bf46eba4006edbc29d0740808ea2bad14c248995761447868d24690a7bca6f350bb4dd255f6e81909d44554adb5c5f69c6425a3e0af5627542a05292b8239230cd7e64f26528304596e0e0dfc7f3ccd027874b92712780ae943dd3060366b71be9545e8c5688974d79a34f445990a0cdc6b38d36182823d9a2ff4fc1ebb0d5577a22c8b79eac8bd400216c19a53f9754d9350b568129095f7abf66569ad2c49857ada03c20406421641825869e0de7b63a1441b9a65f7b69a3c6fecba87445041a7d9335bbdc9b975ec6974cc7c99979f8b26be87d8486501a2dd10744e8bd528087b6a11f244240ede7ba2873b4c39b4741dec7b41a73fd19b2bbe0e0de6efbf369012ad3f453999f975f16ab29ef400fb10713114530a021a3d08287efa9ef7a81f66c6e908c7c02e0c9952c13fc8ffafb0a96c230f5695d8a83d0872dc3213e98539a67cde04f8f70bf01394798fdd92b029c8cd923b1e62992af85ba8f91b0dbcf743a7ef9ce5c2235d134e2405fb3e1387d43182d06df93ba8eb5c189e9bd4297a1da2cd5defeda22e211323398167bacfc712955ff9316e362d005e619ed97e036542c950d8d936c878c00e28c22807f3541dc0b33425c78b5b39c72f29a54fee5cc648aea64d7c6658e5e61f894a82fd5c6f4b3dec9cdf425ebe4f98989a4d457b21803d55603e6c6ccb3fc83caeb86140347a0949048198be7f778a78670f554719c77b1b1a11d18140c96d9c2dc0969fed62f2a25df41cdfe1e72f50540baf87290491005c6446cbf3d4363089e83de8166233b23d0a1aad50bcc6d7283468abe14607fe20fef66eae003a99b44da506e2c3a41a4571b382ef68d5fb7551ac0e0a12b6708c9d60f817bbfdd1854496af9d7dc1fa03446a5fa516d9e6947819524c4e86abf2dac03c6a377da1e6af80052c70f144e05a5bf9d7c9e2abb6b806b0de68aad06adfd3ffd374e9e9f1c4420b7e283580f6215a070b49932815d93d0ca8a2a0438d9596017b6d4c8bdc7a3153a8017fffda769cc7c90dc1909b713d358f4a0bf97adfce4c5a4af2b6fde45b08fa155cc49297aa7e829aa7f27335351ce67944266751c492c93c7955f7edaed1009db9c13e89fff1edaa1321a4e99f6d587378e05acc0c450253dcea76fb065a2555d35cce9be5bfe490da5f23130b629acaef3b0655ad64b64902db47bbd4e6b3a6108dec80dc2f9634ebc0b359e99010eeb7df14db75ce701de99f8b04dc3fa0dfcaa87386bf25832096e0e7c9a3d694d59ed3ada14ee410c386a9a7badac227328bb92d2f766ca1f49552d4d0b44e437a3ed05767db784d2ec26dfe374c35439cd27b874ffe09cbb195de321c4d814311560b7788b836cfeab388ab0088dac99b18129e3c0dc9e62d1b0037ce191aad3d5562bfef0a6fdb4852d8e21f41f8814c3d3148671484b99f66e5501557e51b13c2e48ed99f5fb0bd3ea37f81c0ec5c6c3e2e7e8dba820b978f8973b0bb6e5f3b607c09817bace95c7154929ff75026a1b9192b01e601aed71de637d7954d270e4012554b7ce1652e2093649c0ea00168741eb0d3df4fc8b19451a534b31f2ce55c932ddfcb13abaf5dd423c67b8f2876ac28e3642cbf7a1d64f8d39032643d8362c5db50caeb4cb7b80345f052ee88eb9e828c0efc62180bc8874a21b72337984a50aebe02718b3346b0f7268cfb1a35ca3b7043b751516c073b86a15640bcf341600db354abb118543c3c9e1a611f1be9b5e00fce81910c325a4a2287ef290982eefb6597455445425044ee20fc3285c12465e83be3a55a795e274bd50a4f820900d43c3839818d122e5291e492c84a51d7a552df3452822d2ab1b673792014ed605a2c8f386ad07567bff8d22a55f2a5f03a1e859c8dc01b680d3e458cff5959939e03ae2d1243bcf38943b74e7bf4df844360f29fc54814a47668d2891a04487f3b8860ad9214991cd179862bc7f16c496b1d9b17d57998ac3d2b4db436bd41755676c884dcdd16f5a101fdc60c4084a6e476101948e3c82f0114273c1f85ed7c64b9b00542d032786b0116e78a04d1c3012c9882bb5d4e07a06fce41050f5242384bc1d88310f65b532d9886d3439fa8cc68938632daffc045bb2d4652702f2c45f63f24e03f613adc2e540ca541319d54e960f27b9a309e51dbb44af3380099b18e46ef8ce06c7e0046a0a7da81f54b83d77848629f72d623bf9e06f2ede8d3913821840da58acdddbd5985710bd38e89d3f3a9a17c65cda42d51d2451857a638065bb4e11a926a825b9e25dd29171c8fda3870a8e02ac6f5efc8e716f274310d59a305218ea6f527548bdf5f028b5476738c3964fe23079e2be992490348eeb2d3b77fd488be5d4664718a0d28434d97660f6c42fd9d924208538c228be8ddd3040c28c06f7358cd1702c6082f49d80b3e8160143c8bb5cac10476753057dc23ff4411a3b738ef223e7e5800a5fe693edf176e8aabd0b6a0a635075320838c6a7bc4c34c53205751d4e4cb5d44b5f52dbaabdd0b3312e5eb38215f7705e121acd777ddaef717313ab6466a5445dac698aa314df8d69dd889d4c0abc03a5695ba2bda73e4aef1b70ce890255c79a29312bd54105b7b7f4a3a1e992be9ac3fcb5df6fdde8ca63478fc37cead39c5e3b1c6e697c89aff2bf6930106f2ee4b287eaed0fba9fd02c95dadb7723038121c0cc8aca174c20c7b25b49ea1098f18b5f30f5617cbb0c77314193197cb7591b107da5eff55edc2dc4e4368f4e58e5c50bf8d503201606fe00257328ded9406782376e5fbb87c9d1bbc939d088c04c0d2b5a89f13c32a51bb1678f198834d71d1ab23d861ca6937f0284bee2a2491202b25825a5f287098c2d922ba0acb1e9b5178b84ba798f78b4ee4d7362676bb63489e4357552e347a2614a24c39d9e59a794042cf2c918a798e300355bc766b3312c14e70848760bcda27814004179caa8ce4fd9f5a786b3090054a92d87492f7af7ca758a4abafe279769774e231abbada26eb6b06e51844cff8909bd8ba2799914b3195510bf05dbeb521488fbffdb89a76b9269c28ab0dd459f3bae7871568920a2551d2d81834b71c980418aca57bdf5b8f3e3c55102cc1bfb4182da5ad6f572d1d9a3ea4d3f510e964d5f1d0cfe6a748594e3467c85f28a98881e6fd7a4815e6c0ae3e3e7e8915df76d34aa8edc29190a450682b715b14a0e64c01a5c2111a89086cc21c59e78c21b4c5714a6274457e1d141239f7d02fd065862f6163aead38259935fee42c92862a9a7a4543df335e1658c883d400881e54d30ce02e410212dbc975dac866039839f66383c7355659e3a5291f52a1c77a26b5432211da504d90f47ae6ab7c325902e6f8363300e43f863132de656eae0fdd765e975a413fbfb507742cbdaa24c1a4a7fd4ec3f30c2e77f6c14ce1036053863d4fdeb16ecc9fc8f12ce972c4d48e84f770d26f0f09252b6d3d76d79f28c82f29e85a3bce044d423b56d2daa215f0ceb42c6746807d75af2df11a23af22f028de39906fa45f044ee70e145497cbbb30f1bf3e6e42f9f69f1d24825ee44a1387b8ef4daf1b272eef4203a22e415ddb622cfa457741768fc609d42f7b440d80db68e15bb3a9dfc6a2b736aece0c95f7483dbc05f7e5a914b179dae2ceb62d94d1664395bad47d17667ace0ca27624fe3827f97ed3a070cd18a3359ae0070aacc22e4e3b1571278bb7c6e7c6e0589027d81c26f69b6c52cfc1757f1972420c5268c472c80801632b4f303544b5994c72b17f2218bbcdb5a0c12eb6a24d60bdfcef735eb56c9713875f7fef158741beb3fb16c9cf7c305d41c133a79fddc5eaae9fa0c488365a6a73b913661e595c6c58765495741d6b8d460832507f2f56a5e44f10d24cd8036d4bae72ea8b8f75c3dd613eeda8ce3dd2559f1b10baec2398b86a3f8a54457ae590f53b55c600e658f9aea2bb2d6fe8c80a751c323633ea1c7347e0d3a2f2f4537d4de080394b0679f9a751e60ac5e4670fcd11e6074a401b8429c6bd6b3974c24c46b8e0e01c681b03811e266beedf68b19a6c6069dde54830a282e613d9eead63cb8e078e11381392c9b6cf604e3f7e8e5d3d6a7a50270d04335d980838f0b290ede0937d142bef8f2bdd05aa95be81b6ab3e480ab3687694d6116ec65b834775b329ea1b1a6ee19b888fe242fdda01bba804aa418cb9784cffd165462a0ddd17021dd16ac21d0fe41d9c318f9c09fb4026134618d6fcccfae816c20d3cf3316173bd5387e9c85bc2fa056633f9e37b46fcb332ab27a99089d62aeea9e16eebfec59bc6995d49742dcf4d725b357bdd046678945c429a45d159745952a4f2a783fc41f1c682af91569706cf40add7a536d2c4201c2852397a10ed66f0d35a1b22d431018629a34d668cc55743696504077f822e5cef4368693a047206dddd1ef46ea672f9cd96803af39adee7bce84858f56f103264f677024f9fff97be6fe3321e0f6cf4cbf7e20f3151b0a7068792c038f63acb287849781653987bf6b6500b0b8c1209874716f7977deb0f651139c23fda91f0f1ed08f9b5187e0b1e04e398ecff410e9b2840942559db2dca5e30b60acdc075c6d7a587778d5e9232e6ac7eb92ca0a98258dd5c311e941945aaf20009e8c8a5bfc0593f7f1a475c759e9975894146616c4a1f644360698b4310321ecaecba6d1de01a1e9cde05a6a1be3d146be05259fce4f7e2d279091d15346783a6e06edc3fc773c0e982c4bb342f8148628267d2080b62dc1ff75ecd4166aa141c0669b3ac08db0c374e839ed69e39c71e0412f46467169dd718190a5bb3593994f5c76ca3acd8084f8c8574530f02db15971067c00c833432ca3669649070353f25aaece339cfea685469f4f24a2c5384452a260628d9421e76ea191ebec5040271f4e6554117997c332afeeab549809584348d45363033652800590da74f6b76682b8522073a21a93ddce64e6e6fcc034dce948eeefdecc8bedd223ad8b9378f108bf27ea5d90084ae7beb267eb6642a6340c086184590f9dc74dcb6f98d7e3951427b6a0b11b963379d92d76de0a57e8b76ec198d19a24f25559fafa3e390f5bbc6dcc8fb59e1f964b0d796b27d019bb537f86beacf76582a414624535b9fabedf40fcc4ee3cd0d3d3cb42f306267e021461df4dbeecad584d70bd02f97d664d8990344dfee5c21cca5d066b0450d98b6be837ff7928053d280d0404fe1e966141c423d4fffc6293991a800eda7012da56d03bd8b13df2151b701b039da14cc5add2e99e6d18307e239f2f247a3dd41fb14312007d73f2f4659e9546513e4f67390b5d6ae2396f0e3498c7eeabc91232bcbaae4eea45f3267d5b9b5c1f37b9c13a0f033aafa0b9f258c42b8b085eb19b48cd74209dc91745d51b4f1619fe8c42fa21c0ad14413dfbda503e6d3313be2fe0102df2469c15c85f32de283d637baa665b1cd25f050eb90fd284b7267975f6f0ffd2b051e6362a5220d00fcc1df6bc5e0bf579e63a5e9af3def82a66fe2a8ed9f1b29294068f3c8a834be6e3fe5a12a93c97675ed20c33f98d4e500fb7f3d3e2f6cb8f4d65907a14f6cae50d21035cf79abf360be40e773365c8479b508739efc0417fa6680b557c7ae9e04cc7fe6135870b0df82a59092d4372d126c53b25262b6fd9d608e51902e74214c9a00f3c73188e795ad1b927f46603cd679760bcf21d780711f075f184cab1c1ead2a02232926f305cf66795489cc27f62f19fe993d01917e0b4164c5c6cbd26a8a21dbe0a5e37326b35b051e8c6f2c0abb2ee801bd4ef006a5457c7427e7c7bf843a8297ce865043487994f3facf9ee612a705c7a58853ed29ced448f553e26a8fee6b239ff37b0c55b46eadc4382d4791d3d27931f8f3abe44f4efbf62d03abc4930a1e264aebe5b7e8f272b4cf06e82e85b6fdded61df0d7d5217077d3c1e44defb631468e70086823b8e809ee1a5dbd29a0e482f899d2a9a4795979e3a1087853908d9efb5dbe651e4ef9faca5a8e1da2337d7f2221d7fb5c12169b08bc03a8bb448935551947c3cf55766c6139a56589bc61646470862d4c8b1df12cd08d91377f51c7b25bebae6dd943aef3e522c53dabfe4fe96030b2f0901a7a28c4fb4bb0d2e8a26a476cfd38e2ce2d78d60eba1c8ff57dbb991525e8ee341d9b6b4cea468b7fe61390085860f7a33d8f277ae32e42143ab13367b34d848821f49ae437b26fe8466ae721df298d999ec1b2a499499548bdcda3b168600914000f92f0982dde59864ca871bdbb1e92c12de92a5341a4dac64a6bd847b72316207e8fad6a1e25c3c0655a2dc0bdefbec51b5b60d444ed40c35020b9e0a0915f376fbdf56b855d1028df4ea8606448fd815bbb90d0c88eb63d2273a993a1862a12727330926d55b255213a1890a401ee905471e72d57e4cbbfbe2c0fe330fc67abe20c66d03f4c861f77106b5524f320c9829c60b0b765e973498e4b61904d820669aae512993566b674315c3fbfec2bc7102738213cbee7cdd9459d4e8ace292e52cecf3c7c93ed1605fee188aa1f49afcdc831545ae52dfb94e2aa8fd20c6d945c90d836e56681690d644776581eb895924839a48d581c9447f9ffcb7834913146223609b068510be2564465dad1b5fdc30bdf0c9a95b5b0f064300cdaec95a845101dcb4736575508d67cd555d4ee4a42ebbc9e1d431de36faaacfe90594a2bc2d3cc62695acff3e668d1f2bf624739ebdabe0255be802b1f4d4e92f64302fb6f45c8975fe3e0f3d6413f42bb5847dbfda9d9f1de6e2aa0723aaa28c1950a67f7f73edf43bd3a70b63742d9e808efb229ed6679fe6c048c9bd4ee57e4ffece87e57ff391653198c41e0c7e7c474ffbe7558bacea11906da02cd3b20f79900c2f8c5ac5bd43014cf9f18d411d7cb603bf064730c05438d4c50ba618869a8b824615b4c96ff9924a529960e785cf0b65eb949e48ffb301c200244a48ade50dba652d58f61a4c87bec4526c3a243d19409d4ca40f0fae30e3a1a748d455681a1b973bc2a9aebdcbb17f12b26915641eed4fabaa3fc045c6b057a0493505117f02c0d1f4710785a75d9fa2e734b1fbf1ac44acd6d3f54bee31d7a7cd60c5b5b0a7ec66a9b1995349445734097dceedebf7f366ad64418cd3619b86603ace931851a02c32c1df5a87536db0004d9a72dc66d33346cc3eb1fd9e95ac5eb1e654fcd763d61e365bfc3d618b7763ae6d7709e2d159f6e149610b37eb78a994bc7e88c5ee8adc6b98603f2be0c702cf8279a9b8c20e60acd27fc9ce693b041d98f4d8972cb3595c003c0d10f75a9f3a41b2574e8ae7a20e939c6367f1a5d032f4302bb89544a2f68b0a73f032a14d0a387641c2f2f2668205d86ce4791c78b1d31eb10ebdc2dd7074a99fb01b4c60ea051f4fcff230610d982dc336db4a6bb90db2c29670d7d952b65f3d683efe8800d152c6c312462c7a5b1ff106349a99bc82798cd5ee66b94a2dca0ecf635c539e60db3d2f6cad7cdaecfaec57e2d391f91af6431490c42764c0bea6af8e2de7a7843bb9948aa8c618f0b0c127bc128d36f96eece97f48cc569e381918478a131b3f79593d58b1cced4e9b848772add91d46fd54a2fde39db8f16958a4991e76785fe3f46dd79fc253750f0b3dbea90a96b5daf28ba874ca4c8273cd0b4f59c640711cd3b2ab8603f5cfa1b3388d03ea33d80797930573a57c943cc3d95ccd163f8f22ff8cd71b9abba68cc90b6c6fa782ac3ad8b1c9f49c162726da516f6611e36171ca9839bd7683948441fb9dd3c2bec05b288998a4c743a933a63b00ed78700fb450706c6350c215cba4d7653c6e0665e2f7061fbd3775e42f758b25eb8618dcc2594eaaf5177c7916295d50a228a0e5ce5d67edee2dbe0f40f0ff1f65cec4b943b245ac4ad4eb50b6134b2375c19198ad75c44d8c21510108b368489b9e835b47335cd94696617a8f992062a025e97f3b8ba3455eaa3fcda7393a2c6c1902f8a2e797791cd5a8278dfc6baa101591fb674359dfd5ef3dbbd6a4c0669890c0ce5b9f5741703a0316216c2b75e890839777f8ed2af7deaeb4d39fb7d369556f4187e1162304cb55a0f66d7889c2e37d117ffc4b36ccd2cab11a340cff2c1c1b0afd949e884cca73bb5981f444a2659b8e59fb439072eb38279b24981a5e58a8e72b5fbc511ad5730e766ed4d451a45b6bc940e2c653cc45495291b3d550b3df37ed9ff81ac8c3602df4cce321b04a00df764fb8698eeb308b1fc9846a089e2e6dcd48e06733931e7a063e4169579217948021a3ab702cfd7e5d3a823b67ec57b01d8ee0fee0cbb37026e657773b9ad2b30e3e4534628ac448a366ae476a4d2cd77c92063cca2137537f41e34304b064130d4f3b72463e059f07358aa05c0fa0d230e35a83224c4dd45dce433143d1d44459937546d9a33d859e5187198f06bbd00d94d9000a79e98b687300eaaf6545ac2d89b8d733b255ec7f2f89a181181b5fb2924544036bdf776258cbeb2423a1ae57ca7114699c97ede8358d3b8699230885dd2e232dd33fbb1ce15745657818dd1b51014aef0a98661f8583cccaa06fb23fbe0b2305eda24e309423b8641c076a09fbfc51623cffd1b806bad52de7fb35b0b8d65fc7acdd131bc71c92ed595759569b724ccf256936d617b9e736d5570e85248fec6da953dced3797e0200230332ed9973b1f6453c36cdf1df9a8efbcfec6659986918dc891e99d133c2365fbab03e2d832dfdc256ee9142d15a518db21adfe39e43f643d60ebeda6e47cfc51aeec23bcce8dfc32f2df54fd8fa05ed7e81bf4309ccfc1ceafdaa586d35759ca213229107e1665ec6dc383685aa48ae1fa9dd912d7b2686736576c2519604de7266627835bf83e619bc4589d6bc0c36210997e8c95f42c06e3e62da2460050b050f70661479aa3c7706d55af2b9da2057ecef1ca5f14afee097db71c526130ef89bc660e714f6f0f4d2f75f46fa66cf67ffc2ab1f13f0d32a1e9e79a7d74aa9b3466c538ded1a208f947486d3dde5361747535dd6342ea16d76273dc042f3cdfeca073be6f25fcaf782abd0f4a3c3a72939903d8856706903aecc3810ef43dff45af817ceb95ad1a0d05859e4a916d948c776768cf9be8c128e88dd7347da7b3d3b4aeabddacc210661294bd6e9b03bdffbd2084005de662cae8d36f7da20440467734e271520adb1924ec66442d1be054dddd56072739f3217ab9a4a6f82b5a6f73075392ad26401b473efbd32a6a9b7dfd73e399bbd1dc9dc4537ee239f4d61d59c4164bee5774a8704df5a181c13c82a2b2b860d2ec359de6a70e361bb9c845bd41db8186350e1f1b50e64bd6d4b3b1b49e5edd810b9f56d8e856c77397f20f3e81e36e9d6d5fe50ad26a4c021fe4a697e52b0964b345eb9ed07b14aa26e1d05ba78b3d8aed2365350ce4397ff54def8df5afb6e4a273bab954b3bffe5a6e6458458365f68ee60473c9abc7e73dc7460ccd419620196fbb85070c71c470269be68ed80d9c3baa7f5b9ffc568601aa85feac7ab79f19c06ec92a173efebf2b77bb5363cfa07e31d0321df01b222f3f5e47c4180d26d942ed78b50296d024ee9dc2a1b0a46fb9b21ef70823d16473e3cadfc4a5652fc4f228ee0dacfd9430445a2d948c8cb87071c5d32451afad0cf7d1862e257448bc557f0e027b4fea0b360d6a428e171aa54c224457ff26cfb113bae6a49f608f8bd9c6b2f7669b1e0ee6d6c657b275dea497b5a48e9411bb2ec632c1e31f1f3ac767728f63e7ac1d7ee2899a11269405ba66894c6dd7db74df3c9732fa516738537f9a5032b44230249ae012061d5a475d55fd504e556a3ad5f1031bee6cdb6575f834efa85e88aadb66c0beff8651d44c2917fec5b6132f1c7fe7824f73bae67a1ddaddf8710731d2bcd678d31fe6df0033592eefcd2bf638656557908b8a1e58970ea8bc4127b457e8242bb29d9b0ce6846b160cc586722b394ac9ca0bb5d3a5da3a15c78a00f1269d59290c84feffb3a32fe47650a052749fe975b0192e9a3b61a8370fedfa1018c2f16ae99bec3da9c7d45a2894ae1d9b79f3e90d9a5c6ecc0867e2398e58de1bd622f43c622bbf702d649da22fe5ec8d88c632f35e73b00024b2c466e49ca008fa60b02752e5fc26f00cca5233784f8c538f0c971aa2d53f6e7cb11b06507a0cac1de9b6b8ac37d096bd9c0b7097d077aef50ba9dd0bfc66f20e439e5e7e5dc7d58b601da72963d484fbb36ae1a0e1a40ac0c97d3590a5e7f9a93c29f6d755f20da55acda18454a29599886baf98039420ad450f907f44646bc5ba351728fb6a713436a3aba03f8c35bb0bd8a050e1e75aded55b703670eea7dc6a6f4fb65b627306e70367a0ff9698a0afd5a1bccf602e79960123bc7c67d070dc1e6f6dc8edfc921cbd8deb4f2c64e40d63704e4ea8a3b68c09dd641b9d87192b6efb539313f78f85130cdb0f9e78f1fde5efddce271c8b41776362592c2ee13d87d56502121857fe2eaf149b253f80069e40b5aa738fd636272bcf7b61703b7155c220bc0a4bb6f8134977c6fca54d9c5b589e5cb4f58aa882d6c0493e94d9cebff7ff51e7b94ac410d1bf8831ad20f5481f30de47a89448029aff2a486df9378b84b6f69c9dc54efee89859944acbb259f7719ef14aeff4f71593eafa58d42a4ec195d93edf670862063dc13e0a2ede44eda1189c1d65a7478bb734e66090682cdc47dfc45cdb2749dcb6a655719ac0f9d5558f3e6710e4fbbaf0c6ed1ed6b22fa3084c569c93726d0c8dd70df62bf7ef93da4391ff99bfc59737a2b43141f7fb5a08fe30cbab6c13f3af88a19cfe2a4cdf4e5cffa13c983c1b62b8853827b02b9eb43a856a79c52818d6d6e28c77ad73688aeb5839661a71eda8310525faed142a5ca844e1195918b527098bd3d4f131263f090100d2ab616c515ede40dd174d699fe2145cabfac58ea2a5a570da3ccafb5a3c25fc77ac94ff4535bbc0d5fbd423a5c2471baf57cbef79f86376f00be7b29ce4b2c3134447bbab5df4465cfb7d2e9a1e068a6bca2b8097088790f20de0a43598673a5a1481ba2a16dc2621176dba6f5891b774372e4495570a2e55a5608f663aa124069b8979a0553309bf6437eed09aecfbe847df0ef657d7c8b55d81501bf5bc74489741c397ae9f8653f6fe60b2ce6577973f90b00f53f37b25c5c83f2cb476f3e8c89038e03d7246c2e3fcdf4896a039d3e7d75a5d1c5911d1823e368abd5a67e9e4c74205dee3e5bba66cdc67a14a0459308c31eb4a53dc10ff2fd894b206cc47c954e044e1d503e60e6ebfd3111b52d3c4e634c0a76dd9dd64a037e90606ea012b238779c5c7f9e9fe5b20f422d1d010b763311a6b69687e99748c8c357c05cb366620b0fdc3bf75ab08ea04f32a55a68f4fdbcc9db15f6a576e19db2886ea4c1c8b9413d608b2816ba64f8def42a7bfd5370e4aa44db769e754093862b5f95d7d47859bbf9fb7f15e83bc978abf7038171e1b45b0c9f12339bd68d5a2e4ca9f59f17c49ee1d728e02cfd464e8b3c2fc7045a90b833d3ba5f6258ebbbf369c9ef541028963cb957afdb8fea5557c74b840c3df95c5598ee2db15586c0b495b9266a72952941caecff76991cd2edeea61ef1f923e1ecf3e978f47ca64d82ae3dee39cb7452691286d0061417a711d03a9e871eb05d8c39749c68ec21496258d37cd290ebbdeb2193c6f6a073b6c4ed508033e88097b99a6f5c586abb611e62dca958166b568fc9723605eda98aa28202edb39d7fb6bafab627abfd721d63b65e8de0b7358db4697776fe0e83ae8d676dce864f70a1d17bee77de3d551aab8e7ad8bb9225319b2cdcc6f274aaa986c12d5051b2613b0f701c5fcb3885d2b3efdf2c7e3b6f933ef4df50f9a1a0124e126529ace3a2fc111c6a6c8c9d45460b06711963fc9de02d67528066ba3430e869bb4b8fdcb7c54833a7c6c4d8204de95e94da630e85ec1214cb22b58764bfc2357658e6789d81111685ba67b82c1d2ed054b438f6c6f8f84137e607e698436a9f63566c598a4a52d581f4501f545b757863f49242fde5fe372bfac1c8007a1ab5b75ff3bf6a34afce4ee730870f418501f56f3c60663bd2c3c2a892a297f3379a38506cc4198a7c941f6b7a638c360fafeaa9991b80b503a4f1450a3ab7d03b14c6cff7283a0caed1d7f90765daf061dc96036cc1cb4f1cd3c91390063c029e6006beb5c60fcb224c94b5753a98c3bd1d3f997c8706a72d18146a19fc31e380aa23d923d89908e037f437abc6359b74787ce5e855f84dde020f0f4776ee8f3df7a77822ead2cc3b67b10e5302037722772ea62c5257bee3be178bcabdbf09c0e821ade0a02b1a1fcd35931c44b36fca5c0d01cf2011384f6be05209467204baf4618825c0ee8e413e8b9625bf5a9f1e026271dfa89bc55fa9495962d55f8f0556323a3f4f5ffb560f27552a55bb85ddd888eb7af66879131ad1b0b48eaa0cf79f6a3d644a5cb986410668d30db9f2204e467cbbad99f9f1d604ffc2c700c7836c42e00f8dc0017fbc8e31ebcbb4b9e56a7f88dae1f0981b093de4fec15a4ff8f32131cd3766f654226f409e59ddb6d65cc5dc46332766f9c82fc89a69f55774c362ebab424baad6be719528bd866ca9002b8f61142e3c1d70d73a0c8a213f68b79be148c6ae0cbbad5d8cd508d93f40a70e750323bcaa6a3c84a0946ac6efb0ec0babefd32b19d31ba44ce1497e0b23346750f0c69f686e8a65ab2b7823a6a7db228497d5ca060dc518d5348e21e00c24ce7d1e465bee18561528ff8c0000bc4a23f5e989e127dd67edba9434fd9e1f8d1d1c998ef8af851c1fdb5fee3b274135dd8ff7e8979af0476ed742c02702a4e57033ecb00e7af1816dcd293fb06e7d99ed4bc92620f7a58dee308dfe4d60ea6c1028dae65c6487c88f1371bcb9c28448c1c63eb5821871f0596f5d329b722ae745223ba6d9b37690a1e8afebd43883fa64943467f0a4d4455a73dda73c68a53fe9fc12589655a61e351457b23fe8d6939d09ce1bfba1469e2ea911cbb2d772130aa457cb8ce1780da5d098a78f2388be5a1c3ef5caa3277dbf0e48725f2fb0488ab3959694bfad01e693a301df4c7c56c91ebfb246e7228c559765df2cb6c38793d327ce12e773e0d044b5ffc923eff461be866c82a79156fcbdec459b4a5cc1643f6af937cc4963f621e96b5c533a5d96b24a424a7e21e7e68b8411f683c90f0fb7ab1b9199bd78c499d3ec9604fa21a3d85a4fa3bd5ac5c90eeba2a6cef852134682ae720448c590178ac83baaef8b28a6efb904f0e00ab6b1d2ebd3e9db3479b5373fda52587596a2fdae27183a1eacad0e59ff42cf3b4aee0bcb3a8538a2ce6f51e198a33362c1b6d49c6b69042f995295a1eddf6d34af99487709842a0051e0edc237e2852bac26dc6a8f6c402c2b3110e7d74e95dbb42d6cad9f72eb154248bc6b3495587c9175c6bcaefe8e2ccd53d92cd0837b0b9c9ec61a9dec4fd04ec774948e28de83a383a06cd83167c8152a29ce22c5bb6e4bdf682bf9d5437c63eb2cf4b3b6af3477be6a3dcdd941c76516a808279a267a0b74ef061eadf8bc842da7aa6243ba64d6a884c647151bcbed8bb38d625c2d8cf9c9c9929237d63361ed3badde1770e5d73025d371bc77ce1a87181d491c22d5760b69ea7cfea38382eaf410ce9278cd2e00562351aed9798d0d9d934441fb3e22bca395a7c813ef37cfd75ef01bd4c0a623e47e2e35092d6be96f20ae6d079cfc85bb785b058b071c83e0518f671fb5f22138b3946becd71699441bd8ce59975e2e0bb774bfe206a2394d9fa23c3e2ee62eab8fc3616171c651184391d3224e787bc831053f37be38fb571a0324076261382a3efc222e73382642d63f102cd6bad6910eb3c410e5ca3462ad98f588241f89e6cc109d7e35c2d5777be2df6db96e38ded9f0897e3c05ab3c4d99c9c5b9512af2c2a210e0fef96a630c6eba097ed0ecad35e893db76be0367c898597060be2bb172c354175a3307555e666339bd5bb15940083119835e109e84ddc569f5ef4683f17f417f6c8c15c42d57d67582e365dd4f537ab3c0ca36244c19fe4dbffb06e1293141732a12e8138e750f6cb30ffa885a8b8b43e3f5e14d028838290b90552e651e1c08b9768c6c892f8da126b82b96236bd62cbdd39bbcf6bf6462c5eeb6c49421234b56e57645c94be8e467c9f19ac54d96fa4ffa09c0e1d743a585a876b0aaad1bbffd8d71601c008bf333e87d50e17fa92326682e3bfcf4bc838f40aa03523d27faa44c7c52b7265fb7b41efef40fba377731d25004de7bb9348c79a7fc09f236efb582b0c794bea7acc5e487736a39a5bf79782bc171ae214bf1b0a231b1905c59bcace3c5687e9c857213795de5307b8351826ac9cb39101b6950ab63362bdbe9422390461ab7d0ac859d64c8f8b1a0fa110332335042b148d7765b9f458d4082eb8097dafe32b97878a9ccda2c6b439f60de204c6108bcfb0aea7f4d1cc744cbadce7706109ead11a87ce306fa8c8ddb008438fe224744ff75c5cc4579a6494c0d53ff9f109407a0bbf9de2cb5a13088f1adf4743e7a6996eac5132120816823a8993c8ed2f7de0206196082ba8c201a82ca663b9657d582fa8a0c71a9fa34b940dbf09ad0c23b61a1542097ffb1b1953b8890426b1d19423c83622466958a5d14a11fdbd16c8eb5c17cc53016982435de5d7cf0176ca843bb38a37dd737a23a0572fa926723ea424a8cf16b8576f78e8a818639740793d8bcd00816162bddd0d4c3f17f1a5e942c9f4c6b80eb83c1f1f7af078291158576806bef4b1c034812a985602bd1d2e7fb9dc4554195a13909f77d25ab3bd60f84d703d09b177de58015bc528e9e5feb5e6ceb8f0faefb544cd07047874ab3844ae5429aa4b0c6df23f46a2ad2ee3d2cc79920753df2e8425481e766da7b1b062253a28b394e378c89fa716b92b2ca1246a7af516634735eeae0a923a8820adadecddb68a1f2dbfaee0137d2fec0aaa20556bb9e68476e63bc4781cc8dca743393cbe092688d49afda83230713024cb21940b5ed2e3b63ad6089c4f804062c60aba3d94f74b95fc8a8d6d2b1fbaa76396bd338b58a33796de4f67d8d74f7cb7310c9f78964daf140bc22932ae7f44f726306ebbed28edeb7ca9bce7114b53ff56e9d76ce374ca0e885babe14e018f253a3860076f907ef8ecee8f3fa0c1ba1121119ba2ff5ab03879321a812e69e594efb7d7924411fca7de8b96ceabbeba958ee2bea6639d06cab44dcf31d03f568c3dde3654d783c3fd2323decc8d2f07f60c796054a5ad6428d602abd569afb3e5cc5de07e675e2ca6a778e7ae63cd249828b38f1eb339ac3b96bbdcca092b4555608eca5c5295da7eb83dde5bc7a6a71a0d1e75a3c4286cb9cbb015f19113515c71c8ffc0043fd12ac9f0c26bb4b3d2d29f4523c91fe1cba54acd64630032eefb812ce3dac9009ee4ea23f369acfe6abf1fc262df88acff82ea46788858fe4642a53bcdfcfffc379ab0d7489119a58a56089ca29033550e4df69017ab97b2adf4e16186c3d60189e684d733a1acb0bb4ae53d8430939f559873164570e8f851a2503bcb4313f6f51f16911dc4366ef21dbf14722f5570c6ee4d35a76b586ebf244ea54762f4f7c1d6b27fe189f950033b377b7eae46a4b813de132519d01fd6e92a6ba28ca529e850270ac221a366504069575e68246d6044b14edfd7383ea1ca7d554314cae0d80589a5a1e3fe5c0cab914428ecc80e81d1ac69794a95cb9467a8e7c6f34a121b52d444033e4c500cd5b26754cae97e5a2050e14c9d83c01c005096c5daf22105b37cb427c2e9fa0172a885adfe19d42c74453cfd9dd6a71c9c69cd41746420454cb99671babc5527ae6419def985202407de27b4e2b1ba020c2ecb78a2e054ec2e4c8d21d20a455c01546dfee1bdb69933aac8ae09f1adce11ab9d4615d951b1b017c133799688c5a1153af99e21ce319b06972e5c5459d543173e04b599aa7dd5cf195bafc93954fc9e7a1d380a1c80448a50adb1bd0e6bd5b3b50f5aacf69b6833412dadcef79cea0e45eabd147c88f16512a8450fdd92f54f26b3512a6bc492fd593aeb480804b4bef6d8fe4eb54d815e85a6887b7562209d3f84fad0b489f7066ebdefbae02f040e6e214ef06529ed9e565f52bff6c4809266a325d44d67cba93a87ba785e428236eb061773ef00193bd6895f8749f7fee1acba74abdf36fc2629fbae0b30049066886b591d45ec6699b2d3797f326d1090f186ee48c098d01f392a07738160e89a3f24b24f7618cc97c430f88d9e98172afb49330eb10fb6ce99adb27513be8f5d8d17b794ab12723429bfc09264dd338943c3205c2a1af38548bd7c87706b17529f940a65faa8946de65107ffbf8407e54cf8aa2e95fed33c45d16f077217ffe989d777ddab13b616564c8700787e8b7e586d880117c3b8e7f03263f42f74ab06a51bfafdcd70171e63bb17227fda9a0d81b1aa9eddabab942a7d63bfdabe4f7008471566b94251a5536bc89ef0911ede44b2ad96b8c32083fb331f23380ecd71cb6b4b6479dd1ea1c42c36f4a4b339b3f0ae9377b23d52d65c3ec25e2a1a68cb1df57b2577ed124cc6e1625b0005ebf07936941568aff3905ff976dd411bfa895f89458986d134d01ad72e8cac4c50101921d1a4f049bc30f9d11ee766745c46f64b18068533cba1c078665b3c448bd3d64da316f045fdb1e8c181a395add0404467959021948c955b22d4c7c5ab220873bd184404478d4b7cff554e4e72a19cc93474675cae9a09965e27c89c943850c9c7317895a84bd14127b9fa7f0377963851aadad3498bc93b213af30da62e465f9711f57a34736d92b54dbada140d338505da5001ac0b217b4712e95dde445553dda70758e948dfd795f9a7daa13d3771eddd96ef4d37b0fa640a508ccd6b3622e2fe5ac18e9c466b34cc440cfdbe843b53331f7d3a02f56ce0fdaa32990c6e6ad72f86d206b4918375062a22f35a971e4025ff5b052f41d38246f473314fe2aeb6534403bf92e8e6e465fcbaff9b4397e248e54fa4eb4a1d7debcfd38510faf7e40f2dafc7b74d2ecd3604570795e5144270c2d8ee26a6dbdd4937cb33f10049343150f7cfd12190c3c62155f4fbf2dafe5d293187f78924f02c07d8745bf8c0735d4fc5402eb29965cf9beb6b178c17d16ad026805015bfb926eb127fc4ae16a98292ecc81228c27b344b52c2593b8a104c5fab64cab097de88ed422611c986f8ebd035b835463c13834f885b3c9e47615d3c4da1f39c8d8b15e9b124eec0602546b131cc166785a09d620327efaa0d36873f366d53976ebdf062f74c47e5c9d5cd7574ce589369bd94b47c00328e8d5c248787ac0e17da28af7ae76d8d16d8753687836dd4f0e56c7f845cdc04686b9dd631738bbf8949865fb114"}