From f32c4b192619ab37c538fe7856e645568c77b7b2 Mon Sep 17 00:00:00 2001 From: zefie Date: Sun, 13 Feb 2022 00:15:52 -0500 Subject: [PATCH] fix DealerDemo and other stuff --- .../sim/ROMCache/AroundTownIcon2.gif | Bin 0 -> 4857 bytes .../content/DealerDemo/sim/ROMCache/Chat.gif | Bin 0 -> 2110 bytes .../sim/ROMCache/CommunityBanner.gif | Bin 0 -> 1671 bytes .../DealerDemo/sim/ROMCache/ExploreTitle.gif | Bin 0 -> 1466 bytes .../DealerDemo/sim/ROMCache/HomeBanner.gif | Bin 0 -> 779 bytes .../sim/ROMCache/PromotionLeftEdge.gif | Bin 0 -> 87 bytes .../DealerDemo/sim/ROMCache/SiteShowcase.gif | Bin 0 -> 875 bytes .../DealerDemo/sim/ROMCache/news_icon.gif | Bin 0 -> 1934 bytes .../aroundtown/ROMCache/AT_BannerGradient.gif | Bin 0 -> 167 bytes .../sim/aroundtown/ROMCache/AT_BannerIcon.gif | Bin 0 -> 3938 bytes .../aroundtown/ROMCache/AT_BottomShadow.gif | Bin 0 -> 65 bytes .../sim/aroundtown/ROMCache/AT_Shadow.gif | Bin 0 -> 47 bytes .../community/ROMCache/AroundTownIcon2.gif | Bin 0 -> 4857 bytes .../sim/community/ROMCache/Chat.gif | Bin 0 -> 2110 bytes .../community/ROMCache/CommunityBanner.gif | Bin 0 -> 1671 bytes .../sim/community/ROMCache/ExploreTitle.gif | Bin 0 -> 1466 bytes .../sim/community/ROMCache/SiteShowcase.gif | Bin 0 -> 875 bytes .../sim/community/ROMCache/news_icon.gif | Bin 0 -> 1934 bytes .../sim/explore/ROMCache/S20BV1.gif | Bin 0 -> 111 bytes .../sim/explore/ROMCache/S20BV2.gif | Bin 0 -> 111 bytes .../sim/explore/ROMCache/S20TH1.gif | Bin 0 -> 84 bytes .../sim/explore/ROMCache/S20TV1.gif | Bin 0 -> 111 bytes .../sim/explore/ROMCache/S20TV2.gif | Bin 0 -> 111 bytes .../DealerDemo/sim/explore/ROMCache/S40H1.gif | Bin 0 -> 84 bytes .../DealerDemo/sim/explore/ROMCache/S40V1.gif | Bin 0 -> 111 bytes .../DealerDemo/sim/explore/ROMCache/S40V2.gif | Bin 0 -> 111 bytes .../sim/explore/ROMCache/S60HS1.gif | Bin 0 -> 83 bytes .../sim/explore/ROMCache/S60HS2.gif | Bin 0 -> 83 bytes .../sim/explore/ROMCache/S60HS3.gif | Bin 0 -> 83 bytes .../sim/explore/ROMCache/S60HS4.gif | Bin 0 -> 83 bytes .../sim/explore/ROMCache/S60HS5.gif | Bin 0 -> 83 bytes .../DealerDemo/sim/explore/ROMCache/SAdH1.gif | Bin 0 -> 91 bytes .../DealerDemo/sim/explore/ROMCache/SAdH2.gif | Bin 0 -> 91 bytes .../DealerDemo/sim/explore/ROMCache/SAdH3.gif | Bin 0 -> 91 bytes .../sim/explore/ROMCache/ShadowCorner.gif | Bin 0 -> 120 bytes .../sim/explore/ROMCache/ShadowH.gif | Bin 0 -> 84 bytes .../sim/explore/ROMCache/ShadowHCap.gif | Bin 0 -> 127 bytes .../sim/explore/ROMCache/ShadowHStart.gif | Bin 0 -> 128 bytes .../templates/ROMCache/AroundTownIcon2.gif | Bin 0 -> 4857 bytes .../sim/templates/ROMCache/Chat.gif | Bin 0 -> 2110 bytes .../templates/ROMCache/CommunityBanner.gif | Bin 0 -> 1671 bytes .../sim/templates/ROMCache/ExploreTitle.gif | Bin 0 -> 1466 bytes .../sim/templates/ROMCache/SiteShowcase.gif | Bin 0 -> 875 bytes .../sim/templates/ROMCache/news_icon.gif | Bin 0 -> 1934 bytes .../using_webtv/ROMCache/UsingWebTVBanner.gif | Bin 0 -> 1558 bytes .../ServiceVault/wtv-disk/sync.js | 55 ++-- .../wtv-head-waiter/choose-user.js | 2 - .../ServiceVault/wtv-mail/DiplomaMail.js | 2 +- .../ServiceVault/wtv-mail/listmail.js | 1 + .../ServiceVault/wtv-mail/readmail.js | 6 +- .../ServiceVault/wtv-mail/sendmail.js | 4 +- zefie_wtvp_minisrv/WTVMail.js | 9 - zefie_wtvp_minisrv/WTVShared.js | 44 ++- zefie_wtvp_minisrv/app.js | 3 +- zefie_wtvp_minisrv/config.json | 4 - zefie_wtvp_minisrv/package-lock.json | 295 +++++++++++++++++- zefie_wtvp_minisrv/package.json | 4 +- zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj | 1 - 58 files changed, 372 insertions(+), 58 deletions(-) create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/AroundTownIcon2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/Chat.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/CommunityBanner.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/ExploreTitle.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/HomeBanner.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/PromotionLeftEdge.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/SiteShowcase.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/news_icon.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_BannerGradient.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_BannerIcon.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_BottomShadow.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_Shadow.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/AroundTownIcon2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/Chat.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/CommunityBanner.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/ExploreTitle.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/SiteShowcase.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/news_icon.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20BV1.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20BV2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TH1.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TV1.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TV2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40H1.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40V1.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40V2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS1.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS3.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS4.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS5.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH1.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH3.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowCorner.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowH.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowHCap.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowHStart.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/AroundTownIcon2.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/Chat.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/CommunityBanner.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/ExploreTitle.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/SiteShowcase.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/news_icon.gif create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/using_webtv/ROMCache/UsingWebTVBanner.gif diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/AroundTownIcon2.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/AroundTownIcon2.gif new file mode 100644 index 0000000000000000000000000000000000000000..396f1b3c3eac7ff7feab29ec1e745684ae11f34d GIT binary patch literal 4857 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 G@cBPG8tn@J literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/Chat.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/Chat.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2ef4027ec873162617fcad9d3d93ba7a4fd8620 GIT binary patch literal 2110 zcmcJNi#yW`1Au?~?M|C*wwe28GfOTb*ElsxX)ZNF!Y48g5<4BaM4cIGqL|1vhZN(i znsAVuW=Uk#Bq>s(^pHA*>3rvp_})L@eV+GuULW30H}{xeAQ-p|03`dp7cN{d zG_$+S9B?(PQu z5755BAOK(n*!<)ErwKr;b4rA}Y>Y~VFC7_4-twzPmgajU{Mu7_`sn*(x3nz>{js&D zKsfaJLXXFp%$pr}TkM7cZ4QZoC8vt>@>7fnXe1ૅhAT3KZCmP|3&hS7a9&@gt z3`?Y-vueC`aEex1l%&ftUB(pyBCw6pAoO zAWjkWCsA}N_ScjO3a%;|G-&KG@B3pM{}})D*)(a*&~R#nhQ(4Duw7}M0oL;lAJ6^Xju^pZB4sthw7&(mXiUsEa3~ z1_iF450{eL{sSDe^poJNl4^PSEdjcGcWno5NwjAZayQo3{V~h_5+U|QpKQ;|y)pwk zZ;TLKl54Fa-n!IQHt$i%yAxWspKKM}2?3FI&MW2RJuKIp;T@ApGnp~hMlL0OxmKVn zc7RcnC)njK`StTbo}IFp^Z3QZxT(nxacW&etX54O*GCi@*fVD)>^z6rmM@#?#vI=O zx@5Ioh3rd&6-X$F_y79o!(-pCZ#HMU*sk2KtuAqjR#NpF#BZ$M%uKsRB@Mi{wTxJO zH?JJ2{F(VZhxf@#H{k9x!YDz(fl+&qbxEqkeWAxi$6KmT+?W0sML^(G^}hIZ4j+KP z0GtJYwBaKq{~JT>`Eg{QbSud%&LsKXM%M_N;jm#?LaGyI5`h*;<|F_Sje~#yTZyoV zzZ-stZ`qIwADQ==&3wHvFaKm3ywC!GYXdn_KtsD&hL!LG(zCn15D{<&Cl@}vc*@JB za5@>E4g&6R*AC3cAI7x<;Vt5Cc%k6hRj#Ac%Kxng#`y9i+g-c z9!lsB5CXgET_9A`fk775H9_Ep&jnr(5Lc=M(F|ek8P_kTPk}WDdqPm&y{q#GjMjo{ z*Z0~{B|+Eie+|(23IMuY$H)s#W^5NoUq&7CZ(jeeX>L8OkC6cB5-zVuQRd&c@zM>Y z`$bTEW)|QmND=|CS7p5raFirjq%0b>pQhemP{arUQ=#d=7VuM1P~v`NqbWbfwiJol ztgZqWiUGj%fZtoB{?lihn6d1JeBO!c0!TFuCQ*8Po-&?8m}=)7z)h!0M*&=Ljshk) zs}T(mgr&mVtYe%P&3Wv{qy4>ZP9IWjn_A=Bu)*V>deClcCD@u0?W{0Tr~7*ixxz^KbhC_g8RN!JN-gqGDGOB*>;k9&_gz)0rt|Jnhv)Zxfou&gYiizoQ{ zChJJ0H#-VnocVYTR3X9rRpxVle^5+_ z@7dh9C%a;PP(sb}Rpz*FLwL^><6zG?hH2Igw4xX+f8JzcyK&U|a7tdNg9MVygdVcem}n zTY5n)Q_8MJ-aGd^?c7m2EfaPpya3_u{V+0jTWI2fE4|hK7nfBp!V&}tI^4av@)JW=WyW=C8C>|Qx-mczzqba14%+!mzA3=XaeNwRXb90b2KYXl= z{4uTB<(OpA>S(@>qr^FN19fR{HYr55_A%u&s|0{8LADWfNeR?EU?F_6eccg4(Y$p4 zHo*p(X?|6h3o&0qA07y5wO%2r676flnUp6A-2mW1O>F7SGmXCsTMvOw@n=0fmDiPV zZHSt<(_UhNe56YZ0cU}<1k8=GD=G+q3yJ#EvF~3A5lAZg;4TZXs~obRM7}uqV)cAJ z`0C0t{}~TBs#pom)6mB|go7yJVAEd}S78~2Gk{MF=7EEPoU`Z$U+vzEeV{V`WISu_ jNv$Lefmxe#3SJ&ryG_NmOMLw22(@d2taL6806hK%x`|56 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/CommunityBanner.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/CommunityBanner.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad1781dd1bc8908090392f95b230960eba7d48bd GIT binary patch literal 1671 zcmV;226*{LNk%w1VK)Hs0JHx9z`(#E7#JxS5IHF!N--fqDHx1WDRV+0tz$8zV=+=O z7=%(OV?rS@ArJrn00000A^8LW00000EC2ui05<^g000F45XecZy*TU5yZ={EfMh8J z3}UWbpr~w&p$HMk_(UVgQQSFJfKX#35C%pA7zEKKgavOwST;RFn2vDlDVW#HfPoos z6A8vI%o-ey3niGnX%q^^#-5+Bg>vSy&=X5Uf97gu)DI`Yk+FBk8Bv3|g zABX}5!r^FOry(8$b_zJ0D6yhIfH4{@sAZsItpo}GL3R|$ab&GSK@dtBCaUEy9zhxy zfJL)rO?L!*bNwJCdE)oM3EjPIw0sYcr1uO6_;edSd z5P0R#(Ab|PXgjG*n>OrN4R*>^ZQyFb0lRqb>dk9ctce2U(1cjf)22;=B*IS0M?;h$ zpO6u~)zFghH^Vk3i$PN(1Q7BKTp*uvF!BkQ_nn6T( zjJ%LoiC4^q1(A&0m>Pgg_BY^Fblo`BhV+~z+!Dh92O)mT;?JojQd+iEw+kho~?our)wBFnhvKD z49e@T3q5I-Os~3=WtLn1cA)~yHtVeavp*`!MXN~qF&?$m;vfRHHo|i)66uAj-iqqX z1fK`V;qE>tP_aBOhBMH++vouq)q zm=H&tt+v;=l%2dGXv8hX7HrGX#okVr#GWLR%g9W(azLfJn0_#EFzP07iI}h(}aY?X);2zC@kEw{V*%i$usM zHf9`GAV7{fF0~_5(ZVAnyHNQGZ`r`s-Gmjt3SA|`dp3nHwvr36eB~U5-5rgQ?GAzf(=njb_C4|p zYVtjUPEN}nSntm2zY-zrZwK>Bigq9sJ$E-zg*^(Wn;^9}YT{IoAck zO{p@VFeX7K>U9fLFQ}1=36p)4kb)x_bSM$ zI^YTpIU_OTYeI)^BmfQn`XOHZ=^|7TM}o6Wu?gz?z~7SKI5c2s2Er@TR3Z@vqypu9CwSai(_gn2C!3d8+Jy(KcsrVEk+|hP#*tgdwbya0CE=zdh}amh9PR5(gS7 znXYOZIbs(hu;r7W zwl6lMAeNU~rM3_-tI=^#0|Dqrf5O5gFKU3ApbAt#tSN&VmY|ES>rfUupv-RWk#)r! z+!Md4LoE`}Oer`cE^jE$7GNTUm%P@i29O9P051>#9bq7XM;ATR(@>!x&k#{~hlVy3 zG$$bs3?(2vuO)&sW7Eo9DA+K7KCR?Uy_7*BF#{PTUL^`Lsva6FahoyJ<&mwMXe4J! R)0*1!rZ~;1PAL!p06VE)%}oFR literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/ExploreTitle.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/ExploreTitle.gif new file mode 100644 index 0000000000000000000000000000000000000000..29cdd034d8f20da8e56c909d5a1db9e753802047 GIT binary patch literal 1466 zcmV;r1x5NtNk%w1VG{vJ0HXf@{{R60|NsC0|NsC0|NsC0|NsC0{{R30A^8LW00000 zA^!_Oa&%>FX>%Y!Oi%_05EvjRFaRt70000J0Z0G<1OEuRVE!;l6V{A_m1|buQ;{*s z06G<^u8Odo50SFV3p)itH}^H~z@Tsl>|F$w6LMj?c#M!G6ZRttppZgU)x=6kSPXGY zF7G~(FF-J`QApiKfriFy*AXosARtK8C4XiLZUzJcKWrQ$K!ps7X><~ddyo&5gPEE; zS8_Cd4uGH!fDE2AZkPatcM&>fotHo^AwhKxE2AhhvA8TXy>qAz!Fjw7Kyj}m zZpP3M!9m4DaS(T=5G>I<5j&vI!{wW|(kp1>3%v%VJOg+DF3yyCkPb#0sLTnkyB$;7N*MrvD$ph5%JWVv(g$L4_#wl@xb!#XXUs zg2bt&%OHR_8oh-i<53<+W-N3)gxHdX37aXCvOotUz`#{2=^^C;VJM!RH=~Tfxp2a^ zs8l1u{CGyG*;!y=jZ{EN$jqhT;AkDfbW@?CV8oKByCUt`zgGN~ar3OnRE*SExI_Hl zDT$23y!O@mNHAN%!5Mc9XD&+e6bm$e9W9G4bt&#!5U)P<>jr^3eJ-g#S3o2NWsuX!cu21oQReoEo?xQBNVDOT{LWj3MkswSgI(u+(F%tuFXoe`5qR#q$D)28#PH-=AQ(5K?dOc%V^qM!LwX_0t zkaYBwWbBIF9NT@(wc12+D>P?V`m!~wM@wiEC^QM(Bfw6dJlP0N&&EvIV;{T%-O2(0(q(p^j4lbLzu0nW9Wi% za{VCnd5M0D-ZJU^9@><=xzw#w(+I|vP0hAotFYW!9>~{Eu5NuQ(|FZ^xga58E;jK! zK6Je1dy`u@+xszpmA?VmpnIoPDcO!CT_>C$kK0XsJR*}-#G!Sznyg^ei zcmWL}2?WUzp=1{55&_uohB(Zj4wt}(9Uc%%J`AD{b7c!58gW^Q;vWIpbVSG4@DNKp zq7Z3F#VT6yidf8|7HPN0#V&gBi(m|+7{^G)GMe#>XiTFT*T}{;y77&0jH4XqNXI(b z@s4=RqaOFj$3FV;kAMuMAO}gvLK^arh)kp+7s<#*I`WZ_jHDzdNy$oD@{*X$q$W4X U$xeFmlb{TxC`U=kOC|sSJCcX3`~Uy| literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/HomeBanner.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/HomeBanner.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c73945538445a19d649eaa354b0afa424278796 GIT binary patch literal 779 zcmV+m1N8hyNk%w1VK4xG0KxzOLrP{NCpS%1a~&WnJVRY6E=V~!Y#$F6KvD3I^?vDaJ( z^x6$|0wH~WAwUy?fKy$Ij*BL60%;3xlz;^WUI9)KRCA9gc$bhHd3ujLH7=lE0b-;Q zh?p;3Fh(f3UAr)Qk9{mqsezxZAhA+hMgUg_85yD@$P9|Z2eUeMgnq^l7QV@T;K_EU z=49j6>g$**tPCnq!xfU!ZqqrhmlpUI-9p?LY(Q2)%&>Z+*g0sX5Li4Y5c^1k*a%Pn zKg&31+{pgX5GFPXXY{y8vSi6`i|Cz0lCFlf999kz5HJz|!l;-eLu?rgDk zQ5u1m3kgJX#Hl5tfBCw|lTd<#wR8BW4FJ^51qeYc!ipVBmaI<*f^w>DSuIh(LucC* zg36=f~YftsIzIGpoS{y Js7xdP06QKQR09A2 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/PromotionLeftEdge.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/PromotionLeftEdge.gif new file mode 100644 index 0000000000000000000000000000000000000000..7aca3206ac933c5d0c2e8a1f5c2090266efd8e33 GIT binary patch literal 87 zcmZ?wbhEHbWM^PvSj52ap8*{R_=7|gf3h%w>Hpl0MJ1`ZnZ*i@J^`!(1_>Pu3_2hg TkO2(L>>gG^3tD!vFjxZsICc%{ literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/SiteShowcase.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/SiteShowcase.gif new file mode 100644 index 0000000000000000000000000000000000000000..f20e70293ed85429ab821f56447dc5edb2702983 GIT binary patch literal 875 zcmV-x1C;znNk%w1VU7SF0K@mG&D3bGczzSFfA=DEG#T5D=Q@>B>(^b z000000000000000EC2ui0FD43000I5peBxFX`X1Ru59bRa4gSsZQppV?|kq7z@TtQ zEE{Mpp*Oa-iz1 zVkHX#0$C$r1!*x;1Op@q0SSizl#~UNm69wL0s#dEBvTC{lqC!S0tB8UsFRbUBdU#; zp{pbfs0Es&l>x9X5&?G_a3YYq#*rnWFbe@$#cIC1C1q&_0e>1(61=cwR%RmFB4q+4 zecjO-r8Kz6$?(U^(=U*}uhb(B0iYWE{xl$%#_t)aDwDdIuuy5;loRb{FhuxBSw(ov zUYw$nk6i!~3M{faC&HN|XX0@G4I@R;1g?xC29nc9LzTi2^DffEw<&<5oiqhzn^Y{= zoq+@{g)~IWmWg8`HJn;GBI1mYR5j$p8Fibm1PN}gz{XUXf(E!gcJ%s7z@-8M4xAgP zNW)7Meb@yQ(MhaFu<%@P3LtiCJbIOQroi)~-{|Hdwb}O4%s~z*?1D@3cu=nK3&pvFhQTzN~zqrNK!+G}ESGzR1lsXrIW0 zN1Vd8T9~+fyGOh`&C{?|8hx}OM_n66nP?fULQ*iI6NzAy;0)+gmR;j;z3K<^{C&o$ zUE^U?-U|ak2a8oxiLhVrH9m=eO>`uv!kSP?O~H`}ssvXy?0wKajMfMF1Yw0-Itzdbx=_xYdJBeAR!10 zR24-TI*0%^R9V7BeJnW8i9tS=kX$b{s(_LJbv5Ua2?P0*rfz>Q6qsFK(h^KS*eKKo z73+jHCkv}3VS!?Ty*a|5(KO)KEsLfgfuT@DD(R$@R%+>`m}aW!rkr-_X%Y~GD(a}D zmTKy$r#=ut1QSr;>Z`EE`sxH1U|{R5w`Nd*tgzOK>#xAtTI&VG7Hh1rF*FbY06Q|A Bba?;( literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/news_icon.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/ROMCache/news_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..656be1cb588500cb2772b3405eae461181fb882f GIT binary patch literal 1934 zcmV;92XXjENk%w1VMYKn0E7Sl-_^aZmS!$2CZ~L1aBErDyL{cmkI1ffXE-k{9va=i zguB4Zc;MM`~Guh^{i15kFF!_Mt8F5`ZWg9O5EyWfz(dmz6B z1q85wbD>`#eROmj6FwUQ5(sM$4Gt0m4RUM^4Qq>)5C|LqoF7Ckp9qze5~Pg?g*^`o zmIw|I9BT*=5+9V8bOfax51k)*VNDHfh{Fw{4jMim8^g2`4!wsCuFi@B8#gPQoGcw* z1UEu$m5R@ZKNo6k&{Eg{R=;dq+Ckhb0v6uf0@M!2q97~~RVfvZ53DdjdqCmCfC@J@ zJg_5<3pX6!!U=gnfQ=jprOeHOkiZ87548RiHL$>}f=dh!2Ee3euU8On8b7%x=Lmr) znTjNo>|ucdNRSN#baKfQ14MfkyJfubO-0oX*eFcdYG6Zz4H&e2lYw9ZBQ_FjY+za; zK!6GpFWU1a&Vq%j9XR9-prCJG1Arq$@IY8ACkhV;oajIylTQc^=((NzR*AiCD>SzF zcDI9s4h`}a@cTEgV8R}>PWf;m0m?}TSgv(RIj*l?Vmf{4Y(cMY4t)Ir9v&eBYSk1r zyfD!?D76n122h@ifk3Z}E9~H_iXd-q4jcxIE^Q!#dE=?mZ%}R`L3BomBF~;4z_uqm znZ0$+3m$y$1>-3&9AM@ZM!^O70RCXX2>?8Ei~~wML|*{mh~WuK`Q?$<1pzD&zy*8+ zP(XmgorfL;U)a>a35UQ3fn96SH_`_oX@LgJRIwZhR?x!8N&rk408Ck6bkzquX6Ykpuwoj96CZwmayU8gbQHcDx_EZvVx9v7T}?X1q3hwUj-0y0Rt0kfL>~3GQeI5 z%wTfN1dUF2YpV-HyTB@G{_JRHt_cW$>i`;z*Fm=xBrvK77$C<47Ymj^$1%4g(5$l^ zb_i{>)*b-h0RcFG>xhH;wP0XiRp(wqB0xuhV#pdbi3H5v3a^LKM*ATl3-Fl0ojp2W z!FZZ_D%e*H7@W;v9{gH@1PVYiio29K4Dp8-NE>bic519;0TU!J8U_=tlURc27L%`WYraOXbv`~Y909d-kb<7J4O8KC`ac%eK z2YmbVo+1M2<$}uSbAc6uGKAWSC76|nPtk1P)}S1Es7wGH04^=e8rTb>1rC5dVqXhf zAg(?Y9A}smtQT2=dyEhinbHB&9W&mdYfwSO0JO`^dc-|oS-@wW0t*2w&@>G&=4^r~ z6A2oFmP}j#e_ZQ8yfi?71$?Um6$`)%K&Q14ao`09ESv#wpn=KZ2PSus0;nQ@0aIP9 zg0A=g{;(IV1YB$Z-NPM-Xoay0EXV@ID*y`z_K%WM#gK-v%miA9Bm0&bbW1du3z zA4W?6>ahM(#YU8`Ee4K^7MQ@-R9K)V4vhk!>Wb?`pd?CAViRuZp5+p-KZ!+*N8Fp- z+{m~$3k0ro#TnKU;RnY+MZf@aWWXxqKnYDWOOLpV7`<#YIxya;fC=CLkARec^0+T? za1;z+5H^AVEPxb?0D!~(7cXhqD_W!Lo1QeKj`NY{aEMb4{0I{$z?f_V4uNGNn&mQ0 zM$2!|EMb63SDwR_?TxAY*-%8_%1k)GAB}p}%baN|0AUPIKr$U_7O5H!I1(^5Bmpzn z;1gF+;90fQ0P5xihIdeDho=2|1X*p&ce_}?)_fRa);#wV4$#aZL?&2M&b2nle2 z4;AZF29)HnTC`lIkT}2~ zBPfLBOvL~>IMt~+W2|C#yI7~{HnE8N@wi*TpV$N5x&s!XN|yJMT0iKL7v# literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_BannerGradient.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_BannerGradient.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ae0dc5463358003fb2bb689ef434cb0234d2ee4 GIT binary patch literal 167 zcmZ?wbh9u|WMl|nXklQGv(c5c(vh*ymNwIpGSQSY(vUDv7t>V{)m9eKRFb#Tm$T86 zwbGR~*OD^Tlr+|mFjN=UR}<4!71dUeG*Xu^P!rcv71L1>)l!zX*O#-^leN~BvDA?^ z*OoHXVqjp<0b&M_T@0)`2}*q_ne)`z6fc*`PD*txNp%niwc&qgJ@4Rxi-H^$a~v8r Q-eeGy>UEmP$;e<00Abf6CIA2c literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_BannerIcon.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/aroundtown/ROMCache/AT_BannerIcon.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d2f8c48f1d7f04d93b46a05667816d3eb4d3eb6 GIT binary patch literal 3938 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 G@cBPG8tn@J literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/Chat.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/Chat.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2ef4027ec873162617fcad9d3d93ba7a4fd8620 GIT binary patch literal 2110 zcmcJNi#yW`1Au?~?M|C*wwe28GfOTb*ElsxX)ZNF!Y48g5<4BaM4cIGqL|1vhZN(i znsAVuW=Uk#Bq>s(^pHA*>3rvp_})L@eV+GuULW30H}{xeAQ-p|03`dp7cN{d zG_$+S9B?(PQu z5755BAOK(n*!<)ErwKr;b4rA}Y>Y~VFC7_4-twzPmgajU{Mu7_`sn*(x3nz>{js&D zKsfaJLXXFp%$pr}TkM7cZ4QZoC8vt>@>7fnXe1ૅhAT3KZCmP|3&hS7a9&@gt z3`?Y-vueC`aEex1l%&ftUB(pyBCw6pAoO zAWjkWCsA}N_ScjO3a%;|G-&KG@B3pM{}})D*)(a*&~R#nhQ(4Duw7}M0oL;lAJ6^Xju^pZB4sthw7&(mXiUsEa3~ z1_iF450{eL{sSDe^poJNl4^PSEdjcGcWno5NwjAZayQo3{V~h_5+U|QpKQ;|y)pwk zZ;TLKl54Fa-n!IQHt$i%yAxWspKKM}2?3FI&MW2RJuKIp;T@ApGnp~hMlL0OxmKVn zc7RcnC)njK`StTbo}IFp^Z3QZxT(nxacW&etX54O*GCi@*fVD)>^z6rmM@#?#vI=O zx@5Ioh3rd&6-X$F_y79o!(-pCZ#HMU*sk2KtuAqjR#NpF#BZ$M%uKsRB@Mi{wTxJO zH?JJ2{F(VZhxf@#H{k9x!YDz(fl+&qbxEqkeWAxi$6KmT+?W0sML^(G^}hIZ4j+KP z0GtJYwBaKq{~JT>`Eg{QbSud%&LsKXM%M_N;jm#?LaGyI5`h*;<|F_Sje~#yTZyoV zzZ-stZ`qIwADQ==&3wHvFaKm3ywC!GYXdn_KtsD&hL!LG(zCn15D{<&Cl@}vc*@JB za5@>E4g&6R*AC3cAI7x<;Vt5Cc%k6hRj#Ac%Kxng#`y9i+g-c z9!lsB5CXgET_9A`fk775H9_Ep&jnr(5Lc=M(F|ek8P_kTPk}WDdqPm&y{q#GjMjo{ z*Z0~{B|+Eie+|(23IMuY$H)s#W^5NoUq&7CZ(jeeX>L8OkC6cB5-zVuQRd&c@zM>Y z`$bTEW)|QmND=|CS7p5raFirjq%0b>pQhemP{arUQ=#d=7VuM1P~v`NqbWbfwiJol ztgZqWiUGj%fZtoB{?lihn6d1JeBO!c0!TFuCQ*8Po-&?8m}=)7z)h!0M*&=Ljshk) zs}T(mgr&mVtYe%P&3Wv{qy4>ZP9IWjn_A=Bu)*V>deClcCD@u0?W{0Tr~7*ixxz^KbhC_g8RN!JN-gqGDGOB*>;k9&_gz)0rt|Jnhv)Zxfou&gYiizoQ{ zChJJ0H#-VnocVYTR3X9rRpxVle^5+_ z@7dh9C%a;PP(sb}Rpz*FLwL^><6zG?hH2Igw4xX+f8JzcyK&U|a7tdNg9MVygdVcem}n zTY5n)Q_8MJ-aGd^?c7m2EfaPpya3_u{V+0jTWI2fE4|hK7nfBp!V&}tI^4av@)JW=WyW=C8C>|Qx-mczzqba14%+!mzA3=XaeNwRXb90b2KYXl= z{4uTB<(OpA>S(@>qr^FN19fR{HYr55_A%u&s|0{8LADWfNeR?EU?F_6eccg4(Y$p4 zHo*p(X?|6h3o&0qA07y5wO%2r676flnUp6A-2mW1O>F7SGmXCsTMvOw@n=0fmDiPV zZHSt<(_UhNe56YZ0cU}<1k8=GD=G+q3yJ#EvF~3A5lAZg;4TZXs~obRM7}uqV)cAJ z`0C0t{}~TBs#pom)6mB|go7yJVAEd}S78~2Gk{MF=7EEPoU`Z$U+vzEeV{V`WISu_ jNv$Lefmxe#3SJ&ryG_NmOMLw22(@d2taL6806hK%x`|56 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/CommunityBanner.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/CommunityBanner.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad1781dd1bc8908090392f95b230960eba7d48bd GIT binary patch literal 1671 zcmV;226*{LNk%w1VK)Hs0JHx9z`(#E7#JxS5IHF!N--fqDHx1WDRV+0tz$8zV=+=O z7=%(OV?rS@ArJrn00000A^8LW00000EC2ui05<^g000F45XecZy*TU5yZ={EfMh8J z3}UWbpr~w&p$HMk_(UVgQQSFJfKX#35C%pA7zEKKgavOwST;RFn2vDlDVW#HfPoos z6A8vI%o-ey3niGnX%q^^#-5+Bg>vSy&=X5Uf97gu)DI`Yk+FBk8Bv3|g zABX}5!r^FOry(8$b_zJ0D6yhIfH4{@sAZsItpo}GL3R|$ab&GSK@dtBCaUEy9zhxy zfJL)rO?L!*bNwJCdE)oM3EjPIw0sYcr1uO6_;edSd z5P0R#(Ab|PXgjG*n>OrN4R*>^ZQyFb0lRqb>dk9ctce2U(1cjf)22;=B*IS0M?;h$ zpO6u~)zFghH^Vk3i$PN(1Q7BKTp*uvF!BkQ_nn6T( zjJ%LoiC4^q1(A&0m>Pgg_BY^Fblo`BhV+~z+!Dh92O)mT;?JojQd+iEw+kho~?our)wBFnhvKD z49e@T3q5I-Os~3=WtLn1cA)~yHtVeavp*`!MXN~qF&?$m;vfRHHo|i)66uAj-iqqX z1fK`V;qE>tP_aBOhBMH++vouq)q zm=H&tt+v;=l%2dGXv8hX7HrGX#okVr#GWLR%g9W(azLfJn0_#EFzP07iI}h(}aY?X);2zC@kEw{V*%i$usM zHf9`GAV7{fF0~_5(ZVAnyHNQGZ`r`s-Gmjt3SA|`dp3nHwvr36eB~U5-5rgQ?GAzf(=njb_C4|p zYVtjUPEN}nSntm2zY-zrZwK>Bigq9sJ$E-zg*^(Wn;^9}YT{IoAck zO{p@VFeX7K>U9fLFQ}1=36p)4kb)x_bSM$ zI^YTpIU_OTYeI)^BmfQn`XOHZ=^|7TM}o6Wu?gz?z~7SKI5c2s2Er@TR3Z@vqypu9CwSai(_gn2C!3d8+Jy(KcsrVEk+|hP#*tgdwbya0CE=zdh}amh9PR5(gS7 znXYOZIbs(hu;r7W zwl6lMAeNU~rM3_-tI=^#0|Dqrf5O5gFKU3ApbAt#tSN&VmY|ES>rfUupv-RWk#)r! z+!Md4LoE`}Oer`cE^jE$7GNTUm%P@i29O9P051>#9bq7XM;ATR(@>!x&k#{~hlVy3 zG$$bs3?(2vuO)&sW7Eo9DA+K7KCR?Uy_7*BF#{PTUL^`Lsva6FahoyJ<&mwMXe4J! R)0*1!rZ~;1PAL!p06VE)%}oFR literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/ExploreTitle.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/ExploreTitle.gif new file mode 100644 index 0000000000000000000000000000000000000000..29cdd034d8f20da8e56c909d5a1db9e753802047 GIT binary patch literal 1466 zcmV;r1x5NtNk%w1VG{vJ0HXf@{{R60|NsC0|NsC0|NsC0|NsC0{{R30A^8LW00000 zA^!_Oa&%>FX>%Y!Oi%_05EvjRFaRt70000J0Z0G<1OEuRVE!;l6V{A_m1|buQ;{*s z06G<^u8Odo50SFV3p)itH}^H~z@Tsl>|F$w6LMj?c#M!G6ZRttppZgU)x=6kSPXGY zF7G~(FF-J`QApiKfriFy*AXosARtK8C4XiLZUzJcKWrQ$K!ps7X><~ddyo&5gPEE; zS8_Cd4uGH!fDE2AZkPatcM&>fotHo^AwhKxE2AhhvA8TXy>qAz!Fjw7Kyj}m zZpP3M!9m4DaS(T=5G>I<5j&vI!{wW|(kp1>3%v%VJOg+DF3yyCkPb#0sLTnkyB$;7N*MrvD$ph5%JWVv(g$L4_#wl@xb!#XXUs zg2bt&%OHR_8oh-i<53<+W-N3)gxHdX37aXCvOotUz`#{2=^^C;VJM!RH=~Tfxp2a^ zs8l1u{CGyG*;!y=jZ{EN$jqhT;AkDfbW@?CV8oKByCUt`zgGN~ar3OnRE*SExI_Hl zDT$23y!O@mNHAN%!5Mc9XD&+e6bm$e9W9G4bt&#!5U)P<>jr^3eJ-g#S3o2NWsuX!cu21oQReoEo?xQBNVDOT{LWj3MkswSgI(u+(F%tuFXoe`5qR#q$D)28#PH-=AQ(5K?dOc%V^qM!LwX_0t zkaYBwWbBIF9NT@(wc12+D>P?V`m!~wM@wiEC^QM(Bfw6dJlP0N&&EvIV;{T%-O2(0(q(p^j4lbLzu0nW9Wi% za{VCnd5M0D-ZJU^9@><=xzw#w(+I|vP0hAotFYW!9>~{Eu5NuQ(|FZ^xga58E;jK! zK6Je1dy`u@+xszpmA?VmpnIoPDcO!CT_>C$kK0XsJR*}-#G!Sznyg^ei zcmWL}2?WUzp=1{55&_uohB(Zj4wt}(9Uc%%J`AD{b7c!58gW^Q;vWIpbVSG4@DNKp zq7Z3F#VT6yidf8|7HPN0#V&gBi(m|+7{^G)GMe#>XiTFT*T}{;y77&0jH4XqNXI(b z@s4=RqaOFj$3FV;kAMuMAO}gvLK^arh)kp+7s<#*I`WZ_jHDzdNy$oD@{*X$q$W4X U$xeFmlb{TxC`U=kOC|sSJCcX3`~Uy| literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/SiteShowcase.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/SiteShowcase.gif new file mode 100644 index 0000000000000000000000000000000000000000..f20e70293ed85429ab821f56447dc5edb2702983 GIT binary patch literal 875 zcmV-x1C;znNk%w1VU7SF0K@mG&D3bGczzSFfA=DEG#T5D=Q@>B>(^b z000000000000000EC2ui0FD43000I5peBxFX`X1Ru59bRa4gSsZQppV?|kq7z@TtQ zEE{Mpp*Oa-iz1 zVkHX#0$C$r1!*x;1Op@q0SSizl#~UNm69wL0s#dEBvTC{lqC!S0tB8UsFRbUBdU#; zp{pbfs0Es&l>x9X5&?G_a3YYq#*rnWFbe@$#cIC1C1q&_0e>1(61=cwR%RmFB4q+4 zecjO-r8Kz6$?(U^(=U*}uhb(B0iYWE{xl$%#_t)aDwDdIuuy5;loRb{FhuxBSw(ov zUYw$nk6i!~3M{faC&HN|XX0@G4I@R;1g?xC29nc9LzTi2^DffEw<&<5oiqhzn^Y{= zoq+@{g)~IWmWg8`HJn;GBI1mYR5j$p8Fibm1PN}gz{XUXf(E!gcJ%s7z@-8M4xAgP zNW)7Meb@yQ(MhaFu<%@P3LtiCJbIOQroi)~-{|Hdwb}O4%s~z*?1D@3cu=nK3&pvFhQTzN~zqrNK!+G}ESGzR1lsXrIW0 zN1Vd8T9~+fyGOh`&C{?|8hx}OM_n66nP?fULQ*iI6NzAy;0)+gmR;j;z3K<^{C&o$ zUE^U?-U|ak2a8oxiLhVrH9m=eO>`uv!kSP?O~H`}ssvXy?0wKajMfMF1Yw0-Itzdbx=_xYdJBeAR!10 zR24-TI*0%^R9V7BeJnW8i9tS=kX$b{s(_LJbv5Ua2?P0*rfz>Q6qsFK(h^KS*eKKo z73+jHCkv}3VS!?Ty*a|5(KO)KEsLfgfuT@DD(R$@R%+>`m}aW!rkr-_X%Y~GD(a}D zmTKy$r#=ut1QSr;>Z`EE`sxH1U|{R5w`Nd*tgzOK>#xAtTI&VG7Hh1rF*FbY06Q|A Bba?;( literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/news_icon.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/community/ROMCache/news_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..656be1cb588500cb2772b3405eae461181fb882f GIT binary patch literal 1934 zcmV;92XXjENk%w1VMYKn0E7Sl-_^aZmS!$2CZ~L1aBErDyL{cmkI1ffXE-k{9va=i zguB4Zc;MM`~Guh^{i15kFF!_Mt8F5`ZWg9O5EyWfz(dmz6B z1q85wbD>`#eROmj6FwUQ5(sM$4Gt0m4RUM^4Qq>)5C|LqoF7Ckp9qze5~Pg?g*^`o zmIw|I9BT*=5+9V8bOfax51k)*VNDHfh{Fw{4jMim8^g2`4!wsCuFi@B8#gPQoGcw* z1UEu$m5R@ZKNo6k&{Eg{R=;dq+Ckhb0v6uf0@M!2q97~~RVfvZ53DdjdqCmCfC@J@ zJg_5<3pX6!!U=gnfQ=jprOeHOkiZ87548RiHL$>}f=dh!2Ee3euU8On8b7%x=Lmr) znTjNo>|ucdNRSN#baKfQ14MfkyJfubO-0oX*eFcdYG6Zz4H&e2lYw9ZBQ_FjY+za; zK!6GpFWU1a&Vq%j9XR9-prCJG1Arq$@IY8ACkhV;oajIylTQc^=((NzR*AiCD>SzF zcDI9s4h`}a@cTEgV8R}>PWf;m0m?}TSgv(RIj*l?Vmf{4Y(cMY4t)Ir9v&eBYSk1r zyfD!?D76n122h@ifk3Z}E9~H_iXd-q4jcxIE^Q!#dE=?mZ%}R`L3BomBF~;4z_uqm znZ0$+3m$y$1>-3&9AM@ZM!^O70RCXX2>?8Ei~~wML|*{mh~WuK`Q?$<1pzD&zy*8+ zP(XmgorfL;U)a>a35UQ3fn96SH_`_oX@LgJRIwZhR?x!8N&rk408Ck6bkzquX6Ykpuwoj96CZwmayU8gbQHcDx_EZvVx9v7T}?X1q3hwUj-0y0Rt0kfL>~3GQeI5 z%wTfN1dUF2YpV-HyTB@G{_JRHt_cW$>i`;z*Fm=xBrvK77$C<47Ymj^$1%4g(5$l^ zb_i{>)*b-h0RcFG>xhH;wP0XiRp(wqB0xuhV#pdbi3H5v3a^LKM*ATl3-Fl0ojp2W z!FZZ_D%e*H7@W;v9{gH@1PVYiio29K4Dp8-NE>bic519;0TU!J8U_=tlURc27L%`WYraOXbv`~Y909d-kb<7J4O8KC`ac%eK z2YmbVo+1M2<$}uSbAc6uGKAWSC76|nPtk1P)}S1Es7wGH04^=e8rTb>1rC5dVqXhf zAg(?Y9A}smtQT2=dyEhinbHB&9W&mdYfwSO0JO`^dc-|oS-@wW0t*2w&@>G&=4^r~ z6A2oFmP}j#e_ZQ8yfi?71$?Um6$`)%K&Q14ao`09ESv#wpn=KZ2PSus0;nQ@0aIP9 zg0A=g{;(IV1YB$Z-NPM-Xoay0EXV@ID*y`z_K%WM#gK-v%miA9Bm0&bbW1du3z zA4W?6>ahM(#YU8`Ee4K^7MQ@-R9K)V4vhk!>Wb?`pd?CAViRuZp5+p-KZ!+*N8Fp- z+{m~$3k0ro#TnKU;RnY+MZf@aWWXxqKnYDWOOLpV7`<#YIxya;fC=CLkARec^0+T? za1;z+5H^AVEPxb?0D!~(7cXhqD_W!Lo1QeKj`NY{aEMb4{0I{$z?f_V4uNGNn&mQ0 zM$2!|EMb63SDwR_?TxAY*-%8_%1k)GAB}p}%baN|0AUPIKr$U_7O5H!I1(^5Bmpzn z;1gF+;90fQ0P5xihIdeDho=2|1X*p&ce_}?)_fRa);#wV4$#aZL?&2M&b2nle2 z4;AZF29)HnTC`lIkT}2~ zBPfLBOvL~>IMt~+W2|C#yI7~{HnE8N@wi*TpV$N5x&s!XN|yJMT0iKL7v# literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20BV1.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20BV1.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce2df6c36966504dc88f4b8b8b06cf6092788df9 GIT binary patch literal 111 zcmZ?wbhEHbWMg1t*v!E2p8-3tVQ0fCq4<-95hS7bpWCshBsDj)Si#XJfL*{KqM)IJ Vfk6i(2Qr$0h4q4nkxK`IH2|I>4mSV* literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20BV2.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20BV2.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce2df6c36966504dc88f4b8b8b06cf6092788df9 GIT binary patch literal 111 zcmZ?wbhEHbWMg1t*v!E2p8-3tVQ0fCq4<-95hS7bpWCshBsDj)Si#XJfL*{KqM)IJ Vfk6i(2Qr$0h4q4nkxK`IH2|I>4mSV* literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TH1.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TH1.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8973a1b00bd793b6ab70e59c50d1c2630b0a3cf GIT binary patch literal 84 zcmZ?wbhEHbWMp7tSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefSv;(SI2o(~D^d)n literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TV1.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TV1.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce2df6c36966504dc88f4b8b8b06cf6092788df9 GIT binary patch literal 111 zcmZ?wbhEHbWMg1t*v!E2p8-3tVQ0fCq4<-95hS7bpWCshBsDj)Si#XJfL*{KqM)IJ Vfk6i(2Qr$0h4q4nkxK`IH2|I>4mSV* literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TV2.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S20TV2.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce2df6c36966504dc88f4b8b8b06cf6092788df9 GIT binary patch literal 111 zcmZ?wbhEHbWMg1t*v!E2p8-3tVQ0fCq4<-95hS7bpWCshBsDj)Si#XJfL*{KqM)IJ Vfk6i(2Qr$0h4q4nkxK`IH2|I>4mSV* literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40H1.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40H1.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8973a1b00bd793b6ab70e59c50d1c2630b0a3cf GIT binary patch literal 84 zcmZ?wbhEHbWMp7tSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefSv;(SI2o(~D^d)n literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40V1.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40V1.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce2df6c36966504dc88f4b8b8b06cf6092788df9 GIT binary patch literal 111 zcmZ?wbhEHbWMg1t*v!E2p8-3tVQ0fCq4<-95hS7bpWCshBsDj)Si#XJfL*{KqM)IJ Vfk6i(2Qr$0h4q4nkxK`IH2|I>4mSV* literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40V2.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S40V2.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce2df6c36966504dc88f4b8b8b06cf6092788df9 GIT binary patch literal 111 zcmZ?wbhEHbWMg1t*v!E2p8-3tVQ0fCq4<-95hS7bpWCshBsDj)Si#XJfL*{KqM)IJ Vfk6i(2Qr$0h4q4nkxK`IH2|I>4mSV* literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS1.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS1.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bb6ca391e9cb3cd60cf74defeda5fb8722b7ccc GIT binary patch literal 83 zcmZ?wbhEHbWMp7rSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefnLU&zGFSruA4LrT literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS2.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS2.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bb6ca391e9cb3cd60cf74defeda5fb8722b7ccc GIT binary patch literal 83 zcmZ?wbhEHbWMp7rSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefnLU&zGFSruA4LrT literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS3.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS3.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bb6ca391e9cb3cd60cf74defeda5fb8722b7ccc GIT binary patch literal 83 zcmZ?wbhEHbWMp7rSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefnLU&zGFSruA4LrT literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS4.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS4.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bb6ca391e9cb3cd60cf74defeda5fb8722b7ccc GIT binary patch literal 83 zcmZ?wbhEHbWMp7rSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefnLU&zGFSruA4LrT literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS5.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/S60HS5.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bb6ca391e9cb3cd60cf74defeda5fb8722b7ccc GIT binary patch literal 83 zcmZ?wbhEHbWMp7rSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefnLU&zGFSruA4LrT literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH1.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH1.gif new file mode 100644 index 0000000000000000000000000000000000000000..f34009acd05bb3f87c13a5c487421f7b5ba20e65 GIT binary patch literal 91 zcmZ?wbhEHbWMg1sSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ XAOjefxjlAW)-!1HY}|W8jlmiKrrHr% literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH2.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH2.gif new file mode 100644 index 0000000000000000000000000000000000000000..f34009acd05bb3f87c13a5c487421f7b5ba20e65 GIT binary patch literal 91 zcmZ?wbhEHbWMg1sSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ XAOjefxjlAW)-!1HY}|W8jlmiKrrHr% literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH3.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/SAdH3.gif new file mode 100644 index 0000000000000000000000000000000000000000..f34009acd05bb3f87c13a5c487421f7b5ba20e65 GIT binary patch literal 91 zcmZ?wbhEHbWMg1sSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ XAOjefxjlAW)-!1HY}|W8jlmiKrrHr% literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowCorner.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowCorner.gif new file mode 100644 index 0000000000000000000000000000000000000000..e734d45154278428460e465c4c154cf45572908b GIT binary patch literal 120 zcmZ?wbhEHbWMg1s*v!E2p8-3tVQ0fCq4<-95hS7bpWCshBsDj)Si#XJfL*{KqM)IJ ffk6i(2Qr$0h3~?N%&x6dGbXjaZ(?8*WUvMRP$&~d literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowH.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowH.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8973a1b00bd793b6ab70e59c50d1c2630b0a3cf GIT binary patch literal 84 zcmZ?wbhEHbWMp7tSj52ap8*}L3IvHL{$ybU)Bm|0i%L>+Gm8}*eF9ho3=%pR7<51~ PAOjefSv;(SI2o(~D^d)n literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowHCap.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowHCap.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7ee6374da1a0a0001556bdb3235a0985bad2b2b GIT binary patch literal 127 zcmZ?wbhEHbWMg1s*v!E2pMfw~6^Kxy_>+YZ#8dpw?O0Tjnwwdy;OG;;%^{#*;1H2e k(9prapaYTz8PC8X7@(TcVX-6P&`E&=35Jx+NrDX40O_q16#xJL literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowHStart.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/explore/ROMCache/ShadowHStart.gif new file mode 100644 index 0000000000000000000000000000000000000000..f92af56ea5f5c59028e429a4193a971667f17330 GIT binary patch literal 128 zcmZ?wbhEHbWMg1s*v!E2pMfw~6^Kxy_>+YZ#8dpw?O0Tjnwwdy;OG;;%^{#*;1H2e l(9prapaYTz8PC8X6d=$%Y0}dS!w&UEg)WE8d8sT6)&K=56!`!E literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/AroundTownIcon2.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/AroundTownIcon2.gif new file mode 100644 index 0000000000000000000000000000000000000000..396f1b3c3eac7ff7feab29ec1e745684ae11f34d GIT binary patch literal 4857 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 G@cBPG8tn@J literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/Chat.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/Chat.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2ef4027ec873162617fcad9d3d93ba7a4fd8620 GIT binary patch literal 2110 zcmcJNi#yW`1Au?~?M|C*wwe28GfOTb*ElsxX)ZNF!Y48g5<4BaM4cIGqL|1vhZN(i znsAVuW=Uk#Bq>s(^pHA*>3rvp_})L@eV+GuULW30H}{xeAQ-p|03`dp7cN{d zG_$+S9B?(PQu z5755BAOK(n*!<)ErwKr;b4rA}Y>Y~VFC7_4-twzPmgajU{Mu7_`sn*(x3nz>{js&D zKsfaJLXXFp%$pr}TkM7cZ4QZoC8vt>@>7fnXe1ૅhAT3KZCmP|3&hS7a9&@gt z3`?Y-vueC`aEex1l%&ftUB(pyBCw6pAoO zAWjkWCsA}N_ScjO3a%;|G-&KG@B3pM{}})D*)(a*&~R#nhQ(4Duw7}M0oL;lAJ6^Xju^pZB4sthw7&(mXiUsEa3~ z1_iF450{eL{sSDe^poJNl4^PSEdjcGcWno5NwjAZayQo3{V~h_5+U|QpKQ;|y)pwk zZ;TLKl54Fa-n!IQHt$i%yAxWspKKM}2?3FI&MW2RJuKIp;T@ApGnp~hMlL0OxmKVn zc7RcnC)njK`StTbo}IFp^Z3QZxT(nxacW&etX54O*GCi@*fVD)>^z6rmM@#?#vI=O zx@5Ioh3rd&6-X$F_y79o!(-pCZ#HMU*sk2KtuAqjR#NpF#BZ$M%uKsRB@Mi{wTxJO zH?JJ2{F(VZhxf@#H{k9x!YDz(fl+&qbxEqkeWAxi$6KmT+?W0sML^(G^}hIZ4j+KP z0GtJYwBaKq{~JT>`Eg{QbSud%&LsKXM%M_N;jm#?LaGyI5`h*;<|F_Sje~#yTZyoV zzZ-stZ`qIwADQ==&3wHvFaKm3ywC!GYXdn_KtsD&hL!LG(zCn15D{<&Cl@}vc*@JB za5@>E4g&6R*AC3cAI7x<;Vt5Cc%k6hRj#Ac%Kxng#`y9i+g-c z9!lsB5CXgET_9A`fk775H9_Ep&jnr(5Lc=M(F|ek8P_kTPk}WDdqPm&y{q#GjMjo{ z*Z0~{B|+Eie+|(23IMuY$H)s#W^5NoUq&7CZ(jeeX>L8OkC6cB5-zVuQRd&c@zM>Y z`$bTEW)|QmND=|CS7p5raFirjq%0b>pQhemP{arUQ=#d=7VuM1P~v`NqbWbfwiJol ztgZqWiUGj%fZtoB{?lihn6d1JeBO!c0!TFuCQ*8Po-&?8m}=)7z)h!0M*&=Ljshk) zs}T(mgr&mVtYe%P&3Wv{qy4>ZP9IWjn_A=Bu)*V>deClcCD@u0?W{0Tr~7*ixxz^KbhC_g8RN!JN-gqGDGOB*>;k9&_gz)0rt|Jnhv)Zxfou&gYiizoQ{ zChJJ0H#-VnocVYTR3X9rRpxVle^5+_ z@7dh9C%a;PP(sb}Rpz*FLwL^><6zG?hH2Igw4xX+f8JzcyK&U|a7tdNg9MVygdVcem}n zTY5n)Q_8MJ-aGd^?c7m2EfaPpya3_u{V+0jTWI2fE4|hK7nfBp!V&}tI^4av@)JW=WyW=C8C>|Qx-mczzqba14%+!mzA3=XaeNwRXb90b2KYXl= z{4uTB<(OpA>S(@>qr^FN19fR{HYr55_A%u&s|0{8LADWfNeR?EU?F_6eccg4(Y$p4 zHo*p(X?|6h3o&0qA07y5wO%2r676flnUp6A-2mW1O>F7SGmXCsTMvOw@n=0fmDiPV zZHSt<(_UhNe56YZ0cU}<1k8=GD=G+q3yJ#EvF~3A5lAZg;4TZXs~obRM7}uqV)cAJ z`0C0t{}~TBs#pom)6mB|go7yJVAEd}S78~2Gk{MF=7EEPoU`Z$U+vzEeV{V`WISu_ jNv$Lefmxe#3SJ&ryG_NmOMLw22(@d2taL6806hK%x`|56 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/CommunityBanner.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/CommunityBanner.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad1781dd1bc8908090392f95b230960eba7d48bd GIT binary patch literal 1671 zcmV;226*{LNk%w1VK)Hs0JHx9z`(#E7#JxS5IHF!N--fqDHx1WDRV+0tz$8zV=+=O z7=%(OV?rS@ArJrn00000A^8LW00000EC2ui05<^g000F45XecZy*TU5yZ={EfMh8J z3}UWbpr~w&p$HMk_(UVgQQSFJfKX#35C%pA7zEKKgavOwST;RFn2vDlDVW#HfPoos z6A8vI%o-ey3niGnX%q^^#-5+Bg>vSy&=X5Uf97gu)DI`Yk+FBk8Bv3|g zABX}5!r^FOry(8$b_zJ0D6yhIfH4{@sAZsItpo}GL3R|$ab&GSK@dtBCaUEy9zhxy zfJL)rO?L!*bNwJCdE)oM3EjPIw0sYcr1uO6_;edSd z5P0R#(Ab|PXgjG*n>OrN4R*>^ZQyFb0lRqb>dk9ctce2U(1cjf)22;=B*IS0M?;h$ zpO6u~)zFghH^Vk3i$PN(1Q7BKTp*uvF!BkQ_nn6T( zjJ%LoiC4^q1(A&0m>Pgg_BY^Fblo`BhV+~z+!Dh92O)mT;?JojQd+iEw+kho~?our)wBFnhvKD z49e@T3q5I-Os~3=WtLn1cA)~yHtVeavp*`!MXN~qF&?$m;vfRHHo|i)66uAj-iqqX z1fK`V;qE>tP_aBOhBMH++vouq)q zm=H&tt+v;=l%2dGXv8hX7HrGX#okVr#GWLR%g9W(azLfJn0_#EFzP07iI}h(}aY?X);2zC@kEw{V*%i$usM zHf9`GAV7{fF0~_5(ZVAnyHNQGZ`r`s-Gmjt3SA|`dp3nHwvr36eB~U5-5rgQ?GAzf(=njb_C4|p zYVtjUPEN}nSntm2zY-zrZwK>Bigq9sJ$E-zg*^(Wn;^9}YT{IoAck zO{p@VFeX7K>U9fLFQ}1=36p)4kb)x_bSM$ zI^YTpIU_OTYeI)^BmfQn`XOHZ=^|7TM}o6Wu?gz?z~7SKI5c2s2Er@TR3Z@vqypu9CwSai(_gn2C!3d8+Jy(KcsrVEk+|hP#*tgdwbya0CE=zdh}amh9PR5(gS7 znXYOZIbs(hu;r7W zwl6lMAeNU~rM3_-tI=^#0|Dqrf5O5gFKU3ApbAt#tSN&VmY|ES>rfUupv-RWk#)r! z+!Md4LoE`}Oer`cE^jE$7GNTUm%P@i29O9P051>#9bq7XM;ATR(@>!x&k#{~hlVy3 zG$$bs3?(2vuO)&sW7Eo9DA+K7KCR?Uy_7*BF#{PTUL^`Lsva6FahoyJ<&mwMXe4J! R)0*1!rZ~;1PAL!p06VE)%}oFR literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/ExploreTitle.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/ExploreTitle.gif new file mode 100644 index 0000000000000000000000000000000000000000..29cdd034d8f20da8e56c909d5a1db9e753802047 GIT binary patch literal 1466 zcmV;r1x5NtNk%w1VG{vJ0HXf@{{R60|NsC0|NsC0|NsC0|NsC0{{R30A^8LW00000 zA^!_Oa&%>FX>%Y!Oi%_05EvjRFaRt70000J0Z0G<1OEuRVE!;l6V{A_m1|buQ;{*s z06G<^u8Odo50SFV3p)itH}^H~z@Tsl>|F$w6LMj?c#M!G6ZRttppZgU)x=6kSPXGY zF7G~(FF-J`QApiKfriFy*AXosARtK8C4XiLZUzJcKWrQ$K!ps7X><~ddyo&5gPEE; zS8_Cd4uGH!fDE2AZkPatcM&>fotHo^AwhKxE2AhhvA8TXy>qAz!Fjw7Kyj}m zZpP3M!9m4DaS(T=5G>I<5j&vI!{wW|(kp1>3%v%VJOg+DF3yyCkPb#0sLTnkyB$;7N*MrvD$ph5%JWVv(g$L4_#wl@xb!#XXUs zg2bt&%OHR_8oh-i<53<+W-N3)gxHdX37aXCvOotUz`#{2=^^C;VJM!RH=~Tfxp2a^ zs8l1u{CGyG*;!y=jZ{EN$jqhT;AkDfbW@?CV8oKByCUt`zgGN~ar3OnRE*SExI_Hl zDT$23y!O@mNHAN%!5Mc9XD&+e6bm$e9W9G4bt&#!5U)P<>jr^3eJ-g#S3o2NWsuX!cu21oQReoEo?xQBNVDOT{LWj3MkswSgI(u+(F%tuFXoe`5qR#q$D)28#PH-=AQ(5K?dOc%V^qM!LwX_0t zkaYBwWbBIF9NT@(wc12+D>P?V`m!~wM@wiEC^QM(Bfw6dJlP0N&&EvIV;{T%-O2(0(q(p^j4lbLzu0nW9Wi% za{VCnd5M0D-ZJU^9@><=xzw#w(+I|vP0hAotFYW!9>~{Eu5NuQ(|FZ^xga58E;jK! zK6Je1dy`u@+xszpmA?VmpnIoPDcO!CT_>C$kK0XsJR*}-#G!Sznyg^ei zcmWL}2?WUzp=1{55&_uohB(Zj4wt}(9Uc%%J`AD{b7c!58gW^Q;vWIpbVSG4@DNKp zq7Z3F#VT6yidf8|7HPN0#V&gBi(m|+7{^G)GMe#>XiTFT*T}{;y77&0jH4XqNXI(b z@s4=RqaOFj$3FV;kAMuMAO}gvLK^arh)kp+7s<#*I`WZ_jHDzdNy$oD@{*X$q$W4X U$xeFmlb{TxC`U=kOC|sSJCcX3`~Uy| literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/SiteShowcase.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/SiteShowcase.gif new file mode 100644 index 0000000000000000000000000000000000000000..f20e70293ed85429ab821f56447dc5edb2702983 GIT binary patch literal 875 zcmV-x1C;znNk%w1VU7SF0K@mG&D3bGczzSFfA=DEG#T5D=Q@>B>(^b z000000000000000EC2ui0FD43000I5peBxFX`X1Ru59bRa4gSsZQppV?|kq7z@TtQ zEE{Mpp*Oa-iz1 zVkHX#0$C$r1!*x;1Op@q0SSizl#~UNm69wL0s#dEBvTC{lqC!S0tB8UsFRbUBdU#; zp{pbfs0Es&l>x9X5&?G_a3YYq#*rnWFbe@$#cIC1C1q&_0e>1(61=cwR%RmFB4q+4 zecjO-r8Kz6$?(U^(=U*}uhb(B0iYWE{xl$%#_t)aDwDdIuuy5;loRb{FhuxBSw(ov zUYw$nk6i!~3M{faC&HN|XX0@G4I@R;1g?xC29nc9LzTi2^DffEw<&<5oiqhzn^Y{= zoq+@{g)~IWmWg8`HJn;GBI1mYR5j$p8Fibm1PN}gz{XUXf(E!gcJ%s7z@-8M4xAgP zNW)7Meb@yQ(MhaFu<%@P3LtiCJbIOQroi)~-{|Hdwb}O4%s~z*?1D@3cu=nK3&pvFhQTzN~zqrNK!+G}ESGzR1lsXrIW0 zN1Vd8T9~+fyGOh`&C{?|8hx}OM_n66nP?fULQ*iI6NzAy;0)+gmR;j;z3K<^{C&o$ zUE^U?-U|ak2a8oxiLhVrH9m=eO>`uv!kSP?O~H`}ssvXy?0wKajMfMF1Yw0-Itzdbx=_xYdJBeAR!10 zR24-TI*0%^R9V7BeJnW8i9tS=kX$b{s(_LJbv5Ua2?P0*rfz>Q6qsFK(h^KS*eKKo z73+jHCkv}3VS!?Ty*a|5(KO)KEsLfgfuT@DD(R$@R%+>`m}aW!rkr-_X%Y~GD(a}D zmTKy$r#=ut1QSr;>Z`EE`sxH1U|{R5w`Nd*tgzOK>#xAtTI&VG7Hh1rF*FbY06Q|A Bba?;( literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/news_icon.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/templates/ROMCache/news_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..656be1cb588500cb2772b3405eae461181fb882f GIT binary patch literal 1934 zcmV;92XXjENk%w1VMYKn0E7Sl-_^aZmS!$2CZ~L1aBErDyL{cmkI1ffXE-k{9va=i zguB4Zc;MM`~Guh^{i15kFF!_Mt8F5`ZWg9O5EyWfz(dmz6B z1q85wbD>`#eROmj6FwUQ5(sM$4Gt0m4RUM^4Qq>)5C|LqoF7Ckp9qze5~Pg?g*^`o zmIw|I9BT*=5+9V8bOfax51k)*VNDHfh{Fw{4jMim8^g2`4!wsCuFi@B8#gPQoGcw* z1UEu$m5R@ZKNo6k&{Eg{R=;dq+Ckhb0v6uf0@M!2q97~~RVfvZ53DdjdqCmCfC@J@ zJg_5<3pX6!!U=gnfQ=jprOeHOkiZ87548RiHL$>}f=dh!2Ee3euU8On8b7%x=Lmr) znTjNo>|ucdNRSN#baKfQ14MfkyJfubO-0oX*eFcdYG6Zz4H&e2lYw9ZBQ_FjY+za; zK!6GpFWU1a&Vq%j9XR9-prCJG1Arq$@IY8ACkhV;oajIylTQc^=((NzR*AiCD>SzF zcDI9s4h`}a@cTEgV8R}>PWf;m0m?}TSgv(RIj*l?Vmf{4Y(cMY4t)Ir9v&eBYSk1r zyfD!?D76n122h@ifk3Z}E9~H_iXd-q4jcxIE^Q!#dE=?mZ%}R`L3BomBF~;4z_uqm znZ0$+3m$y$1>-3&9AM@ZM!^O70RCXX2>?8Ei~~wML|*{mh~WuK`Q?$<1pzD&zy*8+ zP(XmgorfL;U)a>a35UQ3fn96SH_`_oX@LgJRIwZhR?x!8N&rk408Ck6bkzquX6Ykpuwoj96CZwmayU8gbQHcDx_EZvVx9v7T}?X1q3hwUj-0y0Rt0kfL>~3GQeI5 z%wTfN1dUF2YpV-HyTB@G{_JRHt_cW$>i`;z*Fm=xBrvK77$C<47Ymj^$1%4g(5$l^ zb_i{>)*b-h0RcFG>xhH;wP0XiRp(wqB0xuhV#pdbi3H5v3a^LKM*ATl3-Fl0ojp2W z!FZZ_D%e*H7@W;v9{gH@1PVYiio29K4Dp8-NE>bic519;0TU!J8U_=tlURc27L%`WYraOXbv`~Y909d-kb<7J4O8KC`ac%eK z2YmbVo+1M2<$}uSbAc6uGKAWSC76|nPtk1P)}S1Es7wGH04^=e8rTb>1rC5dVqXhf zAg(?Y9A}smtQT2=dyEhinbHB&9W&mdYfwSO0JO`^dc-|oS-@wW0t*2w&@>G&=4^r~ z6A2oFmP}j#e_ZQ8yfi?71$?Um6$`)%K&Q14ao`09ESv#wpn=KZ2PSus0;nQ@0aIP9 zg0A=g{;(IV1YB$Z-NPM-Xoay0EXV@ID*y`z_K%WM#gK-v%miA9Bm0&bbW1du3z zA4W?6>ahM(#YU8`Ee4K^7MQ@-R9K)V4vhk!>Wb?`pd?CAViRuZp5+p-KZ!+*N8Fp- z+{m~$3k0ro#TnKU;RnY+MZf@aWWXxqKnYDWOOLpV7`<#YIxya;fC=CLkARec^0+T? za1;z+5H^AVEPxb?0D!~(7cXhqD_W!Lo1QeKj`NY{aEMb4{0I{$z?f_V4uNGNn&mQ0 zM$2!|EMb63SDwR_?TxAY*-%8_%1k)GAB}p}%baN|0AUPIKr$U_7O5H!I1(^5Bmpzn z;1gF+;90fQ0P5xihIdeDho=2|1X*p&ce_}?)_fRa);#wV4$#aZL?&2M&b2nle2 z4;AZF29)HnTC`lIkT}2~ zBPfLBOvL~>IMt~+W2|C#yI7~{HnE8N@wi*TpV$N5x&s!XN|yJMT0iKL7v# literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/using_webtv/ROMCache/UsingWebTVBanner.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/content/DealerDemo/sim/using_webtv/ROMCache/UsingWebTVBanner.gif new file mode 100644 index 0000000000000000000000000000000000000000..52dc1e6959b57535b648cc6b3958b41d33411c22 GIT binary patch literal 1558 zcmV+x2I=`nNk%w1VK4ys0KxzOAvh{6OgSb&F+62WN_<^YifJ`iLori6A^8LW000I6 zEC2ui05Aag000C2Xu90~FtQ-4y#@@-doEsB0ib9)WN@79w+U(+l0;Fwv3!xrP!|LP zY^96v76+d#7!VMP3_*!OB-99l<`WvMSb

w4=lx#AD3&cFv_M%A3&rMg{-?!N6vF z)eUEOdOv)HT}6Qa0da+mau*a42X~5$j(k`h8V-{Jc?N`+OB*v&lY*e4hNLDWou8qi znKC4>s+b#FEHt;HbtJd5f548ye+tCD$0*9n4@b^MQ_&AnD%X>`#{dK{0pH)O&dICP z$yVag#D~-i!0GKD?D5EtMF5)9I?xvU`}z|6(E=z9kHLco6Dl-F5CXYg5DRg57%}3+ ziWvD^%!vN+qLq&zLy8>vvEeh5txz@)*n*`)l_8{Dd^0Z~%w;6t#RGOgn>juM1bCA$ zsmV8=9Hf+k&;-vS17RYG0NF^~0Xzp{Edd0@Y96hPYU;Qepko@Lp+*`?qoI$^1!bUI z1;W7x6cu74lzki1E{8>YJpk@72oWev###i(`=CkU76Sq=XySJa7O4)J6vnV{;h?Jq zg&JJc4RZyKmr5={2MIMs$@N@Ege{Mx?b{`3yFBsjrh&3)R``ZmhX7I;MH`s@LrDPf z1y1Ok#YdpGtHNOWN3%^mIA9aO$|0MnNUk562!K}wHFnMHaJAVR_9V%irrD{!wj za{he(lNs>dcr1_>#U4haCqhrg1=!FX3W@;Veh6lUk3Gm)aa4VFG*uR3D71D1Wd$Ha z!4LR-Z~=G_fyj&+5xMx{1xfTGBQsj40al6(0CSlWD@KOJd?^VDhEYGk6~}yN{4pT| zOSW+w3m}$(!<2t4IR}=Ic%bDFCu|ae4_9niih49TU@g^832}MzC!WFZs3Mf?{bosOin=pRCjta2Xi9+m>71ot+*2Z;iE^3G zqhVRu=PrphpdAy^c|cKw3VeY>O1O}LVjHe@+QBQ80`<*I9Ke}MF>~J36sWbec2S*pFOK0qKO7hWPxuRv(CSWIQ9!b-sgD{$Yg1!o*tT(RZsD39_*Fa zo!EiW5KM@)#aS&4U^TNmomtd>t*pR$q*$#S))+9joMw-#Q;pUK1EHB{0Axki2O?9! zjiQU;vIY=cAl;xlQotK10l>ixf`(1?Y67@fTt*C3ZUKGx55_dOmD`Q}976~@p}-sV zb0cdmVZYqe(GxbLXLHAJ3=0Cz>a6!R#vSElG)Bv^$7gOYch!sz7QFl5`;e$t;N06g z1b=Xa92hT2dHe>h@6HU@F`SrbjELoKA*@}PP~3Mfn(`1#!uuM#k54A}7T3(t7)q^Q zu4}WSj(zs1J70vNp7(nX==Gn9gy{e*-8JSnfwrZ`D6LE2>W1S4Ok53q7=W3>G6O*x zfk!O2yM+g?pp%^R?t{Ox3;M1FtRmb?cq4oO$?~PYXmsKz^ST3&<^!-6crOyLb431_ z5|RzHZ553ggZS_U2%Hg5Ks&V8hbGfLeSi%)++c@$wlV>9L89O+TY#9s^pHfIu`pAF zNQZuGIJMujuO@Rt#CV2B#mS^GK6|@Z+_u)1*Bzn>;rWdsgvJ6NP(nadY)W~$C?32O zVgs;)93e;MK)5(!A|4o63GqchoU|!`m=vHSrJ=x1wk{7f9D!^~)sr)w;AdsZ6&F@` z!afFXg>UN4zU)`8zU`}0i;RgZDY?setw&Gzc%2l0nL@ekp;)$4O0hJ_%uM0|kbK0E zC#MMxMyxA?qf8MtT|=^Ma%6988s*7y6+#f2vz(r*~Aa?e#h4750Jm*QzdfM}z I`bz)+J7w>-$p8QV literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/sync.js b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/sync.js index cc8271e2..c9aa6589 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-disk/sync.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-disk/sync.js @@ -210,42 +210,45 @@ if (request_headers['wtv-request-type'] == 'download') { var wtv_download_list = new Array(); var newest_file_epoch = version; Object.keys(diskmap_group_data.files).forEach(function (k) { - if (!diskmap_group_data.files[k].location) diskmap_group_data.files[k].location = wtvshared.makeSafePath(diskmap_group_data.location,diskmap_group_data.files[k].file.replace(diskmap_group_data.base, "")); + if (!diskmap_group_data.files[k].location) diskmap_group_data.files[k].location = wtvshared.makeSafePath(diskmap_group_data.location,diskmap_group_data.files[k].file.replace(diskmap_group_data.base, ""), true); var diskmap_data_file = null; Object.keys(service_vaults).forEach(function (g) { if (diskmap_data_file != null) return; diskmap_data_file = service_vaults[g] + "/" + service_name + "/" + diskmap_group_data.files[k].location; + console.log(diskmap_data_file) if (!fs.existsSync(diskmap_data_file)) diskmap_data_file = null; }); - var diskmap_file_stat = fs.lstatSync(diskmap_data_file); - var diskmap_file_data = new Buffer.from(fs.readFileSync(diskmap_data_file, { - encoding: null, - flags: 'r' - })); - diskmap_group_data.files[k].base = diskmap_group_data.base; - diskmap_group_data.files[k].last_modified = (new Date(new Date(diskmap_file_stat.mtime).toUTCString()) / 1000); - diskmap_group_data.files[k].content_length = diskmap_file_stat.size; - diskmap_group_data.files[k].action = (diskmap_group_data.files[k].action) ? diskmap_group_data.files[k].action.toUpperCase() : "GET"; + if (diskmap_data_file) { + var diskmap_file_stat = fs.lstatSync(diskmap_data_file); + var diskmap_file_data = new Buffer.from(fs.readFileSync(diskmap_data_file, { + encoding: null, + flags: 'r' + })); + diskmap_group_data.files[k].base = diskmap_group_data.base; + diskmap_group_data.files[k].last_modified = (new Date(new Date(diskmap_file_stat.mtime).toUTCString()) / 1000); + diskmap_group_data.files[k].content_length = diskmap_file_stat.size; + diskmap_group_data.files[k].action = (diskmap_group_data.files[k].action) ? diskmap_group_data.files[k].action.toUpperCase() : "GET"; - // we need the checksum of the uncompressed data - if (wtvshared.getFileExt(diskmap_data_file).toLowerCase() == "gz") { - var gunzipped = zlib.gunzipSync(diskmap_file_data); - diskmap_group_data.files[k].checksum = CryptoJS.MD5(CryptoJS.lib.WordArray.create(gunzipped)).toString(CryptoJS.enc.Hex).toLowerCase(); - var gzip_fn_end = diskmap_file_data.indexOf("\0", 10); - if (!diskmap_group_data.files[k].dont_extract_filename) { - diskmap_group_data.files[k].original_filename = diskmap_file_data.toString('utf8', 10, gzip_fn_end); + // we need the checksum of the uncompressed data + if (wtvshared.getFileExt(diskmap_data_file).toLowerCase() == "gz") { + var gunzipped = zlib.gunzipSync(diskmap_file_data); + diskmap_group_data.files[k].checksum = CryptoJS.MD5(CryptoJS.lib.WordArray.create(gunzipped)).toString(CryptoJS.enc.Hex).toLowerCase(); + var gzip_fn_end = diskmap_file_data.indexOf("\0", 10); + if (!diskmap_group_data.files[k].dont_extract_filename) { + diskmap_group_data.files[k].original_filename = diskmap_file_data.toString('utf8', 10, gzip_fn_end); + } + diskmap_group_data.files[k].uncompressed_size = gunzipped.byteLength; + gunzipped = null; + } else { + diskmap_group_data.files[k].checksum = CryptoJS.MD5(CryptoJS.lib.WordArray.create(diskmap_file_data)).toString(CryptoJS.enc.Hex).toLowerCase(); } - diskmap_group_data.files[k].uncompressed_size = gunzipped.byteLength; - gunzipped = null; - } else { - diskmap_group_data.files[k].checksum = CryptoJS.MD5(CryptoJS.lib.WordArray.create(diskmap_file_data)).toString(CryptoJS.enc.Hex).toLowerCase(); + + if (parseInt(diskmap_group_data.files[k].last_modified) > newest_file_epoch) newest_file_epoch = parseInt(diskmap_group_data.files[k].last_modified); + + diskmap_group_data.files[k].invalid = true; + wtv_download_list.push(diskmap_group_data.files[k]); } - - if (parseInt(diskmap_group_data.files[k].last_modified) > newest_file_epoch) newest_file_epoch = parseInt(diskmap_group_data.files[k].last_modified); - - diskmap_group_data.files[k].invalid = true; - wtv_download_list.push(diskmap_group_data.files[k]); }); // check to see if client says they have this version diskmap_group_data.version = newest_file_epoch; diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/choose-user.js b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/choose-user.js index 4cd4a75f..b2516bfd 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/choose-user.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/choose-user.js @@ -46,8 +46,6 @@ novtilebg nohtilebg bgcolor=191919 text="AA9B4A" link=189cd6 vlink=189cd6 hspace=0 fontsize="large"> - -

diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/DiplomaMail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/DiplomaMail.js index b88a4142..bec8785b 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/DiplomaMail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/DiplomaMail.js @@ -21,7 +21,7 @@ bgcolor=00292f
- +
@@ -278,7 +278,7 @@ ${wtvshared.htmlEntitize(message.body, true)}

`; if (message.signature) { - data += ssid_sessions[socket.ssid].mailstore.sanitizeSignature(message.signature); + data += wtvshared.sanitizeSignature(message.signature); } data += `

`; diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js index 377f86cb..e49d48b0 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js @@ -61,7 +61,7 @@ Content-Type: audio/wav`; } else { var username = ssid_sessions[socket.ssid].getSessionData("subscriber_username"); - var userdisplayname = html_entities.encode(ssid_sessions[socket.ssid].getSessionData("subscriber_name")); + var userdisplayname = wtvshared.htmlEntitize(ssid_sessions[socket.ssid].getSessionData("subscriber_name")); var address = username + "@" + minisrv_config.config.service_name var notImplementedAlert = new clientShowAlert({ 'image': minisrv_config.config.service_logo, @@ -413,7 +413,7 @@ vlink=#62B362 vspace=0 hspace=0>`; if (ssid_sessions[socket.ssid].getSessionData("subscriber_signature") && ssid_sessions[socket.ssid].getSessionData("subscriber_signature") != "" && !no_signature) { - data += ssid_sessions[socket.ssid].mailstore.sanitizeSignature(ssid_sessions[socket.ssid].getSessionData("subscriber_signature")); + data += wtvshared.sanitizeSignature(ssid_sessions[socket.ssid].getSessionData("subscriber_signature")); } data += `


diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js index 3b68f1dc..ef5e574b 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js @@ -281,6 +281,7 @@ ${username}@${minisrv_config.config.service_name} `; Object.keys(message_list).forEach(function (k) { var message = message_list[k]; + if (typeof message.subject == "object" && message.subject) message.subject = wtvshared.decodeBufferText(message.subject); var message_font_open = ""; var message_font_close = ""; if (message.unread) { diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js index 8ad05e21..82419932 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js @@ -40,6 +40,7 @@ Location: wtv-mail:/listmail`; headers = `200 OK Content-type: text/html`; + if (typeof message.subject == "object" && message.subject) message.subject = wtvshared.decodeBufferText(message.subject); data = ` Subject:
`; - - if (typeof message.subject == "object") message.subject = new Buffer.from(message.subject).toString('latin1'); + data += ` ${(message.subject) ? wtvshared.htmlEntitize(message.subject) : '(No subject)'}
diff --git a/zefie_wtvp_minisrv/WTVMail.js b/zefie_wtvp_minisrv/WTVMail.js index ceef3215..f232c12a 100644 --- a/zefie_wtvp_minisrv/WTVMail.js +++ b/zefie_wtvp_minisrv/WTVMail.js @@ -3,7 +3,6 @@ class WTVMail { fs = require('fs'); path = require('path'); uuid = require('uuid'); - ssid = null; unread_mail = 0; inbox_store = null; @@ -124,14 +123,6 @@ class WTVMail { return this.uuid.v1(); } - sanitizeSignature(string) { - // placeholder ~ not yet implemented - // todo: strip and everything inbetween - // todo: add missing user open tags (eg if user did not close it) - // todo: figure out bgcolor and text color voodoo - return string; - } - createMessage(mailboxid, from_addr, to_addr, msgbody, subject = null, from_name = null, to_name = null, signature = null, date = null, known_sender = false, attachments = []) { if (this.createMailbox(mailboxid)) { if (!date) date = Math.floor(Date.now() / 1000); diff --git a/zefie_wtvp_minisrv/WTVShared.js b/zefie_wtvp_minisrv/WTVShared.js index 4e0c8eba..517aa1e6 100644 --- a/zefie_wtvp_minisrv/WTVShared.js +++ b/zefie_wtvp_minisrv/WTVShared.js @@ -8,6 +8,9 @@ class WTVShared { path = require('path'); fs = require('fs'); html_entities = require('html-entities'); // used externally by service scripts + sanitizeHtml = require('sanitize-html'); + iconv = require('iconv-lite'); + minisrv_config = []; constructor(minisrv_config) { @@ -26,10 +29,21 @@ class WTVShared { htmlEntitize(string, process_newline = false) { string = this.html_entities.encode(string).replace(/'/g, "'"); + if (process_newline) string = string.replace(/\n/gi, "
").replace(/\r/gi, ""); return string; } + sanitizeSignature(string) { + const clean = this.sanitizeHtml(string, { + allowedTags: ['a', 'audioscope', 'b', 'bgsound', 'big', 'blackface', 'blockquote', 'bq', 'br', 'caption', 'center', 'cite', 'c', 'dd', 'dfn', 'div', 'dl', 'dt', 'fn', 'font', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'html', 'i', 'img', 'label', 'li', 'link', 'listing', 'em', 'marquee', 'nobr', 'note', 'ol', 'p', 'plaintext', 'pre', 's', 'samp', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 'tbody', 'table', 'td', 'th', 'tr', 'tt', 'u', 'ul'], allowedAttributes: false + }) + // todo: add missing user open tags (eg if user did not close it) (might be done by sanitize-html?) + // todo: figure out bgcolor and text color voodoo + return clean; + } + + isASCII(str) { for (var i = 0, strLen = str.length; i < strLen; ++i) { if (str.charCodeAt(i) > 127) return false; @@ -41,11 +55,28 @@ class WTVShared { return /<[a-z][\s\S]*>/i.test(str); } + utf8Decode(utf8String) { + if (typeof utf8String != 'string') throw new TypeError('parameter ‘utf8String’ is not a string'); + // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char! + const unicodeString = utf8String.replace( + /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars + function (c) { // (note parentheses for precedence) + var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f); + return String.fromCharCode(cc); + } + ).replace( + /[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars + function (c) { // (note parentheses for precedence) + var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f; + return String.fromCharCode(cc); + } + ); + return unicodeString; + } + decodeBufferText(buf) { var out = ""; - for (var i = 0; i < buf.data.length; i++) { - out += String.fromCharCode(buf.data[i]); - } + out = this.utf8Decode(this.iconv.decode(Buffer.from(buf),'ISO-8859-1')); return out; } @@ -334,16 +365,17 @@ class WTVShared { * @param {string} base Base path * @param {string} target Sub path */ - makeSafePath(base, target = null) { + makeSafePath(base, target = null, force_forward_slash = false) { if (target) { target.replace(/[\|\&\;\$\%\@\"\<\>\+\,\\]/g, ""); var targetPath = this.path.posix.normalize(target) - return this.fixPathSlashes(base + this.path.sep + targetPath); + var output = this.fixPathSlashes(base + this.path.sep + targetPath); } else { base.replace(/[\|\&\;\$\%\@\"\<\>\+\,\\]/g, ""); var targetPath = this.path.posix.normalize(base) - return this.fixPathSlashes(base); + var output = this.fixPathSlashes(targetPath); } + return (force_forward_slash) ? output.replace(this.path.sep, '/') : output; } makeSafeUsername(username) { diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 53588faf..3360920f 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -117,6 +117,7 @@ async function processPath(socket, service_vault_file_path, request_headers = ne var service_path_romcache = service_path_presplit.join(path.sep); var service_vault_file_path_romcache = wtvshared.returnAbsolutePath(wtvshared.makeSafePath(service_path_romcache)); if (fs.existsSync(service_vault_file_path_romcache)) { + service_path = service_path.replace(wtvshared.fixPathSlashes(minisrv_config.config.SharedROMCache), 'ROMCache'); service_vault_file_path = service_vault_file_path_romcache; usingSharedROMCache = true; @@ -449,7 +450,7 @@ Location: " + minisrv_config.config.unauthorized_url`; var service_name = shortURL.split(':/')[0]; var urlToPath = wtvshared.fixPathSlashes(service_name + path.sep + shortURL.split(':/')[1]); var shared_romcache = null; - if (shortURL.indexOf("/ROMCache/") != -1 && minisrv_config.config.enable_shared_romcache) { + if (shortURL.indexOf(":/ROMCache/") != -1 && minisrv_config.config.enable_shared_romcache) { shared_romcache = wtvshared.fixPathSlashes(minisrv_config.config.SharedROMCache + path.sep + shortURL.split(':/')[1]); } if (minisrv_config.config.debug_flags.show_headers) console.log(" * Incoming headers on socket ID", socket.id, (await wtvshared.decodePostData(wtvshared.filterSSID(Object.assign({}, request_headers))))); diff --git a/zefie_wtvp_minisrv/config.json b/zefie_wtvp_minisrv/config.json index ce0f6c36..b62d4a3d 100644 --- a/zefie_wtvp_minisrv/config.json +++ b/zefie_wtvp_minisrv/config.json @@ -124,10 +124,6 @@ "external_proxy_host": "127.0.0.1", "external_proxy_port": 1080, "flags": "0x00000001" - }, - "wtv-guide": { - "port": 1621, - "connections": 3 } } } diff --git a/zefie_wtvp_minisrv/package-lock.json b/zefie_wtvp_minisrv/package-lock.json index 81e5b7b2..0698a394 100644 --- a/zefie_wtvp_minisrv/package-lock.json +++ b/zefie_wtvp_minisrv/package-lock.json @@ -1,20 +1,22 @@ { "name": "zefie_wtvp_minisrv", - "version": "0.9.25", + "version": "0.9.26", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "zefie_wtvp_minisrv", - "version": "0.9.25", + "version": "0.9.26", "license": "GPL3", "dependencies": { "crypto-js": "^4.1.1", "easy-crc": "0.0.2", "endianness": "^8.0.2", "html-entities": "^2.3.2", + "iconv-lite": "^0.6.3", "mime-types": "^2.1.33", "proxy-agent": "^5.0.0", + "sanitize-html": "^2.7.0", "socks-proxy-agent": "^6.1.1", "strftime": "^0.10.0", "uuid": "^8.3.2" @@ -101,6 +103,14 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/degenerator": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", @@ -123,6 +133,57 @@ "node": ">= 0.6" } }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/easy-crc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/easy-crc/-/easy-crc-0.0.2.tgz", @@ -136,6 +197,25 @@ "node": ">=8" } }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", @@ -249,6 +329,24 @@ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, "node_modules/http-errors": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", @@ -289,6 +387,17 @@ "node": ">= 6" } }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -299,6 +408,14 @@ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -356,6 +473,17 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/nanoid": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", @@ -425,6 +553,33 @@ "node": ">= 8" } }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "dependencies": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -510,6 +665,19 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sanitize-html": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.0.tgz", + "integrity": "sha512-jfQelabOn5voO7FAfnQF7v+jsA6z9zC/O4ec0z3E35XPEtHYJT/OdUziVWlKW4irCr2kXaQAyXTXDHWAibg1tA==", + "dependencies": { + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "htmlparser2": "^6.0.0", + "is-plain-object": "^5.0.0", + "parse-srcset": "^1.0.2", + "postcss": "^8.3.11" + } + }, "node_modules/setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -559,6 +727,14 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -716,6 +892,11 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "degenerator": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", @@ -732,6 +913,39 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, "easy-crc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/easy-crc/-/easy-crc-0.0.2.tgz", @@ -742,6 +956,16 @@ "resolved": "https://registry.npmjs.org/endianness/-/endianness-8.0.2.tgz", "integrity": "sha512-IU+77+jJ7lpw2qZ3NUuqBZFy3GuioNgXUdsL1L9tooDNTaw0TgOnwNuc+8Ns+haDaTifK97QLzmOANJtI/rGvw==" }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, "escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", @@ -821,6 +1045,17 @@ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, "http-errors": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", @@ -852,6 +1087,14 @@ "debug": "4" } }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -862,6 +1105,11 @@ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -910,6 +1158,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "nanoid": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" + }, "netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", @@ -966,6 +1219,26 @@ "netmask": "^2.0.1" } }, + "parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "requires": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -1040,6 +1313,19 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sanitize-html": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.0.tgz", + "integrity": "sha512-jfQelabOn5voO7FAfnQF7v+jsA6z9zC/O4ec0z3E35XPEtHYJT/OdUziVWlKW4irCr2kXaQAyXTXDHWAibg1tA==", + "requires": { + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "htmlparser2": "^6.0.0", + "is-plain-object": "^5.0.0", + "parse-srcset": "^1.0.2", + "postcss": "^8.3.11" + } + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -1075,6 +1361,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "optional": true }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", diff --git a/zefie_wtvp_minisrv/package.json b/zefie_wtvp_minisrv/package.json index 1e937f43..a8fb0030 100644 --- a/zefie_wtvp_minisrv/package.json +++ b/zefie_wtvp_minisrv/package.json @@ -1,6 +1,6 @@ { "name": "zefie_wtvp_minisrv", - "version": "0.9.25", + "version": "0.9.26", "description": "WebTV Service (WTVP) Emulation Server", "main": "app.js", "homepage": "https://github.com/zefie/zefie_wtvp_minisrv", @@ -31,8 +31,10 @@ "easy-crc": "0.0.2", "endianness": "^8.0.2", "html-entities": "^2.3.2", + "iconv-lite": "^0.6.3", "mime-types": "^2.1.33", "proxy-agent": "^5.0.0", + "sanitize-html": "^2.7.0", "socks-proxy-agent": "^6.1.1", "strftime": "^0.10.0", "uuid": "^8.3.2" diff --git a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj index cece7dc9..e6c78481 100644 --- a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj +++ b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj @@ -439,7 +439,6 @@ -