
    Yj	                        d dl mZ d dlZd dlZd dlZd dlZd dlZdZdZ ed          ez  Z	e	dz  Z
e
dz  Ze
dz  Zd	 Zd
 Z eej                  dk    r ed           ee          ek    r ed          d ej        dd         D             ZeD ]0Ze                                re
dz  ej        vr ede           1d eD             Zd eD             ddgddgddggk    r ed           eed                   dk    r ed          e
dz  Z ed eedz             ee          gd eD              ee                    Z ed eedz             ee           ee          g          Z ed eed z             ee          g          Z ed eed!z             ee           ee          g          Z ee          Zd"efd#efd$effD ]]\  ZZe                     d%          defvr ee d&          eed%<   e
ez  !                     ej"        ed'd()          d*z              ^d+ee ee          ed, eD             eeeeeej        #                    ej$        j%                  &                                d-Z'e
d.z  !                     ej"        e'd'd()          d*z               e( ej"        e'd'/                     dS )0    PathNgacmai_20260717_104203@e34de32ac157ac5e3a80dad320e404ec8e6d60eaf5329bb05d340b1f66ca3d12z(/data/video-pipeline/GacMaiAudio/project	artifactsscriptszlocked_outline_canonical.jsonc                 r    t          j        |                                                                           S )N)hashlibsha256
read_bytes	hexdigest)ps    c/data/video-pipeline/GacMaiAudio/project/gacmai_20260717_104203/artifacts/scripts/finalize_story.pyshar      s%    '.00::<<<    c                     t          j        | dd          }|j        rt          |j        |j        z             t          j        |j                  S )NT)textcapture_output)
subprocessrun
returncode
SystemExitstdoutstderrjsonloads)argscps     r   r   r      sH    N4T666M7
29RY#6777
29r      z"usage: finalizer SNAP1 SNAP2 SNAP3zoutline checksum mismatchc                 ,    g | ]}t          |          S  r   .0xs     r   
<listcomp>r%      s    %%%1tAww%%%r      completion_snapshotszinvalid snapshot c           	      v    g | ]6}t          d t          t          dz            t          |          g          7S )python3zvalidate_batch.py)r   strS)r#   r   s     r   r%   r%      s;    HHHQc9S..//A
788HHHr   c                     g | ]
}|d          S )
part_ranger!   r"   s     r   r%   r%      s    """AlO"""r         	      zsnapshot ranges mismatch@ef8a317af87da8ba8bb10b6420fa466182031b389dff4c0ec125c0c2cf85d433z*protected P5-P8 snapshot checksum mismatchzstory_package_candidate.jsonr)   zassemble_story.pyc                 ,    g | ]}t          |          S r!   )r*   r"   s     r   r%   r%      s#    bybybynocfghcicibybybyr   zvalidate_story.pyzaudit_duplicates.pyzaudit_evidence_authority.pyzstory_validation.jsonzduplication_audit.jsonzevidence_authority_audit.jsonstory_sha256z story SHA mismatchF   )ensure_asciiindent
passedc                 L    g | ]!}t          |          t          |          d "S ))pathr   )r*   r   r"   s     r   r%   r%      sy      Aq  Aq  Aq  fg  JM  NO  JP  JP  Z]  ^_  Z`  Z`  Ba  Ba  Aq  Aq  Aqr   )status
project_idoutline_sha256
story_pathr4   source_snapshotsbatch_validationassembly
validationduplicationevidence_authority
created_atz deterministic_story_receipt.json)r6   ))pathlibr   r
   r   r   datetimesysPEXPECTEDRAr+   Or   r   lenargvr   snapsr   existsparentsvalsstoryr*   rB   rC   dupevhnamedget
write_textdumpsnowtimezoneutc	isoformatreceiptprintr!   r   r   <module>rd      si         + + + + + + + + + + + + + + + + + + + +$f8$12214q}Qq{QUVWvUvST < < <   3sx==!**%IJJJ3q668**%@AAA%%%%%	 j jA	

ia..ai??jjQhefQhQhFiFi@i?HH%HHH""T"""aUAa5!B$888zzJd?e?e9e3uQx==TTT[e[e  gS  \T  \T  VT&&Yss1EXCX?Y?YZ]Z]^_Z`Z`  5Fbybysxbybyby  5Fz}z}  D  {E  {E  5F  1G  1Gx3	##a 3344SSZZAGHH
C33q..//E

;<<3	##a5566ss5zz##a&&IJJ#e**'
35Mc4RTstvSwx Y YFDEE.$q))

d;W;W;W0X0X*X>af((A5PQ)R)R)RSW)WXXXX8QTQTUZQ[Q[kl  Aq  Aq  kp  Aq  Aq  Aq  EI  U]  ku  DG  ]_  mu  m~  mB  mB  CK  CT  CX  mY  mY  mc  mc  me  me  	f  	f  hi  jL  hL  gX  gX  Yc  Y]  Yc  dk  y~  FG  YH  YH  YH  IM  YM  gN  gN  gN  OT  OT  U_  UY  U_  `g  uz  U{  U{  U{  O|  O|  O|  O|  O|r   