from research import *
s=begin(852,'Reconstruct all existing paired-anchor endpoints','Does a single digit-register operation recover every original File52c endpoint?',{},['model/inverse_inputs.json; latest File52c existing manifest'])
p=json.loads((ROOT/'model/inverse_inputs.json').read_text());out=[]
for x in p['source_rows']:
    pairs={}
    for route in ['Nativity','Conquest']:
        a=x[route]['anchor_BC'];duration=x['source_BC']-a
        z=duration;k=0
        while z and z%10==0:z//=10;k+=1
        digits=[int(c) for c in str(z)]
        positional=10**k*sum(d*10**j for j,d in enumerate(digits))
        got=a+inv(duration)
        pairs[route]={'anchor':a,'duration':duration,'trailing_zero_count':k,'core_digits':digits,'endpoint':got,'literal':x[route]['endpoint_BC'],'positional':a+positional}
    out.append({'name':x['source_name'],'source_BC':x['source_BC'],'routes':pairs})
a=artifact('model/inverse_paired_field.json',json.dumps(out,indent=2)+'\n')
finish(s,{'field':a,'source_rows':len(out),'existing_endpoints':2*len(out),'scope':'original durations only; no target enumeration'},'Every existing endpoint is reproduced by one digit-position evaluation with its original zero-placeholders. The whole paired field is now available for explanation without adding source or target states.','Express anchor dependence as a gain field on original durations.',{'all64':len(out)==32 and all(v['endpoint']==v['literal']==v['positional'] for x in out for v in x['routes'].values())})
