ascii-side-of-the-moon 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  `ascii-side-of-the-moon` is a small library that prints an ascii representation of the moon on a given date.
4
4
 
5
+ For a given date it returns a 27 row by 58 column string.
6
+
5
7
  ## Example
6
8
 
7
9
  ```js
@@ -787,5 +787,5 @@ import*as K from'astronomy-engine';var c=K.default??K;function k($,t){let n=new
787
787
  'FFF'"Z"@MGR^^'\``}]};var r=58,l=27;function L($){let t=$.split(`
788
788
  `),n=1/0,s=-1/0,a=1/0,e=-1/0;if(t.forEach((B,y)=>{let E=B.search(/\S/);if(E!==-1){let o=B.search(/\s+$/);n=Math.min(n,E),s=Math.max(s,o===-1?B.length-1:o-1),a===1/0&&(a=y),e=y;}}),n===1/0)return {width:r,height:l,centerX:Math.floor(r/2),centerY:Math.floor(l/2)};let M=s-n+1,i=e-a+1;return {width:M,height:i,centerX:n+Math.floor(M/2),centerY:a+Math.floor(i/2)}}function P($,t,n){return Math.min(n,Math.max(t,$))}function x($){return $*Math.PI/180}function X($,t,n=0){let s=x($),a=x(n),M=(t?1:-1)*Math.sin(s),i=0,B=Math.cos(s),y=-B*Math.sin(a),E=B*Math.cos(a);i=y,B=E;let o=Math.sqrt(M*M+i*i+B*B);return {sx:M/o,sy:i/o,sz:B/o}}function N($,t,n,s,a){let e=1/r,M=1/l,i=[-0.5,-0.25,0,.25,.5],B=0,y=0;for(let E of i)for(let o of i){let A=$+E*e,w=t+o*M,F=A*A+w*w;if(F>1)continue;let g=Math.sqrt(Math.max(0,1-F)),_=A*n+w*s+g*a;B+=Math.max(0,_),y++;}return y===0?0:B/y}function h($){let s=0,a=1/0;for(let e=0;e<d.moons.length;e++){let M=d.moons[e],i=Math.abs(M.distance_km-$.size.distanceKm)*1,B=Math.abs(M.libration_elat-$.libration.elat)*1e4,y=Math.abs(M.libration_elon-$.libration.elon)*1e4,E=i+B+y;E<a&&(a=E,s=e);}return d.moons[s]}function Y($,t={}){let n=h($),s=n.ascii.split(`
789
789
  `),a=L(n.ascii),{sx:e,sy:M,sz:i}=X($.phase.phaseAngleDeg,$.phase.isWaxing,$.libration.elat),B=Array.from({length:l},()=>Array(r).fill(0)),y=Array.from({length:l},()=>Array(r).fill(-1)),E=Array.from({length:l},()=>Array(r).fill(false)),o=0,A=0;for(let g=0;g<l;g++)for(let _=0;_<r;_++){let m=_-a.centerX,R=g-a.centerY,W=m/(a.width/2),b=R/(a.height/2),T=W*W+b*b;if(T>1){B[g][_]=0,y[g][_]=-1;continue}E[g][_]=true,o++;let Z=N(W,b,e,M,i);B[g][_]=Z,Z>0&&A++;let f=Math.sqrt(Math.max(0,1-T));y[g][_]=W*e+b*M+f*i;}let w=Array.from({length:l},()=>Array(r).fill(false));if(A>0)for(let g=0;g<l;g++)for(let _=0;_<r;_++)w[g][_]=B[g][_]>0;else {let g=P($.phase.illuminatedFraction??0,0,1),_=Math.max(1,Math.round(g*o)),m=[];for(let R=0;R<l;R++)for(let W=0;W<r;W++)E[R][W]&&m.push({ix:W,iy:R,v:y[R][W]});m.sort((R,W)=>W.v-R.v);for(let R=0;R<Math.min(_,m.length);R++){let{ix:W,iy:b}=m[R];w[b][W]=true;}}let F=[];for(let g=0;g<l;g++){let _="",m=s[g]??"";for(let R=0;R<r;R++)w[g][R]?_+=m[R]??" ":_+=" ";F.push(_);}return F.join(`
790
- `)}export{z as getMoonState,Y as renderMoon};//# sourceMappingURL=index.js.map
791
- //# sourceMappingURL=index.js.map
790
+ `)}export{z as getMoonState,Y as renderMoon};//# sourceMappingURL=index.mjs.map
791
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/astronomy.ts","../src/render/ascii.json","../src/render/renderer.ts"],"names":["Astronomy","AstronomyNS","addDays","d","days","isWaxingAt","date","today","getMoonState","illum","lib","ascii_default","FRAME_W","FRAME_H","asciiMoonDim","asciiArt","lines","minX","maxX","minY","maxY","line","firstNonSpace","lastNonSpace","width","height","clamp","v","lo","hi","rad","phaseSunVector","phaseAngleDeg","isWaxing","elatDeg","a","elat","sx","sy","sz","sy1","sz1","mag","litIntensity","xn","yn","dx","dy","offsets","total","samples","ox","oy","x","y","rsq","nz","dot","findNearestMoonState","state","bestIndex","bestDistance","i","moon","distDiff","elatDiff","elonDiff","totalDiff","renderMoon","_options","nearestMoon","asciiLines","dim","intens","rawInc","inDisc","discCells","litCells","iy","ix","moonX","moonY","r2","I","litMask","frac","target","candidates","b","k","out","row","src"],"mappings":"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","file":"index.mjs","sourcesContent":["import * as AstronomyNS from \"astronomy-engine\";\nimport type { MoonState } from \"./types\";\n\n// Interop: in some loaders the API is on the default export, in others on the namespace.\nconst Astronomy = (AstronomyNS as { default?: typeof AstronomyNS }).default ?? AstronomyNS;\n\nfunction addDays(d: Date, days: number) {\n const n = new Date(d.getTime());\n n.setDate(n.getDate() + days);\n return n;\n}\n\nfunction isWaxingAt(date: Date): boolean {\n const today = (Astronomy.Illumination(Astronomy.Body.Moon, date) as { phase_fraction: number }).phase_fraction;\n const tomorrow = (Astronomy.Illumination(Astronomy.Body.Moon, addDays(date, 1)) as { phase_fraction: number }).phase_fraction;\n return tomorrow > today;\n}\n\nexport function getMoonState(date: Date): MoonState {\n const illum = Astronomy.Illumination(Astronomy.Body.Moon, date) as { phase_angle: number; phase_fraction: number };\n const lib = Astronomy.Libration(date) as { dist_km: number; diam_deg: number; elon: number; elat: number };\n return {\n date,\n phase: {\n phaseAngleDeg: illum.phase_angle,\n illuminatedFraction: illum.phase_fraction,\n isWaxing: isWaxingAt(date)\n },\n size: {\n distanceKm: lib.dist_km,\n angularDiameterDeg: lib.diam_deg\n },\n libration: {\n elon: lib.elon,\n elat: lib.elat\n }\n };\n}\n","{\n \"moons\": [\n {\n \"index\": 0,\n \"distance_km\": 405493.5,\n \"libration_elat\": -0.888,\n \"libration_elon\": -0.412,\n \"ascii\": \"._ . - . \\n ,_++> a, +. `-. \\n zr' ^ ~\\\")ssy_ss_. e__ \\n ^' w3$B$#R$2tBW&`x. \\n M@$@@E@@$YAm5Q@s<T \\n _*4Fk ;_ . : _r 4$g$B` `T!~4Z HDb*y_ \\n 7w=:-yyXm#sg@$$@$#Z . R$@$@R$?@` \\n ,Z$Kj9@W@$@@@@@@BG@w., / e$$0@5@Bbl\\\" \\n } z$@@y@@@@@@@@@$$@@@B@w$L cyM%H$$WP=K* \\n /^ 9M@@@@@@@@@@@@@@@@@$@@$~ y, ?#$$; 'L \\n MF. ?E@$$@@@@$@@@@@@@@@@g *z'_. ,Z@@ + \\n >w% E@@@@@@@@@@@@@@$@@@$$$%>$k- `y*.~$xtv \\n ##y$_-_y_aL` ~@@@@@@@@@@$@$@@@@@$@$$yB@$$/~ ~^Q+ \\n kXB@@_g@@@A`wgy@@$@@@@@@@@@@@$@@@$B@@@$@$I ~_ \\n \\\"_K@$Rb$^ ~MW$@$B@@@@@@$@$@@$@B$$@@@@5%sW v$v+ \\n #U@W$9@W_ .yd@$@@$@@$@$@@@$$$@$$M$M@2B@&@zgM `\\\"+ \\n [F*$E$@g@d@RR$E@@@$$@R@@@@@Rg@B$@$@0$@2@@_ypJ~ \\n \\\\'MB@PR$@$@@$$$@g@@@@@@$$$$$@E0@G$@g@$$A$MgV( \\n ^>Y$W3$@05$@B$$$@@@@M@$@R@@@BR$0$a@$@$@$@K? \\n ~4&BWB@@@@@@@$@@@@$@@@@@B@$$@B$NEBgW$~^\\\" \\n `^^T&~v$R$B@@$@BB$$y@$$E@$$@A&N0M\\\"~~ \\n 'Nv?52EMJ!_@$5g@@$R@RA$@E@7nF\\\"^ \\n \\\"^ 74~0~#<ERggkA=s3p4yyL. ` \\n ` ``^^ ^@n8m+\\\"`^\"\n },\n {\n \"index\": 1,\n \"distance_km\": 361882.7,\n \"libration_elat\": 5.044,\n \"libration_elon\": 0.661,\n \"ascii\": \". -r.. \\n _1{ *~ ML1W>u, _ . ^.., \\n y/ ^w@@$@sEgg_9u_{_ \\n ` .yyB@$4@@@e#jmg\\\\Wk\\\"*+. \\n ` -@R4@sF~~$WJ'R/~Z$%bk~\\\\ \\n ,\\\"_ ^ . m _w@$@@\\\\ \\\\@Rw@$h@k@K7, \\n ~T'~. _y y-w(4$a$@$F@$ : 'Z@$@R@R$@L \\n _L_<A@@@gy$$$@@$g$@@g_ y -9@@@$@W#)y=k_ \\n a@@2g@@@@@@@@$@@$$@@$@$g$y. >3[~~QM$ZW\\\" ~_ \\n d$@@@@@@@@@@@@@@@@$@B@B@$%` ,M '=$$$ 1 \\n { #[$@@@@@@@@@@@@@@@@$@@@@@@x4# -w -r?M@w V\\\\ \\n ?% , 4$B@@@@@@@@@@@@@@@@@@$$$@@\\\"H[db^ sEM!^*aVc \\n y'_ jZ@@@@@@$@@@@@@@@$@@$@@@$$M@E@@$%~ . ~\\\"\\\\ \\n %vM_ _ _} \\\"0@@@@@@$@@@@@B@@@@$@@@@@@@@M@@Z* Pj \\n <5%BgP,vg@@$Yf`y4@@@@@@@@$@@$@@@$@@@@B$@@$@$@WzK yyu~ \\n @2E$gW@@5F~ 4@@@@@@$@@@@@@@$@@$@@@@$@0@$@@$g@n$sz`1H'i \\n +A@@$g$Z' _2$@@@@$$@@@$$$@@@B$@$@@@$B@@A$@4@#4yJj k \\n '&@K@@@HE__xamB@g@@@@@@@@$@@@@@$@@@@$@@@A@g04$Wg#HB7\\\"' \\n HeAERBg$$@$$A@@0@$$B@@@@@@R@@$$$@$@@$5@B@a@b@W@WEU. \\n (~4@@E@@@W@@g@$$@@$@@@0MRWB@@$$5$@@$0$$@g@$$$@eRr/ \\n \\\"gj4ZE4@@$M$@$@$g$@@$@@W$@@A@$@$B@B@EB@00BBWTlM \\n ^$F2@E$$$0@@@B@@0@@$@$@@$@gB@@$$EP$$$bRN#^~ \\n \\\"EZ8$ERAzBM@$B@@$$Z@ga@@2$@@g@0@9mwa4~`< \\n `!7RvsyJ_D$@~$0$$B@@@00%@$4AT2Ef7^< \\n T$('@KEWc54$2Z$M$R#@MUT@NK1 \\\" \\n `T^^+{$)$2a73I9;@%RcM`\\\" \\n ~'\\\"`'~\"\n },\n {\n \"index\": 2,\n \"distance_km\": 363474.7,\n \"libration_elat\": -4.493,\n \"libration_elon\": 2.394,\n \"ascii\": \"_ \\n . .- T - -, \\n -bZ?-aLrw*j_ : . \\n : _$Y^ ~ ^-XRyw|,, ~- \\n F`` _#@@dgsgs _2_! \\n _ : . y@@@@$zE$AD21ftW' \\n _yWBxm' *- : . __ \\\"N$@@UOF4@b\\\\%sB7WR.' \\n `s;wd__1 W_;Vn@yyag@$@5 `~ ,s,<%[gs/k \\n t$$2AW@@@$@@$$@$$@@E$# r . \\\"@@$D$Wjny \\n -:; . q@@@$$$$@$$$@@@@@@$@@@W _ K@5@$5E55Z \\n v2K ~0@@@@@@@@@@@@@@@@@@B@@$$ylD y$@@5d@~Ewx \\n _V$(. 7HB@$@@@@@@@@@@@@@$@@5$$@@F~ T d@gs | \\n /v a; ; ```@@@$@@@@@@@B@@@$@@@@@$@ ,, ' ^T0$ \\n L0@@$ v@$@@@@@@@@@@$@@@@@$@$@B;y: y,. +^ A$ , \\n \\\\b2Y$$E{x2gz@L=_D5@@@@@@@@@@@$@@@@@$@@@$y_tw$@_ u\\\"^ ^W%' \\n WLA$$@$%@@@@@B`Y=L@@$@@@@@@@@@$$@@@@@@$@$E@R@$@E \\\"{ \\n ]y@NB@@@$$F ^B@@@B$@@@@@@$@@@@@$$@@@@@$@s0$@Z . \\n {4X$@$@aR=e _R$@$@$$@@@@@@@$$$B@@@$@@@@E5@PYE\\\\ y) \\n @*AgMB$$R5aR@@R$g@@@@@@@@@@@@@$@$@@B$$#$@Qjm@TdW/ j\\\"/ \\n #aZW$MBMR@0@@@$@A@$@$@@@@$@$@@@W@$@E$@@$$WgHP%^~hu` \\n `%$0$F$@$0@@@@B$$@@@@@@$@B@@E$@@@%@$@@@@$@W$@$BZ~ \\n 4?9@dB$$R$@@$B$MB$@@@$$$$@$$@5@$@g@g@B$9b$@AZG \\n *E@R$MR$$@@AZ$$R$@@$R$5$@@@D@$$$$$@ZE3@@a`^ \\n AA-j_^AT$$E@E@$@$@$RB2@Wa@$@%R@@$5BT~v \\n ^@V%@5@Q5WXE@@@R2@@RWR$b@$4@$WXMW] \\n r'AF)[%st$@BEc$E@Bx?t5_@\\\"T`^ \\n ~^ !7iT5$Z@@R0HW~4! \\n ~ ~~ `\"\n },\n {\n \"index\": 3,\n \"distance_km\": 363808.5,\n \"libration_elat\": -0.275,\n \"libration_elon\": 0.915,\n \"ascii\": \"\\\\ l.r \\n ._u:UK4 ^v w_ ~ ^\\\\ . \\n . . v> ` ` `^4@Rj_Qx__ MBm \\n .(~ 2g@$@@zgWi9%Qd|4 \\n {0@@$5@@@B~D#gmHgk\\\"M \\n _$g.y = _ _gDg$M\\\" `TYr~Z^ 1RvqF^ \\n \\\"~`K'.:,_L _w_s2@y$$$@@R` !@%g@R*Mz#{ \\n . &yg^YR@@s@$B$@@@@@W0Z ,@$0@$BRXU \\\\ \\n w@@$f$$$$@@@@A@@@$B$@@&_ G; @@@B@@Zj0k#x \\n M g@@@@@$@@@@@@@@@@@@@@@$@@@$+- -MM~~W@$# `!v \\n !Xe =#$@@@@@0$@@@@@@B@$@@@$@@. =r . 44$$ ' \\n M]| . \\\"@@@@@@@@@@$$@@@@@@@@@@$xfi m . wu=Az. $ \\n `[#< J@@@@@@@@@@@@@@@@@@@@$@@g@_42s_ y?% ^K}@! \\n <my$yy} ww,a_ .~$$@@@@@@@@@$@@@@@@@@R$$@B@@@$zs' ~`~ \\n XNv9$@p$$@$$E3L*y0@@@@@@@@$@@@@@@@@@@$@@$@W2@gM- -. \\n 'Vd@$Z@@@@\\\"` $$@@E@@@@@@@@@@@$@@@$$$@$@@$@$NKc . ,j1, \\n wkBQR@@%k,! ,z@R$@@@@@@@@@@@@@@@@M@@@@@@$$@Wg\\\\$g* %>V \\n `VJ$$s&0Bv_J$$0B0@$$$@$@@@@$@@$@$@$@$@@$$$@@@f@YF_L` ' \\n ??K#gZ@@$@@@$s2$$@@@$@@@$$@@@B$@$$$@@G@R@ERBB@g#Xfuf \\n twZRW2$@@@$$$@@@@$@@$$@$@B$@@$E@$0@@@E@M$@M5$@WyL \\n ~\\\"E@@yE@@$@@$@@$@$@B@$$$@$E@@@$@$@$@$@@@@ER@27>\\\" \\n ^!F5#g@@$@$$@EE$$@@@@$W@@M@@$$@0@@gKzBBK%9~ \\n `'^~~^T~7R@g@R$$@B$@MQ$a$BE@@$gE@$HJP5(~ \\n ` '}K$@g#R#0$15$@$Z@R@@BRz@$@V[Qe\\\\ \\n `f='^4ysMh$54T$W42@PE~FfW&9~~ \\n '~=\\\\ <?^F0%~>BR$?)^T\\\"` \\n ` ~ ~~\"\n },\n {\n \"index\": 4,\n \"distance_km\": 364350.7,\n \"libration_elat\": -5.105,\n \"libration_elon\": -1.866,\n \"ascii\": \". - ``` e . \\n , -zq{^o{.1n, = \\\":\\\"y . \\n . _Z0~ ` -ZAmLi,.. '_, \\n M\\\" X@yygyw-x_2/Gk. \\n . . . jg$@@$$g@@$1?V#WR}^_ \\n s*R W M/ ;.. 4$5W$$RF@$WgEZ99@2q'\\\\ \\n . 'w._w_y_7__-z@$ym@@@$2' T~~_$'/@2@*7j, \\n y@ghT@@@$@@@@$@@@@$$W<- 7$E#@B$g4N \\n ,} . y@@@W2B$@B@@@@@@@@$g@$ , / ug$$@B$@@8w; \\n /|r 5B@@@@@@@@@R@@g@@@$@@@@@_w@ 7A@$@K@C45)|! \\n hM: ^4$$@@@$$@@@@@@@$@@@B@@@@=^k _:4'~~@@$w'~`m; \\n ^\\\"Z' ` . ~ 4@@@@@@@@@@@@@@$@@$@@@$ j_f^ =@@@ '\\\\ \\n (g@@ _. 5@@@@@@@@@@@$@@@@@@$@@$4BW_yL _ 4YT@s .\\\\ \\n eRZ$9@,Wgs$g,-{V$@@@@@@@@@@$@@@@@@$@$@@@zy@@_.\\\\#FF RB@~^ \\n '|@@@sB@$$@B P=yg@@$@@@@@@@@@@@@@@@@$@@$$@$$@$F\\\" ^U . \\n \\\\wAb@B@@$` $@@@@@@@@@@@$@@@@@$@$@$B@@@@WB$C\\\\. Q \\n 3FB$A@m@ y$@@@@$$$@@@@@@@@B$$$@$$@@@Z@@B$m; {yX{ \\n ^4H@0@@@KRy$@Ta@@@@@$@@@@@@$B@$@@Q$B@B@EB@@$$46z: ]EZ+ \\n \\\\\\\"w@E3R@$@E$$@@@@@@R$@@@$@@@@$@$$$$@@@0@@$KMB\\\"3L(^;^ \\n ~<%@E%W@B@R5@@$$$@$@@@@$@$$0@@@4R$B@W$@@0gB@b@@` \\\" \\n nM%4$$g$E@@@@$@@@$$@$$@@$$B$@E$@$E$$RMBZ$$N%$V \\n `=4EMT@Q@g@S2g@$@@$@@BE$@$0@@@$$$M@gW$@4Z9~/ \\n !_3w~P#KB$@@g@@R5@@R$$@@@@$@RR$a44%44v^ \\n 't\\\"Y#$XM@_\\\"55$$B@$@EgB$@$awR4MzG~| \\n !-`z%T4@>ME&b~E9B$rT>4_-$4Y' \\n ` `TWD13d~A2fK~Wv^= \\n ` ''`\"\n },\n {\n \"index\": 5,\n \"distance_km\": 366333.9,\n \"libration_elat\": 0.278,\n \"libration_elon\": -3.312,\n \"ascii\": \"~' ^ _. . \\n __*^w<-xr=<w ` ' '?, \\n gf` ''\\\\KAy@-_w__ _)Mg, \\n \\\" u2$$$R$gn&w@sB_M~(_ \\n $@@$@B@@@@@$mg@gRk*>Y \\n __ _! r _ _4@@@$~ ~R^~gE,sgm$GI}\\\\ \\n ' ~ ,_y _k ,R@yW@@$@K`, $@&@@@a1&$K\\\". \\n , al~_$@@@gBBg@g@@$00{ . @ \\\"$$$5B$$sMy\\\\u, \\n .4@$4$@$$@@@@@@$@@@@@$y_VR }E@@@$W@s~wW7l. \\n s$@@B@@@@$$@@@@@@$@@@@$$$@Y* {4rT~BM$qB \\\", \\n N fd@E@@@@0@@@@@@@@@$@$@@$E_4_gF f=@M$ Rr \\n 7! 9@@@@@@@@@@$@@@@@@@$@$$m$y@g___ +F*Y&m ,X \\n VwL b@@$@$@@@@$@@@@@@@@@@@@@@b@$$R_1aB3^`4mWk{ \\n J$Wz_L ._yx fB@@@@@@@@@$@@@$@@@@@$@@@@$@@2gF_ '^\\\"n) \\n l4@$+E$$@@`E*y4@$@@$@@@@@@$@@@@@@@@M@$$@@$@@a. 7>o' \\n R@RK@$$F`' 2$@@@@@@@@$@@@@@$@@$$@$$@@@B@$0@$k ,.nyd> \\n lY$E@y4. ygR$@E#$@@@@@$$$$@$$@@$@@R$@$$$0a@@gM,%^> \\n #q8@g@$wy2g$~$$@@$$@@@@@@@@@@@@@$@@0@$$W$@K@6D@LL\\\" +/ \\n ^jJ0@@@g@@@gK$P@@@@$@@@@$@@$B$$$@$@Wg@g@@g$$g$E2B(<~ \\n VWM64k$@$2@$@@$$@@@@@@$@$$@$@@$$B$@@$$R%@$@$@E$*( \\n `=X@LZ$gB@$$@$g@$$@$@W@M@$@@$@W0B$@@$@$@$@$$@RV \\n ^KM?N9$@@$@W5BB@#B$$$$$$R$@@$@@@Dd@%BMAmkWx^ \\n 'H\\\"'%_RF2@$@Bg@@#GA$$5$R@@@@W$$BRkK1|`' \\n <V=H@Z#$__3$bgA$Fe$RYR@R2Wy=%V` ^ \\n `=L~YGT$6$49TEygg$gw1dse< '\\\" \\n ~'!\\\"T~A4_EtR00>V~-~ \\n ` `\"\n },\n {\n \"index\": 6,\n \"distance_km\": 366534.2,\n \"libration_elat\": 5.395,\n \"libration_elon\": -3.121,\n \"ascii\": \". : ' 7 __. \\n + : =c_ws_ . . \\\"\\\",> \\n |'` ~NEmszz$_E_a2wcju. \\n / ;$y$@%h$$0*R5j@#WwyYn \\n 4@5$gF^~@$JRg@`T@KV3p2|_ \\n , : _$$@$+ : a@$B4Em2y$g.- \\n .r ' :-|u 4D@g@@$$ , .2@@@@#B$@W@>_ \\n _+ G$$gy9@@$sz$5$@@` y@ . N9@@@$s$xFym>% \\n #gg|@@@@@@@@R@@@@@@@@$a@gL,.)4yk~Me@@WT '\\\"v_ \\n .d@$$$@@@@@@@@@@@@@@@@B@@$J`_a*< Y4@@v (v \\n , 4MM$$@@@$@@@$$0@$@@@@@@@@g$$WyG , xK*HRy_ v: \\n !: ?@@@@@@@@@@@@@@@@@@@@$$g$ME$@yF *$MF ~@C}\\\"| \\n uX . ty$$0@@@@@@@@@$@@@@@@@@@$$$@$@$@E ^{\\\\.L \\n Q4+ _ _ ;'@7@$@@@@@@@@@@@@@@@@@@@@@@@$@R$ !V! \\n #[%XI 4agMR4_-_@@$@@@@@@@@@$@@@$$@@@@@@$@$$@$z: w-Lvm. \\n ~%m@Ed@$@F~ /$$@@g$E@@@$@@@@@@$@@@$@@@@@@$$B@a$$NT]W($\\\\+ \\n lz@$$@@~ _$$@@@$$$@@@@@@@@@@$$0@$$@@$@$$W@A9@$$/ Uv \\n pXM@RgLj.1w@M@$@@@$$@@@$@@$@@@$@R@@@$$$$$$@@@@R@2$;/ \\n MNK5@$@@@@@aW$E@@$$@@$@@@@$@@@$B@$@$@$$@R$$@$@@2*U\\\" \\n \\\"=?6F$R$$BR@B@@$@@@@$@AR2@$$E$@B@@g@@@y@$$@0W$2%4 \\n \\\"%wKD^@@$@y$@B$@$g$$@$B$$$@$@B@@$@@5@2k@@ZaF\\\"`' \\n 'V@R$&$$BR$@M@0$R@B@$@@R@@@@$@@$@@@bBZ@JM^ \\n '*?bKJ\\\"%0$g@@$@E$$a$g$p5@g$eyB3RRZ$tF~ ~ \\n ~-g8k#@59g_y$@$F$$RTaE@Enf~5H|~)< ` \\n ''$'\\\"Pys/4dRHbD2kKZWa@RMXH + \\n ~^~YMa.5~$_yWTKBa4=r^` \\n ``\"\n },\n {\n \"index\": 7,\n \"distance_km\": 368573.4,\n \"libration_elat\": 5.829,\n \"libration_elon\": 3.778,\n \"ascii\": \". T r \\n +_:X ={_r;_ , ~ - \\n _y^ `` ' `^X@ygRBy=. ]ZC; \\n u'^ _w%$@Rp$g*=E#7Vy,,\\\\ \\n ' ~@KR@$F~M$V*_2'4$%]/}. \\n _. , x ., . , ,g$m$@` $ewsP05k$M \\n w75,F ;_ _w_/j$4$@$S@} t$@@@R@G@y \\n 4gGJ<@@@@w@@@@@$0@@$s g $bdB@K6FGfs- \\n H@@_@$@@$@@@@A@@@@@@$@Wg$y. \\\"N/~~@@@@ `~? \\n i q@$@$@@$@@@@@@@@@$@@E2@$@k W S=@@) \\\\ \\n ,_ M$B@@@@@@$@@$@$9@$$@@@R@@@w}\\\" _ ` 4^?@x. w \\n $t ~?@$B@@@@@@@@@@@@@@@$@$@yyK X$4_. v'! ~*]^ \\n ^W`w . - $@@@@@@@@@@@$@@@$@@@@@@@$$g$@@Wg~ '.7+ \\n K$wG_ ._ _TM@@@@@@@@@$@@@@@@@@@$$$B@@$@0@Q* zl \\n ;bWagg2'W@@@@$V\\\"*g@@@@@@@@@@@@@@@@@@@@@$@@$$@@4R/ zv| \\n `vN4$$$$@@@FF~ 4$$$@W@@$@@@@@@$$@W$$$$@@$@$@B#4%@mP xJX \\n {W@W$$@$@F y$@@@@@@@@$@@@$@@@$@@$$$@@@@@$%@B~_wa Y \\n @Y@E$2@@@\\\"y ug@$@@@@@$$@@@$@@@@@W$$$@@W$#M$B@@@@B$?x \\n {mKW@$@$@$@$@@@$0@@@$$B@$@@$@$@@@$$@@$@@yMAEE$0H5X \\n [/aM@$R@B@@#$@$$@5$$@@$@@$$@@@@@#@@@$@E@@$@@@WX\\\\ \\n ^t&W@$%T0@$@@g$@m@$@$@@@$$@$W@@BB@@@$@gbNR5k5L` \\n [UZ$Z23@@@$B$@B5$@@@@$T@d5@@0@@$PM$$KRkW^^` \\n '\\\\@PBKtYKTP@@M@g@@$@$gR$g$BWB$Bh3~8X' ` \\n 'f?k>@ghg@MBT@8RE@fd$RnZs#?1w)[!: \\n '\\\"~$J~m#?Bd$M4@gE@Z$0a3GGV1' ~ \\n T^~^T`^j4Zlu*M4T ' `\"\n },\n {\n \"index\": 8,\n \"distance_km\": 368792.8,\n \"libration_elat\": 1.882,\n \"libration_elon\": 4.299,\n \"ascii\": \".: . - \\n ,_*_q -/nvu`. ' ' x \\n jj+~ '` `'^hUyygZl _1r. \\n <^~ w@B$M$$$g./5BY, \\n .4@E@@a0@@#.1&$#$i{., \\n u_: s r..4$@@@~ ~\\\" '$_,R@WQ,; \\n -F'h~ _.y_4y1_Fd$gg@$@TL R$@MBE0M# \\n :@z=w9@@@@@@@$$$M@$$$ / n$@g$BR${, \\n '. 4@@$#@@@@B@@@@B@$@@@@gy_4+ `9e#@%g$\\\\\\\\~\\\\ \\n r_ . 9$@$@@@$@@$@@@@@@@@@@R@@RBK `/ #g@5 ^ \\n XQ? \\\"A@@@$@@@$$@@@@$@$@@@@@$@@ ? .\\\"^$&i \\n /VzL . ..\\\"M@@@@@@@@@@@$@@@@@@@@@@[\\\"_ __ _. `V^#\\\\, : \\n ^J,$y n@@@@@@@@@@@@@@@@@@@@@@$$y_WggwLjT` ~$w \\n )S@@@L______ywJ.5@@@@@@@$@@@@@@B@@@@@@@@@@@B@g0i 'Y \\n ^9650g@$2s@$$@F@*g#@$@@@@@@@@@@@@@@$$B$EBg@B$@Hf. ?| \\n #3@M@$@@$@F~~ a@$@@$@$$@@@$@@@@@@@@@@$@@@V$@EO?; ?s4 \\n Jjg@$$N$5Z., w$@@@@@@@@@@$@$@@@@0BW@$@RR$$$9@ZR$ x. \\n ^4N%7W@R@y$wB9W@$@$@@@$@@@B@B@@@$$@@@@A$@B$Bdg@_jW: \\n \\\\@$B$@@$g2@@@gE$W$@@@@B@@@$@@5@@$@E$@W$@@$gM@@@2k,` \\n \\\"Wfj@$s@gg@@2@$$@@$@B$@@$@@$@@@$@$R$@@2@E22@EA$@# \\n \\\"@BG0L$@B@@$@$@$$@R@$$@@E@$$@@@@g@R$$@@$$@MFt~ \\n `fT$$%@R@$@$$d2sg$$@@$@@@@g$@$@@HRRM@ETT7+\\\" \\n ?X@W~YT{WT#@B$$@@@$@$g0B@@W$#@@#$$dWn \\n !8Hg@mE$EBVT&0y%$@0#sNEWAmpV*4M ~ \\n ~n'__@2#Ga-BE@$sglEE(NNZJZ \\n ^ ^ {3'9i@V_zM+>-~~\"\n },\n {\n \"index\": 9,\n \"distance_km\": 370979.8,\n \"libration_elat\": -5.57,\n \"libration_elon\": 4.616,\n \"ascii\": \". r F^. , ,. \\n 7 , _mvpaW..,_.^ -r> , \\n z$\\\"``~ `r ~-zR9_ ` ` +. \\n ' {Y~^ ~3Bwyak. .QU \\n . . )gg$@R9g@R/Rtmu. \\n , . _g@WyZ.xsv. , u7@E@AaK@@W\\\"H%)__^ \\n ; `T`$__ yw).f__.WRwya@$g@$` \\\"?^-~_/X#!: \\n < _ g@@*5g@@$$0@$@@$g@@53 4@@p@aRi< \\n Jjp , ~g$@@$@@$@@@@@@@@@0@@@l , T@@E5@KL \\n _4g@ R@$B@@@@@@@@@@$g$@$@@$$a_,\\\\ 2@$$$g8@\\\\ \\n T>@{; 4M@@@@@@@@$@@@@$@@@@@@$$EePh \\\"~~`~5$V/\\\". \\n _*@LZX . `$@@@R@@@@@@$@$$@@@$@@$K *R@; `: \\n |$P@W%_ w _ r.@@@@@@@@@@@@@@@@@@@@@@@~ -, .n:01 > \\n )XjE5B@@~aZ$gg$ya$$@@@@@@@@@@@$@@@@@$B@$gW _yN_ .X! 4M/` \\n JD$@B@@@R0@@@$M~Fx@g@@@@@@@@@@@@g@@@@@@@$@Ws@@B(^ `>' \\n 7$4$P@$$$@F\\\" R@$@@@@$@@@@W$@$@@$$@$$W$@$y@gL+ . \\n !2BR$@6@@WMg __m$$@@@@@@@@@@@$@@@@@@B$@@@@E$@$%\\\\ . > \\n 7*>M$@B@@0@Em$@@@@@@@@@@@@B@@@@$@@B$@@$$dRE@MRyy M \\n ^!@$yEgZQ@$$@$@@@s@@@@$@@@@@g@@@gR@@ZB@@@@0BW@~~_v \\n \\\"9BR$@T#$@@gE@@$@@@$$$@B@@#@@@@g$$@@$s$g@@#$g$GR! \\n 'M&@@@D@@R@@@@B@@$@R@@s@@@@$$@@@@BB@RR@WM0@@B\\\" \\n ~0B#@Bt@@@RCgy@E$@@@@$$$@@$E$@B@@@@$3@@<P \\n '2[@g_{iE@$Z@@0BKEE0$R$@$$#@5@$$$@@MT \\n ~<[F8g(EzaZM$#@yM$4yB$$@$d4MW4W~^ \\n 'R@/2Sy<MRg$W5D$^>OT'\\\" ~ \\n ~r!7/4%E@@5vr*?^\\\"\"\n },\n {\n \"index\": 10,\n \"distance_km\": 372936.5,\n \"libration_elat\": -5.822,\n \"libration_elon\": -5.197,\n \"ascii\": \"; -: . \\n _, >c +___' ,`i + ._ \\n ._Nw^~\\\"~T~ ;\\\\ 9M_., \\\"`4o_ \\n ^>~ . ^$@$2%2Wiu zRzq \\n ` Lg@@@$@@ge$d$gZ2~aL \\n _vW<> ;-' g$@$RZ&@B$4@K$$4R%_%M_ \\n ` | ,,.: . _,xgEyX@@g$$M` \\\"4Y?$$~-MB]*K_g \\n _zW*32@@g5y$@@R@$@@@@Kv '$$$W$m#mggJk \\n :2@$WgBg@@$@@@@$@@$@@h_./yG j@@$@$WBw4M-, \\n [ '4@@@$@@@@@@@@@@@$@@@$g2@$E,: ;@$$$@@@2#MIo( \\n < ^w5@@@@$@@@@@@@@@@@@@@$@$@k j\\\"@@VF@@@@KM~\\\"|> \\n rj $@$@@@@@@@@B@@$@@@@@@M~$y@Y ` R@$@% !| \\n 5\\\\E , _@@@@@@@@@@@@@@@@@@@@$EK@@@$_, .eX#b> j \\n \\\"KEN~;zyy$_, `0R$@$@@@@@@@@@@@@@$@R@@y@$$$~ -aA<^W1nV' \\n #E0R@@$B##~F_yg@g@@@@@@@@@@@@@@@@@@$@$$@$@Z=\\\"~ ,'MI`' \\n cMF$@B@' =#$@5@K$@@@@@@@@@@@$@$$$B@@$@@R$ .' \\n w\\\\a@@m_, yz$5$@M~$@@@@$@@@$$@@@@$@@@@$@$s@t LyA'; \\n i,kRR$@ma@@$gW@@@@@$$@@@@E@@$@$@@$$$@@@@$@@gwm ;%XP \\n }44$KB@@@@g@$$$@@$@@@@@$@$@$@@$B@@@$@@@R@B@R$yX^,/^ \\n YVAYT@@$Z@$@@@$@@@0@B$@@@@$$$@B@$$@@$$B@@W#ER4_~ \\n SK@2@B@$B@@@@Z$5$@5@R@@@B@$D5@@200@MM@$4@E~_ \\n ^I\\\"<Z24B@9y@g5$@@@@$g@@@$$@$@R@@$$R@@@Y?k` \\n ~^j._;4$Ta@s@@@5@ER$$2@$$@gBsyAH4@O- \\n `\\\"';tK/RyvR@Nq@@#$@$QE$@@E7$d\\\\J= + \\n ~ Yg+F=9fP$12$F*+$)@~j~?` \\n T~zE$45[~K=\\\"~\"\n },\n {\n \"index\": 11,\n \"distance_km\": 376361.2,\n \"libration_elat\": 2.0,\n \"libration_elon\": -5.764,\n \"ascii\": \"; .. _ \\n .- yxw__ `'( ` n> \\n - ~\\\"F M@g_-m\\\\_,, _W<x, \\n l` . __$@$@@RK9>4$d$%,qn_ \\n mg@$@@D@@$2D#g@sgMyJ4} \\n .._ 4$@@@F~ ~F\\\\~k5~x$@@WMswt, \\n ^r . ywyE@@@$;, #R$$@S$g$H*m . \\n $ . @$y$UNg@LZ@@@@$ ~, \\\\ .g@@@$@$$$$dF;; \\n js@ug@$@@$@@@@@$@$$@ysx$E{ ZR$$@$@RQ@M%)N^ \\n . -@@@m$@@@@$@$@@$$@@R@@@@$#* [^M8F.$$@$@ ~MN \\n _: 4ZR5@@@@@@@@@B$$@@@@@$@@@@B$@j .\\\"^5g$_ >| \\n (. *y@R@@@@@@@@@@@@@@@@@$@@$@@$zy.r3<VH@z_ *j \\n '_ )Z@R@@@@@@@@@@@@@@@$@@@$@@@B$sy$$'M `AgWi^? \\n Wd, . j ~Ey2@@@@@@@@@@@@@@@@@@@$@$$@$#E . ~?]X: \\n X;0>)_g@RK7.ggA@@@@@@@@@@@@@@$@@@@@@$$g@@AB_ . _,j' \\n \\\\@ME@@$F~ .$@@$$T$$@@@@@@$$@@@@@@$@@@$@0@@ga1_$*@wK<_ \\n 7#%BB$ y#j$$Za$@@@@@$$@@@@@@B@@$@@@$gEg@@@ ~&>\\\\ \\n `,N4Rgy/jggR4W@@@$$@@@@@$$@@@$@B@@@@$@0@$@gg9$WW_j5r \\n V\\\\2W$$AgR$y@$@@@@@@$@$@@@@@@BB@$g@@@$$E$WB$@AK@7+ \\n YXnbM5@@d$@@@@a@$$@@$@@@@@$@0$@@@@@@B@$0$%@HK%2' \\n '42K^RB@B$$$$@$@@@@$@@$M@$@$R$@$@@@@@@BW@$#{\\\" \\n ^\\\"Z@0E@@BgM@$@@@$$E@@$@@B@$$B@@d$Zm@R#{~\\\" \\n `x`.U +$$@B@W@@@@gM$$@$#g$40A#gF[~$\\\"M \\n K@cm$M8wK@gG3g$R@g$s4@M7xH~4j^ ~ \\n \\\" -~~&CTp9=$$@9U$RE?kv7+ur \\n `~` `T\\\"-\\\"<M5PT\"\n },\n {\n \"index\": 12,\n \"distance_km\": 377700.5,\n \"libration_elat\": 5.801,\n \"libration_elon\": -5.923,\n \"ascii\": \"- \\n .,_ .. ~ ~ '\\\" ^g:, \\n ; ^~ ' `$$WyzQLw: j8yG=- \\n \\\" Ly@$$&@RM72g<@%$LYR_. \\n +4$M@GB=R@kdM@M^?$@WxM\\\"|, \\n . _gW@$K ~' 2$x@MgM@WE)r1 \\n .- ^ >:, 4y@$@M0$ =@@@$B$@@QWz(? \\n - .$$jQygg$y$$$g$C,: a. j@R$@@@ZmBR#Kw{ \\n 5$us@@$$@@@$$$@@@@@gGgFLL.J?$W0~$@$@U~`~\\\\n& \\n ,a@@@$$@@@@@@@@@@@@@$$@@@~gy$r ' =~$@$\\\\ ^3| \\n . (5M$@@@@@@@@@@@@@@@$@@$$@@@@@L__ wRR~E@@ ,Xk \\n ~`{W$@@@@@@@@@@@@@@@@@@@@$$$@@&~wdM*M~#@gL~J \\n ; _$$$@@@@@@@@@@@@@@@$$$$@$@$@@$$~. '~~v[/ \\n w_ . _ '4^y0@@@@@@@@@@@@@@@@@@@@@@$@$@*> >w- \\n H &i +w@#M$ _$$$@@@@$@$$@@@@$$@@@@@@@$@@$NM>_,-_kgv9Y \\n ~<msX@BF~ 9@R$mR@MB@@$@@@R@@@$@$@@@@@@@@@@gg$BQW+%$_/ \\n \\\\FRW$$ _yH&4gy$@@@@@@@@@@@@$@$@@@@$@@@@@E0@$$]\\\"FM' \\n '?V]MgL+,_g%a$@@@@@@@@@@@@@$@@K@@$@@@2@$$$@@$%0M@2A^ \\n a@7@$g@g@y$@@B@$@R@@$B@@$@@@@@@@@@R@@MR@$$@By@#YF \\n ^3k522#@B@@@B@@@@@@@EE@@@@@$@@@@E$BR@$@$RgR$R+~ \\n ^(^4`@@WA$@B$$@$@$@@9R@@$@$$@@$@E2@@RRWgMw?/^ \\n 'Q7W2$0$W@$@$@$@@@@zRW@$@B0BK0W@@MBMM~\\\\J \\n \\\"V('x.~3@RRB@@$@RB@@@$$A$B@@jptW%~' \\\" \\n \\\\T$/RRZBgp$ZGPRMg$$$@$E$X/'~W) \\n ` =\\\"\\\"&*G]@wtB4E4$gg$4$4EP!^ \\n \\\"^ ``\\\"+M= -T~^'`\"\n },\n {\n \"index\": 13,\n \"distance_km\": 378113.4,\n \"libration_elat\": -2.581,\n \"libration_elon\": -5.835,\n \"ascii\": \". . .. \\n . `, ,_. -7`\\\". \\n /J^~T ~ \\\" z4$_ ._ `\\\":- \\n 4-' . . [@$@x@Wyy y@$iu. \\n jy$@@@$g@A@g$DARB}@w_ \\n _*_ . 790$$g$MA@@a@W@NRBRk^% \\n ' .~ +_ *$_yx@B@E= ^`~JBsm$$HWbyQ^, \\n Jy-\\\"@@g@_a@@@#@@$5gTn \\\"ZM@$$$g$@@w^. \\n _@@@$Gg@$@@@@@B$@E@$;$gys' _9@@@g0$Ra@j_~. \\n q@@@$@@@@@@@@@@@$$@@@@$g## _vQ@R@B@Ew#&~nr2 \\n .T `#2@@@$@@@@@@$@@@@G@@$@$@%_z:7F^ W@@B^ (*l \\n } =D@@@@@@@@@@@@$@@@@@@@N@#Wy ,`_5@#w \\\\. \\n #PL . 5g@M@@@@@@@@@@@@@@@@@@@$gR@$pu,_%7\\\"R$L KU' \\n \\\\ Pz\\\\_y-gb \\\"05L@@@@@$@$@@@@@@@@$@R@@g$@@$g>~ ~KAD'@ \\n 7|B$)g@@$@ Y=y$@g@$@@@@@@@@@@@$@$$@@@@@@@BR_ r' \\n 'YK$$N@\\\" PF@EgM@$@@@$$$$@@@@@@$g@@@@@R$@z. _)z7 \\n :kR@$0;_ g@W@$_yg@@@@g@@@@$@$B@$@@@@@$5R_$*.iH9R? \\n TQ@@$d1w$@9#$@@@@@@@@@@@@@@$@B@@@$$@@@g$BgB@@wMk:T \\n {%AP5@@0@@s@@$@@@@@@@$@@$B$@$B@$@M$@$RRg@dyw@#W};` \\n ^y5XA@$MRB$@@@$R$@@@B@$@@@@$@@B@@$@@@@RA@@B@YQ;~ \\n `6%RGBB@@@@$W$$@$$@$@E$@$@@$@$B$@$$$@@@$%5\\\"` \\n `\\\\X3~~2@ER$$B@@$$$E0RB$h$R$@$@a$aA@%R@%9 \\n >Un _{6$RA@$@RW$g@0$$@@ygWKMM$@@W^~ \\n ~n1M5&*#_a0@@@AR@$@$$$EXU7YMf^? \\n ` ~^~k[c5s%MAYqMFFM@\\\"VZ ' \\n ^-^*F^~?~`~`\"\n },\n {\n \"index\": 14,\n \"distance_km\": 379658.1,\n \"libration_elat\": 5.491,\n \"libration_elon\": 6.128,\n \"ascii\": \", - ,. \\n , __ _x` , , \\n ,+Y'=' .^?=PywwM__., _.- \\n -s- lE@@$@g@__L_$>. . \\n \\\" ` >$$@$$44@F<Ma YX_(:. \\n . _. 4@W$R \\\"\\\" ^wyy9$%BZ \\n ,#RoP ` k \\\\\\\\;_a@m@@@#ET ~@@#$%syV; \\n ~a_bX$@$$3@$$@W@9$g@L , W$@@RzFC}t \\n . ~@$@$$@@$@@@@@$$$$@@$N%y___ ~g?~5$Bw^\\\"| \\n ^ y$$@@$$@@@@@@@@@@@$@@Q@@RP^ ` \\\"R$@_ : \\n ..W ~@@@@@@@@@$@@@@$@$@@@@@$@$. u /m=Ey . \\n ^jR \\\"~?@@@$@@@@@@@@@@@@@@@@@$w_< `gy; j~) tyl \\n xV^> {+2@$@@@@@@@@@@@@@@@@@@$@B@_@R$$W~ \\\"?Y \\n '&W$z . y[_?@@@@@@@@@@@@@@B@@@@@@$$@@@@0@Ek !' \\n ^N26@9g_pdg$$$M$*@@@@@@@@@$@@@@@@@$@$@@@@@*@$Rb\\\\ :d/ \\n ^ARj@@$$$@@@~~.}9$@@$@@@$@@@@@$$@B$@$@@@$$g@@@PgKL *\\\" \\n 4M*$$$@@$$__ x$@@@@@@@@@$@$$@$$$$B@@$$@@W@R$E~_j!u \\n ^0MN@@@@$$wmys2@@@$@@@@@@$@@$$$$@0@@@@$$@s@@BR@@KK ' \\n \\\"\\\\3@@$R$@$$@$@@$@$@@$@@$@@@$@@$$@@@@@a@@B@E@E$0_\\\\ \\n ~WR#W@$s0@$@@K@@@@@@@$@@$f@@@M@@@@$g@K@$B$@0$P\\\"\\\" \\n ~^@QB@$~b$R@g$B@@@0$$@@@@@@gBB$$@@@B@@B@54M~ \\n )=W&@A4M@@$@@E@W@@2@B@gWK@gD@@@gEW${$#^ \\n /@TEEE`&A$#0y$@@Z$MM@$p$@0BtP5%@<l \\n '~XmT$E$W@MgyR$$aRs9gS4WW9/~ \\n ` f=L\\\"0EZW$@RPG%#$R{Rx{&''~ \\n `^`^ '`\\\"\\\\\\\"?~ '\"\n },\n {\n \"index\": 15,\n \"distance_km\": 381331.9,\n \"libration_elat\": 0.836,\n \"libration_elon\": 6.123,\n \"ascii\": \". _, \\n __ . _ \\\" < \\n wz?^^\\\\^ `r={*_, _. ` ,, \\n .4fT '80@Ma<w% <,). \\n gg$$$$B@%K$YJi[ = \\n ___y, ^ji . . _ 'J$g$0F~~5\\\"*J:`6x\\\"i: \\n . #T5ZY ;`-,'_n-;)wyWB$@$\\\" aygg5B4W \\n ' g@9e@@@@Ea$$g@$@$R$$ j@0@@@KR \\n 2 +@@@y$$@$$@@@@@@@$@@RL_ * \\\\$@RRwgT^I \\n /jw 4$@@@$@@@@$@@@@@@$$@@@@E@$+ \\\"4\\\"'7Ak@^ w \\n .%g$ `@A@@@@@@$@@@@@RR@$@@@$@$E | TT@5 ' \\n ,&X<> `~?@@@$B@@@@@@@$@@@@@@$@@ _; ? MW { \\n 'MtJz. +^$@@@@@@@@@@@@@@@@@@@@$gG| _ay, *` ~GV \\n 5yjE@$yz(ny_y$ -@@@@@@@@@@@@@@$$$@@@@$$@ga@R$@T `\\\"- \\n IJEW#$@B4@@@@@KS1g@@@@@@@@@@@@@@@$@@@#@@@$B$R@7 '- \\n 2ZW@E$@&&$F~~. VB$@$@$@@@@$@@@$$@@$$E@$@@Z0$$$> y)' \\n ?%&$@$@$g@x{ _,m@M@@@@@@@@@$@$@$@@@$gB@R$$*$$Y@M 2 \\n ` %2@$BB@Rb$L@@@@@@@$$@@@@@@$@@@@@R@@$@$R$$$I2l_y> \\n `Wkg#@@R@$@@@@@@R@@@$$$$@$@$@$%@@@B$a$Rg@@@g@@Pp+' \\n 74&$R@WM@B@@$RR@@$W@$@@@@@g@@@@$gRbEB@@W@@E@@&; \\n +E#@$am@0@B$@@@@$$$@$$@@@gW$5@@$@@$d@@BgRR^^ \\n `\\\"@S@$MM$3RRE@$@@$$$MW@R$$BR#@$@@@%$%@< \\n ` J8MqG_3=AM$$a@@@W$@@@$@@$aR@R?Tx~' \\n \\\"|QT4RARm4$*ARQsGW@EaRP7$TTP~` \\n ~- zMeeE65tsF0g12$Lb9X^ \\n ` ' T~F~~ ~^``\"\n },\n {\n \"index\": 16,\n \"distance_km\": 381859.3,\n \"libration_elat\": -2.705,\n \"libration_elon\": 5.978,\n \"ascii\": \". . \\n . ___ L._ ^; - ( \\n mze^^`\\\" '~~RX_ \\\" . \\n .tv? `B$@lglu- | . \\n . pggR@@$@EZ:dFR, \\n wax_. y_ R0ER$@f4$WyCW?w:v \\n !. ~TT%~_.\\\"u_Jw__j*E_x$@g@H ~\\\"'J_ jQtjj \\n [ $$bdB@@@@W$@0$E@@@Q$ . '@$@zNBcX \\n [| \\\";g$@@@$@@B@@@@@@$E$@@@ :. 4@B5@R%(` \\n jyMy t@$@@@@@@@@$@@@@@@@@@B@%y1_ . Zf$RK@CG# \\n vNt` Pg@@@@@@@$@@@@@@@@@@gB@$F'~ F WB@' \\n 8j@~w - ~f@@@$@@@@@@@@@@$@@@$@@L. ' `\\\"?_ \\n AM$@Zy . . .`w@@@@@@@@@@@@@@@@$@@B@$_i yL \\\" yN).P \\n )jy@0@h@~LsgyggaR@@@@@@@@@@$@@@@@@@@$@@@g_g$$v;^ 7N \\n !VH#$B$g$$$@@@$7k4$@@@@@@@@@$@@$@@@@@@@$@$@R@@a \\\". \\n '5SBBR$Bg$$F {f$@@S@@@@@$@@$B@@@B@@$g$@B$$$[, 4` \\n 1X@8@@2@@$hg __W@B@@@@@$@@@@@$@@@@$@$@@@@W@B$y_ M/ \\n JQRB$D@$$@2$g$$@@@@@@@$@@@@$@@@@@$$@$@@R@@WWkFV {\\\" \\n '@@fF$@0@@gR@@@@B$@@B@@$@@@$@$R@sM$@@@$$@$$@WwgW\\\" \\n `@V$4$ER$$E$$@@$@@g$0@@$@@@$@B@$$@$5@B5@@@NT3~; \\n {~$M@@E$@$@@@$@@$@@@$$@s$$9@$@@2$@4@@RK$T@@^ \\n ^ FqR#mZ3JH@Wgs$$EBW$@Z@0MWg@B@@$WM$B55? \\n ~^k/1ayDgW$$#$00B@$@$2Kg@$$Eg$$$\\\\$' ` \\n ^+K^YG#%gWa9Ra@@9MT$$EZ@@~wO=\\\"' \\n ~ `-%Hy~T@@M?a4%M$\\\"^k( ` \\n ~' `~P!+^^ ~`\"\n },\n {\n \"index\": 17,\n \"distance_km\": 383889.6,\n \"libration_elat\": -5.925,\n \"libration_elon\": 6.256,\n \"ascii\": \"_ . \\n . ' _,._ ' .:_ \\n .nzF'~-^`Fnrj__ . \\n aF~ ~ `!Hyw_g_ w. \\n . ` xygg@@W#k,=|l. \\n _gwa; _wJ ($@9@@d@@\\\\W^@K_ . \\n _ t~\\\"$~_ ,_W_z+'_jz. y$@W@\\\" ~~kfX#~5i; \\n /\\\\ '.3@$@@$$@$$@ss@B$W@$MC 4m9p6b>{ \\n G5[ _. ,$@@@D$$@@$@@@@$@@0@0@~ 0@$$B$$ \\n .}2A> 9$@@@@$@@@@@@@@@@$@@@BaL ( \\\\$FgY$HX; \\n M@@Bq . H@@@$@@@@@@@@@@@@@@@@$W@s \\\"NV^?$g_\\\"M \\n jW@%y@ ~ . r ~@@@@$@@@@@@$$@$@$@@$@@ *#$m \\n &U*&WMW y _pG$@@@@@@@@@@@@$@@@$@$@@F \\\" ='$, ' \\n (T$Rg$@@E$w@g$@W$@@@@@@@@@@@@@@@@@$@E$@gy _y_ | `v</ \\n &&mV$RB@@R@@$##K$s@@@@@@@@@@@$@@$@@@@@@g@ya@$Em ? \\n `5VA$@$@g$RE`, @B@@@$@@@@@@@$$@@@@$$g@$B@y$$\\\" _ \\n v<Aqs@R@B@E9_yy@@@@@@@@@@@@@@$$@@@@B$@g@@E@@@$\\\\ ,> \\n $AR$Bg@@$$@sR$@@$@$@@@@B@@@@@B@@$@@$@$MG$0@GlWw ; \\n ~~qZ$BRgZ@@@@$$$@$@@E@@@@@$B@@$$@@@$@M@@$aRfM~,, \\n ^R*@@zZ$@$@h$$@$@g$B@E$$@@$$A@@@@$@$BWWE@@B@) \\n 79@@gW$@gg@@@R@$@$@R$D$@@@$@@@WB$$RXBBgM5[ \\n {JGKRHk~@@g$$R@$Ez@@$$$@$@0$@$@$EB@@RMX~ \\n &@R2$4yKBbAER@@R$$dW@@g@@@D$m@@XN`\\\" \\n ~^u\\\"?F4KPEz$$$Z$#@g0$&@@55M@v\\\"~ \\n `~-Xw7PPe=TA4jzFW<_t^' \\n \\\"^r-^^^ \\\" `\"\n },\n {\n \"index\": 18,\n \"distance_km\": 389306.6,\n \"libration_elat\": -5.818,\n \"libration_elon\": -6.036,\n \"ascii\": \". _ \\n . ; ``( }. \\n w;MP|* =n>fsL ^ . \\n *|| `^RE@_}y_ 4ym, \\n . ,yAg@M$R2@L$RMw< \\n _w , . g@$$B@R@@m@y%B$@y,(k \\n ``~' x _yy.J$E@@BM~T@T@A$TM$gWg\\\"VL \\n .$x_gg$J0@a@@@@@@$@si aM$RB@AWMe/, \\n . . .g@F*g$@@@@@@@$@R@g@',_ z j$@$$@5$$W]`; \\n / j@$$@$@@@@@@@@@$@@$@@ygz@_ #@@@g@$@BEa<u \\n . . Jk4@@@$@@@@@@@$@@@@$@@$@$E ,7$2=@g$z&\\\"^KTL \\n /j A@@@@@@@@@g@@@$@@@$@BEgys\\\\ ' HB$@N ~P \\n h0L . >@$@$@@@@@@$@@@@@$@$@M@@6$_ .we{@0 .l \\n %>E$ -gsWw_^`RME@@@@@@@$@@@@@@B@@@$%#@$@~ y@# 4@*X|, \\n MRQ@K@@@hff $y$@$@@@@@@@@@@@@@@@@@@$$@@BE$\\\" \\\"4> j \\n L45B@MF . ~ZR@K@#B@@@@@@$@@@@@@$$@@@@0@R$ . x9r \\n {5S0g$_ , g$T9@y_@@@$@@@@$@@$$@$@@@$@$BWN\\\\ xkx ' \\n \\\"VM$g@$@R@TJ$$@@$@$@@@$@@$$@@R@@@@@$@0%@gg$$^;M<:X \\n \\\\ t@@g$$$@R$@@@@@@@@$$@@@B@$$$@@@@$$$E@@$M$yW`j+ \\n 'jj`R5@@@$@@$@$@$$@@$@$@$@@@$B$@@Wgg@$B@@W@>/` \\n \\\\^48R$@@$@$@$@@@@E@$K@@g@@@@@$@Z$$BW#sP#^| \\n '-:, {$MA@$@EZ5@@@@@$$@B$@@@$@g5$@Em9/^ \\n z~*gT6GfTA$H$@z5$Z$KREBa@3GW5#9\\\"^' \\n \\\" +?L$\\\"3f@@@1$E5$5F5$=Dj?$>?\\\"` \\n ~` ?tJjg#E@gH@~W$:` \\n '\\\"``\\\"'\"\n },\n {\n \"index\": 19,\n \"distance_km\": 390509.1,\n \"libration_elat\": 1.475,\n \"libration_elon\": -5.963,\n \"ascii\": \"_ \\n - _ ` ... . \\n _r -- ~^<_)$w _,_ ` jy. \\n r 'g@$$$$x$yyMW_~:_ \\n .j$$@Bk@$@@W2gRZ@y\\\"<y \\n . NgM@R$~~4$RMgBM1%&E$jWy \\n w~ \\\" . y_y@@@@~ g@@B@m$#RKJ{ \\n ,, _s@@ngLg$5$@$@@'^ w _$$B@@$@W$Nrj: \\n g0Yw$g$@@@@$$E@$@@@yjy4_; 4@@@@@E@#Xb@X> \\n q@$Eg@@@@@@@$@$@@@@$$$s$a.-vI5MFT@@@a\\\\~ \\\\nW \\n _ d7@@@@@@$@@@@$@@@@$$$$@Jp@$@, . FR0@F j! \\n ' `+R$@@@@@@@@@@@$@@@@@$d@@@gLuy,r@@%Wk :f- \\n LF C@@@$@@@@@@$@@@@@@@B@@@@$@@@wcHPT \\\"%bs/1+ \\n NU_+ __ 7^y$$@@$@@@@@@$@@@$@@@@@$@gR$ . '#~w: \\n %_W<_ygBR (=yB5$@@@@@$@@@@@@@@R@E@$@@@@@gW !M' \\n (Rg&@@~ *B$$@FRR$@@@@@@@@@@@@$@@@@@@s@EgW,y*RGvW+ \\n K0@2@ w@#@$yX@B@$@@@@@@@@@@@$@@$@$g@@@@$_P%y~'' \\n ^`gM@@EyyWH_$$0$@$@@@@@@$$$$@@$@$R$B@$E0BG$aH@@+J/ \\n ^N4@$@M@E@$ER$@@@$@@$$@@@$$@@$@@@@@$$W@@@$@Rz#7 \\n ^,W$FH0$@@@@$$@@@@@@KR@$@@@@$g@B@B#@0Z@B4Y$0v \\n Yx*BK$$@@@$BZ@@@@B@@@@@0@R0@@@$@M@$B#0@K~ \\n '~~~}3?RA@$@$R$@BW@E$$gB$@$QM$#@@@kF}F\\\" \\n \\\"(4w~2#$n#M0@HW@$@9@@Z@AB)EKfBF'. ' \\n '\\\\D?^X0@$$g%4s7@RB4$9%Z_w~, ' \\n ~^^P&Y\\\"r*?59P44M%J~5~ ^ \\n `T~'\\\"`\\\"\"\n },\n {\n \"index\": 20,\n \"distance_km\": 391670.0,\n \"libration_elat\": 5.642,\n \"libration_elon\": -5.869,\n \"ascii\": \"x`! \\n | ;! ^\\\\+e%*_,<- ,_ _pK+ \\n ..F ggg$Z%92kyBWWyC /. \\n wg@$E$$@@K@Rg$7QRvx$t,_ \\n . a@@B$\\\" ~~\\\"WRux$$@g@@$}L \\n i ` jLyA$@@$ \\\"0@@@@s@KRM*W{, \\n _ gg-N<gyg^@@@R@> _ J X@#$@$@05&3x2=. \\n _@_7&$E$$@@@@y@@@@$ggg0= . 9@$P5$$gb#~ \\\\M$. \\n _ag$W@@@@0@@@@@@@@B$@@$@R'yy.^~ R@BK/ &) \\n . .F@@@@@$$@@@@@@@$@@@@$$$g@g@gw_ .w*y#@K_ }W \\n k ` ]y@@@@$@@$@@@@@@@@$@$@@$@@@gF/g@t='4@$$/O \\n t5$M$@@@@$@@$@@@@@@@@@$@$@$@ERF` ^~1.4/ \\n jy . `E_2R@@@$@@@@@@@@@@B@@@@@E@$$gQ ]<W L \\n 4;,-ag@$4.gg$R@$@@@@$@@$@@$@B@@@$@@@@@sBFy_ ua9mm7W \\n \\\"Y#@%$@^~ 0A@$$M4R$$@@@@@$$@@@@@@@@@@$@@W@$@r&MMMx# \\n ^@K$g@ a$*R$gg$@@@$$@@@$@@@@@$@@@R@$@@@E$$$0V$R \\n 0W$@ja\\\\_$@`$$B$@$$@@$$@@@$$$$$@$@$$B@$@@$@22@$@t\\\\ \\n <P4m$W@@@$@2@@@@g@@@@@$$@@$@@@@$@@B$2R@@@$@Eh(` \\n `TSsW@@R$$@@$$$$$@$@5$@@@$$$@$@$B@$@@@$gRRs5' \\n `^}&`$b$$@gH$@@$@@@$M@RM$g@@$@@%$N@R@5\\\\R\\\"^ \\n >j?\\\"T#M$0#@@@g@R@@Dg@$$@$$$@b0B@E@#^` \\n `? <L. k45k~F@E#@@0$T@BE@#5@$?6m-, \\n 4K?4Y($GE4zR@5g$$EEgBngK\\\"_>-~ \\n `~>?^4 MMKqZR@Ds!=`(' ` \\n `' ` `\"\n },\n {\n \"index\": 21,\n \"distance_km\": 393407.6,\n \"libration_elat\": 5.513,\n \"libration_elon\": 5.636,\n \"ascii\": \". ^ \\n LNV' `T~{$b_ -, \\\" . \\n _j@' <R@$mW$wxt!mn \\n ~ g@@@$@$@@'Yq\\\\as;' \\n g@@$6^ `P ~<\\\"_M@yMj \\n _g%n- z+ sEyg$@$@' ~M$g$M$sX \\n \\\" 'a(_ra@g@@$@$g2$$$@@ f4g$gA@4M \\n `$@@y$Z@$@@@@$$B@@@@g$_y, *@7M?$$N~'\\\". \\n ^ _H@@@@@@$@@@@@@@@@@@$$@@5~ ,. `B@N_ \\n ;yK `gR@@@@@@R@@@@@@@@@@@@@$$_ ` w=~@L . \\n <$\\\\ ~?@@$$@@@@@@@@$@@@@$@$@@yk `W@! ,I? YP( \\n -JMw - 3B@@@@@@@@@@$@$@@@@@$@@@Mz@B@#! \\\"^ \\n \\\\Xw$g _ . yJ_\\\"BB@@@@@@@@@@@@@@@@$@@@5@$@2BR[ ./ \\n FP@w@g$_n@$@@M@*y$@@@@@@@@$@@@@@@@B@@2$@M@@@e> .W' \\n y#@$@@@@$$~~ ~4$@@$@@@@@@@@@@$$$@@@@@$$@MBER$%< <^' \\n l6$d@@@B@L a@@@@@$@@@@@@@@$@@@@E@$$@$B@Rm@\\\"_/, \\n BM$g$@5gmezvB$$$@@@@$$@@@@R@@$$@@@$@#$@@@@R$$@(.` \\n ~12KMy@R@@$@$@R@$$@@@@@@$E@@@AB$A@@@AR@@@@KE@Gz \\n '@kRM@$@$@$gR8@@@@$B$@R@g@g@@$@@$@@$Ra$@@@$Z` \\n ^?WE@x@@@@@@@@$$b$@g@@@@@gB4@$R$BBMRMyTT' \\n \\\"4QB@@@M@$R$@$@@@$@RE@@@A5$R@BQM@M#P\\\\ \\n ~^@j@&_gm$@%4T$B@@@W$@@UK@#W7~7' \\n CtHP@$02WR@14@5Z2FA#3j\\\\J: \\n '\\\"r'F5$~(G@7_$TM$4>^ \\n '\"\n },\n {\n \"index\": 22,\n \"distance_km\": 395633.7,\n \"libration_elat\": -2.548,\n \"libration_elon\": -5.238,\n \"ascii\": \"`` , ;/ >_, \\n ,_ +,P> * y _ ~ 'u_ \\n :{T` `~=$WWk_r, _#P+ \\n ~ _yD$@@g0Es&#ZB@'x. \\n _ , @@@@Ea8@@bEY$@@sGL2t \\n f^ Y '' . .w_ _$@@B@' `=3'25Zp$$>a#Iu \\n g_:.g$_RMzy$U$@@$#E7 . Rg$@$@HgaEK` \\n $@wR$@@@@$@$@$@$$@!y- g! .g@BB@$@$$M,3 \\n . -@@@@@@@@@@@$@@$$@@@$@s$L ?BB$$B$@RMXFW, \\n ` ~C$$$@@@@@@@@@@@@@@@$@@@?E_;]=^ 1@@WE {( \\n >M `RZ$$@@@@@@$@$@@@@@@@0RgB2r ~M@$_ 4' \\n (@+ . %@@@@@@@@@@@@@@@$@@@B$$$R@$w+ ~A_52v_xr \\n ~^MkFwa-wK `XF2@@@@@@@@@@@@@@@$@$$@@@$$sA^ ' ~@$}'^ \\n w$$$g$@$N`wty@@@$@@@@@@@$@@@@$@@@@@$@B$#_ `_' \\n M$@B$g^ AB$@$R$R@@@@@@$@@$@@@@@$$@@$@G( y,]\\\" \\n ~sf#R@,_ y$H@@$B@@@@@@@@@$@@@$@@$@$@$5R$yyw-^W4h; \\n I}V5@K@@ME+R@@@$@$@@@@@@@@$$$@@@$@@R$$BgF4@_'T#_ \\n m\\\"y*$@$#@@@@$@$@K@@@$@@@$@@@5$@5@@@B$B@@@RQ@_X` \\n ~\\\"$~@g$$R$@@$$@@@@@@$@$g$@$R$@B$g@E$Z@@@$sx. \\n ^FP$@$@@@@@@$@@@$a@@$$$@@$$g@@A@@g$@@@5VF \\n ^ ~/`~$@K@@$@@@@$AE$@0@@B@$B$@a4?P@P\\\" \\n uW&\\\\@m@ETRDH@Hg$sRgS@E&N@5@%6^X \\n ' u3@#pME@RS@PQ4RWKRMkz@ `. \\n r{^M=Fi@9#KEP(K7~/ \\n `~\"\n },\n {\n \"index\": 23,\n \"distance_km\": 396804.0,\n \"libration_elat\": -5.205,\n \"libration_elon\": 5.066,\n \"ascii\": \"T - \\n .x*zZTn>-- _ . . \\n .. a_0F ~` n4M_;. ~u. \\n '~ ,^@g$$gw_;kw, \\n . ._w{ , __' r@$R$R#@$tfU~_x;. \\n . ?X?E$`_~G _: __+ _@E$@^~~?kic%\\\"$/$ \\n p @B%<#$$y@$W@$@@6@$@F y@_z@sl| \\n n__ _M@@$z#$$@@@@@@@@4$0@ `A$@@g$( \\n 4JK& , g@@@@@@@@@@@@$$@@@$@@$( # 9gKzgW&\\\\ \\n jD@z_ +#@@@@@@@@@@@@@@@@@@B@W@m hN~\\\"5#F^ \\n ?7#.@ 1 \\\\r ~$@@$$@@@@@@$$$@$@@@@@ < 'MRy V \\n N%P#Rg _ ~W@@@@@@@@@@@@@@@@@@@g$,' -. r~$, j \\n NGqQ@@$Ejy$gg$2s@@@@@@@@$@@@@@@@@@@5@@a,{Zg, ; ^ 0< \\n (3H4@@B@$@@$#=~t0@@@@@@@@@$@@@$@@@@$@@$@@$@$$ ' \\n `4Hg$B@@@$F`. \\\"4@@@@@@@@@@@@@@@@@@@@E$@$$e@W, j \\n KR$$bR$$@gZ_vzg$@@@@@@$@@@@BB@$@E@@gB@$-g@E$) \\\\` \\n Eeb@@$@$WgW@@Eg$$@@@@@R@$@$@$@@$@@@$B@$f@R)P@ . \\n ~75RR#$@$@@@B$@@$$@@@@@@@@@@@$W@M$$BB@$@E2B_jn^ \\n =W%B@_@@$B@@$$@@$@$@@B$@R@B@@$@@M$@D$$@RMBX \\n ~~#M@0@M@@@@@@$s@@$$$BE@#@@$@W$@$g@B@B@>~^ \\n ~#w7%,wRG$@M$$@@@$@$&$@$@@$@@M$gRR@^^ \\n Ry$aG0$#MM45$$ZZR@$a3@@0@$R@2pM` \\n `'=4Kh5M$K4AN*@tSd$sT&C^~} '` \\n \\\" ~TF_75@RgmF4`~ \\n ``~```\"\n },\n {\n \"index\": 24,\n \"distance_km\": 396918.3,\n \"libration_elat\": 1.016,\n \"libration_elon\": 4.987,\n \"ascii\": \"~ r .:c . \\n . ju ]>_^*Y=yL ' ` . \\n .W> m@wy+l_ M~ \\n ` ,ggm@Eg$WRwx_!_ \\n . L$Eg@K`4$_dW$ \\\\wY \\n _R4B$ ~).{. ,.sELgB@$E. ` yWw4aggy: \\n `7kp>_ggy#Tg@$M@$@Wg . `4@$@R$@y \\n ,$@$g$@@$$@@@@@B$@@$y_ - ?ER@22R]>, \\n >. ,. 1z@@@$@@@@@@@$@@@@@@@@$@gp `\\\"@~~2$$Y^~) \\n vZr BW@@@@@@@$@@@@@@@B@g@@gB 7 jY$l \\n 4v$y . ` ~@@@$@@@@$@@$@@@$@@@@@. - \\\\Y4w ) \\n }A_z, ' ;;@@@@@@@@@@@@@@@@@@@@g$sI W*_ ,{^ ^@L' \\n T@#R@yy).y__$W-y@@@@@@@@@$@@@@@@@@@@@@$g@@$$( \\\"I \\n .X@9a$@gy$@@@$$=$g@@@@@@@@$$@@@@@@$$$@0$@@$#f >J \\n 9D$$@$@R$R JB@$@@@@@@@$@$@@$@@@B@g@@G0@@D_ N \\n :s$E@a@$@my _ggB$$@@@@@$$@$B$@$B$@@@BE@E0MQmM / \\n 7X@@@R$@@@@ggR@@@@@@@@@@$@$@$@d@@M$@$$W@@g@Ly$M) \\n myX$$K$@@@@@B@$@g$@$@@$@@$$@@@$@$@$M$$@@@$@g/l \\n \\\"?-&@@Z5$@@g@$@@@Q$g@$@$$@@@@$$@@R$@@W@@@gMG^ \\n \\\"7#5@0E@@@@Z@B@$B@$@@@$@$B@@@@B@$5$$$@R$'\\\" \\n \\\"0M$M4FD@@$@$@$$@@RB@@$@$E$RN0$PW0~~ \\n ~5@<X@$0j@$#~$B@ZE@$gR%RA0EM7?\\\"~ \\n '*TT3m4aH@2@RW$3M$P=BzR)^: \\n ` A<?X%f_WmPg@EM-`\\\" \\n `\"\n },\n {\n \"index\": 25,\n \"distance_km\": 402200.1,\n \"libration_elat\": 0.434,\n \"libration_elon\": -3.119,\n \"ascii\": \"\\\\ r \\n ___< *r z_ ? \\n . ~ `''P0wvzkyu _M:n. \\n v __$B$MRM#%e$XgZLn_ \\n ` 'd@$B@b4@$%%%@M@4drY- \\n +A 5 ~ .___a$@$$~ ^``R$w$$#@@G~, \\n v2x a@y*HkW$R$$$8yP 4$@bB$$@$@w: \\n g@_D@$@@@@@$@@2$$@_.Jy\\\\ BR$@@@$E6Rw& \\n ug@@$$@@@@@@$@@@@@@$@@@$:, &#MF2R$EW~'/W \\n x `E$B@@@$@@@@@$@$@@$@@@@%~(ye ` 44$#F 'r \\n !, 5y@@@@@@@@@@@$$@@@@@@y$$yw . ,*YMEG > \\n 4[$ j 32@$@@@@@@@@@@@@@@@@@@@@@$MM`_mMF =bb^\\\" \\n 45tgy: _ g_ .\\\"R$$@@@@@@@@@@@@@@@@@@$$@@@@$` . ''4* \\n (j@$aDB@@%X Ly$@@@@@@@$@@@@$@@@$@@$@@g@$a_ W, \\n (@0R@E@' `5@@@@$$$@@@$@$@@$@$B$@@@W@$M$PL_ yr/. \\n Jm4XR@9;_ _ggF0@@@$@$@@@@$@@$$$$@@@@@$$@KZM@';e!j^ \\n 3Y@M@$@wy$E_5$@@@@@$@@@@@$$$@$$@@@@@@@$@$WZ$$~i^ \\n t)753M$@#@@$@$@@@@@@R@@@@@$@E$@@$$B@$W@B@@$Gl' \\n V@G~@g$$0@@@B@$$@@@@@@$$B@@$@$$$@$WR$WW$W<( \\n ~%p2#B$@$@N05@W@@@$$$$$$@@@@$@g$@@@M@Wz \\n ^~`/`^PW@@@@$@B$$E@$@$@$BBg@@WERKC,\\\" \\n 'V?hg$q#E2A@M42@g@GRMg@*wK@l~)' \\n {7$k$n5HMDA@wBF$%bwmyI + ~ \\n 'Y~~ *bv@4$$K'?~ '\\\"\"\n },\n {\n \"index\": 26,\n \"distance_km\": 402352.2,\n \"libration_elat\": 5.638,\n \"libration_elon\": -2.986,\n \"ascii\": \". . \\n __| -;<pN__ _ ~ g.. \\n xP' @R$@SpJV.$U4+^ \\n r~ _@@@BBR@@Z@HeP$@yl^t. \\n j@s$0\\\"`~R\\\\F$E,g$$gmQJi \\n - . ,. (_j$@@@\\\" MW@$0mA@E&n_ \\n ``, ysg\\\\%ygP5@$@$F /_ 4@$$@@0R@a\\\\j. \\n 2L @W$@a@$$@@g@$@@a~u@ %TBFg@$Z}'^`X \\n y$@z$@@@@@@@@@@@@$$@$@@~'.u.^ <@gK@ \\\". \\n . -@$@g@@@@@@B@@$@@$$@@@@$W$M-_ _>aMgz, 3' \\n ' `'~2B$@@@@@@@@@@@@@@$@@@@Bg@$@^`aE*~^kmz~ \\n F .D$$R@@@@@@@$@@@@@$@@@$$$@@@gg' ^$)(; \\n ,p y 'sF@$@@@@@@@@@@$@$@@@$$@@D2@y> ?^}, \\n !{P@_;A$@T$=L$@@@@@@@$@@@@@@@$@@$$@@@@B#RN_,x7Aw7 \\n 't$$R@@F~ `TE$#@E@@@@@@@$@@@@@@@@$@@E@@$0$@@P2|ctx \\n j$B@$# +@Mg@gg@$@@@@@@@@$$@@@@@@$g$@g@g$$$9vy! \\n >rQ@0EgWw@@%M$R@@@@@@@@@@B@@@@@$$@@@R$$@E@@@MPF/ \\n \\\"9?a$@@@@B@@@@@$@$@$@@@@@B@@$WRg@$R@$B@$$@WM6F \\n N~(@v$$g@ZB@$@@@@B@$$@@E@@@@@@b@E@@n$@ME2Vl` \\n `\\\"W@y0@B@$@$$@@Q$$$@@@BEB@@@@M@g@$R$$PV' \\n ~2@@~^TK$@#@@#@@@g@@ME$@$E$4#E@$4< ~ \\n \\\") u*yv2$2V5RW@W$RBW$g@RA[f(*`: \\n /*_\\\"<sd9t($5$$g$7RbJR*&7 ~ \\n ~~ #<`+MLN%~DJM/^ `\"\n },\n {\n \"index\": 27,\n \"distance_km\": 402371.7,\n \"libration_elat\": -5.458,\n \"libration_elon\": -2.965,\n \"ascii\": \"..~ . . y , \\n ._wIq;ws _._ !`P- , \\n ,p4 ~ ^r*$_w... `\\\"5s. \\n ^ ,X@@$gWWm_aEKv \\n __; , .$@$$B9@@@$<@g$Wf\\\"x \\n -^??K `; _.. @@B@E\\\"~fMQ$a@=$RS_l. \\n , z__g@gWasw0@y$E@@RA yWa|B$4&jF \\n .g@$j@$$@@@$@@$@@$g$'' t@g@6@@%e ; \\n m+ @@$@@@@@@@@$E@@@$@@$yWu#~ K$g$B@#RPW\\\\ \\n v$. P3@@@$@@@@@@@@@B@@@@@@g9- ^4@YM@@g@! /: \\n >,_ ! 5$@E@@@@@$@$@@$$@@$@B\\\"p_* . 0$W# ' \\n v$g , / @@@@@@@@@@@@@@@@@@@@$N$j.$_ ,*=X@_ y \\n /a&yE)awgBw_M4@$@@@@@@@@$@@@$@$@@@@NK$$_'veMr^Z$Q` \\n #$N$$N@@MP M3L9$@@$@@$@@@$@@@@@@@@@@@M@$0~ `\\\"^ \\n #Z@$@$$^ 4y@@@M@@@@@$B@@@@@$@$Rg@R$@@yM \\\\\\\\ \\n K~@RBs`w_,j$F@@$Eg$@@@R@@@$$@@@@B@@6@@$$(, .qWe \\n x#W$$@$@@@$i$@@@@$$@@@@g@$@@$@@@@@@$5@B@Z0@ K{. \\n \\\\eM$A@$$$@@@$$@@@R@@@@@R$@$$$@@@9A$$$gBy_aa\\\\ \\\" \\n o7k@0BREA@@@@$$@@@$@$@@$$R$$W$@@@@$$g@P@b} \\n '83yFBA@$$M@$@R@$$@#R$@$@@$$$@@R@$g#bQH' \\n ^!w_'V@$@@Bg$$F@dM5$$@@@R$Z$@$@@@E/!' \\n =>fmMWEPSZM5RB5@A@B0$Ba$0$T\\\\A+(~ \\n ^ ^#~fAIf@@@h$M5p@JEkX^F'' \\n `' `P^@degNB+M?P\\\"\"\n },\n {\n \"index\": 28,\n \"distance_km\": 403437.1,\n \"libration_elat\": 5.803,\n \"libration_elon\": 2.179,\n \"ascii\": \". ; . . \\n . , >; =_z/r_ `^r- \\n .:=~ ~d@ywgyg_Ll]-1 , \\n >^ yg$$@4@@JWTg$9Gx\\\"; \\n gm&@M~~~#?\\\"EW_k@yG' \\n . ,+;_ r x ,Lym@R@s' $@g$@Ay?#._ \\n ~`<_ +gzwsAsAgs@@$z$* i N$$6R@$@/_. \\n ysGyBE@@@@@$@@$@$@Byw_r MDRBB@@^^\\\"t, \\n u$@@y@@@@$@@@@@@@@@5@$$F~^.+'' ABg( `- \\n . #P$@@@@$@@@@@@@@$@@@$@$L,w\\\" ; _-fR1 > \\n Ae ~~@E@$@@@@@@@@@@@@@@@@$LmmyEZY uz&\\\\\\\"H*X~ \\n .N^ - JD@$@$@@@@@@$@$@@@@@@@$@$$M@WZ ^^X \\n tzg _J rT$@@@@@@@@@@@@@@@@@$@@@@$0$$R_ ^C \\n v%W4g~e$$@@[E=L$B@@@@@@$@$@$@@@$@$E$@@$$BRP_ ym/ \\n ^y@$$N@@@~~ 'fE$@@@$@@@@@$$$@@@B@$@B@@@@@@$@Wi G\\\"+ \\n Kf$$@$9$_! q$@@@@$@@@@@@@@$@@@@@@@@@@g@BXgy2${z \\n !t2@eQ0gggN@@@R$B@$$@@@@$$@@@@@@@$@$$$$gA$A$gEm| \\n `@k2W$@@@R$@Bs@@@$@$@@@@@@@R@@$@$@@@BgW@@@R2{\\\" \\n T3za@@0$$$$@$$@$E$@$@$@$0W@@@$@$$$R$ZR@B@Fs~ \\n `zRMy$@@0@@@$@@@E@@@@EhM@@@@@$2p@5gW$~~\\\" \\n `^?&$W@5Q0m@@@@$@$@@$$$3$k@@@$PGR$F~ \\n `]U_#x$2$@$Iy$@k0M5F@@kY@%mr~^~' \\n \\\"k?RK@F4@$&Gg$RMF4C@XV? \\n ` '^-~'~'7MA*Z%T~~\"\n },\n {\n \"index\": 29,\n \"distance_km\": 403723.3,\n \"libration_elat\": -1.613,\n \"libration_elon\": 1.645,\n \"ascii\": \".. : ;-. \\n +y__ Jv/ , {! .. \\n _W~ ` ''YIg>*g,.,,{<. \\n J\\\" ug@@@@0@fvN2R_, \\n R@@$@R$@$5M#WhE. ; \\n x04s* ^l __ :_, 4$g@$' `P\\\\^fPjAbyK}. \\n 2_>iWayKQysg$@$@$#@ R$@ZAW05_ \\n $@KZ@@B@@@@@@@$@R$w / v@@$@@5@x^ \\n ._ g$@@@@@@@@@@W@@@$@@@gy4} <g9@MMMZXR^. \\n |$ ~B$@@@@@@@@@@@@@$@@D$@@@~\\\" : ~ #S@k \\\"! \\n jTg, ~4@@$@@@@@@@$@@@@@$@@g,z \\\" J~$w \\n ty%* ' 14@@$@@@@@@@@@@@@@@@$@KmYx*_u wm'%xuU \\n \\\\RA$x*Y_vygy-JF@@@@@@@@@@@@@@@@@$@@$by@WRmk^ 7N \\n ^@$@@@@@@B@TJ-$y@@@@@@@@@@@@@@@@@D@@@@B#@Y\\\\ : \\n 1W$#R$@@P . 7Hg@$@@@@B@@@$@@@$@$@B@$@K$@$*_ .GK \\n Y&2AMBgEi_._zgR$@@@$@@@$@$@@@$@$@@@@@@@@$@$g+ R~ \\n ?y2#MMW$@$$@BB$@@@@@$@@@@$@@@@$@B@$@$@gP$@~yy_': \\n =Wg@$@$@$$@B@B@@R@@@@@$$@$$$@@R$@$@$@@@$@R0@'< \\n ~%|A#Z$$@@2@@@@@$@@@@g@@0@@@$M@@@@R$@0@$@@U` \\n ~=Zy$$@@B$$$#@0B$$@$@R@$@@@@B@@R@@$ByZY~ \\n \\\"V~15P{24@0$@$@@R$Q@mBm0@@@g%8@B6M^~` \\n oFe$9Z52g$$$5EE#M$@@RKRVRmVY \\n ' \\\"Aw9@R4g$M$g$$$@9yjC~`~ \\n ' ^!`!~P%$%s-fr\\\"`~\"\n },\n {\n \"index\": 30,\n \"distance_km\": 404313.4,\n \"libration_elat\": -5.652,\n \"libration_elon\": 1.402,\n \"ascii\": \"+. - _ \\n ,-m1_yz_.l~ !]~J \\n _$#` \\\"` \\\"r|kz__L ` : \\n ^ ` .X@@$mWgy.ym?. \\n y_ , ug@@$H2g@R{MYW*r \\n +=hP# ft ._,. _ \\\"$$@$=~4@YByB?sHx \\n , .$K@VKyy$ssg@$a$$@@$T `` Zsi#R$64 \\n ^, -@@$2@$$@$@@@@g@@@$E . 7g@zag@/> \\n em\\\" .s@@@@@@@@@@$$B$$@E@@$y:u) /$@m$B@$X' \\n 3nM; t@@@@@@@$@@@@@@@@@@@@gQw {0~~$B#M\\\"'_ \\n dtyk ^$@@@@@@@@@$B@B@$@@@@E -/ ` M4E$ ~ \\n @mHA_ . r @@@@@@@@@@@@$@@@@$@@@>\\\" uX@ \\n K@3B@$y-$g$g.{A$@@@@@@@@@@@@@@@@@@@$@ D$E _ <~@e( \\n &Q$BBR#$@R== \\\\BW@@@@@@@@@@@@@$@@@$@$$$$$@$E # \\n z8M0M@@@E R@$$@@$@@@@$@@@@$@@@@$@@M4R5r -` \\n ?MBys$@$a_;wZ@@@@$$$@@@@@$$@$@$$@@$@R$@$$X< *# \\n tX)A@@$@$@$@W@@$@$$@$@@@$@$@@$$$$$@@$d$P6R@F r\\\" \\n ^AK@$A$$$gA@@R@@@@@$@@@D@$@@@@$@$QMZ@$@7e_am \\n ~b8kB$$BRB@@$$@@@B@@$g@@g$$@$$$$H$$$W$MMs( \\n `\\\"?4@@K4@g$@$@$@W$@$@@$g@$@$gB@@s@W$&@2l? \\n `0}3y_`M$@$$@$$BPd@50@@@@@@@$@@@TWT' \\n ^z\\\"4R$JBR_$5aR?@@2$@$@HBMA0#BF^ \\n `^ FTT\\\"$A#$RW$Z$y=Y%1@ ' ' \\n '~~A'FZ7I0~7?^^'\"\n },\n {\n \"index\": 31,\n \"distance_km\": 404638.4,\n \"libration_elat\": 2.826,\n \"libration_elon\": 0.232,\n \"ascii\": \". . >r - \\n ._:z m;-y., = . \\n n\\\\F` ^ `'3ggLtg$ p w5,r \\n ` jygM@Ea@GWyYMZ$_ i \\n M@E$$R`4@Z@dM^$RxI': \\n _qN$ \\\"_ . __pA@@$F `` a#92@@&8K? \\n `L- jyggSss_$B@@@D$ ^ @$$$$@$gC \\n ;@m_dR@@$@@@$@$$@@0yr R ;1@$@@@V3~?< \\n _0@@$@@@@@@@$@@@$$@@$g@$>+ Mt\\\" z@@0~ , \\n .j t@$@@@@@@@@@@@@$@$@@@$@m _4^. .~~@@_ ' \\n </ . ~@M$@@@@@@@@@@@@@@$@@$M$-xw,, '1J~#>,=| \\n +_' 1$@@$$@@@@@@@@@@@@@@$@@M$a@gu$Y ~TV\\\" \\n >Z@__, __y' r~@@@@@@@@@@@@@@@@@@@@@$$@$@HL ` \\n h4N@@JM$@$E^ ty@@@$@@@@@@@@@@@@@$@@@@@@@@R{ ,`( \\n \\\"R#B@$$$F` '@@$@@$@@@@@@@@@@@@@$@#@@$@B@W7gy {Y, \\n A$T@$$2- -gK$$$@@@@@@@@@@$@@$@@@@@@$@@IRF4yU~: \\n tdaN$@$@ym@&@@@@@@@$@$@@@0$@$$W@$@@@R@6$g@BD/+' \\n \\\" V8PMRB@@$@@@B@$@@@$@@$$@@@@$$@E@$R$Kb$A0s$W/ \\n ~wX@@MB$B@A@B@B@@M$Bg@$$@@@B@@@R@@@$B#B@MM\\\"' \\n 'Js$d@$$@$@@%$@$@@@$@$@$$@@$$R@9$MBMG#!' \\n ~4MR+e~Tb@@@@@@@$@@a@@R$@@9$m$Qm[Xn \\n `!~E6$5gM5W_RW@@@R$ER@b0bCs\\\"Q~ \\n `~-'UR?@9@-ER$@@5g2_wuhX - \\n 'FFF'\\\"Z\\\"@MGR^^'`\"\n }\n ]\n}","import type { MoonState, RenderOptions, MoonAsciiDimensions } from \"../core/types\";\nimport moonData from \"./ascii.json\";\n\n/** \n * Fixed frame size in characters.\n * Width: 58 characters\n * Height: 27 characters\n * Characters have a 10:22 width:height aspect ratio, meaning each character\n * is roughly twice as tall as it is wide. This affects how we calculate\n * circular shapes like the moon's phase.\n */\nexport const FRAME_W = 58; // characters\nexport const FRAME_H = 27; // characters\n\n/**\n * Calculate dimensions and center point of ASCII moon art by finding non-space boundaries.\n * All measurements are in character units.\n * \n * This is used for phase calculations to:\n * 1. Find the actual moon size (excluding padding) which varies with distance\n * 2. Locate the exact center for phase angle calculations\n * 3. Determine the moon's radius in character units for phase masking\n */\nexport function asciiMoonDim(asciiArt: string): MoonAsciiDimensions {\n const lines = asciiArt.split('\\n');\n \n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n\n // Find boundaries of non-space characters\n lines.forEach((line, y) => {\n const firstNonSpace = line.search(/\\S/);\n if (firstNonSpace !== -1) {\n const lastNonSpace = line.search(/\\s+$/);\n minX = Math.min(minX, firstNonSpace);\n maxX = Math.max(maxX, lastNonSpace === -1 ? line.length - 1 : lastNonSpace - 1);\n if (minY === Infinity) minY = y;\n maxY = y;\n }\n });\n\n // If no non-space characters found, return frame dimensions\n if (minX === Infinity) {\n return {\n width: FRAME_W,\n height: FRAME_H,\n centerX: Math.floor(FRAME_W / 2),\n centerY: Math.floor(FRAME_H / 2)\n };\n }\n\n const width = maxX - minX + 1;\n const height = maxY - minY + 1;\n \n return {\n width: width,\n height: height,\n centerX: minX + Math.floor(width / 2),\n centerY: minY + Math.floor(height / 2)\n };\n}\n\n/** Clamp helper */\nexport function clamp(v: number, lo: number, hi: number) {\n return Math.min(hi, Math.max(lo, v));\n}\n\n/** Convert degrees to radians. */\nfunction rad(d: number): number {\n return (d * Math.PI) / 180;\n}\n\n/** \n * Calculate sun vector in camera plane based on phase angle, waxing/waning state, and libration.\n * @param phaseAngleDeg - Phase angle in degrees (0° = full, 180° = new)\n * @param isWaxing - If true, bright limb is on right; if false, on left\n * @param elatDeg - Libration in latitude (degrees). Positive tilts terminator up-right.\n * @returns Normalized sun vector {sx, sy, sz} in camera space\n */\nexport function phaseSunVector(phaseAngleDeg: number, isWaxing?: boolean, elatDeg: number = 0) {\n const a = rad(phaseAngleDeg);\n const elat = rad(elatDeg);\n \n // Base vector in xz-plane (α=0 full, α=180 new)\n const sign = isWaxing ? 1 : -1;\n const sx = sign * Math.sin(a);\n let sy = 0;\n let sz = Math.cos(a);\n \n // Rotate around x-axis by latitude libration\n // This tilts the terminator line by moving some of sz into sy\n const sy1 = -sz * Math.sin(elat);\n const sz1 = sz * Math.cos(elat);\n sy = sy1;\n sz = sz1;\n \n // Normalize the vector\n const mag = Math.sqrt(sx * sx + sy * sy + sz * sz);\n return { \n sx: sx / mag,\n sy: sy / mag,\n sz: sz / mag\n };\n}\n\n/** \n * Calculate Lambertian lighting intensity across a character's area using multi-sampling.\n * Each character is sampled at multiple points and the results are averaged.\n * This helps catch thin crescents that might only partially illuminate a character.\n * \n * IMPORTANT: No hard threshold here; we return the true average in [0,1].\n * Very thin crescents will produce small but positive intensities.\n *\n * @param xn - Normalized x coordinate of character center (-1 to 1)\n * @param yn - Normalized y coordinate of character center (-1 to 1)\n * @param sx - Sun vector x component\n * @param sy - Sun vector y component\n * @param sz - Sun vector z component\n * @returns Average intensity from 0 to 1\n */\nexport function litIntensity(xn: number, yn: number, sx: number, sy: number, sz: number) {\n // Size of a character in normalized coordinates\n const dx = 1.0 / FRAME_W;\n const dy = 1.0 / FRAME_H;\n\n // Denser 5x5 grid catches sub-character crescents better than 3x3\n const offsets = [-0.5, -0.25, 0, 0.25, 0.5];\n\n let total = 0;\n let samples = 0;\n\n for (const ox of offsets) {\n for (const oy of offsets) {\n const x = xn + ox * dx;\n const y = yn + oy * dy;\n const rsq = x * x + y * y;\n if (rsq > 1) continue; // outside the disc\n\n const nz = Math.sqrt(Math.max(0, 1 - rsq));\n const dot = x * sx + y * sy + nz * sz; // n·s\n total += Math.max(0, dot);\n samples++;\n }\n }\n\n if (samples === 0) return 0;\n return total / samples;\n}\n\n/** Find the nearest moon state from our pre-rendered set */\nfunction findNearestMoonState(state: MoonState) {\n // Weight distance more heavily since its range is much larger\n const DISTANCE_WEIGHT = 1.0;\n const LIBRATION_WEIGHT = 10000.0; // Scale up libration to make it more comparable to distance\n\n let bestIndex = 0;\n let bestDistance = Infinity;\n\n for (let i = 0; i < moonData.moons.length; i++) {\n const moon = moonData.moons[i];\n const distDiff = Math.abs(moon.distance_km - state.size.distanceKm) * DISTANCE_WEIGHT;\n const elatDiff = Math.abs(moon.libration_elat - state.libration.elat) * LIBRATION_WEIGHT;\n const elonDiff = Math.abs(moon.libration_elon - state.libration.elon) * LIBRATION_WEIGHT;\n \n const totalDiff = distDiff + elatDiff + elonDiff;\n if (totalDiff < bestDistance) {\n bestDistance = totalDiff;\n bestIndex = i;\n }\n }\n\n return moonData.moons[bestIndex];\n}\n\n/**\n * Render a 58×27 moon using pre-rendered ASCII art.\n * - Uses nearest pre-rendered moon for distance and libration\n * - Applies phase masking via Lambertian lighting\n * - Fallback: if nothing lights up (ultra-thin crescent), select the top\n * illuminatedFraction of disc cells by raw incidence (n·s) to force a sliver.\n */\nexport function renderMoon(state: MoonState, _options: RenderOptions = {}): string {\n // Find the best matching pre-rendered moon\n const nearestMoon = findNearestMoonState(state);\n const asciiLines = nearestMoon.ascii.split(\"\\n\");\n\n // Calculate actual moon dimensions from the ASCII art\n const dim = asciiMoonDim(nearestMoon.ascii);\n \n // Sun vector for the given state\n const { sx, sy, sz } = phaseSunVector(\n state.phase.phaseAngleDeg,\n state.phase.isWaxing,\n state.libration.elat\n );\n\n // First pass: compute intensity map, raw incidence, and disc mask\n const intens: number[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(0));\n const rawInc: number[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(-1));\n const inDisc: boolean[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(false));\n\n let discCells = 0;\n let litCells = 0;\n\n for (let iy = 0; iy < FRAME_H; iy++) {\n for (let ix = 0; ix < FRAME_W; ix++) {\n // Convert frame coordinates to moon-relative normalized coordinates\n const moonX = ix - dim.centerX;\n const moonY = iy - dim.centerY;\n const xn = moonX / (dim.width / 2);\n const yn = moonY / (dim.height / 2);\n\n const r2 = xn * xn + yn * yn;\n if (r2 > 1) {\n intens[iy][ix] = 0;\n rawInc[iy][ix] = -1;\n continue;\n }\n\n inDisc[iy][ix] = true;\n discCells++;\n\n // Lambertian intensity (averaged over cell)\n const I = litIntensity(xn, yn, sx, sy, sz);\n intens[iy][ix] = I;\n if (I > 0) litCells++;\n\n // Raw incidence at the cell center (useful for ranked fallback)\n const nz = Math.sqrt(Math.max(0, 1 - r2));\n rawInc[iy][ix] = xn * sx + yn * sy + nz * sz; // may be negative\n }\n }\n\n // Decide which cells are \"lit\"\n const litMask: boolean[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(false));\n\n if (litCells > 0) {\n // Normal case: any cell with positive average intensity counts as lit.\n for (let iy = 0; iy < FRAME_H; iy++) {\n for (let ix = 0; ix < FRAME_W; ix++) {\n litMask[iy][ix] = intens[iy][ix] > 0;\n }\n }\n } else {\n // Fallback for ultra-thin crescents: rank by raw incidence.\n // Target number of lit cells proportional to illuminated fraction.\n const frac = clamp(state.phase.illuminatedFraction ?? 0, 0, 1);\n const target = Math.max(1, Math.round(frac * discCells));\n\n const candidates: Array<{ ix: number; iy: number; v: number }> = [];\n for (let iy = 0; iy < FRAME_H; iy++) {\n for (let ix = 0; ix < FRAME_W; ix++) {\n if (!inDisc[iy][ix]) continue;\n candidates.push({ ix, iy, v: rawInc[iy][ix] });\n }\n }\n // Sort descending by raw incidence (closest to the subsolar point)\n candidates.sort((a, b) => b.v - a.v);\n\n for (let k = 0; k < Math.min(target, candidates.length); k++) {\n const { ix, iy } = candidates[k]!;\n litMask[iy][ix] = true;\n }\n }\n\n // Second pass: compose the ASCII frame\n const out: string[] = [];\n for (let iy = 0; iy < FRAME_H; iy++) {\n let row = \"\";\n const src = asciiLines[iy] ?? \"\";\n for (let ix = 0; ix < FRAME_W; ix++) {\n if (litMask[iy][ix]) {\n row += src[ix] ?? \" \";\n } else {\n row += \" \";\n }\n }\n out.push(row);\n }\n\n return out.join(\"\\n\");\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ascii-side-of-the-moon",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Tiny Moon phase/size/libration + Unicode terminal renderer. Zero runtime deps; dev-only almanac generated with astronomy-engine.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -30,7 +30,6 @@
30
30
  "render:demo_animate": "tsx scripts/demo-animate.ts",
31
31
  "export:moon-data": "tsx scripts/export-moon-data.ts",
32
32
  "prepack": "pnpm build",
33
- "version": "git add -A && git commit -m \"chore: bump version to $npm_version\" && git tag v$npm_version",
34
33
  "postversion": "git push && git push --tags"
35
34
  },
36
35
  "keywords": [
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/astronomy.ts","../src/render/ascii.json","../src/render/renderer.ts"],"names":["Astronomy","AstronomyNS","addDays","d","days","isWaxingAt","date","today","getMoonState","illum","lib","ascii_default","FRAME_W","FRAME_H","asciiMoonDim","asciiArt","lines","minX","maxX","minY","maxY","line","firstNonSpace","lastNonSpace","width","height","clamp","v","lo","hi","rad","phaseSunVector","phaseAngleDeg","isWaxing","elatDeg","a","elat","sx","sy","sz","sy1","sz1","mag","litIntensity","xn","yn","dx","dy","offsets","total","samples","ox","oy","x","y","rsq","nz","dot","findNearestMoonState","state","bestIndex","bestDistance","i","moon","distDiff","elatDiff","elonDiff","totalDiff","renderMoon","_options","nearestMoon","asciiLines","dim","intens","rawInc","inDisc","discCells","litCells","iy","ix","moonX","moonY","r2","I","litMask","frac","target","candidates","b","k","out","row","src"],"mappings":"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","file":"index.js","sourcesContent":["import * as AstronomyNS from \"astronomy-engine\";\nimport type { MoonState } from \"./types\";\n\n// Interop: in some loaders the API is on the default export, in others on the namespace.\nconst Astronomy = (AstronomyNS as { default?: typeof AstronomyNS }).default ?? AstronomyNS;\n\nfunction addDays(d: Date, days: number) {\n const n = new Date(d.getTime());\n n.setDate(n.getDate() + days);\n return n;\n}\n\nfunction isWaxingAt(date: Date): boolean {\n const today = (Astronomy.Illumination(Astronomy.Body.Moon, date) as { phase_fraction: number }).phase_fraction;\n const tomorrow = (Astronomy.Illumination(Astronomy.Body.Moon, addDays(date, 1)) as { phase_fraction: number }).phase_fraction;\n return tomorrow > today;\n}\n\nexport function getMoonState(date: Date): MoonState {\n const illum = Astronomy.Illumination(Astronomy.Body.Moon, date) as { phase_angle: number; phase_fraction: number };\n const lib = Astronomy.Libration(date) as { dist_km: number; diam_deg: number; elon: number; elat: number };\n return {\n date,\n phase: {\n phaseAngleDeg: illum.phase_angle,\n illuminatedFraction: illum.phase_fraction,\n isWaxing: isWaxingAt(date)\n },\n size: {\n distanceKm: lib.dist_km,\n angularDiameterDeg: lib.diam_deg\n },\n libration: {\n elon: lib.elon,\n elat: lib.elat\n }\n };\n}\n","{\n \"moons\": [\n {\n \"index\": 0,\n \"distance_km\": 405493.5,\n \"libration_elat\": -0.888,\n \"libration_elon\": -0.412,\n \"ascii\": \"._ . - . \\n ,_++> a, +. `-. \\n zr' ^ ~\\\")ssy_ss_. e__ \\n ^' w3$B$#R$2tBW&`x. \\n M@$@@E@@$YAm5Q@s<T \\n _*4Fk ;_ . : _r 4$g$B` `T!~4Z HDb*y_ \\n 7w=:-yyXm#sg@$$@$#Z . R$@$@R$?@` \\n ,Z$Kj9@W@$@@@@@@BG@w., / e$$0@5@Bbl\\\" \\n } z$@@y@@@@@@@@@$$@@@B@w$L cyM%H$$WP=K* \\n /^ 9M@@@@@@@@@@@@@@@@@$@@$~ y, ?#$$; 'L \\n MF. ?E@$$@@@@$@@@@@@@@@@g *z'_. ,Z@@ + \\n >w% E@@@@@@@@@@@@@@$@@@$$$%>$k- `y*.~$xtv \\n ##y$_-_y_aL` ~@@@@@@@@@@$@$@@@@@$@$$yB@$$/~ ~^Q+ \\n kXB@@_g@@@A`wgy@@$@@@@@@@@@@@$@@@$B@@@$@$I ~_ \\n \\\"_K@$Rb$^ ~MW$@$B@@@@@@$@$@@$@B$$@@@@5%sW v$v+ \\n #U@W$9@W_ .yd@$@@$@@$@$@@@$$$@$$M$M@2B@&@zgM `\\\"+ \\n [F*$E$@g@d@RR$E@@@$$@R@@@@@Rg@B$@$@0$@2@@_ypJ~ \\n \\\\'MB@PR$@$@@$$$@g@@@@@@$$$$$@E0@G$@g@$$A$MgV( \\n ^>Y$W3$@05$@B$$$@@@@M@$@R@@@BR$0$a@$@$@$@K? \\n ~4&BWB@@@@@@@$@@@@$@@@@@B@$$@B$NEBgW$~^\\\" \\n `^^T&~v$R$B@@$@BB$$y@$$E@$$@A&N0M\\\"~~ \\n 'Nv?52EMJ!_@$5g@@$R@RA$@E@7nF\\\"^ \\n \\\"^ 74~0~#<ERggkA=s3p4yyL. ` \\n ` ``^^ ^@n8m+\\\"`^\"\n },\n {\n \"index\": 1,\n \"distance_km\": 361882.7,\n \"libration_elat\": 5.044,\n \"libration_elon\": 0.661,\n \"ascii\": \". -r.. \\n _1{ *~ ML1W>u, _ . ^.., \\n y/ ^w@@$@sEgg_9u_{_ \\n ` .yyB@$4@@@e#jmg\\\\Wk\\\"*+. \\n ` -@R4@sF~~$WJ'R/~Z$%bk~\\\\ \\n ,\\\"_ ^ . m _w@$@@\\\\ \\\\@Rw@$h@k@K7, \\n ~T'~. _y y-w(4$a$@$F@$ : 'Z@$@R@R$@L \\n _L_<A@@@gy$$$@@$g$@@g_ y -9@@@$@W#)y=k_ \\n a@@2g@@@@@@@@$@@$$@@$@$g$y. >3[~~QM$ZW\\\" ~_ \\n d$@@@@@@@@@@@@@@@@$@B@B@$%` ,M '=$$$ 1 \\n { #[$@@@@@@@@@@@@@@@@$@@@@@@x4# -w -r?M@w V\\\\ \\n ?% , 4$B@@@@@@@@@@@@@@@@@@$$$@@\\\"H[db^ sEM!^*aVc \\n y'_ jZ@@@@@@$@@@@@@@@$@@$@@@$$M@E@@$%~ . ~\\\"\\\\ \\n %vM_ _ _} \\\"0@@@@@@$@@@@@B@@@@$@@@@@@@@M@@Z* Pj \\n <5%BgP,vg@@$Yf`y4@@@@@@@@$@@$@@@$@@@@B$@@$@$@WzK yyu~ \\n @2E$gW@@5F~ 4@@@@@@$@@@@@@@$@@$@@@@$@0@$@@$g@n$sz`1H'i \\n +A@@$g$Z' _2$@@@@$$@@@$$$@@@B$@$@@@$B@@A$@4@#4yJj k \\n '&@K@@@HE__xamB@g@@@@@@@@$@@@@@$@@@@$@@@A@g04$Wg#HB7\\\"' \\n HeAERBg$$@$$A@@0@$$B@@@@@@R@@$$$@$@@$5@B@a@b@W@WEU. \\n (~4@@E@@@W@@g@$$@@$@@@0MRWB@@$$5$@@$0$$@g@$$$@eRr/ \\n \\\"gj4ZE4@@$M$@$@$g$@@$@@W$@@A@$@$B@B@EB@00BBWTlM \\n ^$F2@E$$$0@@@B@@0@@$@$@@$@gB@@$$EP$$$bRN#^~ \\n \\\"EZ8$ERAzBM@$B@@$$Z@ga@@2$@@g@0@9mwa4~`< \\n `!7RvsyJ_D$@~$0$$B@@@00%@$4AT2Ef7^< \\n T$('@KEWc54$2Z$M$R#@MUT@NK1 \\\" \\n `T^^+{$)$2a73I9;@%RcM`\\\" \\n ~'\\\"`'~\"\n },\n {\n \"index\": 2,\n \"distance_km\": 363474.7,\n \"libration_elat\": -4.493,\n \"libration_elon\": 2.394,\n \"ascii\": \"_ \\n . .- T - -, \\n -bZ?-aLrw*j_ : . \\n : _$Y^ ~ ^-XRyw|,, ~- \\n F`` _#@@dgsgs _2_! \\n _ : . y@@@@$zE$AD21ftW' \\n _yWBxm' *- : . __ \\\"N$@@UOF4@b\\\\%sB7WR.' \\n `s;wd__1 W_;Vn@yyag@$@5 `~ ,s,<%[gs/k \\n t$$2AW@@@$@@$$@$$@@E$# r . \\\"@@$D$Wjny \\n -:; . q@@@$$$$@$$$@@@@@@$@@@W _ K@5@$5E55Z \\n v2K ~0@@@@@@@@@@@@@@@@@@B@@$$ylD y$@@5d@~Ewx \\n _V$(. 7HB@$@@@@@@@@@@@@@$@@5$$@@F~ T d@gs | \\n /v a; ; ```@@@$@@@@@@@B@@@$@@@@@$@ ,, ' ^T0$ \\n L0@@$ v@$@@@@@@@@@@$@@@@@$@$@B;y: y,. +^ A$ , \\n \\\\b2Y$$E{x2gz@L=_D5@@@@@@@@@@@$@@@@@$@@@$y_tw$@_ u\\\"^ ^W%' \\n WLA$$@$%@@@@@B`Y=L@@$@@@@@@@@@$$@@@@@@$@$E@R@$@E \\\"{ \\n ]y@NB@@@$$F ^B@@@B$@@@@@@$@@@@@$$@@@@@$@s0$@Z . \\n {4X$@$@aR=e _R$@$@$$@@@@@@@$$$B@@@$@@@@E5@PYE\\\\ y) \\n @*AgMB$$R5aR@@R$g@@@@@@@@@@@@@$@$@@B$$#$@Qjm@TdW/ j\\\"/ \\n #aZW$MBMR@0@@@$@A@$@$@@@@$@$@@@W@$@E$@@$$WgHP%^~hu` \\n `%$0$F$@$0@@@@B$$@@@@@@$@B@@E$@@@%@$@@@@$@W$@$BZ~ \\n 4?9@dB$$R$@@$B$MB$@@@$$$$@$$@5@$@g@g@B$9b$@AZG \\n *E@R$MR$$@@AZ$$R$@@$R$5$@@@D@$$$$$@ZE3@@a`^ \\n AA-j_^AT$$E@E@$@$@$RB2@Wa@$@%R@@$5BT~v \\n ^@V%@5@Q5WXE@@@R2@@RWR$b@$4@$WXMW] \\n r'AF)[%st$@BEc$E@Bx?t5_@\\\"T`^ \\n ~^ !7iT5$Z@@R0HW~4! \\n ~ ~~ `\"\n },\n {\n \"index\": 3,\n \"distance_km\": 363808.5,\n \"libration_elat\": -0.275,\n \"libration_elon\": 0.915,\n \"ascii\": \"\\\\ l.r \\n ._u:UK4 ^v w_ ~ ^\\\\ . \\n . . v> ` ` `^4@Rj_Qx__ MBm \\n .(~ 2g@$@@zgWi9%Qd|4 \\n {0@@$5@@@B~D#gmHgk\\\"M \\n _$g.y = _ _gDg$M\\\" `TYr~Z^ 1RvqF^ \\n \\\"~`K'.:,_L _w_s2@y$$$@@R` !@%g@R*Mz#{ \\n . &yg^YR@@s@$B$@@@@@W0Z ,@$0@$BRXU \\\\ \\n w@@$f$$$$@@@@A@@@$B$@@&_ G; @@@B@@Zj0k#x \\n M g@@@@@$@@@@@@@@@@@@@@@$@@@$+- -MM~~W@$# `!v \\n !Xe =#$@@@@@0$@@@@@@B@$@@@$@@. =r . 44$$ ' \\n M]| . \\\"@@@@@@@@@@$$@@@@@@@@@@$xfi m . wu=Az. $ \\n `[#< J@@@@@@@@@@@@@@@@@@@@$@@g@_42s_ y?% ^K}@! \\n <my$yy} ww,a_ .~$$@@@@@@@@@$@@@@@@@@R$$@B@@@$zs' ~`~ \\n XNv9$@p$$@$$E3L*y0@@@@@@@@$@@@@@@@@@@$@@$@W2@gM- -. \\n 'Vd@$Z@@@@\\\"` $$@@E@@@@@@@@@@@$@@@$$$@$@@$@$NKc . ,j1, \\n wkBQR@@%k,! ,z@R$@@@@@@@@@@@@@@@@M@@@@@@$$@Wg\\\\$g* %>V \\n `VJ$$s&0Bv_J$$0B0@$$$@$@@@@$@@$@$@$@$@@$$$@@@f@YF_L` ' \\n ??K#gZ@@$@@@$s2$$@@@$@@@$$@@@B$@$$$@@G@R@ERBB@g#Xfuf \\n twZRW2$@@@$$$@@@@$@@$$@$@B$@@$E@$0@@@E@M$@M5$@WyL \\n ~\\\"E@@yE@@$@@$@@$@$@B@$$$@$E@@@$@$@$@$@@@@ER@27>\\\" \\n ^!F5#g@@$@$$@EE$$@@@@$W@@M@@$$@0@@gKzBBK%9~ \\n `'^~~^T~7R@g@R$$@B$@MQ$a$BE@@$gE@$HJP5(~ \\n ` '}K$@g#R#0$15$@$Z@R@@BRz@$@V[Qe\\\\ \\n `f='^4ysMh$54T$W42@PE~FfW&9~~ \\n '~=\\\\ <?^F0%~>BR$?)^T\\\"` \\n ` ~ ~~\"\n },\n {\n \"index\": 4,\n \"distance_km\": 364350.7,\n \"libration_elat\": -5.105,\n \"libration_elon\": -1.866,\n \"ascii\": \". - ``` e . \\n , -zq{^o{.1n, = \\\":\\\"y . \\n . _Z0~ ` -ZAmLi,.. '_, \\n M\\\" X@yygyw-x_2/Gk. \\n . . . jg$@@$$g@@$1?V#WR}^_ \\n s*R W M/ ;.. 4$5W$$RF@$WgEZ99@2q'\\\\ \\n . 'w._w_y_7__-z@$ym@@@$2' T~~_$'/@2@*7j, \\n y@ghT@@@$@@@@$@@@@$$W<- 7$E#@B$g4N \\n ,} . y@@@W2B$@B@@@@@@@@$g@$ , / ug$$@B$@@8w; \\n /|r 5B@@@@@@@@@R@@g@@@$@@@@@_w@ 7A@$@K@C45)|! \\n hM: ^4$$@@@$$@@@@@@@$@@@B@@@@=^k _:4'~~@@$w'~`m; \\n ^\\\"Z' ` . ~ 4@@@@@@@@@@@@@@$@@$@@@$ j_f^ =@@@ '\\\\ \\n (g@@ _. 5@@@@@@@@@@@$@@@@@@$@@$4BW_yL _ 4YT@s .\\\\ \\n eRZ$9@,Wgs$g,-{V$@@@@@@@@@@$@@@@@@$@$@@@zy@@_.\\\\#FF RB@~^ \\n '|@@@sB@$$@B P=yg@@$@@@@@@@@@@@@@@@@$@@$$@$$@$F\\\" ^U . \\n \\\\wAb@B@@$` $@@@@@@@@@@@$@@@@@$@$@$B@@@@WB$C\\\\. Q \\n 3FB$A@m@ y$@@@@$$$@@@@@@@@B$$$@$$@@@Z@@B$m; {yX{ \\n ^4H@0@@@KRy$@Ta@@@@@$@@@@@@$B@$@@Q$B@B@EB@@$$46z: ]EZ+ \\n \\\\\\\"w@E3R@$@E$$@@@@@@R$@@@$@@@@$@$$$$@@@0@@$KMB\\\"3L(^;^ \\n ~<%@E%W@B@R5@@$$$@$@@@@$@$$0@@@4R$B@W$@@0gB@b@@` \\\" \\n nM%4$$g$E@@@@$@@@$$@$$@@$$B$@E$@$E$$RMBZ$$N%$V \\n `=4EMT@Q@g@S2g@$@@$@@BE$@$0@@@$$$M@gW$@4Z9~/ \\n !_3w~P#KB$@@g@@R5@@R$$@@@@$@RR$a44%44v^ \\n 't\\\"Y#$XM@_\\\"55$$B@$@EgB$@$awR4MzG~| \\n !-`z%T4@>ME&b~E9B$rT>4_-$4Y' \\n ` `TWD13d~A2fK~Wv^= \\n ` ''`\"\n },\n {\n \"index\": 5,\n \"distance_km\": 366333.9,\n \"libration_elat\": 0.278,\n \"libration_elon\": -3.312,\n \"ascii\": \"~' ^ _. . \\n __*^w<-xr=<w ` ' '?, \\n gf` ''\\\\KAy@-_w__ _)Mg, \\n \\\" u2$$$R$gn&w@sB_M~(_ \\n $@@$@B@@@@@$mg@gRk*>Y \\n __ _! r _ _4@@@$~ ~R^~gE,sgm$GI}\\\\ \\n ' ~ ,_y _k ,R@yW@@$@K`, $@&@@@a1&$K\\\". \\n , al~_$@@@gBBg@g@@$00{ . @ \\\"$$$5B$$sMy\\\\u, \\n .4@$4$@$$@@@@@@$@@@@@$y_VR }E@@@$W@s~wW7l. \\n s$@@B@@@@$$@@@@@@$@@@@$$$@Y* {4rT~BM$qB \\\", \\n N fd@E@@@@0@@@@@@@@@$@$@@$E_4_gF f=@M$ Rr \\n 7! 9@@@@@@@@@@$@@@@@@@$@$$m$y@g___ +F*Y&m ,X \\n VwL b@@$@$@@@@$@@@@@@@@@@@@@@b@$$R_1aB3^`4mWk{ \\n J$Wz_L ._yx fB@@@@@@@@@$@@@$@@@@@$@@@@$@@2gF_ '^\\\"n) \\n l4@$+E$$@@`E*y4@$@@$@@@@@@$@@@@@@@@M@$$@@$@@a. 7>o' \\n R@RK@$$F`' 2$@@@@@@@@$@@@@@$@@$$@$$@@@B@$0@$k ,.nyd> \\n lY$E@y4. ygR$@E#$@@@@@$$$$@$$@@$@@R$@$$$0a@@gM,%^> \\n #q8@g@$wy2g$~$$@@$$@@@@@@@@@@@@@$@@0@$$W$@K@6D@LL\\\" +/ \\n ^jJ0@@@g@@@gK$P@@@@$@@@@$@@$B$$$@$@Wg@g@@g$$g$E2B(<~ \\n VWM64k$@$2@$@@$$@@@@@@$@$$@$@@$$B$@@$$R%@$@$@E$*( \\n `=X@LZ$gB@$$@$g@$$@$@W@M@$@@$@W0B$@@$@$@$@$$@RV \\n ^KM?N9$@@$@W5BB@#B$$$$$$R$@@$@@@Dd@%BMAmkWx^ \\n 'H\\\"'%_RF2@$@Bg@@#GA$$5$R@@@@W$$BRkK1|`' \\n <V=H@Z#$__3$bgA$Fe$RYR@R2Wy=%V` ^ \\n `=L~YGT$6$49TEygg$gw1dse< '\\\" \\n ~'!\\\"T~A4_EtR00>V~-~ \\n ` `\"\n },\n {\n \"index\": 6,\n \"distance_km\": 366534.2,\n \"libration_elat\": 5.395,\n \"libration_elon\": -3.121,\n \"ascii\": \". : ' 7 __. \\n + : =c_ws_ . . \\\"\\\",> \\n |'` ~NEmszz$_E_a2wcju. \\n / ;$y$@%h$$0*R5j@#WwyYn \\n 4@5$gF^~@$JRg@`T@KV3p2|_ \\n , : _$$@$+ : a@$B4Em2y$g.- \\n .r ' :-|u 4D@g@@$$ , .2@@@@#B$@W@>_ \\n _+ G$$gy9@@$sz$5$@@` y@ . N9@@@$s$xFym>% \\n #gg|@@@@@@@@R@@@@@@@@$a@gL,.)4yk~Me@@WT '\\\"v_ \\n .d@$$$@@@@@@@@@@@@@@@@B@@$J`_a*< Y4@@v (v \\n , 4MM$$@@@$@@@$$0@$@@@@@@@@g$$WyG , xK*HRy_ v: \\n !: ?@@@@@@@@@@@@@@@@@@@@$$g$ME$@yF *$MF ~@C}\\\"| \\n uX . ty$$0@@@@@@@@@$@@@@@@@@@$$$@$@$@E ^{\\\\.L \\n Q4+ _ _ ;'@7@$@@@@@@@@@@@@@@@@@@@@@@@$@R$ !V! \\n #[%XI 4agMR4_-_@@$@@@@@@@@@$@@@$$@@@@@@$@$$@$z: w-Lvm. \\n ~%m@Ed@$@F~ /$$@@g$E@@@$@@@@@@$@@@$@@@@@@$$B@a$$NT]W($\\\\+ \\n lz@$$@@~ _$$@@@$$$@@@@@@@@@@$$0@$$@@$@$$W@A9@$$/ Uv \\n pXM@RgLj.1w@M@$@@@$$@@@$@@$@@@$@R@@@$$$$$$@@@@R@2$;/ \\n MNK5@$@@@@@aW$E@@$$@@$@@@@$@@@$B@$@$@$$@R$$@$@@2*U\\\" \\n \\\"=?6F$R$$BR@B@@$@@@@$@AR2@$$E$@B@@g@@@y@$$@0W$2%4 \\n \\\"%wKD^@@$@y$@B$@$g$$@$B$$$@$@B@@$@@5@2k@@ZaF\\\"`' \\n 'V@R$&$$BR$@M@0$R@B@$@@R@@@@$@@$@@@bBZ@JM^ \\n '*?bKJ\\\"%0$g@@$@E$$a$g$p5@g$eyB3RRZ$tF~ ~ \\n ~-g8k#@59g_y$@$F$$RTaE@Enf~5H|~)< ` \\n ''$'\\\"Pys/4dRHbD2kKZWa@RMXH + \\n ~^~YMa.5~$_yWTKBa4=r^` \\n ``\"\n },\n {\n \"index\": 7,\n \"distance_km\": 368573.4,\n \"libration_elat\": 5.829,\n \"libration_elon\": 3.778,\n \"ascii\": \". T r \\n +_:X ={_r;_ , ~ - \\n _y^ `` ' `^X@ygRBy=. ]ZC; \\n u'^ _w%$@Rp$g*=E#7Vy,,\\\\ \\n ' ~@KR@$F~M$V*_2'4$%]/}. \\n _. , x ., . , ,g$m$@` $ewsP05k$M \\n w75,F ;_ _w_/j$4$@$S@} t$@@@R@G@y \\n 4gGJ<@@@@w@@@@@$0@@$s g $bdB@K6FGfs- \\n H@@_@$@@$@@@@A@@@@@@$@Wg$y. \\\"N/~~@@@@ `~? \\n i q@$@$@@$@@@@@@@@@$@@E2@$@k W S=@@) \\\\ \\n ,_ M$B@@@@@@$@@$@$9@$$@@@R@@@w}\\\" _ ` 4^?@x. w \\n $t ~?@$B@@@@@@@@@@@@@@@$@$@yyK X$4_. v'! ~*]^ \\n ^W`w . - $@@@@@@@@@@@$@@@$@@@@@@@$$g$@@Wg~ '.7+ \\n K$wG_ ._ _TM@@@@@@@@@$@@@@@@@@@$$$B@@$@0@Q* zl \\n ;bWagg2'W@@@@$V\\\"*g@@@@@@@@@@@@@@@@@@@@@$@@$$@@4R/ zv| \\n `vN4$$$$@@@FF~ 4$$$@W@@$@@@@@@$$@W$$$$@@$@$@B#4%@mP xJX \\n {W@W$$@$@F y$@@@@@@@@$@@@$@@@$@@$$$@@@@@$%@B~_wa Y \\n @Y@E$2@@@\\\"y ug@$@@@@@$$@@@$@@@@@W$$$@@W$#M$B@@@@B$?x \\n {mKW@$@$@$@$@@@$0@@@$$B@$@@$@$@@@$$@@$@@yMAEE$0H5X \\n [/aM@$R@B@@#$@$$@5$$@@$@@$$@@@@@#@@@$@E@@$@@@WX\\\\ \\n ^t&W@$%T0@$@@g$@m@$@$@@@$$@$W@@BB@@@$@gbNR5k5L` \\n [UZ$Z23@@@$B$@B5$@@@@$T@d5@@0@@$PM$$KRkW^^` \\n '\\\\@PBKtYKTP@@M@g@@$@$gR$g$BWB$Bh3~8X' ` \\n 'f?k>@ghg@MBT@8RE@fd$RnZs#?1w)[!: \\n '\\\"~$J~m#?Bd$M4@gE@Z$0a3GGV1' ~ \\n T^~^T`^j4Zlu*M4T ' `\"\n },\n {\n \"index\": 8,\n \"distance_km\": 368792.8,\n \"libration_elat\": 1.882,\n \"libration_elon\": 4.299,\n \"ascii\": \".: . - \\n ,_*_q -/nvu`. ' ' x \\n jj+~ '` `'^hUyygZl _1r. \\n <^~ w@B$M$$$g./5BY, \\n .4@E@@a0@@#.1&$#$i{., \\n u_: s r..4$@@@~ ~\\\" '$_,R@WQ,; \\n -F'h~ _.y_4y1_Fd$gg@$@TL R$@MBE0M# \\n :@z=w9@@@@@@@$$$M@$$$ / n$@g$BR${, \\n '. 4@@$#@@@@B@@@@B@$@@@@gy_4+ `9e#@%g$\\\\\\\\~\\\\ \\n r_ . 9$@$@@@$@@$@@@@@@@@@@R@@RBK `/ #g@5 ^ \\n XQ? \\\"A@@@$@@@$$@@@@$@$@@@@@$@@ ? .\\\"^$&i \\n /VzL . ..\\\"M@@@@@@@@@@@$@@@@@@@@@@[\\\"_ __ _. `V^#\\\\, : \\n ^J,$y n@@@@@@@@@@@@@@@@@@@@@@$$y_WggwLjT` ~$w \\n )S@@@L______ywJ.5@@@@@@@$@@@@@@B@@@@@@@@@@@B@g0i 'Y \\n ^9650g@$2s@$$@F@*g#@$@@@@@@@@@@@@@@$$B$EBg@B$@Hf. ?| \\n #3@M@$@@$@F~~ a@$@@$@$$@@@$@@@@@@@@@@$@@@V$@EO?; ?s4 \\n Jjg@$$N$5Z., w$@@@@@@@@@@$@$@@@@0BW@$@RR$$$9@ZR$ x. \\n ^4N%7W@R@y$wB9W@$@$@@@$@@@B@B@@@$$@@@@A$@B$Bdg@_jW: \\n \\\\@$B$@@$g2@@@gE$W$@@@@B@@@$@@5@@$@E$@W$@@$gM@@@2k,` \\n \\\"Wfj@$s@gg@@2@$$@@$@B$@@$@@$@@@$@$R$@@2@E22@EA$@# \\n \\\"@BG0L$@B@@$@$@$$@R@$$@@E@$$@@@@g@R$$@@$$@MFt~ \\n `fT$$%@R@$@$$d2sg$$@@$@@@@g$@$@@HRRM@ETT7+\\\" \\n ?X@W~YT{WT#@B$$@@@$@$g0B@@W$#@@#$$dWn \\n !8Hg@mE$EBVT&0y%$@0#sNEWAmpV*4M ~ \\n ~n'__@2#Ga-BE@$sglEE(NNZJZ \\n ^ ^ {3'9i@V_zM+>-~~\"\n },\n {\n \"index\": 9,\n \"distance_km\": 370979.8,\n \"libration_elat\": -5.57,\n \"libration_elon\": 4.616,\n \"ascii\": \". r F^. , ,. \\n 7 , _mvpaW..,_.^ -r> , \\n z$\\\"``~ `r ~-zR9_ ` ` +. \\n ' {Y~^ ~3Bwyak. .QU \\n . . )gg$@R9g@R/Rtmu. \\n , . _g@WyZ.xsv. , u7@E@AaK@@W\\\"H%)__^ \\n ; `T`$__ yw).f__.WRwya@$g@$` \\\"?^-~_/X#!: \\n < _ g@@*5g@@$$0@$@@$g@@53 4@@p@aRi< \\n Jjp , ~g$@@$@@$@@@@@@@@@0@@@l , T@@E5@KL \\n _4g@ R@$B@@@@@@@@@@$g$@$@@$$a_,\\\\ 2@$$$g8@\\\\ \\n T>@{; 4M@@@@@@@@$@@@@$@@@@@@$$EePh \\\"~~`~5$V/\\\". \\n _*@LZX . `$@@@R@@@@@@$@$$@@@$@@$K *R@; `: \\n |$P@W%_ w _ r.@@@@@@@@@@@@@@@@@@@@@@@~ -, .n:01 > \\n )XjE5B@@~aZ$gg$ya$$@@@@@@@@@@@$@@@@@$B@$gW _yN_ .X! 4M/` \\n JD$@B@@@R0@@@$M~Fx@g@@@@@@@@@@@@g@@@@@@@$@Ws@@B(^ `>' \\n 7$4$P@$$$@F\\\" R@$@@@@$@@@@W$@$@@$$@$$W$@$y@gL+ . \\n !2BR$@6@@WMg __m$$@@@@@@@@@@@$@@@@@@B$@@@@E$@$%\\\\ . > \\n 7*>M$@B@@0@Em$@@@@@@@@@@@@B@@@@$@@B$@@$$dRE@MRyy M \\n ^!@$yEgZQ@$$@$@@@s@@@@$@@@@@g@@@gR@@ZB@@@@0BW@~~_v \\n \\\"9BR$@T#$@@gE@@$@@@$$$@B@@#@@@@g$$@@$s$g@@#$g$GR! \\n 'M&@@@D@@R@@@@B@@$@R@@s@@@@$$@@@@BB@RR@WM0@@B\\\" \\n ~0B#@Bt@@@RCgy@E$@@@@$$$@@$E$@B@@@@$3@@<P \\n '2[@g_{iE@$Z@@0BKEE0$R$@$$#@5@$$$@@MT \\n ~<[F8g(EzaZM$#@yM$4yB$$@$d4MW4W~^ \\n 'R@/2Sy<MRg$W5D$^>OT'\\\" ~ \\n ~r!7/4%E@@5vr*?^\\\"\"\n },\n {\n \"index\": 10,\n \"distance_km\": 372936.5,\n \"libration_elat\": -5.822,\n \"libration_elon\": -5.197,\n \"ascii\": \"; -: . \\n _, >c +___' ,`i + ._ \\n ._Nw^~\\\"~T~ ;\\\\ 9M_., \\\"`4o_ \\n ^>~ . ^$@$2%2Wiu zRzq \\n ` Lg@@@$@@ge$d$gZ2~aL \\n _vW<> ;-' g$@$RZ&@B$4@K$$4R%_%M_ \\n ` | ,,.: . _,xgEyX@@g$$M` \\\"4Y?$$~-MB]*K_g \\n _zW*32@@g5y$@@R@$@@@@Kv '$$$W$m#mggJk \\n :2@$WgBg@@$@@@@$@@$@@h_./yG j@@$@$WBw4M-, \\n [ '4@@@$@@@@@@@@@@@$@@@$g2@$E,: ;@$$$@@@2#MIo( \\n < ^w5@@@@$@@@@@@@@@@@@@@$@$@k j\\\"@@VF@@@@KM~\\\"|> \\n rj $@$@@@@@@@@B@@$@@@@@@M~$y@Y ` R@$@% !| \\n 5\\\\E , _@@@@@@@@@@@@@@@@@@@@$EK@@@$_, .eX#b> j \\n \\\"KEN~;zyy$_, `0R$@$@@@@@@@@@@@@@$@R@@y@$$$~ -aA<^W1nV' \\n #E0R@@$B##~F_yg@g@@@@@@@@@@@@@@@@@@$@$$@$@Z=\\\"~ ,'MI`' \\n cMF$@B@' =#$@5@K$@@@@@@@@@@@$@$$$B@@$@@R$ .' \\n w\\\\a@@m_, yz$5$@M~$@@@@$@@@$$@@@@$@@@@$@$s@t LyA'; \\n i,kRR$@ma@@$gW@@@@@$$@@@@E@@$@$@@$$$@@@@$@@gwm ;%XP \\n }44$KB@@@@g@$$$@@$@@@@@$@$@$@@$B@@@$@@@R@B@R$yX^,/^ \\n YVAYT@@$Z@$@@@$@@@0@B$@@@@$$$@B@$$@@$$B@@W#ER4_~ \\n SK@2@B@$B@@@@Z$5$@5@R@@@B@$D5@@200@MM@$4@E~_ \\n ^I\\\"<Z24B@9y@g5$@@@@$g@@@$$@$@R@@$$R@@@Y?k` \\n ~^j._;4$Ta@s@@@5@ER$$2@$$@gBsyAH4@O- \\n `\\\"';tK/RyvR@Nq@@#$@$QE$@@E7$d\\\\J= + \\n ~ Yg+F=9fP$12$F*+$)@~j~?` \\n T~zE$45[~K=\\\"~\"\n },\n {\n \"index\": 11,\n \"distance_km\": 376361.2,\n \"libration_elat\": 2.0,\n \"libration_elon\": -5.764,\n \"ascii\": \"; .. _ \\n .- yxw__ `'( ` n> \\n - ~\\\"F M@g_-m\\\\_,, _W<x, \\n l` . __$@$@@RK9>4$d$%,qn_ \\n mg@$@@D@@$2D#g@sgMyJ4} \\n .._ 4$@@@F~ ~F\\\\~k5~x$@@WMswt, \\n ^r . ywyE@@@$;, #R$$@S$g$H*m . \\n $ . @$y$UNg@LZ@@@@$ ~, \\\\ .g@@@$@$$$$dF;; \\n js@ug@$@@$@@@@@$@$$@ysx$E{ ZR$$@$@RQ@M%)N^ \\n . -@@@m$@@@@$@$@@$$@@R@@@@$#* [^M8F.$$@$@ ~MN \\n _: 4ZR5@@@@@@@@@B$$@@@@@$@@@@B$@j .\\\"^5g$_ >| \\n (. *y@R@@@@@@@@@@@@@@@@@$@@$@@$zy.r3<VH@z_ *j \\n '_ )Z@R@@@@@@@@@@@@@@@$@@@$@@@B$sy$$'M `AgWi^? \\n Wd, . j ~Ey2@@@@@@@@@@@@@@@@@@@$@$$@$#E . ~?]X: \\n X;0>)_g@RK7.ggA@@@@@@@@@@@@@@$@@@@@@$$g@@AB_ . _,j' \\n \\\\@ME@@$F~ .$@@$$T$$@@@@@@$$@@@@@@$@@@$@0@@ga1_$*@wK<_ \\n 7#%BB$ y#j$$Za$@@@@@$$@@@@@@B@@$@@@$gEg@@@ ~&>\\\\ \\n `,N4Rgy/jggR4W@@@$$@@@@@$$@@@$@B@@@@$@0@$@gg9$WW_j5r \\n V\\\\2W$$AgR$y@$@@@@@@$@$@@@@@@BB@$g@@@$$E$WB$@AK@7+ \\n YXnbM5@@d$@@@@a@$$@@$@@@@@$@0$@@@@@@B@$0$%@HK%2' \\n '42K^RB@B$$$$@$@@@@$@@$M@$@$R$@$@@@@@@BW@$#{\\\" \\n ^\\\"Z@0E@@BgM@$@@@$$E@@$@@B@$$B@@d$Zm@R#{~\\\" \\n `x`.U +$$@B@W@@@@gM$$@$#g$40A#gF[~$\\\"M \\n K@cm$M8wK@gG3g$R@g$s4@M7xH~4j^ ~ \\n \\\" -~~&CTp9=$$@9U$RE?kv7+ur \\n `~` `T\\\"-\\\"<M5PT\"\n },\n {\n \"index\": 12,\n \"distance_km\": 377700.5,\n \"libration_elat\": 5.801,\n \"libration_elon\": -5.923,\n \"ascii\": \"- \\n .,_ .. ~ ~ '\\\" ^g:, \\n ; ^~ ' `$$WyzQLw: j8yG=- \\n \\\" Ly@$$&@RM72g<@%$LYR_. \\n +4$M@GB=R@kdM@M^?$@WxM\\\"|, \\n . _gW@$K ~' 2$x@MgM@WE)r1 \\n .- ^ >:, 4y@$@M0$ =@@@$B$@@QWz(? \\n - .$$jQygg$y$$$g$C,: a. j@R$@@@ZmBR#Kw{ \\n 5$us@@$$@@@$$$@@@@@gGgFLL.J?$W0~$@$@U~`~\\\\n& \\n ,a@@@$$@@@@@@@@@@@@@$$@@@~gy$r ' =~$@$\\\\ ^3| \\n . (5M$@@@@@@@@@@@@@@@$@@$$@@@@@L__ wRR~E@@ ,Xk \\n ~`{W$@@@@@@@@@@@@@@@@@@@@$$$@@&~wdM*M~#@gL~J \\n ; _$$$@@@@@@@@@@@@@@@$$$$@$@$@@$$~. '~~v[/ \\n w_ . _ '4^y0@@@@@@@@@@@@@@@@@@@@@@$@$@*> >w- \\n H &i +w@#M$ _$$$@@@@$@$$@@@@$$@@@@@@@$@@$NM>_,-_kgv9Y \\n ~<msX@BF~ 9@R$mR@MB@@$@@@R@@@$@$@@@@@@@@@@gg$BQW+%$_/ \\n \\\\FRW$$ _yH&4gy$@@@@@@@@@@@@$@$@@@@$@@@@@E0@$$]\\\"FM' \\n '?V]MgL+,_g%a$@@@@@@@@@@@@@$@@K@@$@@@2@$$$@@$%0M@2A^ \\n a@7@$g@g@y$@@B@$@R@@$B@@$@@@@@@@@@R@@MR@$$@By@#YF \\n ^3k522#@B@@@B@@@@@@@EE@@@@@$@@@@E$BR@$@$RgR$R+~ \\n ^(^4`@@WA$@B$$@$@$@@9R@@$@$$@@$@E2@@RRWgMw?/^ \\n 'Q7W2$0$W@$@$@$@@@@zRW@$@B0BK0W@@MBMM~\\\\J \\n \\\"V('x.~3@RRB@@$@RB@@@$$A$B@@jptW%~' \\\" \\n \\\\T$/RRZBgp$ZGPRMg$$$@$E$X/'~W) \\n ` =\\\"\\\"&*G]@wtB4E4$gg$4$4EP!^ \\n \\\"^ ``\\\"+M= -T~^'`\"\n },\n {\n \"index\": 13,\n \"distance_km\": 378113.4,\n \"libration_elat\": -2.581,\n \"libration_elon\": -5.835,\n \"ascii\": \". . .. \\n . `, ,_. -7`\\\". \\n /J^~T ~ \\\" z4$_ ._ `\\\":- \\n 4-' . . [@$@x@Wyy y@$iu. \\n jy$@@@$g@A@g$DARB}@w_ \\n _*_ . 790$$g$MA@@a@W@NRBRk^% \\n ' .~ +_ *$_yx@B@E= ^`~JBsm$$HWbyQ^, \\n Jy-\\\"@@g@_a@@@#@@$5gTn \\\"ZM@$$$g$@@w^. \\n _@@@$Gg@$@@@@@B$@E@$;$gys' _9@@@g0$Ra@j_~. \\n q@@@$@@@@@@@@@@@$$@@@@$g## _vQ@R@B@Ew#&~nr2 \\n .T `#2@@@$@@@@@@$@@@@G@@$@$@%_z:7F^ W@@B^ (*l \\n } =D@@@@@@@@@@@@$@@@@@@@N@#Wy ,`_5@#w \\\\. \\n #PL . 5g@M@@@@@@@@@@@@@@@@@@@$gR@$pu,_%7\\\"R$L KU' \\n \\\\ Pz\\\\_y-gb \\\"05L@@@@@$@$@@@@@@@@$@R@@g$@@$g>~ ~KAD'@ \\n 7|B$)g@@$@ Y=y$@g@$@@@@@@@@@@@$@$$@@@@@@@BR_ r' \\n 'YK$$N@\\\" PF@EgM@$@@@$$$$@@@@@@$g@@@@@R$@z. _)z7 \\n :kR@$0;_ g@W@$_yg@@@@g@@@@$@$B@$@@@@@$5R_$*.iH9R? \\n TQ@@$d1w$@9#$@@@@@@@@@@@@@@$@B@@@$$@@@g$BgB@@wMk:T \\n {%AP5@@0@@s@@$@@@@@@@$@@$B$@$B@$@M$@$RRg@dyw@#W};` \\n ^y5XA@$MRB$@@@$R$@@@B@$@@@@$@@B@@$@@@@RA@@B@YQ;~ \\n `6%RGBB@@@@$W$$@$$@$@E$@$@@$@$B$@$$$@@@$%5\\\"` \\n `\\\\X3~~2@ER$$B@@$$$E0RB$h$R$@$@a$aA@%R@%9 \\n >Un _{6$RA@$@RW$g@0$$@@ygWKMM$@@W^~ \\n ~n1M5&*#_a0@@@AR@$@$$$EXU7YMf^? \\n ` ~^~k[c5s%MAYqMFFM@\\\"VZ ' \\n ^-^*F^~?~`~`\"\n },\n {\n \"index\": 14,\n \"distance_km\": 379658.1,\n \"libration_elat\": 5.491,\n \"libration_elon\": 6.128,\n \"ascii\": \", - ,. \\n , __ _x` , , \\n ,+Y'=' .^?=PywwM__., _.- \\n -s- lE@@$@g@__L_$>. . \\n \\\" ` >$$@$$44@F<Ma YX_(:. \\n . _. 4@W$R \\\"\\\" ^wyy9$%BZ \\n ,#RoP ` k \\\\\\\\;_a@m@@@#ET ~@@#$%syV; \\n ~a_bX$@$$3@$$@W@9$g@L , W$@@RzFC}t \\n . ~@$@$$@@$@@@@@$$$$@@$N%y___ ~g?~5$Bw^\\\"| \\n ^ y$$@@$$@@@@@@@@@@@$@@Q@@RP^ ` \\\"R$@_ : \\n ..W ~@@@@@@@@@$@@@@$@$@@@@@$@$. u /m=Ey . \\n ^jR \\\"~?@@@$@@@@@@@@@@@@@@@@@$w_< `gy; j~) tyl \\n xV^> {+2@$@@@@@@@@@@@@@@@@@@$@B@_@R$$W~ \\\"?Y \\n '&W$z . y[_?@@@@@@@@@@@@@@B@@@@@@$$@@@@0@Ek !' \\n ^N26@9g_pdg$$$M$*@@@@@@@@@$@@@@@@@$@$@@@@@*@$Rb\\\\ :d/ \\n ^ARj@@$$$@@@~~.}9$@@$@@@$@@@@@$$@B$@$@@@$$g@@@PgKL *\\\" \\n 4M*$$$@@$$__ x$@@@@@@@@@$@$$@$$$$B@@$$@@W@R$E~_j!u \\n ^0MN@@@@$$wmys2@@@$@@@@@@$@@$$$$@0@@@@$$@s@@BR@@KK ' \\n \\\"\\\\3@@$R$@$$@$@@$@$@@$@@$@@@$@@$$@@@@@a@@B@E@E$0_\\\\ \\n ~WR#W@$s0@$@@K@@@@@@@$@@$f@@@M@@@@$g@K@$B$@0$P\\\"\\\" \\n ~^@QB@$~b$R@g$B@@@0$$@@@@@@gBB$$@@@B@@B@54M~ \\n )=W&@A4M@@$@@E@W@@2@B@gWK@gD@@@gEW${$#^ \\n /@TEEE`&A$#0y$@@Z$MM@$p$@0BtP5%@<l \\n '~XmT$E$W@MgyR$$aRs9gS4WW9/~ \\n ` f=L\\\"0EZW$@RPG%#$R{Rx{&''~ \\n `^`^ '`\\\"\\\\\\\"?~ '\"\n },\n {\n \"index\": 15,\n \"distance_km\": 381331.9,\n \"libration_elat\": 0.836,\n \"libration_elon\": 6.123,\n \"ascii\": \". _, \\n __ . _ \\\" < \\n wz?^^\\\\^ `r={*_, _. ` ,, \\n .4fT '80@Ma<w% <,). \\n gg$$$$B@%K$YJi[ = \\n ___y, ^ji . . _ 'J$g$0F~~5\\\"*J:`6x\\\"i: \\n . #T5ZY ;`-,'_n-;)wyWB$@$\\\" aygg5B4W \\n ' g@9e@@@@Ea$$g@$@$R$$ j@0@@@KR \\n 2 +@@@y$$@$$@@@@@@@$@@RL_ * \\\\$@RRwgT^I \\n /jw 4$@@@$@@@@$@@@@@@$$@@@@E@$+ \\\"4\\\"'7Ak@^ w \\n .%g$ `@A@@@@@@$@@@@@RR@$@@@$@$E | TT@5 ' \\n ,&X<> `~?@@@$B@@@@@@@$@@@@@@$@@ _; ? MW { \\n 'MtJz. +^$@@@@@@@@@@@@@@@@@@@@$gG| _ay, *` ~GV \\n 5yjE@$yz(ny_y$ -@@@@@@@@@@@@@@$$$@@@@$$@ga@R$@T `\\\"- \\n IJEW#$@B4@@@@@KS1g@@@@@@@@@@@@@@@$@@@#@@@$B$R@7 '- \\n 2ZW@E$@&&$F~~. VB$@$@$@@@@$@@@$$@@$$E@$@@Z0$$$> y)' \\n ?%&$@$@$g@x{ _,m@M@@@@@@@@@$@$@$@@@$gB@R$$*$$Y@M 2 \\n ` %2@$BB@Rb$L@@@@@@@$$@@@@@@$@@@@@R@@$@$R$$$I2l_y> \\n `Wkg#@@R@$@@@@@@R@@@$$$$@$@$@$%@@@B$a$Rg@@@g@@Pp+' \\n 74&$R@WM@B@@$RR@@$W@$@@@@@g@@@@$gRbEB@@W@@E@@&; \\n +E#@$am@0@B$@@@@$$$@$$@@@gW$5@@$@@$d@@BgRR^^ \\n `\\\"@S@$MM$3RRE@$@@$$$MW@R$$BR#@$@@@%$%@< \\n ` J8MqG_3=AM$$a@@@W$@@@$@@$aR@R?Tx~' \\n \\\"|QT4RARm4$*ARQsGW@EaRP7$TTP~` \\n ~- zMeeE65tsF0g12$Lb9X^ \\n ` ' T~F~~ ~^``\"\n },\n {\n \"index\": 16,\n \"distance_km\": 381859.3,\n \"libration_elat\": -2.705,\n \"libration_elon\": 5.978,\n \"ascii\": \". . \\n . ___ L._ ^; - ( \\n mze^^`\\\" '~~RX_ \\\" . \\n .tv? `B$@lglu- | . \\n . pggR@@$@EZ:dFR, \\n wax_. y_ R0ER$@f4$WyCW?w:v \\n !. ~TT%~_.\\\"u_Jw__j*E_x$@g@H ~\\\"'J_ jQtjj \\n [ $$bdB@@@@W$@0$E@@@Q$ . '@$@zNBcX \\n [| \\\";g$@@@$@@B@@@@@@$E$@@@ :. 4@B5@R%(` \\n jyMy t@$@@@@@@@@$@@@@@@@@@B@%y1_ . Zf$RK@CG# \\n vNt` Pg@@@@@@@$@@@@@@@@@@gB@$F'~ F WB@' \\n 8j@~w - ~f@@@$@@@@@@@@@@$@@@$@@L. ' `\\\"?_ \\n AM$@Zy . . .`w@@@@@@@@@@@@@@@@$@@B@$_i yL \\\" yN).P \\n )jy@0@h@~LsgyggaR@@@@@@@@@@$@@@@@@@@$@@@g_g$$v;^ 7N \\n !VH#$B$g$$$@@@$7k4$@@@@@@@@@$@@$@@@@@@@$@$@R@@a \\\". \\n '5SBBR$Bg$$F {f$@@S@@@@@$@@$B@@@B@@$g$@B$$$[, 4` \\n 1X@8@@2@@$hg __W@B@@@@@$@@@@@$@@@@$@$@@@@W@B$y_ M/ \\n JQRB$D@$$@2$g$$@@@@@@@$@@@@$@@@@@$$@$@@R@@WWkFV {\\\" \\n '@@fF$@0@@gR@@@@B$@@B@@$@@@$@$R@sM$@@@$$@$$@WwgW\\\" \\n `@V$4$ER$$E$$@@$@@g$0@@$@@@$@B@$$@$5@B5@@@NT3~; \\n {~$M@@E$@$@@@$@@$@@@$$@s$$9@$@@2$@4@@RK$T@@^ \\n ^ FqR#mZ3JH@Wgs$$EBW$@Z@0MWg@B@@$WM$B55? \\n ~^k/1ayDgW$$#$00B@$@$2Kg@$$Eg$$$\\\\$' ` \\n ^+K^YG#%gWa9Ra@@9MT$$EZ@@~wO=\\\"' \\n ~ `-%Hy~T@@M?a4%M$\\\"^k( ` \\n ~' `~P!+^^ ~`\"\n },\n {\n \"index\": 17,\n \"distance_km\": 383889.6,\n \"libration_elat\": -5.925,\n \"libration_elon\": 6.256,\n \"ascii\": \"_ . \\n . ' _,._ ' .:_ \\n .nzF'~-^`Fnrj__ . \\n aF~ ~ `!Hyw_g_ w. \\n . ` xygg@@W#k,=|l. \\n _gwa; _wJ ($@9@@d@@\\\\W^@K_ . \\n _ t~\\\"$~_ ,_W_z+'_jz. y$@W@\\\" ~~kfX#~5i; \\n /\\\\ '.3@$@@$$@$$@ss@B$W@$MC 4m9p6b>{ \\n G5[ _. ,$@@@D$$@@$@@@@$@@0@0@~ 0@$$B$$ \\n .}2A> 9$@@@@$@@@@@@@@@@$@@@BaL ( \\\\$FgY$HX; \\n M@@Bq . H@@@$@@@@@@@@@@@@@@@@$W@s \\\"NV^?$g_\\\"M \\n jW@%y@ ~ . r ~@@@@$@@@@@@$$@$@$@@$@@ *#$m \\n &U*&WMW y _pG$@@@@@@@@@@@@$@@@$@$@@F \\\" ='$, ' \\n (T$Rg$@@E$w@g$@W$@@@@@@@@@@@@@@@@@$@E$@gy _y_ | `v</ \\n &&mV$RB@@R@@$##K$s@@@@@@@@@@@$@@$@@@@@@g@ya@$Em ? \\n `5VA$@$@g$RE`, @B@@@$@@@@@@@$$@@@@$$g@$B@y$$\\\" _ \\n v<Aqs@R@B@E9_yy@@@@@@@@@@@@@@$$@@@@B$@g@@E@@@$\\\\ ,> \\n $AR$Bg@@$$@sR$@@$@$@@@@B@@@@@B@@$@@$@$MG$0@GlWw ; \\n ~~qZ$BRgZ@@@@$$$@$@@E@@@@@$B@@$$@@@$@M@@$aRfM~,, \\n ^R*@@zZ$@$@h$$@$@g$B@E$$@@$$A@@@@$@$BWWE@@B@) \\n 79@@gW$@gg@@@R@$@$@R$D$@@@$@@@WB$$RXBBgM5[ \\n {JGKRHk~@@g$$R@$Ez@@$$$@$@0$@$@$EB@@RMX~ \\n &@R2$4yKBbAER@@R$$dW@@g@@@D$m@@XN`\\\" \\n ~^u\\\"?F4KPEz$$$Z$#@g0$&@@55M@v\\\"~ \\n `~-Xw7PPe=TA4jzFW<_t^' \\n \\\"^r-^^^ \\\" `\"\n },\n {\n \"index\": 18,\n \"distance_km\": 389306.6,\n \"libration_elat\": -5.818,\n \"libration_elon\": -6.036,\n \"ascii\": \". _ \\n . ; ``( }. \\n w;MP|* =n>fsL ^ . \\n *|| `^RE@_}y_ 4ym, \\n . ,yAg@M$R2@L$RMw< \\n _w , . g@$$B@R@@m@y%B$@y,(k \\n ``~' x _yy.J$E@@BM~T@T@A$TM$gWg\\\"VL \\n .$x_gg$J0@a@@@@@@$@si aM$RB@AWMe/, \\n . . .g@F*g$@@@@@@@$@R@g@',_ z j$@$$@5$$W]`; \\n / j@$$@$@@@@@@@@@$@@$@@ygz@_ #@@@g@$@BEa<u \\n . . Jk4@@@$@@@@@@@$@@@@$@@$@$E ,7$2=@g$z&\\\"^KTL \\n /j A@@@@@@@@@g@@@$@@@$@BEgys\\\\ ' HB$@N ~P \\n h0L . >@$@$@@@@@@$@@@@@$@$@M@@6$_ .we{@0 .l \\n %>E$ -gsWw_^`RME@@@@@@@$@@@@@@B@@@$%#@$@~ y@# 4@*X|, \\n MRQ@K@@@hff $y$@$@@@@@@@@@@@@@@@@@@$$@@BE$\\\" \\\"4> j \\n L45B@MF . ~ZR@K@#B@@@@@@$@@@@@@$$@@@@0@R$ . x9r \\n {5S0g$_ , g$T9@y_@@@$@@@@$@@$$@$@@@$@$BWN\\\\ xkx ' \\n \\\"VM$g@$@R@TJ$$@@$@$@@@$@@$$@@R@@@@@$@0%@gg$$^;M<:X \\n \\\\ t@@g$$$@R$@@@@@@@@$$@@@B@$$$@@@@$$$E@@$M$yW`j+ \\n 'jj`R5@@@$@@$@$@$$@@$@$@$@@@$B$@@Wgg@$B@@W@>/` \\n \\\\^48R$@@$@$@$@@@@E@$K@@g@@@@@$@Z$$BW#sP#^| \\n '-:, {$MA@$@EZ5@@@@@$$@B$@@@$@g5$@Em9/^ \\n z~*gT6GfTA$H$@z5$Z$KREBa@3GW5#9\\\"^' \\n \\\" +?L$\\\"3f@@@1$E5$5F5$=Dj?$>?\\\"` \\n ~` ?tJjg#E@gH@~W$:` \\n '\\\"``\\\"'\"\n },\n {\n \"index\": 19,\n \"distance_km\": 390509.1,\n \"libration_elat\": 1.475,\n \"libration_elon\": -5.963,\n \"ascii\": \"_ \\n - _ ` ... . \\n _r -- ~^<_)$w _,_ ` jy. \\n r 'g@$$$$x$yyMW_~:_ \\n .j$$@Bk@$@@W2gRZ@y\\\"<y \\n . NgM@R$~~4$RMgBM1%&E$jWy \\n w~ \\\" . y_y@@@@~ g@@B@m$#RKJ{ \\n ,, _s@@ngLg$5$@$@@'^ w _$$B@@$@W$Nrj: \\n g0Yw$g$@@@@$$E@$@@@yjy4_; 4@@@@@E@#Xb@X> \\n q@$Eg@@@@@@@$@$@@@@$$$s$a.-vI5MFT@@@a\\\\~ \\\\nW \\n _ d7@@@@@@$@@@@$@@@@$$$$@Jp@$@, . FR0@F j! \\n ' `+R$@@@@@@@@@@@$@@@@@$d@@@gLuy,r@@%Wk :f- \\n LF C@@@$@@@@@@$@@@@@@@B@@@@$@@@wcHPT \\\"%bs/1+ \\n NU_+ __ 7^y$$@@$@@@@@@$@@@$@@@@@$@gR$ . '#~w: \\n %_W<_ygBR (=yB5$@@@@@$@@@@@@@@R@E@$@@@@@gW !M' \\n (Rg&@@~ *B$$@FRR$@@@@@@@@@@@@$@@@@@@s@EgW,y*RGvW+ \\n K0@2@ w@#@$yX@B@$@@@@@@@@@@@$@@$@$g@@@@$_P%y~'' \\n ^`gM@@EyyWH_$$0$@$@@@@@@$$$$@@$@$R$B@$E0BG$aH@@+J/ \\n ^N4@$@M@E@$ER$@@@$@@$$@@@$$@@$@@@@@$$W@@@$@Rz#7 \\n ^,W$FH0$@@@@$$@@@@@@KR@$@@@@$g@B@B#@0Z@B4Y$0v \\n Yx*BK$$@@@$BZ@@@@B@@@@@0@R0@@@$@M@$B#0@K~ \\n '~~~}3?RA@$@$R$@BW@E$$gB$@$QM$#@@@kF}F\\\" \\n \\\"(4w~2#$n#M0@HW@$@9@@Z@AB)EKfBF'. ' \\n '\\\\D?^X0@$$g%4s7@RB4$9%Z_w~, ' \\n ~^^P&Y\\\"r*?59P44M%J~5~ ^ \\n `T~'\\\"`\\\"\"\n },\n {\n \"index\": 20,\n \"distance_km\": 391670.0,\n \"libration_elat\": 5.642,\n \"libration_elon\": -5.869,\n \"ascii\": \"x`! \\n | ;! ^\\\\+e%*_,<- ,_ _pK+ \\n ..F ggg$Z%92kyBWWyC /. \\n wg@$E$$@@K@Rg$7QRvx$t,_ \\n . a@@B$\\\" ~~\\\"WRux$$@g@@$}L \\n i ` jLyA$@@$ \\\"0@@@@s@KRM*W{, \\n _ gg-N<gyg^@@@R@> _ J X@#$@$@05&3x2=. \\n _@_7&$E$$@@@@y@@@@$ggg0= . 9@$P5$$gb#~ \\\\M$. \\n _ag$W@@@@0@@@@@@@@B$@@$@R'yy.^~ R@BK/ &) \\n . .F@@@@@$$@@@@@@@$@@@@$$$g@g@gw_ .w*y#@K_ }W \\n k ` ]y@@@@$@@$@@@@@@@@$@$@@$@@@gF/g@t='4@$$/O \\n t5$M$@@@@$@@$@@@@@@@@@$@$@$@ERF` ^~1.4/ \\n jy . `E_2R@@@$@@@@@@@@@@B@@@@@E@$$gQ ]<W L \\n 4;,-ag@$4.gg$R@$@@@@$@@$@@$@B@@@$@@@@@sBFy_ ua9mm7W \\n \\\"Y#@%$@^~ 0A@$$M4R$$@@@@@$$@@@@@@@@@@$@@W@$@r&MMMx# \\n ^@K$g@ a$*R$gg$@@@$$@@@$@@@@@$@@@R@$@@@E$$$0V$R \\n 0W$@ja\\\\_$@`$$B$@$$@@$$@@@$$$$$@$@$$B@$@@$@22@$@t\\\\ \\n <P4m$W@@@$@2@@@@g@@@@@$$@@$@@@@$@@B$2R@@@$@Eh(` \\n `TSsW@@R$$@@$$$$$@$@5$@@@$$$@$@$B@$@@@$gRRs5' \\n `^}&`$b$$@gH$@@$@@@$M@RM$g@@$@@%$N@R@5\\\\R\\\"^ \\n >j?\\\"T#M$0#@@@g@R@@Dg@$$@$$$@b0B@E@#^` \\n `? <L. k45k~F@E#@@0$T@BE@#5@$?6m-, \\n 4K?4Y($GE4zR@5g$$EEgBngK\\\"_>-~ \\n `~>?^4 MMKqZR@Ds!=`(' ` \\n `' ` `\"\n },\n {\n \"index\": 21,\n \"distance_km\": 393407.6,\n \"libration_elat\": 5.513,\n \"libration_elon\": 5.636,\n \"ascii\": \". ^ \\n LNV' `T~{$b_ -, \\\" . \\n _j@' <R@$mW$wxt!mn \\n ~ g@@@$@$@@'Yq\\\\as;' \\n g@@$6^ `P ~<\\\"_M@yMj \\n _g%n- z+ sEyg$@$@' ~M$g$M$sX \\n \\\" 'a(_ra@g@@$@$g2$$$@@ f4g$gA@4M \\n `$@@y$Z@$@@@@$$B@@@@g$_y, *@7M?$$N~'\\\". \\n ^ _H@@@@@@$@@@@@@@@@@@$$@@5~ ,. `B@N_ \\n ;yK `gR@@@@@@R@@@@@@@@@@@@@$$_ ` w=~@L . \\n <$\\\\ ~?@@$$@@@@@@@@$@@@@$@$@@yk `W@! ,I? YP( \\n -JMw - 3B@@@@@@@@@@$@$@@@@@$@@@Mz@B@#! \\\"^ \\n \\\\Xw$g _ . yJ_\\\"BB@@@@@@@@@@@@@@@@$@@@5@$@2BR[ ./ \\n FP@w@g$_n@$@@M@*y$@@@@@@@@$@@@@@@@B@@2$@M@@@e> .W' \\n y#@$@@@@$$~~ ~4$@@$@@@@@@@@@@$$$@@@@@$$@MBER$%< <^' \\n l6$d@@@B@L a@@@@@$@@@@@@@@$@@@@E@$$@$B@Rm@\\\"_/, \\n BM$g$@5gmezvB$$$@@@@$$@@@@R@@$$@@@$@#$@@@@R$$@(.` \\n ~12KMy@R@@$@$@R@$$@@@@@@$E@@@AB$A@@@AR@@@@KE@Gz \\n '@kRM@$@$@$gR8@@@@$B$@R@g@g@@$@@$@@$Ra$@@@$Z` \\n ^?WE@x@@@@@@@@$$b$@g@@@@@gB4@$R$BBMRMyTT' \\n \\\"4QB@@@M@$R$@$@@@$@RE@@@A5$R@BQM@M#P\\\\ \\n ~^@j@&_gm$@%4T$B@@@W$@@UK@#W7~7' \\n CtHP@$02WR@14@5Z2FA#3j\\\\J: \\n '\\\"r'F5$~(G@7_$TM$4>^ \\n '\"\n },\n {\n \"index\": 22,\n \"distance_km\": 395633.7,\n \"libration_elat\": -2.548,\n \"libration_elon\": -5.238,\n \"ascii\": \"`` , ;/ >_, \\n ,_ +,P> * y _ ~ 'u_ \\n :{T` `~=$WWk_r, _#P+ \\n ~ _yD$@@g0Es&#ZB@'x. \\n _ , @@@@Ea8@@bEY$@@sGL2t \\n f^ Y '' . .w_ _$@@B@' `=3'25Zp$$>a#Iu \\n g_:.g$_RMzy$U$@@$#E7 . Rg$@$@HgaEK` \\n $@wR$@@@@$@$@$@$$@!y- g! .g@BB@$@$$M,3 \\n . -@@@@@@@@@@@$@@$$@@@$@s$L ?BB$$B$@RMXFW, \\n ` ~C$$$@@@@@@@@@@@@@@@$@@@?E_;]=^ 1@@WE {( \\n >M `RZ$$@@@@@@$@$@@@@@@@0RgB2r ~M@$_ 4' \\n (@+ . %@@@@@@@@@@@@@@@$@@@B$$$R@$w+ ~A_52v_xr \\n ~^MkFwa-wK `XF2@@@@@@@@@@@@@@@$@$$@@@$$sA^ ' ~@$}'^ \\n w$$$g$@$N`wty@@@$@@@@@@@$@@@@$@@@@@$@B$#_ `_' \\n M$@B$g^ AB$@$R$R@@@@@@$@@$@@@@@$$@@$@G( y,]\\\" \\n ~sf#R@,_ y$H@@$B@@@@@@@@@$@@@$@@$@$@$5R$yyw-^W4h; \\n I}V5@K@@ME+R@@@$@$@@@@@@@@$$$@@@$@@R$$BgF4@_'T#_ \\n m\\\"y*$@$#@@@@$@$@K@@@$@@@$@@@5$@5@@@B$B@@@RQ@_X` \\n ~\\\"$~@g$$R$@@$$@@@@@@$@$g$@$R$@B$g@E$Z@@@$sx. \\n ^FP$@$@@@@@@$@@@$a@@$$$@@$$g@@A@@g$@@@5VF \\n ^ ~/`~$@K@@$@@@@$AE$@0@@B@$B$@a4?P@P\\\" \\n uW&\\\\@m@ETRDH@Hg$sRgS@E&N@5@%6^X \\n ' u3@#pME@RS@PQ4RWKRMkz@ `. \\n r{^M=Fi@9#KEP(K7~/ \\n `~\"\n },\n {\n \"index\": 23,\n \"distance_km\": 396804.0,\n \"libration_elat\": -5.205,\n \"libration_elon\": 5.066,\n \"ascii\": \"T - \\n .x*zZTn>-- _ . . \\n .. a_0F ~` n4M_;. ~u. \\n '~ ,^@g$$gw_;kw, \\n . ._w{ , __' r@$R$R#@$tfU~_x;. \\n . ?X?E$`_~G _: __+ _@E$@^~~?kic%\\\"$/$ \\n p @B%<#$$y@$W@$@@6@$@F y@_z@sl| \\n n__ _M@@$z#$$@@@@@@@@4$0@ `A$@@g$( \\n 4JK& , g@@@@@@@@@@@@$$@@@$@@$( # 9gKzgW&\\\\ \\n jD@z_ +#@@@@@@@@@@@@@@@@@@B@W@m hN~\\\"5#F^ \\n ?7#.@ 1 \\\\r ~$@@$$@@@@@@$$$@$@@@@@ < 'MRy V \\n N%P#Rg _ ~W@@@@@@@@@@@@@@@@@@@g$,' -. r~$, j \\n NGqQ@@$Ejy$gg$2s@@@@@@@@$@@@@@@@@@@5@@a,{Zg, ; ^ 0< \\n (3H4@@B@$@@$#=~t0@@@@@@@@@$@@@$@@@@$@@$@@$@$$ ' \\n `4Hg$B@@@$F`. \\\"4@@@@@@@@@@@@@@@@@@@@E$@$$e@W, j \\n KR$$bR$$@gZ_vzg$@@@@@@$@@@@BB@$@E@@gB@$-g@E$) \\\\` \\n Eeb@@$@$WgW@@Eg$$@@@@@R@$@$@$@@$@@@$B@$f@R)P@ . \\n ~75RR#$@$@@@B$@@$$@@@@@@@@@@@$W@M$$BB@$@E2B_jn^ \\n =W%B@_@@$B@@$$@@$@$@@B$@R@B@@$@@M$@D$$@RMBX \\n ~~#M@0@M@@@@@@$s@@$$$BE@#@@$@W$@$g@B@B@>~^ \\n ~#w7%,wRG$@M$$@@@$@$&$@$@@$@@M$gRR@^^ \\n Ry$aG0$#MM45$$ZZR@$a3@@0@$R@2pM` \\n `'=4Kh5M$K4AN*@tSd$sT&C^~} '` \\n \\\" ~TF_75@RgmF4`~ \\n ``~```\"\n },\n {\n \"index\": 24,\n \"distance_km\": 396918.3,\n \"libration_elat\": 1.016,\n \"libration_elon\": 4.987,\n \"ascii\": \"~ r .:c . \\n . ju ]>_^*Y=yL ' ` . \\n .W> m@wy+l_ M~ \\n ` ,ggm@Eg$WRwx_!_ \\n . L$Eg@K`4$_dW$ \\\\wY \\n _R4B$ ~).{. ,.sELgB@$E. ` yWw4aggy: \\n `7kp>_ggy#Tg@$M@$@Wg . `4@$@R$@y \\n ,$@$g$@@$$@@@@@B$@@$y_ - ?ER@22R]>, \\n >. ,. 1z@@@$@@@@@@@$@@@@@@@@$@gp `\\\"@~~2$$Y^~) \\n vZr BW@@@@@@@$@@@@@@@B@g@@gB 7 jY$l \\n 4v$y . ` ~@@@$@@@@$@@$@@@$@@@@@. - \\\\Y4w ) \\n }A_z, ' ;;@@@@@@@@@@@@@@@@@@@@g$sI W*_ ,{^ ^@L' \\n T@#R@yy).y__$W-y@@@@@@@@@$@@@@@@@@@@@@$g@@$$( \\\"I \\n .X@9a$@gy$@@@$$=$g@@@@@@@@$$@@@@@@$$$@0$@@$#f >J \\n 9D$$@$@R$R JB@$@@@@@@@$@$@@$@@@B@g@@G0@@D_ N \\n :s$E@a@$@my _ggB$$@@@@@$$@$B$@$B$@@@BE@E0MQmM / \\n 7X@@@R$@@@@ggR@@@@@@@@@@$@$@$@d@@M$@$$W@@g@Ly$M) \\n myX$$K$@@@@@B@$@g$@$@@$@@$$@@@$@$@$M$$@@@$@g/l \\n \\\"?-&@@Z5$@@g@$@@@Q$g@$@$$@@@@$$@@R$@@W@@@gMG^ \\n \\\"7#5@0E@@@@Z@B@$B@$@@@$@$B@@@@B@$5$$$@R$'\\\" \\n \\\"0M$M4FD@@$@$@$$@@RB@@$@$E$RN0$PW0~~ \\n ~5@<X@$0j@$#~$B@ZE@$gR%RA0EM7?\\\"~ \\n '*TT3m4aH@2@RW$3M$P=BzR)^: \\n ` A<?X%f_WmPg@EM-`\\\" \\n `\"\n },\n {\n \"index\": 25,\n \"distance_km\": 402200.1,\n \"libration_elat\": 0.434,\n \"libration_elon\": -3.119,\n \"ascii\": \"\\\\ r \\n ___< *r z_ ? \\n . ~ `''P0wvzkyu _M:n. \\n v __$B$MRM#%e$XgZLn_ \\n ` 'd@$B@b4@$%%%@M@4drY- \\n +A 5 ~ .___a$@$$~ ^``R$w$$#@@G~, \\n v2x a@y*HkW$R$$$8yP 4$@bB$$@$@w: \\n g@_D@$@@@@@$@@2$$@_.Jy\\\\ BR$@@@$E6Rw& \\n ug@@$$@@@@@@$@@@@@@$@@@$:, &#MF2R$EW~'/W \\n x `E$B@@@$@@@@@$@$@@$@@@@%~(ye ` 44$#F 'r \\n !, 5y@@@@@@@@@@@$$@@@@@@y$$yw . ,*YMEG > \\n 4[$ j 32@$@@@@@@@@@@@@@@@@@@@@@$MM`_mMF =bb^\\\" \\n 45tgy: _ g_ .\\\"R$$@@@@@@@@@@@@@@@@@@$$@@@@$` . ''4* \\n (j@$aDB@@%X Ly$@@@@@@@$@@@@$@@@$@@$@@g@$a_ W, \\n (@0R@E@' `5@@@@$$$@@@$@$@@$@$B$@@@W@$M$PL_ yr/. \\n Jm4XR@9;_ _ggF0@@@$@$@@@@$@@$$$$@@@@@$$@KZM@';e!j^ \\n 3Y@M@$@wy$E_5$@@@@@$@@@@@$$$@$$@@@@@@@$@$WZ$$~i^ \\n t)753M$@#@@$@$@@@@@@R@@@@@$@E$@@$$B@$W@B@@$Gl' \\n V@G~@g$$0@@@B@$$@@@@@@$$B@@$@$$$@$WR$WW$W<( \\n ~%p2#B$@$@N05@W@@@$$$$$$@@@@$@g$@@@M@Wz \\n ^~`/`^PW@@@@$@B$$E@$@$@$BBg@@WERKC,\\\" \\n 'V?hg$q#E2A@M42@g@GRMg@*wK@l~)' \\n {7$k$n5HMDA@wBF$%bwmyI + ~ \\n 'Y~~ *bv@4$$K'?~ '\\\"\"\n },\n {\n \"index\": 26,\n \"distance_km\": 402352.2,\n \"libration_elat\": 5.638,\n \"libration_elon\": -2.986,\n \"ascii\": \". . \\n __| -;<pN__ _ ~ g.. \\n xP' @R$@SpJV.$U4+^ \\n r~ _@@@BBR@@Z@HeP$@yl^t. \\n j@s$0\\\"`~R\\\\F$E,g$$gmQJi \\n - . ,. (_j$@@@\\\" MW@$0mA@E&n_ \\n ``, ysg\\\\%ygP5@$@$F /_ 4@$$@@0R@a\\\\j. \\n 2L @W$@a@$$@@g@$@@a~u@ %TBFg@$Z}'^`X \\n y$@z$@@@@@@@@@@@@$$@$@@~'.u.^ <@gK@ \\\". \\n . -@$@g@@@@@@B@@$@@$$@@@@$W$M-_ _>aMgz, 3' \\n ' `'~2B$@@@@@@@@@@@@@@$@@@@Bg@$@^`aE*~^kmz~ \\n F .D$$R@@@@@@@$@@@@@$@@@$$$@@@gg' ^$)(; \\n ,p y 'sF@$@@@@@@@@@@$@$@@@$$@@D2@y> ?^}, \\n !{P@_;A$@T$=L$@@@@@@@$@@@@@@@$@@$$@@@@B#RN_,x7Aw7 \\n 't$$R@@F~ `TE$#@E@@@@@@@$@@@@@@@@$@@E@@$0$@@P2|ctx \\n j$B@$# +@Mg@gg@$@@@@@@@@$$@@@@@@$g$@g@g$$$9vy! \\n >rQ@0EgWw@@%M$R@@@@@@@@@@B@@@@@$$@@@R$$@E@@@MPF/ \\n \\\"9?a$@@@@B@@@@@$@$@$@@@@@B@@$WRg@$R@$B@$$@WM6F \\n N~(@v$$g@ZB@$@@@@B@$$@@E@@@@@@b@E@@n$@ME2Vl` \\n `\\\"W@y0@B@$@$$@@Q$$$@@@BEB@@@@M@g@$R$$PV' \\n ~2@@~^TK$@#@@#@@@g@@ME$@$E$4#E@$4< ~ \\n \\\") u*yv2$2V5RW@W$RBW$g@RA[f(*`: \\n /*_\\\"<sd9t($5$$g$7RbJR*&7 ~ \\n ~~ #<`+MLN%~DJM/^ `\"\n },\n {\n \"index\": 27,\n \"distance_km\": 402371.7,\n \"libration_elat\": -5.458,\n \"libration_elon\": -2.965,\n \"ascii\": \"..~ . . y , \\n ._wIq;ws _._ !`P- , \\n ,p4 ~ ^r*$_w... `\\\"5s. \\n ^ ,X@@$gWWm_aEKv \\n __; , .$@$$B9@@@$<@g$Wf\\\"x \\n -^??K `; _.. @@B@E\\\"~fMQ$a@=$RS_l. \\n , z__g@gWasw0@y$E@@RA yWa|B$4&jF \\n .g@$j@$$@@@$@@$@@$g$'' t@g@6@@%e ; \\n m+ @@$@@@@@@@@$E@@@$@@$yWu#~ K$g$B@#RPW\\\\ \\n v$. P3@@@$@@@@@@@@@B@@@@@@g9- ^4@YM@@g@! /: \\n >,_ ! 5$@E@@@@@$@$@@$$@@$@B\\\"p_* . 0$W# ' \\n v$g , / @@@@@@@@@@@@@@@@@@@@$N$j.$_ ,*=X@_ y \\n /a&yE)awgBw_M4@$@@@@@@@@$@@@$@$@@@@NK$$_'veMr^Z$Q` \\n #$N$$N@@MP M3L9$@@$@@$@@@$@@@@@@@@@@@M@$0~ `\\\"^ \\n #Z@$@$$^ 4y@@@M@@@@@$B@@@@@$@$Rg@R$@@yM \\\\\\\\ \\n K~@RBs`w_,j$F@@$Eg$@@@R@@@$$@@@@B@@6@@$$(, .qWe \\n x#W$$@$@@@$i$@@@@$$@@@@g@$@@$@@@@@@$5@B@Z0@ K{. \\n \\\\eM$A@$$$@@@$$@@@R@@@@@R$@$$$@@@9A$$$gBy_aa\\\\ \\\" \\n o7k@0BREA@@@@$$@@@$@$@@$$R$$W$@@@@$$g@P@b} \\n '83yFBA@$$M@$@R@$$@#R$@$@@$$$@@R@$g#bQH' \\n ^!w_'V@$@@Bg$$F@dM5$$@@@R$Z$@$@@@E/!' \\n =>fmMWEPSZM5RB5@A@B0$Ba$0$T\\\\A+(~ \\n ^ ^#~fAIf@@@h$M5p@JEkX^F'' \\n `' `P^@degNB+M?P\\\"\"\n },\n {\n \"index\": 28,\n \"distance_km\": 403437.1,\n \"libration_elat\": 5.803,\n \"libration_elon\": 2.179,\n \"ascii\": \". ; . . \\n . , >; =_z/r_ `^r- \\n .:=~ ~d@ywgyg_Ll]-1 , \\n >^ yg$$@4@@JWTg$9Gx\\\"; \\n gm&@M~~~#?\\\"EW_k@yG' \\n . ,+;_ r x ,Lym@R@s' $@g$@Ay?#._ \\n ~`<_ +gzwsAsAgs@@$z$* i N$$6R@$@/_. \\n ysGyBE@@@@@$@@$@$@Byw_r MDRBB@@^^\\\"t, \\n u$@@y@@@@$@@@@@@@@@5@$$F~^.+'' ABg( `- \\n . #P$@@@@$@@@@@@@@$@@@$@$L,w\\\" ; _-fR1 > \\n Ae ~~@E@$@@@@@@@@@@@@@@@@$LmmyEZY uz&\\\\\\\"H*X~ \\n .N^ - JD@$@$@@@@@@$@$@@@@@@@$@$$M@WZ ^^X \\n tzg _J rT$@@@@@@@@@@@@@@@@@$@@@@$0$$R_ ^C \\n v%W4g~e$$@@[E=L$B@@@@@@$@$@$@@@$@$E$@@$$BRP_ ym/ \\n ^y@$$N@@@~~ 'fE$@@@$@@@@@$$$@@@B@$@B@@@@@@$@Wi G\\\"+ \\n Kf$$@$9$_! q$@@@@$@@@@@@@@$@@@@@@@@@@g@BXgy2${z \\n !t2@eQ0gggN@@@R$B@$$@@@@$$@@@@@@@$@$$$$gA$A$gEm| \\n `@k2W$@@@R$@Bs@@@$@$@@@@@@@R@@$@$@@@BgW@@@R2{\\\" \\n T3za@@0$$$$@$$@$E$@$@$@$0W@@@$@$$$R$ZR@B@Fs~ \\n `zRMy$@@0@@@$@@@E@@@@EhM@@@@@$2p@5gW$~~\\\" \\n `^?&$W@5Q0m@@@@$@$@@$$$3$k@@@$PGR$F~ \\n `]U_#x$2$@$Iy$@k0M5F@@kY@%mr~^~' \\n \\\"k?RK@F4@$&Gg$RMF4C@XV? \\n ` '^-~'~'7MA*Z%T~~\"\n },\n {\n \"index\": 29,\n \"distance_km\": 403723.3,\n \"libration_elat\": -1.613,\n \"libration_elon\": 1.645,\n \"ascii\": \".. : ;-. \\n +y__ Jv/ , {! .. \\n _W~ ` ''YIg>*g,.,,{<. \\n J\\\" ug@@@@0@fvN2R_, \\n R@@$@R$@$5M#WhE. ; \\n x04s* ^l __ :_, 4$g@$' `P\\\\^fPjAbyK}. \\n 2_>iWayKQysg$@$@$#@ R$@ZAW05_ \\n $@KZ@@B@@@@@@@$@R$w / v@@$@@5@x^ \\n ._ g$@@@@@@@@@@W@@@$@@@gy4} <g9@MMMZXR^. \\n |$ ~B$@@@@@@@@@@@@@$@@D$@@@~\\\" : ~ #S@k \\\"! \\n jTg, ~4@@$@@@@@@@$@@@@@$@@g,z \\\" J~$w \\n ty%* ' 14@@$@@@@@@@@@@@@@@@$@KmYx*_u wm'%xuU \\n \\\\RA$x*Y_vygy-JF@@@@@@@@@@@@@@@@@$@@$by@WRmk^ 7N \\n ^@$@@@@@@B@TJ-$y@@@@@@@@@@@@@@@@@D@@@@B#@Y\\\\ : \\n 1W$#R$@@P . 7Hg@$@@@@B@@@$@@@$@$@B@$@K$@$*_ .GK \\n Y&2AMBgEi_._zgR$@@@$@@@$@$@@@$@$@@@@@@@@$@$g+ R~ \\n ?y2#MMW$@$$@BB$@@@@@$@@@@$@@@@$@B@$@$@gP$@~yy_': \\n =Wg@$@$@$$@B@B@@R@@@@@$$@$$$@@R$@$@$@@@$@R0@'< \\n ~%|A#Z$$@@2@@@@@$@@@@g@@0@@@$M@@@@R$@0@$@@U` \\n ~=Zy$$@@B$$$#@0B$$@$@R@$@@@@B@@R@@$ByZY~ \\n \\\"V~15P{24@0$@$@@R$Q@mBm0@@@g%8@B6M^~` \\n oFe$9Z52g$$$5EE#M$@@RKRVRmVY \\n ' \\\"Aw9@R4g$M$g$$$@9yjC~`~ \\n ' ^!`!~P%$%s-fr\\\"`~\"\n },\n {\n \"index\": 30,\n \"distance_km\": 404313.4,\n \"libration_elat\": -5.652,\n \"libration_elon\": 1.402,\n \"ascii\": \"+. - _ \\n ,-m1_yz_.l~ !]~J \\n _$#` \\\"` \\\"r|kz__L ` : \\n ^ ` .X@@$mWgy.ym?. \\n y_ , ug@@$H2g@R{MYW*r \\n +=hP# ft ._,. _ \\\"$$@$=~4@YByB?sHx \\n , .$K@VKyy$ssg@$a$$@@$T `` Zsi#R$64 \\n ^, -@@$2@$$@$@@@@g@@@$E . 7g@zag@/> \\n em\\\" .s@@@@@@@@@@$$B$$@E@@$y:u) /$@m$B@$X' \\n 3nM; t@@@@@@@$@@@@@@@@@@@@gQw {0~~$B#M\\\"'_ \\n dtyk ^$@@@@@@@@@$B@B@$@@@@E -/ ` M4E$ ~ \\n @mHA_ . r @@@@@@@@@@@@$@@@@$@@@>\\\" uX@ \\n K@3B@$y-$g$g.{A$@@@@@@@@@@@@@@@@@@@$@ D$E _ <~@e( \\n &Q$BBR#$@R== \\\\BW@@@@@@@@@@@@@$@@@$@$$$$$@$E # \\n z8M0M@@@E R@$$@@$@@@@$@@@@$@@@@$@@M4R5r -` \\n ?MBys$@$a_;wZ@@@@$$$@@@@@$$@$@$$@@$@R$@$$X< *# \\n tX)A@@$@$@$@W@@$@$$@$@@@$@$@@$$$$$@@$d$P6R@F r\\\" \\n ^AK@$A$$$gA@@R@@@@@$@@@D@$@@@@$@$QMZ@$@7e_am \\n ~b8kB$$BRB@@$$@@@B@@$g@@g$$@$$$$H$$$W$MMs( \\n `\\\"?4@@K4@g$@$@$@W$@$@@$g@$@$gB@@s@W$&@2l? \\n `0}3y_`M$@$$@$$BPd@50@@@@@@@$@@@TWT' \\n ^z\\\"4R$JBR_$5aR?@@2$@$@HBMA0#BF^ \\n `^ FTT\\\"$A#$RW$Z$y=Y%1@ ' ' \\n '~~A'FZ7I0~7?^^'\"\n },\n {\n \"index\": 31,\n \"distance_km\": 404638.4,\n \"libration_elat\": 2.826,\n \"libration_elon\": 0.232,\n \"ascii\": \". . >r - \\n ._:z m;-y., = . \\n n\\\\F` ^ `'3ggLtg$ p w5,r \\n ` jygM@Ea@GWyYMZ$_ i \\n M@E$$R`4@Z@dM^$RxI': \\n _qN$ \\\"_ . __pA@@$F `` a#92@@&8K? \\n `L- jyggSss_$B@@@D$ ^ @$$$$@$gC \\n ;@m_dR@@$@@@$@$$@@0yr R ;1@$@@@V3~?< \\n _0@@$@@@@@@@$@@@$$@@$g@$>+ Mt\\\" z@@0~ , \\n .j t@$@@@@@@@@@@@@$@$@@@$@m _4^. .~~@@_ ' \\n </ . ~@M$@@@@@@@@@@@@@@$@@$M$-xw,, '1J~#>,=| \\n +_' 1$@@$$@@@@@@@@@@@@@@$@@M$a@gu$Y ~TV\\\" \\n >Z@__, __y' r~@@@@@@@@@@@@@@@@@@@@@$$@$@HL ` \\n h4N@@JM$@$E^ ty@@@$@@@@@@@@@@@@@$@@@@@@@@R{ ,`( \\n \\\"R#B@$$$F` '@@$@@$@@@@@@@@@@@@@$@#@@$@B@W7gy {Y, \\n A$T@$$2- -gK$$$@@@@@@@@@@$@@$@@@@@@$@@IRF4yU~: \\n tdaN$@$@ym@&@@@@@@@$@$@@@0$@$$W@$@@@R@6$g@BD/+' \\n \\\" V8PMRB@@$@@@B@$@@@$@@$$@@@@$$@E@$R$Kb$A0s$W/ \\n ~wX@@MB$B@A@B@B@@M$Bg@$$@@@B@@@R@@@$B#B@MM\\\"' \\n 'Js$d@$$@$@@%$@$@@@$@$@$$@@$$R@9$MBMG#!' \\n ~4MR+e~Tb@@@@@@@$@@a@@R$@@9$m$Qm[Xn \\n `!~E6$5gM5W_RW@@@R$ER@b0bCs\\\"Q~ \\n `~-'UR?@9@-ER$@@5g2_wuhX - \\n 'FFF'\\\"Z\\\"@MGR^^'`\"\n }\n ]\n}","import type { MoonState, RenderOptions, MoonAsciiDimensions } from \"../core/types\";\nimport moonData from \"./ascii.json\";\n\n/** \n * Fixed frame size in characters.\n * Width: 58 characters\n * Height: 27 characters\n * Characters have a 10:22 width:height aspect ratio, meaning each character\n * is roughly twice as tall as it is wide. This affects how we calculate\n * circular shapes like the moon's phase.\n */\nexport const FRAME_W = 58; // characters\nexport const FRAME_H = 27; // characters\n\n/**\n * Calculate dimensions and center point of ASCII moon art by finding non-space boundaries.\n * All measurements are in character units.\n * \n * This is used for phase calculations to:\n * 1. Find the actual moon size (excluding padding) which varies with distance\n * 2. Locate the exact center for phase angle calculations\n * 3. Determine the moon's radius in character units for phase masking\n */\nexport function asciiMoonDim(asciiArt: string): MoonAsciiDimensions {\n const lines = asciiArt.split('\\n');\n \n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n\n // Find boundaries of non-space characters\n lines.forEach((line, y) => {\n const firstNonSpace = line.search(/\\S/);\n if (firstNonSpace !== -1) {\n const lastNonSpace = line.search(/\\s+$/);\n minX = Math.min(minX, firstNonSpace);\n maxX = Math.max(maxX, lastNonSpace === -1 ? line.length - 1 : lastNonSpace - 1);\n if (minY === Infinity) minY = y;\n maxY = y;\n }\n });\n\n // If no non-space characters found, return frame dimensions\n if (minX === Infinity) {\n return {\n width: FRAME_W,\n height: FRAME_H,\n centerX: Math.floor(FRAME_W / 2),\n centerY: Math.floor(FRAME_H / 2)\n };\n }\n\n const width = maxX - minX + 1;\n const height = maxY - minY + 1;\n \n return {\n width: width,\n height: height,\n centerX: minX + Math.floor(width / 2),\n centerY: minY + Math.floor(height / 2)\n };\n}\n\n/** Clamp helper */\nexport function clamp(v: number, lo: number, hi: number) {\n return Math.min(hi, Math.max(lo, v));\n}\n\n/** Convert degrees to radians. */\nfunction rad(d: number): number {\n return (d * Math.PI) / 180;\n}\n\n/** \n * Calculate sun vector in camera plane based on phase angle, waxing/waning state, and libration.\n * @param phaseAngleDeg - Phase angle in degrees (0° = full, 180° = new)\n * @param isWaxing - If true, bright limb is on right; if false, on left\n * @param elatDeg - Libration in latitude (degrees). Positive tilts terminator up-right.\n * @returns Normalized sun vector {sx, sy, sz} in camera space\n */\nexport function phaseSunVector(phaseAngleDeg: number, isWaxing?: boolean, elatDeg: number = 0) {\n const a = rad(phaseAngleDeg);\n const elat = rad(elatDeg);\n \n // Base vector in xz-plane (α=0 full, α=180 new)\n const sign = isWaxing ? 1 : -1;\n const sx = sign * Math.sin(a);\n let sy = 0;\n let sz = Math.cos(a);\n \n // Rotate around x-axis by latitude libration\n // This tilts the terminator line by moving some of sz into sy\n const sy1 = -sz * Math.sin(elat);\n const sz1 = sz * Math.cos(elat);\n sy = sy1;\n sz = sz1;\n \n // Normalize the vector\n const mag = Math.sqrt(sx * sx + sy * sy + sz * sz);\n return { \n sx: sx / mag,\n sy: sy / mag,\n sz: sz / mag\n };\n}\n\n/** \n * Calculate Lambertian lighting intensity across a character's area using multi-sampling.\n * Each character is sampled at multiple points and the results are averaged.\n * This helps catch thin crescents that might only partially illuminate a character.\n * \n * IMPORTANT: No hard threshold here; we return the true average in [0,1].\n * Very thin crescents will produce small but positive intensities.\n *\n * @param xn - Normalized x coordinate of character center (-1 to 1)\n * @param yn - Normalized y coordinate of character center (-1 to 1)\n * @param sx - Sun vector x component\n * @param sy - Sun vector y component\n * @param sz - Sun vector z component\n * @returns Average intensity from 0 to 1\n */\nexport function litIntensity(xn: number, yn: number, sx: number, sy: number, sz: number) {\n // Size of a character in normalized coordinates\n const dx = 1.0 / FRAME_W;\n const dy = 1.0 / FRAME_H;\n\n // Denser 5x5 grid catches sub-character crescents better than 3x3\n const offsets = [-0.5, -0.25, 0, 0.25, 0.5];\n\n let total = 0;\n let samples = 0;\n\n for (const ox of offsets) {\n for (const oy of offsets) {\n const x = xn + ox * dx;\n const y = yn + oy * dy;\n const rsq = x * x + y * y;\n if (rsq > 1) continue; // outside the disc\n\n const nz = Math.sqrt(Math.max(0, 1 - rsq));\n const dot = x * sx + y * sy + nz * sz; // n·s\n total += Math.max(0, dot);\n samples++;\n }\n }\n\n if (samples === 0) return 0;\n return total / samples;\n}\n\n/** Find the nearest moon state from our pre-rendered set */\nfunction findNearestMoonState(state: MoonState) {\n // Weight distance more heavily since its range is much larger\n const DISTANCE_WEIGHT = 1.0;\n const LIBRATION_WEIGHT = 10000.0; // Scale up libration to make it more comparable to distance\n\n let bestIndex = 0;\n let bestDistance = Infinity;\n\n for (let i = 0; i < moonData.moons.length; i++) {\n const moon = moonData.moons[i];\n const distDiff = Math.abs(moon.distance_km - state.size.distanceKm) * DISTANCE_WEIGHT;\n const elatDiff = Math.abs(moon.libration_elat - state.libration.elat) * LIBRATION_WEIGHT;\n const elonDiff = Math.abs(moon.libration_elon - state.libration.elon) * LIBRATION_WEIGHT;\n \n const totalDiff = distDiff + elatDiff + elonDiff;\n if (totalDiff < bestDistance) {\n bestDistance = totalDiff;\n bestIndex = i;\n }\n }\n\n return moonData.moons[bestIndex];\n}\n\n/**\n * Render a 58×27 moon using pre-rendered ASCII art.\n * - Uses nearest pre-rendered moon for distance and libration\n * - Applies phase masking via Lambertian lighting\n * - Fallback: if nothing lights up (ultra-thin crescent), select the top\n * illuminatedFraction of disc cells by raw incidence (n·s) to force a sliver.\n */\nexport function renderMoon(state: MoonState, _options: RenderOptions = {}): string {\n // Find the best matching pre-rendered moon\n const nearestMoon = findNearestMoonState(state);\n const asciiLines = nearestMoon.ascii.split(\"\\n\");\n\n // Calculate actual moon dimensions from the ASCII art\n const dim = asciiMoonDim(nearestMoon.ascii);\n \n // Sun vector for the given state\n const { sx, sy, sz } = phaseSunVector(\n state.phase.phaseAngleDeg,\n state.phase.isWaxing,\n state.libration.elat\n );\n\n // First pass: compute intensity map, raw incidence, and disc mask\n const intens: number[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(0));\n const rawInc: number[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(-1));\n const inDisc: boolean[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(false));\n\n let discCells = 0;\n let litCells = 0;\n\n for (let iy = 0; iy < FRAME_H; iy++) {\n for (let ix = 0; ix < FRAME_W; ix++) {\n // Convert frame coordinates to moon-relative normalized coordinates\n const moonX = ix - dim.centerX;\n const moonY = iy - dim.centerY;\n const xn = moonX / (dim.width / 2);\n const yn = moonY / (dim.height / 2);\n\n const r2 = xn * xn + yn * yn;\n if (r2 > 1) {\n intens[iy][ix] = 0;\n rawInc[iy][ix] = -1;\n continue;\n }\n\n inDisc[iy][ix] = true;\n discCells++;\n\n // Lambertian intensity (averaged over cell)\n const I = litIntensity(xn, yn, sx, sy, sz);\n intens[iy][ix] = I;\n if (I > 0) litCells++;\n\n // Raw incidence at the cell center (useful for ranked fallback)\n const nz = Math.sqrt(Math.max(0, 1 - r2));\n rawInc[iy][ix] = xn * sx + yn * sy + nz * sz; // may be negative\n }\n }\n\n // Decide which cells are \"lit\"\n const litMask: boolean[][] = Array.from({ length: FRAME_H }, () => Array(FRAME_W).fill(false));\n\n if (litCells > 0) {\n // Normal case: any cell with positive average intensity counts as lit.\n for (let iy = 0; iy < FRAME_H; iy++) {\n for (let ix = 0; ix < FRAME_W; ix++) {\n litMask[iy][ix] = intens[iy][ix] > 0;\n }\n }\n } else {\n // Fallback for ultra-thin crescents: rank by raw incidence.\n // Target number of lit cells proportional to illuminated fraction.\n const frac = clamp(state.phase.illuminatedFraction ?? 0, 0, 1);\n const target = Math.max(1, Math.round(frac * discCells));\n\n const candidates: Array<{ ix: number; iy: number; v: number }> = [];\n for (let iy = 0; iy < FRAME_H; iy++) {\n for (let ix = 0; ix < FRAME_W; ix++) {\n if (!inDisc[iy][ix]) continue;\n candidates.push({ ix, iy, v: rawInc[iy][ix] });\n }\n }\n // Sort descending by raw incidence (closest to the subsolar point)\n candidates.sort((a, b) => b.v - a.v);\n\n for (let k = 0; k < Math.min(target, candidates.length); k++) {\n const { ix, iy } = candidates[k]!;\n litMask[iy][ix] = true;\n }\n }\n\n // Second pass: compose the ASCII frame\n const out: string[] = [];\n for (let iy = 0; iy < FRAME_H; iy++) {\n let row = \"\";\n const src = asciiLines[iy] ?? \"\";\n for (let ix = 0; ix < FRAME_W; ix++) {\n if (litMask[iy][ix]) {\n row += src[ix] ?? \" \";\n } else {\n row += \" \";\n }\n }\n out.push(row);\n }\n\n return out.join(\"\\n\");\n}"]}