From 9ae0dc051e806e071a4f77e8d8d16a115ccab2e8 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Wed, 13 Dec 2023 23:16:59 -0500 Subject: [PATCH 01/29] got python stig parsing working, and libsql db working Signed-off-by: Aaron Lippold --- U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip | Bin 0 -> 1506949 bytes ...buntu_20-04_LTS_STIG_V1R6_Manual-xccdf.xml | 6782 +++++++++-- database/guidancedb.dbml | 16 + index2.html | 10046 ++++++++++++++++ local.db | Bin 0 -> 8192 bytes requirements.txt | 6 +- tailwind.config.js | 0 test.py | 26 + test2.py | 32 + tmp/extract.sh | 11 +- 10 files changed, 16233 insertions(+), 686 deletions(-) create mode 100644 U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip create mode 100644 database/guidancedb.dbml create mode 100644 index2.html create mode 100644 local.db create mode 100644 tailwind.config.js create mode 100644 test.py create mode 100644 test2.py diff --git a/U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip b/U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip new file mode 100644 index 0000000000000000000000000000000000000000..9730ad737b2f0b6fd663664977ff5f42c11bdfc1 GIT binary patch literal 1506949 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

9`3?j_$B&^=~}SKQq3vvWIL=|JM4rVX09KO zX12g-1zdnkiZH*Nuf?2XJ7mV(Rf{x7pd-<*m2-0N$?C zh+wTaS|o$T@gg~1oGH!~xnj?9I>U+w4wcTat$Ks}mA&gG^IachDuxI3VSQ8|*KJce z)>9*Na9{nQ(y^;52W=;r5*L`lUP1q53X74R2)Gs%wxx2A6m9QAuP32b0A2aq?9)QEp^&e+wLtkw4LBsHyye6E@?r3m^L#`%#9>bck&k$NDyeB$v zM=CF6cWHQ?hBdj2MZ+UG;$11Q?uUbzvD42-^HQ{l!aM4q-;f*~I$bhG8sFOXvRqsGJHz}GR2wR2!`mG{j`C&lzR{BZ zP!uIemZR;Np6qr_%WNt9))WK&UJ)b!w18C?^Edf>^Lz=GPk*G+uyAAW1~}EF^Ks)9NDFX;FZ^3>HX4q`bfPN15DF`l)kgnD?5Fq%hUBac9_FBxV_|HIqHX3s} z`=>0)Cg{y2q^FK>OOalzMY@XKtVL2=b1YKwfk+X!p{8c7v@|QW=vW2!Z>To5Jm6SC zO}Q}^p=5Gp(qyPN%q*+@b$W+G5Bp*k#qm}x%HMGo??WA+r}513;P`(-f@i~D4; zDW*7O(G!akgn3MGnOru)$k7l-0pe*wBxiuq<4}WB@%w%igi8U%S+7=_A3z$IBe)%v zQjxh|@hl+$cT+R7y-m(Q1FO9P0`o-yQfGTjnK&u7b;_q(JU$Pcq-*h&!lJ5TpE5lt+q;K{2ybWV_e0fDppnG zh{of&Q2;X8LLW*v7fR(qBk5ylGEN`qg42^koImMsAq6XC?inK_2t}FGxKWNn9M46$ zEN5_bZe2HA2E#L`N4t$~((Q$lpuGjJx5&Gqt`QgKb;&N`TGzF0tLZ!UY?$Y7mNxK{ z>3de2a&rFB14ar5m)V7G>}&9LqacP>lN(wsHh(wbo$!Ez>c-8D@Syl)kMCo?w5K=^ z-nFy`Y8FZ*tyH4Nb*E$k&HDTw)zuo@#C3)5-Mgz@Ygz9@FH7=DtH(-!YGg|y*onbP zCuRr80w51w{;c^hFs}(Xts$1*2x&_Lwp;tHyFLzC<0K z81u~?+-q&LzOnvd?ZK}NzxUPO{(S!WMXMpv{Jkd^%}6Ag3vG+0C%84%HtURa&RT~L z<2Y`_T`krr>yOqIYd4;ZC*TY&SkKR&*|NaW=gpis57aOnGRjWSw;zR(iD%ntXqX|+ zsGc607Mo!%@wQbhs-7R38!MQrD^`drysN9^+T{9VXOd_cRn90(hHx3yXmbbJ+!E!k zqe9L}lEOyX5DK^PdHBfl3SkBKYpSL(Boa|%nd4yObQ=bWNPz$!iQWj~aM&4d4Exf) zr9M*Y!?nJ=Z@sV6$0DENGknC?lGGa&r{SFABt1?nJHt-K*^(HQK?iXEgmMc~3@j*V zLyb01^f1zjh8xQ>Xj3DlVhDPZ-C}LFN1l{bR0#GNQlP|N$yXHJlEf+z9vaY<<3+^t ztft6d%)z3N)A@73y{l}D9D&*yM;B~Hmv?I~dG~5>XeEvNvHT;2 zk=ZyC3^;r$Mvjo_<13JW1;Mdsj2Jal(Ws;uq$1rZye|AsI4!V(AhU#FaXc6xZXA~( zp3Mf=q8`+X4xm1mijYwvnd9z!JehM(HI-Yb;Y_;FF$CQlUa%ZW+35vVjc{%pZS#fT zv4E^1hc8s(ZwwTD{1`_`a1Rv6h-$RNf6-S|M_N5RVTh!z$r1+-y?msVC(F$qtmF0Z zbQn~XY{o_0Z> zlh5vcc@3l9L&g1r)?BL{uK*02p&xGJeg^eFjb~8|PoQxi?siem$!6Gm1?>*JX>$GO zsClaHgTSqE+@`<_ksXmEb?j<$b#hhBsx;eT&P=w}tqidBW<#<*-5g-$y0QN8f$<5p zvJxc>mnq^ukZ;$T(`+qK3mwT2j?vnj0R=*3MnG z>BZA)PFk0*oj!5fowg43zkllBb?E2Qf!Bw@8#(N=oe^kG;ZWjO_K~4?lPC#GwRIY^Ps19t(!rYy7dY&Dx%yb0v&hqc%;HQ`POM^wXyOxtn z{MCUX$Jd%A{#swLR(#NxX!K62<%IG7^w{ix-C)b(E^l}!Ig=i`e-V5EH=g^`FJC#F zi`K_8&$O=iy*p6jpFG9;orv~__NAMW?z(Z&N#}R&`xbxRykq@~g-4^=*~L|bWEYZA5cQYy$y5HP{Y*F6?)kOn?Fx2@v_@Lb6OSDg zL@5UtD$2(yR!iiWyc@|5pDBop;#MSZ2ozf!0Q3hW06zfQ&x<`A&U4E+hU47SOX9uT z$LJU)POSzbP#QXhzzdCPsx17*;n9{4fvI5k2S!#)f^VQGI|QFCbzuZdTK2Ig;ss>b zSQP3$z~r+r)NDbsNoz~z0qfqucddW@{LJC%*f07|{@~dzva7e{(hCRwiqjwN_;gP1 zYx~}`hR<|=29Xtw0maIIMi5=Kv1q!Z;62J4${lnEv)!m0cgx)h+peq)tPPTO)Q;O_ zlGeAPtqQ4tlJ1s0VGrZ+1QB|GQ7YhfbUL63iK090@koJJgE$x@73o)L8z2gWY9Bd5 z7_tm{`qz1}5;o>Y_@;yXe3Bm`p*M_i@UUcN_1QieSFN+WFsCtr1Mi#%QQ1`@|@RP{?w9W+*mlL z6<;Teb$QmTp2?f7FRyHP3mcQ#*8Z@j7nC&3n#nE%w^u>x)NS<4iR?6%`DsE1sE1kEvzgCcy~B{qdxLrkcIr{$eaUezkmPDu7t zeBlZuhp|SYe!rr~0IurbIG5{`_OZrjnm0HqyC9XB1UIFnz)neqY(Dq-l;L=)&?raLI*9)L)5Nin6o2iyR;VUU^CRwG@OF1rlHYN zPzVkpUaNG5Ni7qQED?uqSR4BaSRxO)}1;YYSFiPZd$@v04KDm%mHe&n9y-rR7Lz)e6tB!Pq& zAYUXA!^mwG1S|+jfL$#CyN#$D`S5erR#B(aAG>r`s})BiB0 zFJ=C8E%TSWOoIBci89}L|H)VTJ=FGJeC$!;piQ3sBeRY*JzWjT6QiBvL?$(CnsH8Z zNAL%j##fjKP#!T(#lkRmp*b=LVRk?VN5g3bv`x)cxAaiebm}|uj1XCu83BO~Mru;S zrSaz%lNxYi`18pmcqflLJ9bJzd%=q}J^7HelUHUo_Rkn`n6pq{li-IOh*cdTOMMCs zG5=!V3zt7l|MC*e&>ksGiIZSy-D{$rIQSatlsD>2GZsY*6d*C+_gmMD zLe6O_rkM1$(o#{MmwS!N!6n#(8Jwo3l{{Afp@M=H*H*1`d0mRD!^OIORg11Keh0kD4z!Q%QE_kRI52#G*2W}@WG(TP_^q*u*y@qykxr(I{YI>}E5Rh#S7NVp z?Pd0{-;N#Z`X2LL*3u{R>1j`~_o~0x=kZa#H07T1Uad+~1&ZF)T-yX-dGs=7#SU0tMen6pQ0 zb!@#u{U{8|!g_OC)fJ{2xzIZ11tr|<^>EECe6ZYASRQrZsL;7-lW0ik1s#7};LJzc zgr16ByZX?c3PjQUeY}6d=PP-sp0J|Q(LB*&ov^H~bktaM6TDvhj=|E>vVOh%ha7_- z@O;jNO&k9>yi#Z3x`r<^RfwbOl#(s`cJAD~d5djZN8)FR3yHrb9wame&lj~2JUD8asJkQU}@Nw)_JrFtjOCG~K-PIXrG_2et$o-`}X!fj(M zk@*yPgRA3)YPaE#bQ2LhX(BsTV50Qd{9G?3&CSoDXG<8gyL+kL6_Y)?()d$wVLd(l zNVliWoYoqClWY?<35GPjHtRhZNXSU%{ePD;)yT=L~gnm+T1;^w`+V%z!i zIi=|!IKrqhOYR+`z=lO_HR+g9Sz0bJbCV55OGQT(j__=4xwh)%e!I zXe<))`zLB^+lPLbuj4aw$98WB1iiMm6s2SDPpy*J{Wb5v9xuJ)K&VyD%QS56r0sS` zV>@%cqn%!O%Vd80`1jv7k$%{Yeu6JBNhG19V$!l!*2S)7o7opx&LFZn{&$RkIE0xx zFp4ZATmsXH*))Ae5mAcbQ&dgAZdga_($vh92rZntGi?y-jj_!@&3Qt`h2B|U);t+; z3+e+HL|PaH9uPxcmo0D#&R{4+ebyR@v~iIy-`gJFaP;!aJvW%-{=WW1^41%ty;bEC zB-XQ;PG-9%0b?mOP+{-3SStJ#nVI+H?AiTggO!-+t!Ju^ZhlUq0FvA9%c0bECB`@*LiSis@PO zJtD`jq8il{&kJd$Zc48gNsLJ1viayyN~*!BA?>J^)?T4zU=Xv^of$#UF9Qw(6-LJV z65f*fTtb`#3NhM4VVI@>I%i%E@5}eN2!zKZA^s|_8voY#{^t-sq7?9^v7EsW;Rap7 z*0MBV3oRO07ORBdQ#!Ov2oj%&3;;H#p>;e-gu~~EU=S1|^#P(*A}@LXDJ;W1vPh6D zQ+nrB+GN2-BO@bjOArz;28^MwnuWu0_CP#K4^MUZ8L2f=*Q&Ykcu5am`2L~Bj$_mD?3E^8y`l@N+$T@H``T;oo;vBSsyuO;EKi>x*i2-)m;ucUVDnqW z$rq86#TcvDII&X>;gGxzuamoR_YyX0T2p2$tEX)hQoJd}_nU{!w3&clKsgj?3v5c0 zpVACjN3EbpsF@j%Tq>x90$6)a&QmEs5H*=rn!WJXV};8V_gwx+wI%B8T3XE4sTF8Z zN#UlJif@?{&LD7v!=#^l0{Nag|N86aPo1bFD5%Smnwj_v0Cf2A-wrplADfB8ReQr> zO~GM+3l5S-6APynaVbH6SG*5ODZZ3|Lr6jsMCc$6$~3`uL7c*% z8v!X=kp``{QP8?iiA{pZ8=C^9ajvuXoO5l*C9uVc;}7M$@B6&Z`#kTdDFb(-mew9> zt%7c1270mC5iBZQ2w|*AhQp=i3-{j>PSEPRKwA6*xe%o93GD4RzXqJcI}x%5*)&*5 z&(GoQZ;x|I;0AGmafde9SiR11jvB2~_-*_*)X=dB(%cBSZ;JgLO4$gRtJ_gJu9DgL zBztpmnoSqJ@ucGO7(yKLr%)TZD^POdp>=n0%^X za6W5jXlQ;sNjHin8OLq4B*rA{HZ=%0K?)->R$FtLE(Xzy zpTUPD^ZUL%2fnpFyL3EeP*Je@3JaeHDEGFI3+#A)H&5 zl=~d~vh$WwM)-$%8SQemM-ipqCAJXm_Qi!mhJllH$yb_qn`lViJ(xlNWA#rpDN5nEX}U;a&Oo!EMF3-tO8gjg5b z5BExme(Wci`%3%n%;#;~O}fQ685c}QVM~RO#H0>m*e8T~7bCQe2uUcG&}(9G_;8dV z2f75W-lfag7$Xd>gE=CBt{UQ2z~^Q37Q}+jPY6O>M-8=FYmHHq?}W-3fo6xrvJM98 z_~B&@9RmL9ZKS^=9mhDnFa^(V;0yTT)Vt)<;(_8p@*J^)PlNAmAvS)y_^6tdMfeKa z0lvu5qq^6aoC1b(-09aaAHE0XD|=?B$tG0g%~_+RI-=)Mk7Iv7>fBh=upeif0NTfP zag8znjO$ZCP_|<#xtZ?XQap`chp4122A|JX2*`-eq1WV)5Md5T<-j2UOje;pbq;FQucFR; zC5v>tPTvvCZ9-iqGAlFPq|Ib;UrTe%GLwaM{&wDE5p&kLqP`Wfn7&35{45z)lb1u- z0}&*neuN>K;g}4thu1;Sn@XaQUO^!qY;64OoD=S+U%)EJjRO_!Wp}C zh<1s5pwEfvG<0A2xnM9$#30>FR$gGd|q6619>q^UV}qc z6!vBf+H|Qt?{j`V@^pfnsRR-C7^8PfFrN<-Ow*-PzaX!w1lfTyf^eb@Om4KeM;QY5 zVthb?7{lovh+$DwpQ;`=&B>j;m0VMCooz6v`UCkE_LdMWoev#i)Z#X@I3p~ZGlsG4 z%{)I}62^(@^L6fVg)Sr?46_4}K2SiPulZ-AHU2!J&V)S>g?JII**_f*8%E2o|hOKH3u~hxahIy!Z z$@De6ji03lw1f8L823Q$$tQjjQFQYVxEg}#mSBD06$7F);o;7vIUEG}TjgPomj_-C z{qM5DC764n=AQmT&%NqhoL~%9QG{&hol*b@nzJpKU#Tq!tbn(EGH5bX_XQ*h?AH8wFIvsD}yCjUzPU0;&*Kr2?T<+#`-IPzNnmM%PqX zZlCEKJTO>qaY^<9gjoSyV?%|b22tHP4lMdg&T>7ttU`!Jt`!lyPzZ2x<~VL93djlx z-;RQC5P}uPkr3mU0lC~wlSQTYcD=L4)gQ7a%kb1Y_=PMvqyZ=%oa$ji*|L^uSQz!XMt+^2giQu( z&Cz=r>~ED#XU$4-Ir!?6^w-%;J2mUB{K5MU= zJd@Qpupz}hyiL2EM4Kv{Z!(;h!f<}TfxZYM3a7{jaw_V_D+@FLw=!EEq6Kp)HE7wCB5Xm;i% z#Il=qy{uA`>_gx@Hz*`{2yCETZk>w>9C z#{ntgEE6RV{}lcaWDFwUIv{_dN(6%P`cr8~^_mrW9llDfF?Zf$wAoCDY!nv0&x z&53$$L}9T6?s?FC31aIwa}61zkqE@k#Q)2El|V&tY|+;zGBp9#|=~xNn8_g$^TzH#|8aW z)jbP~Ip*m9|C~SCJ+GUpnpf}DyZ1hYT#nq*i6l}fO_Mt10)+FVw9S)^o~V~F^PMjx z&Rq?0nJ=G1qUc4Tg>sMgpgX za52?SBtA|zZGfy^DFtvRo1>6r6sab2Ibq$vV>+M7A$m{3BAoD&;@ZVr!l0u}5{O+? z*-??8BQX@ww)s@n-c&xRZ4BS|q-rcx#_}ny2CEvSSw`sSUO>SWcNQ&NSG8%b)NBH)-v#WN9N z{MtgQf~O)*d7*+79!JHA2#Jd%uO|^o=*39e(iTzai#j0$*%GM(rz&Nfszjm1dR#{>Jmz6j!~0=Y45G`NRzoQ@i#0Bzd|Yrw3-xlDT#h4S$4I62 zTzGuA@F*k_M5d@z(KLgK7v4&_LMJ6`MkEwXa!MSuBI@IMcxFvzgSLQE7Cxjw#ak+9ae7=CMQ@%^!>tkp!Qd2}~`cVQQsRBFXwupzmC>aNS2FA=j#l?)()B4Rr zOc?R&KDwURc1`9!f;26BDII)&U@|~y#mh0t+#8oOK zc3&>!usB9U%g}~Me03tVM(m(eC>TcSrsbj85mCN9Ig=8J3~foJQtLDtc_F3&FpNuvz7X21ej{IN`+8ShrE~af=r=Q zB40V6moaWygaeNJ{xQ^(mPxNASg+Bj)n>e}zc-BeF;-xGMD|vnDEWWMHUX(i2X#P% zKWP>uF`u^`{ILVtvOj$8RNxH95vDMVTJ5ZJa?)z~BN&W0Q_RaBKr&54(`fG+M@OYn zOW*617^wOZ7t;YH*KkHiXvQm0Ze45#K?_!C<9 z3^tbJiH$IfO}6hhNH0z-lWbj?Gei-hO6rJosf&B-cD;J1WvGL6aUBN^nlMol z*j(Rfz~J$DcAiaIMJ4wbm1*zc6&c;V=SYJ*Bs8IO-+npc6v1KfiGBKy%@z1GZPBtz z*U@8y-oD`xN!_xtLChjdFBPWlVi+y!PBD|&Ik)F|x~ zHb397l#=cei__VR3*%MAzJ1LaPpxn5lT7$yw7Hv%_+xs5_W&`k z?!G-vKp{+rS@0puhefayR=_G)3+rJMY=s?A47*`39E78A0!{-97oZZVpc-z#9jJka zbdCNMK^8GV8iFqpf;YiIf&P9z-ku(=E@8Un%>tVGHt}+EkB`&0k7+~DCb46u4zXt^Q)&mm4=MUB2S;RcqFMwf^f(`^rj7b{2iN?b|Jz5ANB!YxnoX+qZqQ z_0aKSCx1BeY`i*PVSF4;7 zI!~Umc*)@-&LN@ki30~s%AY&$lcoC)96EacfjT%WuH%5g`tk`AKbpU6`M!h4%kMqZ z1nKmh`t}>2H+#;fE6Vm9JMqU|d0_MQ9s2ao8TY}5D?cyYd-BxpH46V`F|jGBV{>P| z|JkaNT|b<@bz9;W(57v#-lNCNn6-M%&fRCu-n=9AY1+D7a*wQR(|cd6E&BdP_P6VH z-oCA(y7wHFX`H_9tM7`>o&WWQy=Rli=q_DH8Ww*1<@#;gf4cC?HGzj$i0Z+Bd(__>J}a`bXZ!()M*~N}Gz^a!*eocR%g&ouh|LWf7PCv1Y{KT|&HLE{ z2exAK;>E-4kt3DZynOjS``|$pM%9cz|6$M`VUHelbPNf3z&?B!9IR56vnNg{l|eyw z*_xWbK$+|md-^oP`1{{x@7(e86N}HXEbHLl<8z(8al_kNBs$MtxIojMp4ZswY7Y;J zs$eTC0bE_LvQz#wN_49x7NXT*NCkv#Cv#CX28!KmkJ>J4d1*sGDX zFa=tMy>LhLn$G==`x#=J8vLZ`4aV@qYD~@H*a%x-8x%nal)-*D49DRl zoPl%jZ|bW&tf?!D-+SN7LJ-M9Lc*Se1R<0_!Y)ftYpWHI3e{EuO09N8#ic@35Zpxt zDcAztP+M$WQI@cXON*7dH7bi$t7t`BLG3W}jc6Xd4-hkyeqZPN=8u_|oO^!v-g8dQ zJLkNdcU!<^a1Go9x4}Ko37(Kgb-h9Uei|RIS3KO6iU41&x7t%R%FR_C5)&0Ual-gl z$3%pMPL7`R#_O+*8> zTfryAd0W5!=G(pd$_`dkO6*E^?cTHhz@hRgu`TD+$sfM|?&y)aT7%_}jVBt8AFDrH zQ+?KWzNz`r&sTpDiq8FX;bKec6?%ar@Vs*R3Bvdidb(o%UNd+5$sD z-;6^<&K4%?tDPLnGp9#d2gFRC61(ifO`CUY|GM1)!c>TH+hE-f{n~}$_L7|4<{_Y#h<8krtmRnl~;nPaFzyD*JJ$mFvGmYk99kc`w z@V=MVU3%rtomXh);n7aBTesY4rc~abSzDU|TdLs8eSgDE7q?xiuj37l-R5(=-GA5_ zY>t#!qx>tl`%gOQ|5hXXFD(71z4ZSJ`glX0T&OiCp_HfflMf-Sa5$0+6~nCCVk2%t zh&7BH1Fr`RUBe{B#PWM-TY#~A2n}cNugWo6Uv!QhceBQkp3(osT~qdQ_V2yy>EOom zqKrWqEDuw$5Zy!5Gt3N`&xWosE>fG)sZAOEV>(=#fo%+qFR!N=!%trJzo&m9jLi-w zZoX{RE&&Aj0FYydgZKpNqO$}{f&=XsKteKVU|@xG?sBn871hq|0O8^I1x(75<`V~> zPo@cAT>wK_z33R$mDd7*#0G*^CK+{TK9EAGd2SRRJ8!2gbD;Ws17#bt;TX7A?n~BxE_dAQQU4xWOq9dhlgM*QiwItNpzC2 zxo0UBb?LpyJj2MwRy+@5tNq%@64s!EN`(5%B*TP$Ga->&69|`dxBGZoAn3x_+Y`sg zHhG#nX>YKddd56#$KwzJM^HlF{SBBK#u>FKgto%0HwBx58S{FU;yW?-#-raG1RE=$ zB?Q==elvs4M4CcqU;aTqjgWbUcBN+;YQ}K{>~>*=gzoYCQOOk6otIKzpuY zgc2$2l-5@K7+?>@G0=vMk%);A&vIl8ln{6jSO{Z)EdviKd_mQ~wF>C7f z1Ae~#{nhl&1z_BVJ4$~0g@9I*5Yb|vX}m45zUk+HZ^TZY-%de{M-{& zrp8W5qo?@SJ+L49$u$`9fHQcn7VvwIS4iA^`8C97ods!x5*?mN=o!b-h;!OS0FJ1p z_qfghuZyxq8j%An;gH2PLIQOG81FJIfzAQlYfW7$nn1YOWY9tEA<$|79YI!KbeVFQ zl8&wixyE!fr70C6Lp4OHO)1mMl3EIjT9V4hHP15Wur4vsVKppi#$hd+QP|Q_IHN29 zFkn${Hgg-f7RS^Xs6YT13z~F+g@Qs+kz*_K3g|~s0+LILd}kB>RCY^By(~g znO8tPqgKn*YMIpA8*%!9nqr4V7Z*o`YYJv2<&$emsdKwZvF>iDF5LySrTQGICpU*O z<>f&lCl@kvsLDQl>3|)~sRY-&JlDiovvASD8l0=jzFgS@H=qSabs{?abV5k4Q7Wwi zSH{&zTzt879&AO?qC^o&5oL;yhz+#rG#`4;2dAT26|FL=kP81N#Op?~)hoQTD@J*R zDMp0}oas7s#d6LKDT+)5Qb=eeNrPaa0xAsT48cMH$`n9>0so7{SB;SPUb;GvlTQ62 zZl|8xq2eyW)Q&%0+%B9LoDE9VpBBBkLxo>0USwuyQV6prP-=#uhz0>}I036!TJ*cTG51(^ya+5&F6LN1tUJyu>R1--8QUct;!~$vvg1exyIKEix3jyDcB3l;J zb=B%9?X03!cbuK3B6Jb8Znx^pI%8e7J8hlnKGdbGv(wD(&d^$`x!K>jP)GmRN%A{4 z_nv$1_kH)A@Ao@ar;SOs*%(yyg%oxv_HtYRX=*y>bMt!Ny&Xmfmr8akIo^vA0PR*L(%Pc(-ag=k8YRyz%@1X?1K7CV~9A zRhk>Y=i!EUG{cJ;u}^C-u$aXL*1%?EWHB-05GQj8 znGIqVp?^MiWnVqc_6rXytxgI@g$w!}*is~Xwe+pkb6ehy3U__jQXWbb`f*fI9u`Ku zIA_K2#g5(I?&%)y>KgCa`z^CTI4>)E4VweP!=|bwjp3^&gumuvQ$>+dIFD=8r6t0@ zeArrd=JoLFeRbGYB#g~2kypO?nB3k2gFJo{=FPZJDNU9B0~ujmuDgm%R4dX`Z77Rs z9YU$83_~e~sn!8n4jHN)Ns*jtA7GFa&V2wEtvOerKMVcU&{{7+C}_DvwMkfr?f8=x zPa+Z577=howH$B*e_1CUr{jLZ2wy>^PsKghG@moK8`iq|L_wIYr^QrJD{n^%s+pY_7 ztiQhP;Z|U~Uie*gIwekv@mO!Tr3nsEaPiO`W1_x1OFeAg_AcDx@77etP7X_J=A_2d+&l3kL@%XfG zAZ7q!EcqUv4^F{p_!5_aX~ybhG#1k(@o|s{G+{Az>0c5^^81{3i+(A*bEJ3g6Cw`w z-HX)YpCXT((?0E%w`!JTWX*4$c88lfit-j6jxAH<=HB_dsj0J}s<`&o1+|^PybvL&9GLr1 z=a8+};ZN_?4O4e{ziF!9ro_r_?CV8TFTyFdnAd`NOVo1GLR&1(>FKdD7FV-P?0J@E zS%o^V-FX>bL({3Q!IKKC7{=EI)Z6`+u^!(S3)jSkL}HB4ZfuNCHb5I(322Xc#^d8; z8<15QuVA~ezu^d8JC=2)PDNNPlC;P#uJ-2 zo(k7#GqaZ;KDD8=E8pRlG%PMXmF>v(-CU=!?Pxu{slCq^u9(_({P_C%rBkHxflZuRLLnygGVVZn+`;R3l**n%>T~u!m=;FM zQKUZH*}&XYB7fbG~ z^~}%o)NC;wU(vToGIA_-vpI5q=%7EmrO)wk+vg_$LvHdOeNS48tf*$lYBr>#n6OuWWXQnvC{m zSGRW8Y+t_Wz;r;nAlV_!m;M{jt{GA*833#qrZx^>ti2+FRuZdc%vVM1;C(w7Kk9)7s8=woNGsCt}Z; zNFIOp^t~Os=I>m#{E*5*eRk>Dhg-X&+m{hC$t3b6A4tzi=Yp@l0@Fc;rcpTU6Mc>BFcuhc6a#<%&j3OBNcc{wEy{kOvHZVb2^ zTit;M7&$1+rvD&403**8N1jK`gpm(lpr~0j_5ITQ4U^B{%{1jr*JzjpUX5A}5hE@w zEsa^gdAZ0u;_x1KAmDLB$h?FiP_1Tb0^Ue8vLwl*3D?3Mh9xrnz0 z-2uESCQ)9%j^X6jd@2FvkQ1Enf0R!pxE%;PaI{*4N`SfpnLOJP#aI)?}J`4lI1rcp;RR>2Ca<24Me zS*%z~m#TVEm-^4*_A&k}F^0+#P+H;E#>_#)Gc@sw+uj)sdOh*K3A1Bl^d4JUnm+8# z$xBHq*$WSv^2RHrg;Q*7rfawGCEUe(UxNVBfH9k>M1;_6OH+mh9UZJfl%j4ZOl;EHlCG^PF%W4Q5=RuZ zl`>VRlUi*E0h<)sA+$}3*azw#h?t%GoH#*RKHhuxy?gKPo^#K+=l639>#DxnJk)GJ z0V+y1p@NHa1~YiKX4}|VqXdoz&IV}U8r}*%x072RS$robe4TZ5T54<-uIXdyLv^$X zwNjr}h(eAK3BBB2&=eTb-C*-*rQQb53FFI2feFS6vIU8tEUl6vVW~Y?AxRl%T13Gm ziUK>WPKD)Tj(P0SWg-*@aGSiec;E4D3J3&JRR#?!t{uR1|u2M*V7}xnwpL9Ff~$R1E0%|d0D?W<{k6ke!M1C^(qr4l4t_% z;b!s@=q*G{No0kfKtFf>D=S)+(`EIa@)4pwywQf8|kG}=l<})@4gsm@l{l%!_D1C$J5V6q&;~0 zaf*9)>3cVRow`2o#c$7j9jR^qRptl1N5*G|yMW&fKD|$m!A|n13K!_R7_?H0)f`w) z%dDQj8Ru!2*-}yOJqnLAL z4^2*8p2nh3u$51+ubS9W~=M-xzY(Kwt!?Q{|{1J272 zO@?dK16hYi-xM`+8S0rO)M`0NOvc;?!af+-hZ#gqnhze;im#LH^bNqRpF$0gjx$r3a7i0}2!{a1FgqgfY{)r3 z2l9Z)l1I86agy!Xdiq9I!Cx{fR%bJz9aDw|w!kTBGU^7v^tUmnBm8g*8%*%(D#Eu3 zXZ!?Kl0z}CMOiVWE|I;@_Ic@k4w2)W0z<{GW^dqF4!aj;Z!l}7&}oB2AEQE4dv&(p z^8$jB1^AD!7&{Ik13X#bUWEPxp4Isz%+3f*3g=XmBqFA%$O}Kbc{rP$naySo-=vSn zZjQkdCbKX7c?@hE#TUtbI)QA+jarf=sDL?=+(E@~H=;6ZL#50hcw>jV1==3!{O~>f z)LvSApsN?aT;ZVl3BaVTp8u8jg#+i#9XN1qe7Jl6P*>LwAh9Oq+jx=2qO z7GUgV7`qPL9y^cLYlTEhVwBW)UL!a;M|YxXBxCtSHlhc(g5AW!h)Nyp7CwxxBA;f* z1Hmgnf`XMkpN6qK2RQmD9j6n{mL6^xMs?~qx5f~v)I2yK9v6uwj*1K7L(zal$zp-Q zp*eDSdGIQx@p2yXEr|a`5N|;6Yl9{VB15*l6r{%z$D|6*Yhu!?87p`kMOy zafj~NuDoXfksu*ZQG-q>KkKdKS^apCHW`ecB9?7ut??=|Z5Fz?sy?^hD50`UxA^tELm!+vi_5R*H-ErO`+^cn@p>G!$?N$`8C1gUPPw^@)j zwM%{!a0CKC7XwUM8e3YLNvNvI<8hmdSS?q=oBTY|9EF8WQPX(5z~c%2EB+o&1H8hI z@|4dINTiPTfSODSVx+D=JP;<~w>LY!9ZNu6aYhpf(6SIFtjIvqk$_8GB2t%t+Q~RY z?#f6+3cAS4KYAO6E%T0Nepw-raSG_TBU!IxO#hi3DOBt0o7)2!(?2xpNPByTv&3n0 zEJMG6rm>lnmIZ038k!%CctU1iA5qyI(Jufa!+$g?M!<{LwKLO#|(Pu}V|Z zEU2Eeb&-a;Nga?)MNnxl_=B=(OB=Pk{6p;hp0m@?=90_#@z3}8p6B=bem}oJd5~fv z=6J*mjhN$+tk!5P%#dNY_;`lA0~hz-B5!J1d5~-YDIuC!sd7aATfG4l& zwezIGBk!3&g>+pq`pZVDpD))PwEo!y^*URH%$S5O;DDy3@BZbJeuN>iy!At@)voAZ_s}<652pS$?B<8M5}6b zZCqoX)h0E1N<)+;XtUa!#%T4y)4#{8Nke8exQj)?TJ6Fh72#gFToTYExjPF%il}0i z1$IL1R4SBk2YTB1`{>Tvrwu`rIJ?9JL&#G>tQ9 zs1u`WjLKx#eoD2o&~(|MI9S$|hzm@&2a02QtlLh=97;nU8X{Gpn>7*h#@uG3>+=#o zUrv7l=B!x~Fa%WPPC`K>$Y4?}qK!yyUfciT+HK!Vl`G!n8t+2|!PvV0a8P};xoSrd zop_B_BfhK)b!VCHZf%}B^lebo;LONGMsyu=|4Nx|ITwK6>w$#; zHUibaYyi5FXdqAiDLiUZ%VSF}*QNnK-08B<(WHnB5zUI%#RU=PMMJELm=c5LyyB;JwB)WuxXV)}zqIFlztsYMF`qco ze&Wn$p129|t4wNX&-(sfC?M7zB=}L?KkmQo$CN*2&ZR6rqxpoz<~I5%bFJDlU89b5 zd{tG+L~UQKKoo0v8KOo_Ub!|(V!+el4#!eVs&xaqO;^lxTyYXyQ8B!TQczt%hEi2% zN>M`uNmI+-2;YOETf3U;>3+*T;QT0h+;m6(I}Bny=o#t=eFWcPm~;3Y<}!n2QtA3& z|D=4zc1p%kxeCmS1$k1QlQAbxgKW?kTP#-Qq6-xBlC?qq*3cQoMI-vvNh=bpvsQY+ ziVSPjTDP9EGS)~kI2;Z~Mpz#gWm$IvISpqQ%X%+#xlTG!lnXc;Xs@BfWWQfzScAq^ELVlY!L{{nOQBVOQ0VqduWU;m~M-APt z&422T`oRg)BB_a*WY`#*GOR4yvOQshH9@%+k_P~M)RC$6$_i+ia{Di-`^ zkJK*jr241E+mYr+H^b=g?3pj^%&6Is{#c(L=#zS#sK>IedG^w!1NZmb_;5{ccyM+8 zYrmm?^z+AD3aL~XDD4VlQ-aF2DGmLylTFp_F8flZxSM%~hipnvo7z#-KRZz)8)7TW zDA+kSur-fgrLyQfGauI2$8GiP+N+=&CCCK~xe_$8->;TeZb#8%$waDW&Ap8|-Xq*zY} zv&ax4rqeMPNJ)s0t!VSjk>D56%hdzMt^Xd{X#|^VhkKj1^nK0juKw~@(LbITpx^!5 z+(Qu|%OnygyZXK6<>RBOih6xTw6{68dqh>g@C0h@U!6!8kb@fJ;9F*<<~o`B^-d0E ziZ-;|PvmKrnW>v0%8KUy*N%~U`K6fFO|vs0ck1ihsnNMpX;lxsbSJ)<$M^6X5VhrV zId80A;akf21awt~Wk2ZuZ8PVO>_WT3-$8gg^$6M?#@`SAj-l5xPjhsM8L*T&tS|`+ z=`0jV#a0Iuqhy?pNQsyniAZWJo{30>Seyz=DkUI6@cznfD;8+!NsJRJ*Imguh8(Xr zu)`5K7C?cDbyq+54k)3Vsix~`I{mW}Vfqe`-<_WTV5!Xmu@G7rS}f#h1l}IVi5g^t zbXE`&1uQk##hEdT3w@9PGh+p82PyjG?3mpaPbAHpNDwO533$Lkz=z}nfey;uLq8x) zM48+I4YRE0AUDvNZGS#-1F?HQn)u4$!PM4-DaY^}q1uVrb`32B5q04gBpFHzvql@X$-{ z$8S)1w2|z^*{Q-@f$nOw{%us8?$UVSI8D0>xx(fG){^nz-mo^J3$`c-l+9t-_>#kc zU1?u-MM`IT(pfgN!fv&?g}l&c-814ub_9hIT%bsl&om4QO;PA1b&;Z7)Ht+@1T%fI zo=*FGe$#CHEQ#|gad5zUGvt$S@v-42qbFq)k%wgZ2zVh)$%0H1n>^d&E6Me~H)(q9 zmM>3Pj_nZcg6kh7{I8N@hukAPwf=%q$ zF?ra;HzXv07>__{K*=Z_>Dnb@DeWKI#MWqkRH`&WP^VT?CoR?JUaVV!0yv^TiuzBb zvBIXYv1$dh3{gbZwTh57DfZ6qckLUzp(*jzweR_zbAONXIp4F)zQ&`4&1L(VNkkd< z^s1wyPSNaj&8lyEou^s#HibZE@|_PuU$$Ossmhkw&yBZ;vQOoE?z7TzUVf-ve)wL) zCO15}>^vqkjY5=ggOQVtUH;|%k!Yx;Z(|_7zGug`Uykf^=TcQ$;x(<_MhC76zy10{ z_uYSVHwBWs9G(8|#P@Q((Jc)P{YUV=x&2U^u3pXk46<-5V8Iib-(<9wNZvrLOYcc^76b^(Z!}LxVFS0LT?jXEC-Zg|2 z_YndfJV%ijJ$$ zOsWOUaOQCpijL%$$RABFfc<{15^r`PHeVd*z^J3G$pHg8jMoL#hfxY@{JW+dD2Q7* z?*_(d$7FI)9`lW<^kD5l-$9kW>G`RLL_?X-t`K$j6>G3g@GF*JNcGjq7$H|>NFvlp zB}hJZ$g2>jX&}iLHATSWzTk4+clg3y%~O$aIlO-FZtrirf;UUnT?h(wRSqRAGd)?s z9wS+j56LsKAYUZwkb^8jB0X9e=^a`?a(?lwEy+yJ+8k|g@WV?IfRR1aEMCo)girDJ zl{EXm$5IJQct^+bj9szxq4Z&am%z#q<$@~9R)xBpS@H7=KRwjyF+T%$ROa`5RNwXNL3|58!j^sKX&ArvPBf9#2Y+pKe8V~>E@Uy+< zMoHM~Xms7XLcZ9O+y2TxL&M<9`1~GXYMj`MyK`4RW%QHspOX&ZeWc=#*v=HRPJNA? zi6{@hQrA1Eva(#AuwYAhty2Ah8*g)Cx0=PudBrS7%59*B?`dAHj1?qs;VhIfmI-!7 zEul(cYK;91H!ED0!Og!fa6C!@KbtDlm&L!b%k^tvCXrXKkBlrz*Q5_v^@+j?x5gkB z6fJp3Ipif*s;_uRCV+n&z_yyLHAGPn6{?&P9F(f6N@xt6PS-o|(jHZwQGC_vMM!@I z`LLojd%cQzm-Ud9Sd;ACy*?i%M5uI)N}i9ZZ&!a-O{+)UwZD}uS^Q92AFyI;OEfSW zAOTrXR8^>V@0ReSglDBi>AFObBuRH9Dm~+u9x=og%jn3X5hkxzM%XEFCivk%nboBc z5MRsulq|VAVPXYy{zpwxnrlxc^j|y%XXn@fiEO>J6hQ`s0h#5l{j-GOy(UxJOR z(d-z-TUiW89LEi48&Np3^(cQvKL=)W8Zr8=<58MRiLFO@U_{Z0&1VwrVJ16` z7`OOLxP4=c2S^yWWA?V(Ueg?(xxP}Lkgpe&BFKdzbxCe7U8O%@UJF*4g4O2D*x!PMLERpoEUtP2qeQehRPwrfJt`40{es6x z7snK1BwK4l7?3Q9!4%U9k1<@R7nh3b(V2|Yf_>-OdH`dp5uz#6_mK}RaQa80{*0eE zoPH;9I^7L6OtAHtiirwRQBfJ1%JJ0NaQLB|^MMx0m4t9A0cieD|t8)eQ0M1FW~+=hIFav~FJ zfyhkF7?K5~O0}D5o2EuaVK-wlapc72zRcg=8hs<_OQf{z8@D*pz4i6=J15B}AK(2( zr$4#>%YCPQxavJV$aYnN6`w7ufED}-U%?Z2ip-z}O%_lp6$og;MCy8qXep?ifz)K` zPD)52)}|&4r(#=vnZ71QVEj>iJbDFRMva<9KnD(VcWc5>Hb1G^EY>zO6c~yP(V;AT z4w5FUXHEV-Lgpntep(+-x?nu)AVFLETf0DSY%SUGZE&h;Oh>_frtrS|^&O|^>8HFI zjpCq1iB^{x>=PyaoAQ_FE$;vA!hFsY{ci}nOklsEdj!uBy~ii45f zo|cxLUOJnJwe<9~#4<+CMU0&5g`B&rpYK$P=iH_z4Qo^Y{})%kD# zC)WIL+Qj{*|F8cOYyM*~?mzm!{>{HK{7;b=@k^*yvlEPV@c@MESc{{Blh%p6h zM};w)c@RP}21fNUIyWK)H+uOlgI)%X2BHK-b$G-}wXaT(qXs>C`Cj|yaDwHt-6FLC zCOJhm8nX&BiHovy6n|(%VsE-9(?ho>96&*4)z6Iip$n8w3Cj8PaoTREZq@r zw}_kihBqLb|5!LgZV0y#MQ!{|Dlj4xD2E|)2%^z6iwjX%RfoWHh-S+ibK?lkAcF}7 zN!LIgty+cKlh6Wg%HO9qOwXeX+KON2{yYooaeP2)PB(UKjzmyc3X^cS*=NquVNFsU zCclZ8OvL5#^xH!iemq}?NQ@AY#Y39aZbDsB7wHOZ&eAT;(>xa)=x=L_+7L|(jqz@; zKS=B4a2B7?)QB0}_*6Ai)e&`I$MI08-XEEckchm!zN7m+`~anKHxlpztw!#!94BAx z>z{33Y$vFFx_zdd{)h2;k8SI!;{bloefm0f;`kN6ZsWxE_2c@L_;GWcwD&rXCUKfJ zeS|J4UITq?)U2db-MY2X%7%l0Oe-K%G_iDA+enNtMw8ZTsK5xKLK@?*Dw`1SM`$aM zVW4zV*T&(TYcK88{IMwZy_T$N>738`{k}iZKA0lq& z@>au*{4iYq;pNHlTEZze8k?j>NkVfcRt-WQmGd$TNiYVL6EStaR#05Z!w*K3XBs87 zI4j0>CDzS%1v5sYP7sp1W|}H7_h2M)(R5Ph#R2?urO<-oNnNJ9#N3)Mz{a3!Dlu?E z)lsovN#mI-#PrGj67!E=6q5RCVv+@vJR2Vf+|^5?r2ag5At*37`Qht9F1%X(E#@Y; zl~(j-X3&%?HmO<5U#l;P_NH_y$y8}2+CltJf6)B8gkOK@>F3%xua9Jo=ErqFU%7+h zfT*l)x->L6D|j1cj`U8R8UAW}&%UfXMKpwidwJ&wo|xD>5%PUd{${_sUCbVN;VJG{ z6TZyEkKUAQ=h!os+m4*u+?m^51s zHoFyI1ii^X0g7Txb~qQowxmGP7;E)45I&aj(X`QQGATv?7u{yJ!!rnUP_??5)lEVd zRA*ylxN4v7-4a|kv~<Py$=s?Hf)!XDN}wP;%jP4s-rY;;!nK>Vk8 zS7g4cysTW@Ky=zVqt7UWU=yOa)8>rgQ=VeHWItkiCM{wT5N8B9*)5^E< zQG$w^TP+^KYO$0Ezfx~Dnc*DLB(_FLE zppMa?le-%j&tk9RfHGT5R!g0gVrZJsu&hpfjx5E)ZnrNLb~q%pB&-UAAjo0GH{!#6 zzHU?@pV#BWdwLj`;lJ*aEJSA_yR+!j!RcfYowB7o+M#mwg$iW#OjdUi)=C-et=zSY zW)!)+l8>P&M*Yqd6%|ey7T_3mbQ1mL(I4F4IWZdG+Dpv)a|JFC=z=$w3jqsDYgibf z<_a1sKqWV^0E5(mU|0~UXUZfdU~p=JsY(r1Xpeos1Bm-InX%sQ(;_@Y)#FC12MK;G zzUy%eRo))9H<&F^^7y^+abkAU0by$5(8-x6Gv7XZlP^;*-@U$N3qQPfA~QC&eNSZT;ji_?Mo;x`JuHR>u5>?|9F-y? zu*G4anj#-;MhZ5F?F9c;6-l&7D=?|W=6itB0ov{YjhYCcw5HjeH=6H&+s${p^ab)9 z^Qz{2ayCnK3K!e(oXu)WW=pHLl#O<0GOMt4$(@S9m~_ItiZ|Gs?GgL6++vQRhlCLo}5&r!6883Eb$EhbYEzN`35( zEj{5xLK+B1B3r_kY>-!FLY8-g6=_7mC25qKaRHZ$t@ojJ0t-Yv;|^1lEnMrv^#Om7 zCr5W7Kd2>_rC3?2qC@3kJ&KrI&X*@)%T^l#`dZnJF18v?XtMl}#ypDqh~p$|6>Ja> zbmg*L@jex0ysK-Qdeg;nt`c*7zQA#~4rcwE^95ZH$2}$He=zGKq>$%=+7aX$RKtQ{ z0b%`AqzbZH*Q*M7k0({VKIE5v0I=_2zp1`g@{d1$=4U_tfw#%kCh_9-V_(=HKbeb- zZX&;bZ)}X1b?*;Ped&o~(m}-e*hxTEIrsHQ{p7nZ<Ns6?Az!CE94TmcTxR(^GL;p+{i4qYX4p(-?fJ-k^8u<9bq$K=*Kz`V0Np zj2et;lC+0E)B>&60Gl&L<_6ak zL!FRowQjBp7xtH;{oQ``ls#b42-dpv{>S43IIakngFaRNkP)ZLU{b$y=(xl^0VVM!!?~{qwn@ja(oS?9I==evX(v zAe=sU=w#ox>he@KEVCWGwKDq{;#a?ahw+C83$MgD!R8$A9Dfb~$K54Ja&X^7CN`X| zk*wC*j^Jl%t#8d_J*>A;tfQ8Qc@3>KIA}XNMvt)cvBhMnyI=k2pR-f6gK#bbyg zk2s1@2ah;*s2mM~0lyYojNx>=Xqs{sd6IF^POF1=@J@G}rg*c%;v`s&rbHZ4ScWz; z4EVkX(RR?&{Y;Z#369*81J@(RA&~qJE=BrH>)8@ZApX870CP29){Lp0Ui^C!}!7H?%Fk2 zcW;7sD$Cpc^L{qB!AFkl51&5t#Ic!bo$G$5TIYIuyLxM$94mwPSA0p`y|XH!1F2fS zRt@!y{GaV|k8SI!GF*3b@(R$8H>Wpp4a!5`Bkq^c6?1Z`=XwL_Y;X*?z*Bvb}Ns6r~!gc3HPGN9BB zzjN#~8NyD^JwIQcIR1Wq=Xbt8QP(zqW^n3$=OONb-l&)Gh2?WdLnE$16j}C%(FP0~ zISh9d+=WY60w*hd6>M#>p=6_7YaUE^xUZy&vJO>!rQq|g^~RPjw0WW(k*Q6Y!A~8p zmwI;IXZl(mE|qqS&pgFH`Fi~b{&4wC=ujVaL&)_jgZ@AWkyh2aK#sV95Pu~c!l96Q z4UZxM{cZ&MT@paN%pmp^MQKIF^6J0j)cT862O|FDe%fhYZCHm^jv&i($1x{&J@FUJ3!jd3kVw3<-bDwIy(USER1w?L+r8q zNpzBuucI^QETSo5(L;zTG=)-_N<={sLXW|B3{y;R5dU@Z3Iv3_;`Vv=hZIGXr$Qmp zv0p`(Xhoe+r&X$cpB#Ug;t7fkTBHZ*QF@ayN;?zcSfBgS?Y~upxg01uOVAEhF34ol zr+2wN<(PyYk+9TO{u89N{xhV|anuH%C(-ex%F=G-ZnX?r2nUMh;J~NEl@x{e+n}8o z7yzl_%C8$)sK5>Jq3xFMBJ9K8 z#?Mnaj>ibG3_W35wxMTDJ79*xMo&znQvT7rI8K9%?na>9p*epb9uN3)QXwqFm5t{A~38P zddRd)L)T5K&(Iyysu=o+X~~8jG;Ph$h{4>?KMtF8yhTUOWZA_BUWMxd>@MJ@TJ6F@`tos<9{ru)sI-Pp((YxO}GP%6G zd}aC1?69a&{ZOOY(F^roLA5vBHZozHHV85lJ|uiTs8@+by{gWwR4jR)(8Nj7`kHG-I>e+`K3GP_i6r2+V4weGFE#`YtMAI$17MaDg-_g6F}Q8wdeXdK3lx5r@kHka8K`}!1xlJEmt^W5^6I3d4n;Y$e+#=lvnuB1B@~5S!E0>FD&08C&bD) zKf&;aurTGeQaHPcrJ`G;sMzU=xEM@d{#7_`8*7J#hVGqyGvFWK^n=(!NP3Tb65=#` zI^p>y{hiG~{>a!T@@Lal_6$48e!wIa10PQKK=Xmfpp^GT2GjJ2{Ji{6Sqc)J5I>IN zXYfhOu`89WNDL`CPPw5OqMK4H0T>8naXhMBJ#2Y!rWG{$pj;Mu1or& zbWEaQ$(4w-fG@gXhF&z}qI^(3Dxa1aELwD14TdM!kJ(N30h5lwgfQmybgX!iYHX=P zxm|@zWQ1oM7!JrA?xeju$rvQr3GcISHqu9UX#@q8A#m!@o!!1Ti$uayq9c$f19$*; zW86<3vB-uG>NE8*Hgo696uosf0UG8&v!4nLvqDp#BK=6j4~W9%Wz|!Px=|91GF2*R zSktCed|Jf^RjjHBeTBq8tXKsrHz3A)+aC6NOTl3rMGK(dOklIaTg$>S^PxFi+4BFT zx>{qKy6*US_;LNbc5GiezKP$yHh$pbI?jWd;);c&yb_uKK|sF0LMSA_9_c8U00Th$ zzwsK3ZZyzRV5nh4)iiD01_%jQ3)9+=2*Z~}tGY`4FtUjbty4u?F>R}smZ4IyQrr8V zV-wmB*FNX?f3JN1kKZHtKq?MHp$bL^($Yo?cr(li&Wz>=u2!)ehzY2gB)MU#0h`;P ze$2kOT}>;VNaMdn@xAQQ;qr}*9rG*aE7R%D)lu{EqUMGB`}TIzXjEuXGFzzp<)_=S ziB?^-RwdmXUZoaRwdy~rA8Tt>Ze>aw^+DqPs$GtZz))%YWXd8*W@Fs0jPVZTsg01>f&T>$%_n3 zI?PlIJE)(7Nd;>PqTWHl5jjjIB>8+O;rFMJ=q(9NQ$s*uM6O-k648VRjr` z0@QIBj1H&4Xb_BHhD!~AP6nq2*~_0NAP77yyy#gN8ROOJACUvb zrO{xpTUC*&got7Ta>5gAc6`u|?HR}$@8N6)EE8+>#*AmSlXp7n`bBIY)XXjBUFL{` zsS^fUoHzi9E?cdLQaciWG*~O!jU_>uDB2&kGBhvmT}K#XMG#|Vd)#1iFj&q1$%?*x z!_$>k5WWdQ$9@`B7To_QF_u4vro1q+wWa(?`Q3FV43(!NWHb2{>&8bRYp?Sxc5wD^ zKsUb1_j$e-VgEb6e}re*1N#~65bDGt&+@TBGME@#FhWKWd&r)|VRATOFza+mT&E}+ zxkHwMq0SCD8w}YxWLGep?vT}B*d+-lC8oknO{yfQdJg{7mUp=HP_$>0%>2M7 zYjkEf+uO6Oy+NAjxzB+ff0X3x^GS}izK^(lB+GO?8v`qG(ITO{*64svA^D&0|HX^Lcydp79K(;XC3{%S@?0BkMRB~I*R1=j<({7$vi#EY zvW4z9?X(;-(O%QzezHQp!oJy0m1thS&`x8@S`C|% zXuQ$ujm6?L5I0kY+~CzJx>&U4PC5NK*Y_~Ag(S5SbwnZ zt_;j8=bK?J5acO0LUD5ddSj{xFB#XsL|!U-<28k#@}cB(l4WcWQ&6rA1p~2=w}9u@d3er z(K&c}Q^CrdLOx-q+~#yWya&=m(D&d!{Yg89+^7|Ivk96ymOPdr#!~fPm;Avtd#QT8 z;IZ1;v_{EDES7j69#HOtLXLD!z@8EoCR{FW3Cjhm!-SDF5KlxR&5|Wis!kWoiBwyE zVpD>QCvbuZH*=o}n@pl0+H|X%OV!(x77Hw{QWc5SdxZ$w*~Akf$-poG19@DoRtdg! zt0l7;ev={^TB_ciw7>~0?i74Bc+fbVq2zUnXXtH8TIe(dYO~P*rIgRgu4FP_hN}jd zJCn1?B$I2f;-Cs@n*k>vC}1ap&aN)5#5~3GlSKhJ zye0j|6Gexq#$JoqT}h^=ahQn#083SJIrWkq@G=~Vxtw+>3vvsf61KUvtmQL_jWIr z?j_kIt=Htz+yxS*<(AT>w56mBgda+1X~o(xN>W-x5COFYDUu8@3T1@Ih_wzHT0(mu z2s0EYGiv*nj-vxAI--yntS|$W+xULprHnV1?6+UO%_YzCzR&Z#C?2L?rB5Ii{ZT05 znnCx==niy0n!<Cz#AmgH8tW=JBd-!G+4k$nbjC!ER(U5NrRXQU`r6x!Jp^V z6ih}?5YZ~lNsemFl^*C*B84c5YnB;v16;;6XjyEaX|xCdA5FV>#NFl+*Dp^_im|4= z2b`)Il>w;|2ulgoYCKMi@%X@l!=MNXP)bl~G|3oB8YpRJ>Pik^mIcf;PFYT%3ThjhkXmtt`gxU9)O9L3uDzy_>($%U@2Rw=j;J@O)E~m-9w#UH zs|L(EelMyj3R

xD2_pqkDH?446qpO1HIDK6BZ00oMxK3o`{;C{$1p!;40xa+TI` zYg8BIoZzcb0_7g!Hl4%Fp8%#SB~di=W5JwLum?{Vr%I6vN_2OThr932n3>q-hP2Iqs< zeaSol?-PvM1kUlfvC_|@LO%or8L{TA=!J82ztji7S+b+ZOx)EqP{ljUog2#u?UG-w z?tS4x!S;-(%RuUQ{-N^Q;hBxgIFH-fY=UGxhPbg_%E)hawoQ*;* zX<9y=NsiVuY-m{1OlC82goT#Pe{9tk-;5l7e97Qw>mt#pi<(kZ`FMcF6-{nq07vGQ0<4!@N zHMJ^@F1Vm-(mqN~(YGkMiB8iw`Vy69DMoZF-A?bK5{w)v{y3}C{s?9x{_trPt7UEm zTz)1+t1OgwLgLAZx7zB)Lem1otL52LDv3-6M)2%7m=4O+<-fxSgOXWT934;UpN=pk zwuE-S)yzfAv@qxtb4;t!Z{rURzjOA-Kl<=Lc90R{Q=X8i3^LU$+LB0^rLmHbckZWLEpi+gGwmf6VK&t%TqvNy*7GTs_ z0ZHgOSB~AC6`>X+1*Ny<>Q=9>usnmaE8Bb4z5e#aqr36u+0Po`M5FiGwSbBPvz-m7 zwBfx1m1n+b+-*L{4jVr;4_V2*WREdv?qkwUW2Z^hn|L;RlAUx<=FYl_sAGG_*R0!J zX*pSLZnEgDM!!voCX3I`cEc#i;VU`uTIhc8J%RDdi^I1QKEhhOH zNz)`bC9o6FTOp`Kh)=0 zi0{GTqsZfD%KnH??(}DUf_&4T_Gf&_=cQUY2l&zqILRRFib2=JV@bjCYJno%r3@A$?Dd0?)v)zj%hen>c`$VP9~ZAJo67pVaA%ba#3m zrABe2I7+Fk=Y4^os;?DLMr)KTVA-e0Sw)c*RgqPbW2%Olp4Bv+f%sZhX3l}EgiTz; zeOSV{wN+9z4V7`7oQc$YS^kT{%8~UvogL@TWBl*KV^|~R&(K^dFtxVJ$U5W-^ag* zUwL&ufP?nN!_r3j5L$tYf&u$(1s70OA}M28YpVnFcZOUSERdiuY;W(@^DBvt3Y}%K zod(^xGn@^d4qpx>v16XOazYy zrvfPm95?H#X)y?Z#e5=K2NwU1vRvM`+IZG}*(S&~?HQZe&2ITWOKmJ!st7> zDt=R{mimYd33mm}iu5q-&ZdmkY?9=g=BjtM3laMt*X14*)p>^T?>pb_p3C0Og>%l{ zV6WU@x5BKF|AmO6RdZnVB>E;ymT+ zc})P))I$uQjz$4U%3E8#X?V=lnS(1k1EEFnij=SD&0u%U>TkUji?!;1N zPxU?%u1dEpjIG-^Kql@^uX&<&2XoiBf?dZJ1zBu~1dCagQ&^CP2ifhqlL!*+Pz8L8^hHP= zQO8xHsve$0*k%)0!!4y)mWREHglXXefd~TV&YXKa3EmP1Zva}oN$+`9F=4-fdIlYN z(~PY5CZ1XlP^W+tjzzSXnWRkT*-A=G|EN!51t_t!gd!v4D2$K&L2J(x#ay>5FnhdG zaz5L)KlkSVb7b*uXLQ3?v-t5f$@0!R|KOU{|Gj&Cj_$|7Jv#77vqrUDe%xalv~9H! z$XqtfvERPmaj?ktQp@fR#%AyZDTmL!*t?kcnkAxmJc@!E+nkj2y;dt~g&sjX*vY1cHGCjSxWt8;Py+!GM+=Djf%$ z?@gOUrhY)5-jwer1aA~FL9`|kO+{%!SQ=dyWt>qQZJf^r5DlUb4H_Sg2DD`jAc%ZE z7>m<FFKFbk`TBoF{&}?j^$iVA~rf7cMA@*$dV^R`WQ+UOtY| zd&@TttdDKkiDqZfqoB(3WSY^?3WNZ*RzvE@f=VUWU`6H(er>ZCr@dX?bzWlk{@lxa z#^Dp*=}^{74%!ZIuW{sA$0lu*gVnaiu}UKru7GQH5VsRymrB9dY4?Lh&p`=oj`-1&eNX zk!+Ez^i#4xy;Y8p?Cfnrq2EAQ`dlOiVGzOa{Nnpy-z4z>_szNMR%*30!yxd|I5;YB zA03`v`l5{CKgIgNIL{6PD7c)eNzKl@hi2lm?NM;cRLpEGGL6(U%zR^QDz=;~#;)V1 zuI4^}_xYhcgWHb%Zr|#bT<3E)nAEMm{`+UY&wbdr?+TNCas1;quY5kT3(e`@1=X)c zcg)%kCQJ%ggwyU$yu@v}z+7-$VlKHXFU#*RCtc(f26xwt*DyyQ8^D?&Y&cvzROk){ zQCV%!hbMj4d`!rPeZHU#hiu@9qA5}lB2G#ayHOu>9Pl?0kAp6^*3ha@Vb1F@q=%ig zdRfDwlwMYufJ>w}rBh`(^nlLjRaBPwuyG#gpv$Uzx-{W|E+oopy>b63!h^N|q@7t# zIx|ez!muf^!eSHG3g;z8>#C&CgP3M}NJ7+H=L9sTpEex-<@#?_28!EO)J?vz>wEF) za>wY?Zyz{dXk8Jlx^GKC;EB@LKf)Wn#62wwi^_aO|9X4JZU#?|e*fa?#j3D!71Yq>k` zev-R9^xZ>v$(rVa*NvVnxu0zRX4kbpef&WYooNru^d<5mNIlEVnSNx4_=?B~B7TzD z$P5KGhF@TI1YQVFkV7ILx0Z?JN+xRIf~8C)iCZik3ic*^KAB7K+1W3R1x~2T6pxqj z{ro6Tcpfth5hc+r;cz&l$Vvh20{xJbC4)w*j0$8KiD8AYV3AS679{f_4s)EX-{JBl zyx8m2`wMLt*(BM8-6(^YNrXqxIASuW8`Oa$nf|Vme&wu;yX8@tkrQLR@g!|V?^rU= z4d!0UUnx9b3J`$I01cd&=F%^7aQF~Qz#P5#%z1OpYQShD>G|aVc6ZtV+|Pb$2*VX@ zjMZF7kHequ4;ScEUCDS2pdnl-V%OExH!PM7^Dhr!_S>cBpsr`olv>O-(Q0?e&T7fnw4BO#kLk@YL*;SHJEm!5c51KlWOe zlIz1i{2$j<1KdPfhQIIIq?g2Le_ zfr7$uFo)NH3Y^|?=y5W7b2pvi#G*(`ff|lM4#(j<#z9XM&~pUtZe$!Opog3@PB*^a zrlD#&o6V;0w_lRyd7t-r8kW5B>cyY0!{NH6FOKS0-}ExO0J-_4k4*mpJ!{1?jNa4s z1`eZ>h}nbo*6polHq>m8NxW@!+rb8gZQ}_x&G|)8M1Tln3q-sH8JH8jjp3^HzEpfkojP= z5Vo=+;fn0vP8MRM0wf&3j7nOf{;fUPI5Cs}+ltqpkjii*O|_HGDROw($(`@*yfk?5 z&GkL;a5`Ip?65{4Y3HDF!ws~?lSXbGtyv~^e8>h(COb%mZawFKsV5U(YF4yCQ zmHH`hvj+83{-<6;$aJde7*wmq=h~0`_-n|Mt05TWA45s{RXWa)W0kK$Cr_qy-&`~= zKyjQf*uUU;@_fS}Il>M$nAe(~HuYN=+=PYCm>4M|c%`5-BM6dQW2<|@iW?d44F`7Q zT)q^9Du!bQU_i54G#U=02p1udBDs>Aqs9>m24%TfC4$#d6SqBQ8?rGr8`rgox-F?0 zG(f|e=2XLpNCaU}C}%L(CgJ-MUM&qvBp|g(L^38x*Eom_wWbhe$|;mS!%-eF<^OW} zO5>cRrfoCTEGSPzqjd5EqlM9EBm&CnC|Vjv3SQ{E58&j3Q_fmo7}aY*s$66roGPfq z3dZ2pNWp3;PnLv{ZK8%NNYc^5gE*C)K_mn0E_(xN3S5m+x|^hVs%J8cF1eM+O)V+NC7b_Ne*Z%NJ^}%WrYn5%Y)@(I>GJg9#{ljaQ^itgK z#!LQw?k)Ym&h~&wQAjBJRp#I8zl@vpYm3)NfVl#ge}!!UjyyKOsZa3F${g{ycnGT4 zGl{sNcDKy6=JiNI|1j`g>Z#i2B|FJ>@3#oE)V;Q9jeB2%X@`A#!#+E+N?up9u8~=0 zTUN8IkqNYTq?Cn~t<}{Iu}KOrfR#yYVt9_LQytcTgcAo~2gI%5X{508DSFPiA=U7_ z(_*!<)m;H6zDK8zA9Rk6mGQ1b+>oH?n1N&hQG<}AnKenn2K>-~Dj*j%5(lUeh#MEc z*b!i>i|p7>A$T|fOp~d|-Z@ohVyKh5H&Sp|C#*mvf%0V=Cx=6F5HV7t)KKqC1{^LT z1rVRA50&k5CTaS;BItKtI;=lzB;5G@7cReqo6ZRr^g;c1`tDz0`RuL%%^p&N%;BLc z`d{_S^WN6~@=c(u{to^gRmf6?BYK^L;P{Mr0bI9CUK_pI zQts7K=~1u7oB4X$tKt9dRodUBTMTd9BWC2#+S2{1)6lyyl)*j&&4nF_j`r-doP)z7xf(8Iv)S$D z2)GX{yImwzWMa8wpFAWJS&q4!&PCJ|);pdicHE1HFoUsA6kA*4LG5wpE$@ti7{Eo!{T-W@5ZQw-CtHXCKC(W_Czy+`T5Gh(R3bEG_(%1GDq(5sQO z)L2Iv`DA$hinW_gw$2zGV44 z-`gqa*`q&x!%X!4@eBIVo;IajgaLqG#@;=1pVd;Glh z$gW)jfL{cms!_nN1I@&n4EzpdXCLAY@ju{>@VEIp`G4}3_w#r7u`F{bdnx~Zmf6zK z&-XVl^Ygvg-uxEcl+E{KS7le_P0iVkEQv^wsj+-U%1nJMKS!E1)e`dyNl7k)PBH>3 z$+a25A_ZIgLRbo>g;YpTpo#5%QS9vMR$X=WPP;sFW)eb{61K1;l_aTjIuugQGG9ai zG#&U5>T?V^h{HiJ7DZoeU0r8qSFqQIeZCHa{Qf{N*7Eu+?%^ZwH&1ACg$rZc1LLKk z*Ks%iA!;Up0FUa%xUndGRLmqbAtRj#+~ioUu26?iILVUsDl3yr7?em7cbCBgcQ-I$ zwBWXQ4`^y}o;$fBbCo)OjvX&vZYTeS0 z=h0(tkZXARrWrB;Pq^sw1~;}9dnUM{ui3stQPkWTrtpQ?Aw`K~Ht16-gaK^@EiqpO z#w2lPIc1>I^--@cbrfTvSh}9e2)-1X5o$h``HWEeaWIq-{8G>-h{#R+PCBTaPDD5| zKp4WtT3ef&k;Z{}q=Wi%(L^$-C}FuJN<_bzELIQ!NB(%gO8KyJ| zolpmYn@;*i!ZeVXPWdMcp)-ZHOgrt=?a)%%4w2H`l|*QUsYkxsT}#&7@A3V7e+^Zz zim-djqv4Iu?xMeEDO?SYWH?4RDGAI0YBr!k-t8Jrdtkk>BhRJ&X9=R`Pf~;Kd@pGtFEW z@jLSnzaiyE{646+P;M#JLN*!5hedTPawH3~(;45p z;AM&juTnWG1JgO95EA=x@d!ZQ;>=Zq8ibqx1!2MbN$-gvrdH4%SH6goC)1xaFS+GK=g{Rn8iJ!L@6`~#`YLC_4NaxVynY!x`8tOuc zu6p`v;#LA~N}Ni-NMbsWOD)Cwu*l1jY!rD`lAR)NL*gOwlB7gLJ}M~{B5#!xM2x5` zNj94mR{9i{VPdhUfzkkQg(I?%3xJyea4K*$a4SHE0u6yp0Xi@XLpe*r>5?m!8rK-1 zak_!KOZ4DwNfu1qh=mY-4qEY4qlssJC$e+m9grY{FC%O3~nt(JWi`z`dw;70lD zCb}!QIyfTJ)xmfq9i-hN@0S#p$a9jcH>ie%isI*lY8#{g2hb3UWZg-zI)(B>8)u-P zwgjM`5H@zUoEcDNU^eS`+3lJR6J{e`lW}S;Q=X@=4$tBCoJ(@q(hOB0SV(;H-mecDTcScDtFSuud5g!%IjdMqaL_!cV(j>X{7 zlVEw=HP+{s{ z$T4RumX!PRl~odNXSu19b`nm^b$iO;z|4=Z5b8cQ2vA)pv!iD+wo(FGO!5B22`O0b^qvqc%$Oq%!Vhm(X zL)CPiR97{rE(b;Fee5b~4BR3)xc{{6;41h{+m2NSjP#)TxH@5^jZ6IDnlQb*x390K ze_&vR#cZ}RB2P*3T9F@<6lCQSl9Cd6O_J?4Tb0S^GMS7$eSK9!!>*yBVXKX+Fxqu1 zhWdI}u3FwRY)nwgmaz^;b8IxWkYy88zcyge%>4u1DZkLz-QC)mzK9|r=mtR$^5nN)N0=;&Ix&c=WiW+QWixygLWu)CRGF_4LWW(3PK0h$f%-VA1Wi2%g- zWyyR<SB^hx3aiu`}D@L_g|hnirtcqS1(ivHe8<1ihD7(lAYz9jez2 zH}CEUs13rz2Zb{)9DaQPn%$B$HHd7o~64}iCDb9%^U964Z9}W1HSGR@w$f8 z?q!PyQc<}nB}=u{jq|gK)~y?NZ7G~FA3kYKHJNPfleogc4?v*)M&UWtI}7TbjKsFR zG1VFrG_|g?=gH|KYm+*#wJbA*L%QV1v6sKr+t#3JLa=?`*@;-ynqOX8?^gXl4MVTBXsZ@nTi0z9?ks zo4r7awkqwU*xBwtuyl3kMFF*&-eHH{yyI%S6!{`u~opRyqZyws&aTQg0k7i zfH`~v1_IQc+@6GNQcT8@D4FDtPmah?mPL=Is*Dh{j!J-+fFudn+)NAb3{aU#W}2B} zScVb$;~-8fF|EaNo$h-w91`Vu_b1ne#4@RN);LXon}ZafU&vBAbt=hC<|rFgQLD5v zKbuLQ&C&XLCd#)-y(8bh^yjmar+!ts|7PjVjGq1D@bS~HzxT@7!4pTO&xg<=IMt;X zx1aysoDq6w>eAov4t`<$>e1(3>#~2c|IiOFpDNE!N}VZ?rs}pG5Dx^V#Hj$=EA|HV ziTeU9IgE?r0X8It0)}V=*oB6r1~}X>+W;#YD1ef+coP+{X{J!YmIG@!G!ju1O*bM+ zT+^9(kg%&1c7;d-WSt`@q(+pOMwm1nk3mJ2F{EPC(*2Am+J3O;2ebYK|B@f6{)~Uv zkNgx&8;n#cpsW4Z!)8qWUfG``TtkEI-oA>E#tNWk#@gitQ0oN&;1&Sd^GZ zT}<{LP?VlgpU*+f!vt&GiNrsYu-Uc^hGFVwI zqUwf}O4$ZjG{CH}U@RF(H8RGqfeb2XSEp^8dP{#ZXr6g|Rnp?;kaRUX7Rd8qfgg&H zZFXuyM<|TiHaTL;Z7`jPq74=mJHFvjvHwS!^ndQ%$M=RvIKqe(~sM zQL?!I|0orwxBD=?v;dXX$&XqZJVLHAZEqaUjAc(`U0XAtrTM$&N%JPd@`ROjcSNb8 z^c>KlG9hU_*PP8ZH@}5g5h1n(HRsr@E zZyXP5CQ<(gusf=4Ms&Wf8Sl_dhP$h;bYWBJrT*RBlg0TTY{ioGPIiCu$!|QCY1}li z_v~Z!;jXrz+GGvBJaGQkv+?)<_;)KP9dsnx`ut~Nl}-R<@bKh!3R{K}8`ZikCm%4~ z{69YVB_+@YcU@btKPQ;qQ4P0;BTB8N*F_XfizXt9jvLSlR@q)YS5@Wnxfl?w4MH4! z@ITne^>L8nYW!nx8elrWk8qvNEGB@O$RuFm5zHqqnCL7r^k@P~Q!V&qCk0*ARl2!) zlu|st1E3Ti4AGB+68$&`UA}oPbZyARIa7`TJ?R}y;NeQ^kj|+Q*6i`>zN0^tzWnx; zZT-1;B-t3-d#GoE-9p>rw-Y@sSbDDbX6bT16K`3s0S%l6;njk_u=0*^QewqFDaU6R zvX0_TI7ineUH3k?;~IAz#A}PL%To|au!1RnpEc?AS-ReaulLdG6Lh^9pZ^U#-%4|W zjL)AWDuFOnDSA5w^4h$9OGjs7mvneWKNH12Uf10&(XDH4mtPR(;X8KJ;}$(0cU1Qa z9=FR4B%f97wW`;x!

aDEGiRRT7e6waxt^^L!igZraK7>;r^uDPFv8ybgtZrD@cxSC#{2CA7T>afG4T6*Q7G(1g&h%rgESQ zh(X}Tra+ZhOHcGsewSU!<&>dEYm4I~Ddc4r1-2NMUI1~WHeH!{_JtA@7()nc#~MqV=W zl9xy^=JDn5d<0s)t}c~#*?8%42@K$B1X$zutBi&Vore%;DakPEG_Pr55=y1G{TNa^ zB63=W8QGR+<-0P=$h@q|gEA}U)f~w6r$M@d=Tr{%anl_1aS^VQLtH-lwXfEiyGWys z?pz+-$rtVw3gjKlQq(~y^*H(KW3r$POuP-tM>*CcBCh6=(M8S zBH+nrIJ?w4yoo2HfKyRGlq7an@y3xpSh`Yr_bOm-!A$#Jm>=8bdjHcar4LIN(avwb zb$af|x8`2@!_O{_9KRliZ37_u?(E<9KG_l=6RPv6r#?9U*V2byYKM1r-a38i_ucnz zqn7R0r_U|4YXH8gdQi#E8 z=(r)~$_h;vBMQIbl2wF4i30!#UAm_6ybp$IqZKX=D~l05QLoq8VXznmv*CsCQW&Y> zOn5kq!jwl$F`!rVR}NOf%9&JoW;uXK+!AjuL#)!Fk#b@+o%!VO$B1$RRtRbo`Ksw8 z(tNO@mKtXTLyfb-?YvOGG))Q}{M%$E2~oWHk4_^|%4*glpSXUmhyU{4{R5O6dMA3M zL;vBt{9~Iq&p7`6;Oukav(Jtb+j(Q(FQ1*n#y{?GoP;Dc)UXB$Wh|j+EDZ%3I+`s` z2ei-?kcKqDHkN8@JM9l*iLKkDN?{1vXhSONKa*IsMyoUlu|m34lV}O3N`=-farWL_ zOn^d#8Y@2QJ)dMfpXd90pD!FZ;#+$Jtvj@Km0Icl<@I~EgBJ!Pu@QVb4$h7Ls0iS~ ze`$?ewB8vA%z7VDTe2-{TCg+J7-|jSxe&YJU~{Bo+3;;n62YUjO%KQKC1a>xa%C9a(Age+K~eOO!`9eBR{o_i=4pM`Nxr zHxe{KN4$%6@`N^_qq3{)Mu)Y-Ix4wJZj{neIuc!?8@V;Nj(`iek(h^5`RP33^M!ml zkHvf`k2>?Fc#LC}N@Z5=5Xg#InH31#AiOl7&B`f(=(9?vK%k`1)kByjjjE*FPdTUz`91wpo>Q%)6<@M;o@$*JUY67$J&5*3oA zBodS9Bubhx%X{l&$0l|=U06=`EXiz9Xr{()Fa5>~nnpG-I&((|s7h{N)byq5A9>3y z$Xb@+oRs!k!@9_!7UVZ2h%5;rY+V*5NEd&j6|A)|+m^dmfcH_LadP`;v1ja;{{Y!JF zcISBU1RglJv4$ROcyaF3(bl@?K0NUK$LIlS?j4*v_3h4-*(a5QW}mEvub6%EuR_7W ztvHq+PmgEtm~)InLR!cm-pO-lB0Z5oWoMZ~htr2MsN^hhD3wlSkm#g!ai`rG1e}0F zVi8Uir;CU$7K-H}7K^1KYA>4YVjL?15oYC_K(txeCJ-RWMt+!;m(yT4Yb1y8tYT$} z?w%gdqjh(8b+s#z#)#|=9uA_b!J9$!UJwR@?KUlw5rlBq>8wS~u^4q9Wi?=P?eg+M z0$xo(F)@{xPGCM!PM|`flt5x4oj?h*X^Ol@wr{d+w;|ifNBGa~*EIYCyT%ySbb1?? zFYli?Db(};E+nRPrnbiHp-i|I#X!B;L!irS9ssS&-92Oua{a6Kkl&*uk<#&yZS<7f zdgP7QziKPNO8;+8bpZt0s1NL*{nQ9l=r=oR_jMUwmapTPFuoYRC|?fay|$zHs15JM z@Ns!0JR;-u;lc2rj9bE;VPqvoP9P3Rt^+>ahkQPlTd60ZW)?sd_9{v}>o7uMeVvx_ z!MyLL@fD5+jO7K98g+qz4ATgJsuI~HaKgTHL?`$}9LD1z1CQHe;}6g$ImlIKwPDQkf8Mg? zyGdB$g8XM-W{Cx)_6$T?_X0;rsG1jLeIBf3%mASwN5CS{xJ2R{CDE-$O(v?zM6i~?xnrF_*t<$V z#c+Nd=^45M-qLDSWjB99RhtVt@$ge?BdQu%vt#b(2R2h}MQC#DTjcq^N%QLui!v4I zB>0Qe?uJHj-Npo}q_~p`f6JsaIxusWPG;hF3S<$9sSU5S8+kn@5%2wod_fxzN#M5+ zEc2I^lqQ6g3m-0O6C^Rq)y^0Zt`+J~!)rXj`-|(U;z)ZEIsl)R*w3iALI(gDr56zNhV=h=-OB zrH0aYk2=)4JAv)#g!qhtY2{f-ZZZcP66gl3xCK%#DVgS&Bi=0Ga0rAH2vG2T{m zMRv9)yTXG23e>1UQz!%>lHIP8ITMI6!!$b2Xga&K1jewenfy%r9yU_k98(gGWhU*P zoE?riLXe)kIUEYHfqI`Qk$S|i4igPqm5900=IP6zBN=_JKR^PK7f2%T@YKyC2+GLA zdv(q0p<(vz%C(*$Vg8RT?TZpvBlPx!px*_50&5_E$16XqTsdF4at57v=lTbKd-szM z(2py-4s5eLC3OZ?87ztA$~IUG<+K4qO?A?S;8x%l`#Ym8+h&l56Ad2f11ZU z@2d-`06}C|RJOJ*KVS_o3)c!sji(ca~(Rl3tR96jb6XzMe@4NHaKHKq~9p9bp_~MIw z=QtO0iDM@uB#Hxx30@Mjkdmcf2BDkU&SQkOLZe|xr~ZXX1#O6_Yb7>m>d?dnrJ-c1 z)}je*?KBNGY1KNZ8mlO!gQ%=SUE4MG-tU}@HU7za-+i`{_j$hOd0toblU$gGHCL{u zC&Rmqm&g^7hNma*LdW_JtN;38~*2kZqN_Zrr^I$CRD zVWP3lDn9WL5?=q;$A5b3>cjJ={`_1nl2CV*pE>c+>=4>{-~8#B`wzZ=pG9ir-KEzm zZ=$``-=N8#jbU7;PESM_Mmu_A;>C0S{N(4a{SLXo$=blq=IP^lf7P z)Ftr^?NjF8BAfLO`ElHzsE?-T8<7vR&m#0+A~)$9BK@RxBykGSl3%RHHovXjDbf^` zl!8XGF{<%F01H6$zb%>MVG7l3HkK23mTG9f96*5pcttwbg6jx0IeZd-i0LT4is2_J zNrs`iQ~*yvu)oIZW$#h#WP=*#ma2bUBzQpa-XggJ#qFGj+>LUmjl0TWSh<*U3iTO^ zy8>5c$siCBj8+pS0mQJZFkPEaSJHwto323M6gq-X%P+Bb)5KT8IkzjR@P!zcRM>8zye>U5<^7w=BMkP^3x5uU?k&my8{7HY*IC! z!0C#HC|0d^G_dy|T(G-Mmy6@<0TTuTNmUgp5(zI=Z!MDh;UyH#Ibo9GNCOoRs9c!z z%Tz{`dF714C<<%W?Od&~+EVp>i|ZQsJoy9^pXYdTcdLdjYACAR*05%lR{33{HtF|@ zkv7TjWQ|X?A&S4#Ygp4(4Fl^Stij;o6iE@Vf+7k9JK?cHFfa%RZc(5V()4ct1+3{Q zVqrnCf@)zQ)MAEE%jv>hh8z5)G|@3Nuo~WKgHkPq3!R<5Y$hQEc)K-Z{fcfLOoiI- z)tN2dox8PfcAHZhfAZ_kzjF>v>};Tq>*3~ol?_J+=*m0ehti4J9VkZ6q6g2MwuQSY zf!mFH@iF2uBj76A=(FH5kUW6t61db1eUh5QtrnIA#=$tbF|Nqu>EU(x33@?Z$Sn-e z7ltoR;RRtKK0ozKFSBp((M^vI(xZc0wrnZV#^7eh<~rIr=$#4AWU))btP z3r<%im1x^ONzO|QE+!M(jFub}EeQruq@WTEu)#AjI$H30JVdHA0-q=DbksYYj^RSV zg0m1GE7p&V6$PO^pV!-Mcw>HBp*Wlwv>DU@KhV|J*F~aK zC=~7LGNRE|gB=|kqd2E?lH&YJ)f>626R6{Kc)T&eZ;vp8GPxcr7KStVL3>Y6B+|Am zu`Pa*K_+vV!EMYjrpnL^A=9!&q_io4kNMyYXtS!E{je@rPha=?)pyt-b+0n%yvyW9 z%u&LiDI%#Q5}$(IrqFFZRkuzyjJm`8rMndpI%JEdz5E^H3$NAhyRaQ8RH{WWD9~nj z5>_6lWi6^S1M|uGydaG0wk7-DUn#fiI%lLT78)(^E9Wd5EZROob3{Zgl&LX}8;FWa zj?l~Ht|*a?4#-{|9b`DM6a+52g$|&sB^}u&)=ra(7_Xkti2$>)COwLxXF%;t>x9(VoHh=xXNOt5nL`XP_B<0u9#4cwm)x%u6|5)@ zUqBW`SvN^u#)yrRo6Qcpob|bsNR%+TKT?d~NQClwRPp!4z+3<~2Fw5s1iZvZ7Ljfu zim)_b=^yzXuUADy6{+8IxxyqAgc`kbUYzq@_Tr1)+oam>#k@D_#ok)f0ta87IUo?p zgKSP@u2i}P22OZq^pfZ_jxY2w~TAb!GUcL=pZ9A7UMG zSXwMQ>^>N$Zo+uAmdkt=k%d*`_6r^0%w09q?Tm%Ip6IH%wU%A;?1>hiD0F|d_wko* zBH!6l`+hnd`pNev%9ZN3zgZeR*MlEHjXWPd^tI>n-ETbbIwTmC@)RHnDc&&hAfv{MesNtrG(McY<$w>fXx5_&-eHQv2g zLA;PgXTXS=QMUu-cxmnVCcU%;R$%w%^a2U}`)_8GF#HQFU?iT6& z;xX}WB7IamDV`NCi;O6yC`x9?X4yeD%W-w7det&2DDEthJ5b!p$(B*6XkI<0{z$#3 zGL*`zb1JO@PBUN+D^@aq(Q4+dfARn2ynJKZIO{n6Joh-~vvYTLe0TQ!anAOg&zFlY zb{fZVlE#VGl2o~=q_m2vs0zz8f!G>BG6q60ng|X00z~r;At6$M#*0Z~ZI_m811UlX ziN2|LHBAf^sbzv`foTJYiq_$I9^0*HEAhuKa?d??zF7Kx@B90Fv2N|8=^jwgUdmr^ z!R*;Zu|~=s^2~w2%6VpgVDX;W7uZS9OyFxfmbzf3-#{WDBtbq)<^A&VKE(5{{j@6u z)5T+sQU)RNbv%<(px+CHky{|S5nb(ZSwo7WeiNU*zMANd(y+ieLH;BrD7V1^ef!(9 zjRFT5WRSk{T{uVYfS-onVaATYSB{o+LLsxK#+xrN{(N(3X(U-X2H(Q_P>0u#PvOUs zS*KGpsecK+)~qfzpyNET4&OWLX6RMSDbyD|p8^Uv3V+|4ZIKfEX3w{J-zojMbf?ra zU;2LOHzgD)X(bOI6ipdaCY1$!!8kFyGP^l@HxU&Qn)0mjRV5UU`v8=LQVeAfgAn&7 zG=RjsdbM7k3Ti{tNhwH}3p=Ug4h)QpRHA9an4Ye)siB-TWKkzsd7nDTr%v))PVzT= zrtHu7D?VEDxBQzvy5Mj7m;4)k$oG#XlO^h;5_M83U+Xxj)^Sqpfs<-*v$j>cSlg?G zKrLR|sG-{b;Uw&tbYP_xOrzzbqn*rqn@i+dnA$yQrd~wbmoBLcb zd;F!Z-2ME2?N6Fp=xt11)9@$Moei!4@8sdxv9FD-HSVC$1T)Vp<W~btXBf99E`!rU96moFwejM|?1uM^Huxj*oL$iwvH{i|i$qIl->5 zYb*k6oXxU`WwqE8nsll?TC5VUc;&L^=^6_l6vbGyN?8b^sYz$N8jkt!z=u!y(9cBV z2yHcyJVvOGs1xyGpTaj@eB4MlQS1i0M8jbpmL* z3_5_cj7w-m>&7EEf|;meS2g3Ax@*avsRg#=nX$l%c&6x5OHvwIZ_|)*W!%E$==QZ$ z%ZeGAifwgmRb!`xSR5~}uEJQ%&t8blt%~cLws!EOx2GBKmB&VU{~=6AEMvlY3Q|SMTiwY zsWWDS7e`IgA{g%Cer7$Z_3}bgl1VcYqGDNqF(D%`f}1EC&@c*)jGNRycJv&rRPQx} zh=y0gN{R@s;7g4(QM{q-DNI?}CfLG;rEsLx%M!$j61g>Dk=wQtFq`;8f=QH@pMOxp z*2%IROYy%gFXK4sWQIsGgEp}lQq+nav8AwQ@`25ICJd~?6P^izd|T#aLkn$U|JK6V;$n4keKL!cthNG%a0?;YAEF9wVk8p^ z#}8Z08}1i_O)qDgt~}%oEw`&!>-CS|!b};BTdd8y2RZ_d8tlN17pc@oqy9MEp|- z7wzSk+%7!X;Ijb4!7xAo40;;P1^pgPlqp>$!%f%X_m+vf=*ASul1@`9K1iB&N$Yg6 zm?;`&y4}T66X$zM`1|L-{;TsiY4Ab4pE1~WOlSCUo+$)&3#>XB(<)r+V7XW{8ofYD zBG-uVEjqfks)+qj7ZDSlrTFyvDs)@rs@N)5_W%7%T9qz$tLO<2Viln&RM zvnR)!KewCLk~NmIt4zrO60l+~XU_=%C+=)G$hkj6 z9)g+T!z_dSfz#tY(FmT&1s3C(VL~*0_94&oaejDaF|bw7lv5>5F{3B zbMUR{2{|@-q(vZfu{44YbRYinm#3>vp^&bwH1*TtHj(?*ExI5=pB}g9wSxmNdvF`Q zfnLKAauRfFZ^L1#{nIC$6=%~y&`Fq?OgPL%r39;LK%<&#R5C4ZQ_XFvxh+zFwKr_0 zY|q#$Hd?c{?3*^aU~k)(>>GB-wjm=hVFBOFnURp`%t-XL4wMJT+lu9+Qa<`pKCCM9e)9#2jr5&FA3UH)bn4zqbU1Va;eA{@ zI5@b|4A7fYsZ#)8<>s(*0X?6i%JG;SpU2AS;7?S!Tn~ss1?aEsc<` zk@ohk+d3BM-Ba^V6gO^xwn%fQ@2=k%t$ybV#U{=)+5TtQqs<#Ok<;|n)^dO6PQz(_ z9!`^Ew$?`Y-?>gQ7L#Yn=nOs4C!d#&w;hjh8-^x^_76QT@DX3W&{@_wF|H~hf4g;9 z105I^F^`S9++Cw_ckigjlO0t(aF;6=e15$%9|>CwW3Yb1@1m(mkI(-qTE~O|t!Q)- zgr?~^zx2^1ayuNx1M^ECUJSt90dkiV2VUi}jJQ;#RT#E+Dm|nuR{Hz%3nH?`XT)RT zS&^R=(SC7CWGBS^A}fnyA}flvo4meFS514K%T^+oCvT1Yq>gz~-+)mDBWyRqHD}Xl zR&O^FUkzbF)SO=~mB=844Fsh5#K`py}a>IKAvnyB=l zW-5Ki|5&^Wq<>}71!t*d;qtD{BPrHPudXJGx_6Z3N?zx>%)N4$Ne zciZOi@y(;Fe;C@*{<+;h`^*mX1lBbdF`$Jicwt_5JPtCWNy# z#P9OhUCb>nWm2bw&5;DGW(J92MQ^cia3tZeusotm78V?Isz>l8R%p_boE)H5Fl0f9 z(i9Nf)FOgJ)0c*?{5k=ppbnAyu<*_0K3(IZCilX%>WsriS0IPACw{au3cN(0bepwz z4}b50EUw<$8cXa%)$yY0WV7{Li71Fc(RU~q9<)9J|j5M``ngksRI-X2aoBSFDTP>N2!O>%+w& z)r(wInu&yC8v3n&IGoD` z26x?9pB`BKlkL4RdgH+AZp|Sb*FDg!j1JPyi;+;D9hw{ByHcsv))o`75@1*&5s&+P zULhWv=f=;g34NY>s*-H)XzQSD*ufD&It*1621=QdNNOe8nkB;~>I@Kd>{T>xRZ_3m z>iR zUP(!p{4qUWba_1>@ukT^+$*Hm7TTmNLse%v=fM%5M0TB(%!g7EY1HMSpZ!kdS zEph8h==S~J7@MxdoMfi{Sc6`q{>V)X?;oBWo*U)|Nn;NVGUZAI_D&1jX|7?Ud@dJ@ zX`06)2^G6s9vtk~FtJP|7N?dmlhGu#Op;nAX+$D?Uw?PM2z<4q{F(ICG^?d!^f{kS%RyI=S|&*UK4|a_%kayV;n6HV$FmGC^D{ihe=^1Y zvw2{?FK7D0EELCB18Zz2zX;!{M!nm@IbyAd-e=+bNJ6%-XC&dWur#9c7G@sE`-)Uy zyf~gMxTHs@pK_WcSWL)4zd>pw200H8`iaJW?*H*qE1ezP|D~nYn(h;q{})%WwRewx z8vv2A`YrHQgfY-A>aJD847%gF>to;Z-Nd)!+?(;Y@gL&cG(H}`hB*Lp!!4SL1S3b= z%s@bv!V$vg5*RTO0Y-PYJOE>3DU8AuUrRn54lU0Mf{NayyOmgdtBQHgdT+oo%4;DcldnwZ{m=&?K4d#g*cdO=N(bQ? zF~ZIRl=cbhgL|skAQ-D!%H7}3E2}Ku z>u67Qfs3#U$bbXypP!W5s6k|B+Q@ZhI6Fd$ydT{YoGFsawzM>dggPW7U{6340Vx^g z*v)&b_|_NCkN@)bwH+IKk9<*0qwB@|;eAK;#ny4BlP$*AFZX5puDa^yp zK*|N8uv%XrRH#-SCFPiUR=uHes%nSBeSH}tLv_v=dV~D*hR$&DS7&jn=wten&gn$& zM}p0HMn9&rI;?RAJ|QxBMq;B;UWPup)={w+`*IDaXcNg`A?v1pn#hf&bvGR^wuL*% zD(XuZ7Per}SXiqk!?GXLbKyP^8bBi))=~_|SsgSakR|vf4H)Eu^OIVZT0!#?D|}T8 zI1e#u46SYqu*QQ7@+tfv*?@|%WuL6f3db(-gqz!ou0Ph>+yo$!8?|FC#p+83(GT9Z zQd{Q`<-+c6Tqx}MR_#u!#eFTAjP^WT`zPVmAKS!r$KShW-`VFMx$}?nkBfb0J7;sg z1Shdgl94v9T7D?d(hg_~EWr3tpvnemOV1CHwpCo)gEP&-?s{u5F7|0|}n^W_zeS zz}?>Y%H50^GImb?(EIdbqZkwd(h1qh7?r>Y#;4{R+$|e7VH>Z%7AF_tm+C)^ll}Dv z;$!usD}@sX8=58y;i$p$g6Na^SdAMo$_-Na=N(FrA#$0(PY9tzBJ2*ca2alJ)s8+4 zR~RK=m}K>{phXFG$Pp4` zKSN8F;N?`W%nM-abl7oyqw!Zwj(r( zN(d!OPNXPK`W-3ssEJHt6|5{tJ|azl7|KOJu&FX`KShR68k)h248gBmHLh6WjpSR# zi|H$IvaNn|{HYY_Zduv5x`h-QJ6aYtl4!(082cPeMuRJ3#00@1`h7ek$$v3SV7Sge z&5e-OGdlYW`UqglT7#yq(>Z-fKAIKjjjTj3W?^Tk5wVtl3iLYSSj9ki85)2Oio#$a znDcT>9JmG#wGFx(hAH+}>2QYCll86A)NJf&`KzXeJp0dKU_|Je?3$!ZfS^!2|6%V; zk?2lBsc>{BIZB4qOa!QsA%YnhA`yqLS{-~cBZH53@NDgHvb95uWtbJj1c*(-wUfOK zF3Jn~m`#mT@Sd}ssa1;nym|RnUogNy-QaMN4+ebsR=L1&rB4IRi^>ZYWb2#P;I|hv zD-+Rwyz!f<@BU%euP59xcBLOV{Uhl4yG;0Jl`B46RTA^sfCK~trQ5vyD;)zRJOVi#i^ ziv2yt#aNAGQIT4H=X8|@a;O8o?oh{!0ZdbQ?U`;3bpQuy_y_GQ@kz8;Bzc+y0U1De zW67yT1F9Mg#T9AtCHq`!kMwT1CjGeY86d?;)r1`Q*Wq5%)J2aHVja`1h!CxXzn$#W zQ%oN8YC6>UJMxgXTA9w%!h!FRc@Tx7kj&r|Ol|&ju`n+mf(!s00KsS@`|h9blkU5} zykL2|=?s-W8gI=M|2%Q*{FY2=^QQh@mlx7NvaqHceWI;_){FBPmp2&d58C-2VO*oEl4QILI$OJxAzoFBpDI?1zOC4UH z!5P=;#g^5#s#t_3B9|AEZT5cH`6tGlAEZO+cp+4XKNMON=S7$3jkr{=>9V{#nhyCK ztG!#jFL+5^Q?BVm6G6llROaLcOnlM&*yIMyA@iI`G;_PT*BmfyrfJPF%>*#8E}2SU zWF$CUB99X8GQoscf-R_KE#z+$gs3Wd+-?PPoRmx?G|@&mBr?qqsl<3Bg|bER((4k9 z69&CkCu!0}iL8?bBu;)CPv>Qk-tsq2VrVnYK?mtl3Uz z7-^C=su68{<7;P$fWmj1j3s?hm@XyfH1+5@)A;NXD8?rW$Yw| z+j%5YYC~qNQP!=UimTm8nv#M37Pd!PJK){LNUX)ALi*`Tc|CW#3=uH4O2w-DLUvN1CP7vy`D4=+b=qx4AUe0}SQSE6Wg4N+L$l zu#8I>M{6XtC=(X~pI3mV={Uuhm|Vqg*hJ2ptM@ zkV2+P--y{FvLyK(f>SU=G2+)%4Qsp>K^o5CE=(}C84X&u9uFP3%!D)`2B~Mfl?kN^4mCDBQ zLOfs}fZz2nVqLXz-TotRt}H6x*BR<7Z#Zs=+=MuuyVgQ3v|P%4*h2Q_4z!Hrh|h0i zQqh5sa>i~RnrEItI-6%5{8LV zlQRNS(H~&xG~i)XRHq0J2Jqeh9tu=Jw@qE6=t(CN4eJmjiE( zKBSqr^A>fxYVb`z5YKj}WZHg`vm4Fnc-)ia3oPyMyeI2tCYG(5Sk`3Hk>$h55r=T9 zH|+9QEDC#?*fx)sZS%}TVfs9)@>cyWI6D_7N?~2Irm;)zkuzV*!Lx|a~%8HH@-H0i5=T46{+@NL(>LQTfXdt@KV(qtD4acO;jCxnWlZ{=t{?? zwW#grP$e2?&p9`Nu+FmVbI-l<^?lC&{Qtj)Gd{nt(#fO{vONd-=|WX}f$3+oy@vlK zeX#!1rq6uB4d46a4=Vgyl|PmLQsHOIM=HN7^MJsfwqUSY?e%zLy}jvZp%eq!QFJ}( za@g&eOj>NV(G~2WOW(ZoVXcELee+E7>1MvU+3oREs|60@V6ecJzYq=R^ojt@rFORV z0qhNI3CsleK%fhuwl)GtN>7kzyuS1UlKN+8oFT@2Dm*UfL zK5j|oKFzF_(0x6U1xRetlFs6)t5$MH>M}`YHe#A2J)*<^((AmZ)}+Tx61C8ImZ5W< z_ny}SCQ*LPdr>55y;kIfA)czJ4a8DgGwA_S&x%eyodVT>jitq?ODWXtpPZdkO3ck- z5k^&T%oLT&(U8g~)!eF>Dy-_PKy9Ja~z@IRcJyohD3eM7md%OtY6rL%~m4x}y zLg{LWPl>9TLLt!tGE_zyVKZ4z;Wk>;ObwugBF@C^*e{+)(6|eody#ZBpULQHRq{Mdg&~ z2`6jV=A3xmiM`G#=LzQ(r{Jt}uhslUE-2DVf=rIVXriOTfEJG_(x5I$Pr~5ewJ2-) zjIG9mF=Yrd#+<>;8yFdqv0z*^1Y@FjYLAwbZr{&F(&8#FTfw6hY5qSvS`9}lY;;aG zi5CP|^F<7kL`EV`lXyn-ph?0VR!6rCO9S7pNvdYEYc?f_MY}4t1Tln-R7pPb42|0T z!1#2#1kNHeUbp`P)S5R^k6@Q~DS99LJFYkTAR~=~djOFK!aRyP- z9^BD_PYL~v(+7sfkDqG%c3(Lbi5i;!|g13{sgv*dV!YvWJm0Teo5gw6tk|#WAVMM=g zznaf$nH7{oq0FjMNSqG-pG3nqF)iMI~E z{NhFYb9t=&+GYPkIFT=e8b^!2dZ2sTu5d2l8R_kByxPCR#_P$ahVm2tt{pcij_As~~N-uFjDlI(~M`Q93{Wji}M7u)<=dIC5)G!xWyXI%AbQ^+$Z6E0-!{o(^RUlTKbFyT&v0B(2tTuLsgzNU3 zXD3;$;EQ8W3vcNX0}psu6&&2M^o~Lp%pIDi#~WQ6o?iUT!J(mpoI3HHQ9feh?)+zV zSct`h;aUD0bQFHsz^f@*)w@GRrTYT&+c&feWF^&AJ!zKX|0&^aIE9t zqVD?AUzuWHaFZzp27j;lnPS{{&VAC&A-Ck7cJuDl07wJXdT5FE4R@KY*<%u4hfe9O zgVEcFZqZucoa%Fk?7q_zdB?6*(j%P+iu1SBo} z&Hj+>LCC=#G>C@r0IT`YVN@Udec$ClVUzMol>@m%6pD><>c?pXrvvM&nM|!(C=6}b zuyNSom;cLm^~W}G-SPMCogMr9Bj@6qMAg3ZY#k7<_t(9Ev@#)N|DAto4ScjbgP(5yQ)HE z#rD4M&T*ZMO)o6V@1@iOl98#bgK?C)=X;J|bW zCsGO%HXIsiVOI&@C#24 z40kp+#Z%t8@Y>ufZ7*yd8tiUrNVR+A>fn|~OnaVv=j5*MU-N;{D97g$Bv<6__mu&hF%K2B$4|<4~4dc$Zh5}VGg@b zxf!mCb618qi3@L%epvZpm8CP(DQyZ7(PrZ~OKqhbmKC{227ix6BVcQ{+v9mJf+HC+ zragrk&C?cau{dmz$f#$+!+1P_0AH&hS(BO9WQcR4@`OB1ck^gJhL6dnAP!&SKIWKd z$Of|<`6@TcO+ad3IqsP0w23i|R`P@Vdptq>4*q5SG|%!tmK^2Hh(VfS!LTz6M1lIC z1xk(FtsL~y0WyX|mK!+E==*ZG#Vc`W|_#zBcsrCnw3lpX9F$-Z#^|JAY$*+xmatNd91c_M2@@Yc_8C;J+LD zw*P1iEhzIF(8vWI*R*^vf!{ip%P2+UcyQjKj6)vm;Iw{lmq{H<(?Rs-3dEDzc(F6I^& zlL^xo+JOVM#mcm!bJI!yOsfEpSIu!p2@iMuyD%DX2r}MpAYg!$Ke3DleTpA9uEv-u z;Z_Z}dFqOw!iFLE(TBcTIQ9=PDIHRF447`HLEO9Usx*g0$>E-R;g}+#3HOj3%_QlYsi)# z#RHET3&!|^GG1_FV{a8XqpMfcVlQym0X$iY4$UJsnL6+EYgU`;&yeY}0V!M^$be?S zpspEbXvP&auOgRYC|GjqU{4{Ep(LB&t1K`1RPrW0tT;7*SKQ&1{}MU7JxCKEEfPG*Fa&Z6(?hY z?E7R5PSyZN;>YmJk^g|DrPc&p-wW?F)yEP(c}Psg5&%|G++^TmEYk>$3U%mp-NU7M z>fdLP9owNun>?358bknPBujsHxp2A5uJBSCH41h3$8e?-NvQ22z%Yd@z#TYS#3H*u zT?$+)NL{Y5cwY3Yya#&#o9r$9zphd^R=Uq>cft?L{$-P2F1d%hUM=T&=^n(>dC(71 zEys%|D4VC!qKK%?Er!i4MVng|iZ*Y85CNfJE)ofTx!gvBpqmw{K#)K6o2hpGRkUjE(k*hsDVIG!n70<8lV0RN*1lOyK|SO$_F_@4qENKFdF!ZRnv#^{dx zE`3K8dg>yogdJ7L31EPeI4=Ph2vna!W^e(!168pMb%7v9U4Wx5z;RCArEzxE<*IaQ z9_7>YQlpeNJT&eZc_T>k2F)6v`W?Nc1T3ijt0-~Te6<>7X&_gMhVJ@buZa5P44Ehe zcF^|s<-r|e2G8P?%y2oDuipbpyqc$saR!VuSCcX}QVU&%dLad#Pf-1Nq;WPCkp;kq z0sbAOU>k@a;6n~5s6cmE(c+4w#>UkAb2J(alRjn-8-Z6F&JeUfzO8TF1|uQANSiR4 zCx;OW%_e*iZ8DPy+K3D@Yf0bx?^6jnfg|s*pTh|?%gjHa*$EGw0X*hGZ_57>!vP5F zeH+iPhjf0SYlS2D8Fmls70(gqB?!=b-x-7z_#@g8!M_Qv7T2|(jHd``6%$A~ ztBVQX6-eu$*47YZ^uK}8@rL>);4_0}3)k^}Rt39;P(!a3=zIzZVAxY|*h!$}sdPYP z=V59$3bZVxB3>PxjCpa2qrqg2U#*EGB`GOIQc|xHNrg04g*A90B_lAs^RkqRC>l(Z zUW(;63OC6?b_ZIAH){a&JLc3p}M zWC|Z@u4+l$$l`E|s!BeVKt9coH#AWo9zh^PZ3(kJL9#SBlxQFrl9kucJBjkb<0@U0R$ z;&C2ug<8K03dB#l^zz>Y>wBHeaVK<){8Cqilke&}V`jec=+=3p7Ou?M{Ax?axQ72n zcC`jKah=h7_iD9ztfXB@tCh62wL(UUy*2{NvM|_q4MqVQ+kmlwxDFJE8^Aoo8&d)y z6eyI02FxQgkj(Uv&a|at8!)eUS|;gqnx^TGOs6v~L)#2tnsG{7N~hCU?sr#~ai;pA zs~zo+d%knN^PO+}EP}HiPDCAJCEXh|V{c$1(HMp;fVyWSlB`Nr#;AW9UkRU#t5V~? z=nI@VLSLmnNsD5hmTlSc?9zpIYNFBi_cf=3Y#i??Tza`ADAaajtl>p3Cc9eP&6W5c zGgmZh>|L;05t89GUroN9Ik93@$D-xQZ2PJG!6U7+=eWGex-!M~-4~l{H?CaOLHSOA zzV?{9Q2-sgHr<`{Fb?Ms+0rjqthaz15p=lWYQXO&gc&A1FitR84|Ht$wLr?ZdxYJa=|u-GpM1CjP=&`HGe<$iVf41nGlck9giU7F?J;D>12P}T&J2j)53+3lA=Pse zP`Lq>ATXrB#9ICS0)fIQxJfd|I(Gj$mEvkEw$iEMwz?{R zeqn7R<#^uMr$h#hi_qR{s){jk861mNTfG%Z;YK1913`M&2GnlXy*%cu5@LyBDzwlF zoG!$LLu7}}a~vO%S|!FMVTm@D3Z?8rA>k9@L01=zQrk4S8rmjdw9+`G?rKUZ8_P*v zNaa}#8>X0t$Ou6b`;%<>MM^8aluj<2Z?^~JXnnG$CyAwFFRhuIPBg4Y?O2-r*2(lw z!7*FL9*|82stR;Yx2swy2|W{<1nyQIo9;nsv{chV#Z$`T>L%-oN0~ zsRjMAPni~~s|)?sqJ-9k>+98CgZmNuK6HW`Eg8f-0?K*l02WHa1L-yZZw0UAV3OsU z7Y~u0*N})GiCDZ%E+8+A#XjT#;7__TBZfy(0mt12IuRs0;afgQ^x{Ll@^$BDDVC;X z>3R>x3@n&01P**9HOJwwcN`o|tfYEu8T*vs;7&zo%b-1Ill_#iAmgFAAqcnf!>wf6 ziIUyru$euK*&-6RBkDz=N>P`C5L%@|9U8GPr$q^D#?YcB8le?vF@#t*S|N1#=!BOJXG^ zjg#EG)8w=H{esV0tQo4)XrtLVu2>O_XINTy4ElUNrI^Za8d89batcyRP#sba8PVL; zaDpH~mF`ImXvi_A$1iK~X$@jACKZiNNR!Jelle7O;f}0%jn~`fC^kFzH`g_RAlvX? znv=NMF9)R9T&lu<9$)x_dB=`6+?Ax6dq=Uk52xmXEK_>h;q6qF15|@BV>SZcQS8^< zGf{V7SKx5K)P&kedw}o`S}#{PqEcTivw_LRRs5QYLu#G6N+n||zM>ARe^W^-JYH5w zNR6wlDp6Gk7@Gzn5s9mJK&4$EoFEMP{E%`$!FlqQF4$18ARuEbu@cA0tU5&Y>imH) z4(q{!%5YdN$j>b>`aO_5E?$2|HjH1U&+OQJ-ASKxb}_q}B`hn#J+Inbpg!9TAR|Tx z8`wOolNu}wnqmASIX>VwB_oj^bf84A3&02LJVkpIdNWwlVvNa)IyRUji2*>bwemfQ%XNe}*s!hJZ=FFl31I4hmac*fm5h z4|;SCa}>E7Twi#Ssi8wIkvE1!uFod4mK$ZzTGIPOjG>z?DaU__c`9WK0ER%ouwb* z+PUw3fVE#7p*J4=&wCGhXtiBqe)5~Dq~mf(^ha!BW)hgib#<2<}PXt&FvkY`31COc6TN|MVE z!)0K@h~c1_8pFA&tLXsk(!jd%k%49+oaw^(^b?@~Q&q`{M3|!5icOBo^ws=mW&Zr` zd}5k6@679Snl@+eeP?PRS3FaT1lXz3x+15ubP-N>t;G*NZf@lLe!j77=lOGbcTG#; z#L7&&Y%g>xQZ$|jxmMjR%F&;SWZppXJh6O}rJ2;3l& zG@(|6+S-^HXdqIg1QpbL=%+TV+A3*78(B?L8nscp?*DyvZA_&4%PY_NnD>7?&+mC( z6OZx7;;fYJO|u**z|bUOS&^vq)^Tf%Foh3~$6Rir-M(1Nei^Rp1JVk`Vo9f2lxnPz z5O#(FC=hT$cF+VF4G`51KM5C3}-B4AJOYX_1ydgs0<@UTGisrc2y7N~6&M=~-b%eM1KLAYrA3}DG`7S-{5q?H>6iyfAh_oJ4R1mMWx}= zBiR~sb~YB4z1!EWXcYu;xy9$VB<;nQyrrABk5v>6{Qw3)`M(ybsWA7CBZ&bq*iK{a zFvC|2t87xcFBtU>7ERqjuxBS3CvrNgi08Xux=t{za(X2iRw&GgZF^a3t7vVJpTa+y z3=%yP$w&w05+La%w2#s=!4(Dcn5H6`4m44=c)iNFbhmcA_gdIsNj{Cw#bBj`X#l;by_ff6vkKxYn>@1F@p<;TyGWy-lr8_=nf^cJiEfH0ZNE*6mBQuKFu4)D1oSy~jfZQ)Fnx z+GNBeZ(Ld$`Qzu|3IS;}NsMR$yp}8@CKM#CiRkp#pcmCl1iAq*4J@=v6TDttuH>Sl zn&h?w&B$zayZ!M5N`=U327!|N3xwq=-p{0HjPS#dk{I#DJQI;3LK$1i6T5(r3h=mv z$_z1J;H1)v238EdiF2M${&>e-IDCw5Rv==OHV2s+IwHS$J+nW zk4F~qcF{q!sO!BK2fNbMX1TL5rsJBljtj3<4Q=Y~uHQ3OYAb#6ZnlT!E4Xk1s-iMu zml(_JElq~O2^bZ{=Jt4Owisr?oWM7kD`3Sn04u}eF~LZ%G0wy&(n6^M0nu17n4_A> zXO(524}>XP^ETz1-JpK@IcK^G%bbKN)iPoH3X>*PDqAoVh}3AlMCA&B-OLb}fe)<2 zml(CIVRVJ7D_QIAdc|Y&%qHv6@zV7S+ID2i`a`8JJ05%>VhQ-A<;jqLXPXned*CW6 zT)%nZ1Wp~vvUe|K8M^|>Tld9HSFcY<>c>@ zcq}oNyu{(vx|RAd4jbdf1PjA21ubmSQddictHI|5YZ_*PaO)iu`uPvg1`16`(#+ zgvOMkRvD4zH$OuYSfRp`@P!~z0V`IV#1O|7m$^#@6eZidP#ExYg+)Dm_iorCS-zz> zP$-moVR4;T*0dM$4VaT}Tzt9C!>?*TgzvHC*WQ2c_>T7dPqmN6d7N)}=plG*&x(e1 zE87hQ%QNYtPu(-{=^@X)fz@ri!Mr~}rn?oUdl358h-$Sg$0N}!StKc74qAfJ$HFZ4 zIWKJDJ~DjF<2EkOuja6TJ-Cj;QQm7}<0=*Ij7#YN0tMHKL*p{gI2)W^ylp}>38u>+ z-bOHPLE!lYk=5zqQ?s|}q{pG16D->hg$GpGqsc&;=!Q!Av^jYo$p(`dU^JXeHoT2r zWpa!QK2`AUiw={~=#Ztkza){tFh(K=1IGhwAmAX1W3dpVoxMdt&Out41(1WyDU!w& zDg;2=TBJQytt1hU07*V$DBmv7aoS93oW&xu3+bVe2D_pVzC$qx1+fYQD@4W1yrA6O z$^LME<65-gY|~7q%7#l9HCD$aQ>W8jYe#igj^`I`UbgW-$|v;ZAI1HmP=BGLxa{y} zHxZxJjxSzxXjAucj@9LQL+x6)FVlN%zi<0Mf46}XhH6MY*a{oC9dxQ1hW#DQ$EI!e z+}>)GXO^4UlMF&;3&Z(@XrjhLsCnFHcU*xk`3W{p2+2gv6_E7=ql10&nKXwp*K0y1 z!p$aASgA=QlPOuS>erN$GX%Y&7NlSpFB+fLv(uds%O(&EL51ZIf=;Q~JnRe1N{nMHJNPtO( zChY)yFiD%K<(|8;YHXYtOJ{xd&g$-W&v(xE$y9L1HZI9u>}PNB$<0G99^ZU-XNqkZ z{L;}DL)Rn34FG4`@LIi@)|qtLMyu#T-&%dUen@|-?$`R~{*osB!L|(fZiI{Jv9>Kf z>S*)p!8Yosv&3yWt*uG=lfFv@O?@F6bo1#(Ru#=<=vG;!3MBpio7z#8a)QY^poOrBW>| zqx9%dyChi{t>+iSE>jP{;2h99mos`Xn6*MQ$nDkQaO0Mt)r>A(WOjkvTI<-|!nqg( z&y|-KeA+!C3^W?6%7&C{s&FH;Jmq4Y{9eOA2%R_fr`h2|^`82G5N+RN)>GamLI=0* z)&iw9t(z^i?OiY7mbwq-rEHs;{CrKi`_fCV?K-pb$kUY@*LPJacK7pP+5PRkuYZES z!r!mk^zeeT)$V<~TCwNf%zt_uS1i(!PAoBYR^b zGPut^uxf%96Qqa~_|HRk)xeB3M5dBtpfY_Ricx_xD;80%TVkl zK&O;$AC^O|;B3Qt&YI960=%yUW|G{^_wWNeb?|Y%mCy1V&yy+ie_KS7C=uxjz%U0y zZXfXG@ezN8fn)_N7%7u=naHxA6|QOwA4A)TcY9fLEX*Rr%qaAUi7)}mWN|SFW=PR1 zp1MuPn*x@_D;LZkd(KnK{we8N+0o|W$x!D4(YJS9LyOI3eR$uPwk9$|u7C~w%)q7s zox1=~xMl}0PeM^Z%K&Ert{K1y0X#E+Ga_D>Fp{u=j#@-#*zb~MPjQ`Rl4TZ?BUI3^MQ_48Qv_M>AGc95dN6{jbm0df<`U?CR0o3f=h8aLDe#typU4v zfytBQ@fjX7lo()uk^_b_EdoFp0OCGJzk@ig&;h8>V3BN2m&;vT=4Q*n%l@xYE2iP} zMQ`Dn5ii#}0hKldtNVd5-4E4@Np!{*OkU%Ur=ya+4r8IO6sm0)ragn|XeB)mYQI3_isR>SbQ_=qc|)w|_?pCyeRYZXhuPvrPa7f1_Inf|(=WI(WCM--k?#DR zc+>p3_=WjDqN$|RA`*^{;>>xs(*;3ycmj622h5=x1T!4NDAbb;Az6kq-!|m1`{7*= z>y|qK9MHoR$pBcEA*T-_eR-HC6iSI69=ZIG;Rk?CUN8-{B$j9g|w;cspN_2$Z9lrrlH!DEh4 ziODu8A~DG(5!*5Rn~e*P;h*gJa!D?~;27EcMlbp4*dMlZlYfr!yWYY-z&p3C|8FN( z_VX9=FOHA1ZiL@8JxEmYON0;)I`$MoEDu_@iQ5ACQ%3$Ut|6;u$R9zcSbluX_+M$z z^d;m^L*7h|o<{d&RhET&$E(;B)xZ~Z1H&89pNG8`sn#$$3A@cOIufb^Rwsbf7KjoY zP)Jb-!EFv0s)%j_%h`u&z;;GKE%qTBTv?F{a!6s^Rn>ZsPF9PTzZ1n#U2-O)x?oR6 zqxH;-J^W>wUY|_dw`fCm46V`L8n2|y1z}(g9Qw^zx$$n4}K!lgg5p50*HguJ{ ze^wO`JK|3XdR&Y)hB5Z8&;nk)LHqICfJN)v5#LSv55D()ZA*6EgU`(Fc_`an!j&Ef z1zmj|!HVYPw;OkDI`m{&qcyx^@rvrORb1DyA)mjq|AcYAOyL^mez9=woFC1YM_*0L z-}svKH>Rxb9$!OW<$54LXyjkTHHCb>Z%Y0M%L9MA$8WPdYCsF|hk8pjjdIn=tZ9jP zv3sle5!+__F8Y*mkRGQWy8oSY>`XkP>bZufsn09iDYe+Y9Y?!RZ6OC@$x`0Sg9ISR}QsS1vO`!DX35W?5!mhRf)qbhnNBM)7f-SnoFkz^$HYhB@}D~g~o3W+id2CLZjoi^$v>{)H-Yx zBiNl143zpXN(BQxJ1i09Wx}9vR-k1Fko9~f+chKPz#G;>N70~qHSmJ5*o1V<^~RvG`@k^5<*hh$pIdB>K~Y1S zfrSU`bus%M@v3;WnYWA0&F9RdedX$lC^`PYkkyyeMhh`C5fzB%AtHEcYz=dqF+=p5 zBI+Dm^qrA;#o{kcM4XyN6}FUJRwh$020(4dW^*L0s&r|k@Uu5pwTS8{-skKbtrYpj?m?Zmb)c@NEic*vc6-34T#HvF@V`>)mTup_ ztgn=>^KRN$cY5$g>w3Fe*Vg5`h7XE|+h1rhm6Y~}OZ8_5RyA&axwrf6*;m^F)W5WA z?UVc8X}Qmx?4Y~e>8H#Q+0{Q+cHes}_tr;5kncUC?8+6;HvN$7ly}d{6>t)bD3wGz zvHTuNCq6m7U9Jqn^dlw-mEl6w=zC*Y6%K(TulW5%qF%7mo+&bx2{5h*#&weesABpL zR~&vAmCSZJMF>DdytT;0=`|Kcqt(*>s2wMJKQWuFPN$V-o7Rx9MnjZYV3HFW;)*9i zw6E3jGXKF7R79*OLbaI%8D(ssBv^vyslhE?<-G|e( z1{}(jv=;A>zO{9H&8I?1Xi3xl{f#%y4Q*&?Flbx4O7kb+)Ga|#2-t8*Q0X;fyL>_) z6;5sf6<87fQD#LiI(`kh`$5SvWV>Z!qP7ejv(ySc!dZ>&Qe*Y+3s_xD4qP#bSQLr= zx`K|E*%?se3ZN+I`Q0XLlJs1{G)_h(y`QCzCBPb*4?g~3PY9BGaFz>cF;N!mQ6SJP z2gmbcYia_tEL4>4QWhW3HQD$ zpY87oXM2D80d+PUuwCB2sN6lGboYOfUGh7BT)6v~q6B;oNwo!qQ5rqIh8jQ#Q>JvXbmeQ6Otoe~yGeE`Uf2JkPpMB8R9QJeklG>nJRVQUHpDEt4p`|6Z_guay z|LD{BGO}{cAtgbo%sM#dMW9Rw@F#x_8K)nQ364aJhMP4d!NXL_;?fI(#UY9oOOP<* zWXC0p(G6g&a^wfmf;#<85Um0QL9_%2W_O1>!pu_?U4 z6l#QMK8?~4X#bfkL{_|@&@&SC3_^qzB+5`?E|z72r_6DsrG;u@UT;0+=YnR>NmenV zna9j)$b#U(!}&W=yzTHn_dEHovzs>hj4r2Xd8Nm>yUErln%7L=hC9cFfB?s@Tt6Q< z{)>+)vuTSZSMO1QSna0)u`2G-Ei>3;Kd;E1Y(h)TI1^0A>-S>YNo3-KsCF*!q51^-RX4FYr) z0Ow_sZkJlTlm}?NWdAw7fv^)zz4Dlu{G(P6#M+w8sw+%^Ow*Tt@3*Ux{_=TW9`;zs7G?_jfm^ij2bRl`docT>imHT)sS>C|3Di>TQkj z7Vp6N{FnJ(;iYpe2P>@Poqj@&%I>^gNQpbMq;q%v%!v=6Ikx(yz*a1C3g1U_IrdE< z$LRi9d0**ibpLW;|8qnqOB2iz6YBq>HF$%x`~!?jFy8APK_^w@6?ebqJBTdzV14n6 zsI8c=NI;AgIou2u>~>V^aU;9E${jCpyW?)VfIYQwq}5lN39Fp|j}vgT9vodoj$U0< zS>|kBT9>>*K1Q8rHIzoHJyxG+rqQ#Md{-)JOuw+Wy=_&iHnn1$yfc=|rL?rgvC!hw z2v0wSSrv#s4xi~PgO5UbF;!Jr=?g1nCBboWN#bI$lu7MYGio)*iInZTP>P&DFYynk zITf;>>}hDAU5*01(i|tvLc`O^klYHR@{f%33t9g55hH(Fb$bTp?FzgL1&GIm6)lAM zJ&K3-^x)@!on>c`ot06aU4Z%l=(B!`jP(l*Ex!_i5-77;xA~WqrKYCt-MVOVHSdge zcQu!)qxqq;INiD8X1c+Gi(U?7T-&@(wmcQ`J9MtfjLWD`$EwK}`K{gOyzkC}ym5oC zv28`;Yde>9XVY1RS=+sIJ;i@6WgAVzjvalY_Ps6rT|$wwxYQbq#=QpKkPRH{1!1$7?PqjF^k!6E?=hBef2<726qPF&M(y8M@IBlDPWWi z9!xOwVpMB1ToFU`Y7M8-6%oCG)#_BNK~I1#FG@O*PFG=e%T6BTmQZ^eiC&gL;V9^J7|#Mn%^?t=3rhj*fMUUU*n@;}0>EjEs;44>IEmz~|6ncdmh-PxP>GJCVf_UvW6n@yc~ zx_0c?Zb;nRXwoPsqNvc)2DKu9XrYPHG%ct|2D5-p3yS7Pa5EbH$l90Em zYNWgv@c={%Y?B}m@_Nq9oZXr4|Nig4sYcbVie#r+h23UTCfZPKacrGPl5~!~ zDfWX@`stfG)X$(6;EIi6BhrX)5w4iq{d(ofmCAeXk>l%YtIXHmsJwfbTwH#)^2P>> z)HUG7gHBJmHVj9U0$aS>O|B&5fh!M$Fhzr9)CztdD5t>^3&QPvOW+tc=i;&3lpJ?Q@ok~4h39LAA4td2FHUcjCK-(`vo>e`*k z`L+8a)WrD;eeG7|^gmB9cTZOkwKf6X)NI7BOu2d9MhsepM2l&fT!CK|hGA)jb-6hY z;{bNqfH?r{<2@AZ#yrQtmmItZHYsEEQM^X~CR_k)2PQ+%Zh-}=Ge9vAozX_t?w_yR z0mKxbV=kVq+`3&k4cYDrrBbW-2Qd8%PI^6Lo|6J5S!aE)dVubkd9TNVB#A}ju0LQx ztI(zrX90%}wT$#gXaLUj8qlMVJ_o|G-iWXyB*WC|zJWbo`J#R(^H{2Jhx%pTfge5h zlaq}dje2RMUN1wx@e3+UeM)}<2$Ja7qZll&4MM^c#_=UQheCJ;2CrGmtE%k(MMW|h z8A3^Q{U7M?#vM`$sZSq98Xqi|M}{kvmh12T0eLNJ?Am3Nhg$aRsJbpNlhD@I(3u6K ztp8zJ446uL{SzzT@tL$0iot;om^2*~7V!eg~N2ThKHme=pkW=o5B7WGoOv&O33vywivY1mzaZJa)^3OxpiEK1iYl0|KUNQ0WS z8&o?z79nRs3N3Ef`mo)u3%O3K+Iqnip-=*G9*x=I9ux>f7kYu6wu! zz5mZaKg`cTRlcSV{;7qc7J=<(>N`#w*^Endf#C%g^>3 z$KP^AFBOdX;XrRO8*gPx=>uOLJf!ozXQE88p6x6ov(S>RFH(8xGWAD@adjEO9E`@( z5Yg>PhJuU(9Umad^kt~aYclm0Du0c1;luQ8>H@n1ambH`7U0{z!nwo?%Ok+_*6 zSwNJ{6et@U*d%rku{+WyA5w4Z09XaDg2(OMfF1g_i^0sWt$Z+7t2dm00LyJh+wBIN zI$bom!I5pp>(t$FSd_U#z1v3)muR07RAf%!yh?AjKy!H4K)@d>>V5ITh^mBTrbA$3 z`Ny-Kh+uRM);n@7J`QcM>d}T%jaFAEl#~?1A4sMR!z>((6cVz+#)CGuYxk)O=qPwt zLc11_8<>NFOqdhbug~$4DT*{|JANm3Y5Z&3#lHXIVnRcuoZoWsriaZV#KZRSsL`!W zbeFP^89myQdY1-KI?S8^ja2|a`eB7l(=Y+rFR2;GcvL+bk7O&oJ>+Q`*s&Wla+Q4( zvUdr+IU6g|0#*p#41}u3E0~!~5o5kcEP-C64XW^A6cOkm?#Lko!`8}lM@J6CyfVe} zwgz(G`&h!v5e)=G&MNw0rIKes54N>nH7ukd4GXa45|`O6jF?w+3OCCC>py zC)p_QdCrP+DxEK663Kv?Ov(idLZ?uWWJ;FR455^!Rq_fiUYh5UiI5yX(D~n($>)<| z08XZ4Ik|{$paf7DikJyPrQkOcK;tT5(5BIeD8SV;Hil8%jwvV5S=McHL++ z6jDEHRp7P(e3FyCMmS7O#*#I;BN&p?T344SglJjTV?H_LW_*c4SPsz~^V{)q-6!Pa zbh8?(rg?YH7uL4L#@UKDRW0dk(Adm86Rd!|NJTvhhzC<8DZB)xV!Q<8u1xuSK<;ml zOhmD|S?X8+UFEl;+D_)RYMq*Rdaz#K_gH51mHx`d=+SFPj`K zii}`+lcpfh3;09C5WDoK?F${L0|QNCBN8>!spduUVtDmM5l6H1_MW|^u`lf{4{2Sl z-yJ!XoKau;xc&C4){#FSpLpr}?|`!AsXWdwAE7jQZIU$o^Oi4aLB|q}h7?5#5kyJ& zm+Z*{YX(s+cYqxu!vG?Pt)DKx|@Zhihaq0KRdk>6vKIhVofvvBBtvA8ePW03H zP?})=7v<#|+qQMZ@q0y45+zX*C7aY+q9}>BBulcSNLFG;^rKenIF6Ir&f>@NG~&jH zQ}q#aSqG$8+-?}wbz87DZIL}P>``P55XFw2WkrTOv9=2~pc{r3Lkld!2F%?)40~ja zyK^boaR=-}ZIB{mn&dh6od5a#y+E^*$~v7?&jBo}MqZbLEKfeOfT`E_94HPqgr@r13 z>N;w|$+^`1nrwi2WHZDIEUQFXREcyF>qByMm9PpAj`S*k*Xgu=OeITW56^b*l>D2; ziII`1{^F5=$-vRbXSVj12YO1So-gmlfBgl^g_=8x?b$AAS5Rz84jkOJzo&e)*&YuE zMUOk+_HF6v+}4~9HiC-0f$vc#wEqT%5|N_V8q``Rwa`GY!$N>l5CT7iIAP{dH!pCU z;WBjtd2p_-DXF@qKsndp`T;G1y2vUm>Q@zpI&tX9-+r!lD3R$MojCT7{-N%v$y8S& z{7~uX5|R|CYYRND4`7pik-DjvBn3EIk_a)o zQc#5|AP_NEMY2?b;1v0$-j#c;k6KSy>s?9EIJ&lEy48@0y4TBcZRMzPv{P*Jg=yTF z7Wz}KrlY#BlTRMret;k0^ky%gv}wYBh(|ickDlGw!7VUaOVBkao(yRV_J~94IF#Mh z`Q6!FTU_;SJqPh~=#*kLlO>{}WS0YTP zYiv-UmJJ35h*Q0Oo(;l%z=7Q&|EZWPENx&QL5!AO#N|0iQQMsEy}I4;a8^imyGi6QTqJK2QRLCcIB5ii%)(7 zcg+9l&6R&){&&BI_+G}X)J@QS9-UUKx?y-n2Z_(IEQ!XW9_Bc7j}{O2`V)8M4I*t30S(uo@}>teHB#k%W<}J3F;gw{;v0x_f%WBhUDw%Fd$? z$0d`#A!L1B2n@A9y1&;yitoMC@xn3O;Lin@K;nLx~{*H-+!Bb)YWXUhI7Fm^fEDx?Y6T%|Hh2636XHXoS5 zGc$vWQ2s6>xyc0C87KBY=x9gdzUi%=+0tU|;ZgE%KOB^ziJ>gcW_!!SBUa8IFwE-r z?wj5en@#A*ZTC^vE=?;&b8dRNNFJPkZ5AtYsk?VUS?}H@ElM`I8Hylie8~Xc=$3`RG++oJdGn^O`f(`ye^I45d%Rn!g)$mGU*GC^d*g*VtZVQt=!@59M5x{p#7FF>~i}zrt)6- zj*jXHwI}>da-d~4%P6Ixs4t(?7Hk&5XqWtfaKvu2dwnf=U(?V)&cJl1#g7ayc{aQ=x%n!Bqh?z${^SyO}juEN=TEb)yRRbQ8@o;HJ46 z6}dp4NO2TFazVEKLY90DerxNf5}yha>S!e^qH!k6KkG{uq@ZZ+n3tZ~HJi$}Fy3Oi z?WAVltL0gr*wH&NxLy0>J+9#&MoS)dt67$^#nPvU5Ti4=h59}X1&uB(0mZ(*0Nh|Q zyR@V)Ou!vlht2H@`dlE@ijlE^OW7k~WnaN6Ws3)&|^KakV8$0`Tzo*>{)ANxhY}U4|hHt*y=-bIw9D#U%v+r2}Lqh&+Yd<`{zrjsUjYf~j^Hxv5(h z7$!z0GbrZTCOn5s+~(%3qUNz=N-d%t4`5~@zxj|o-Q@%QDN6D8mCJn#EFZ{31~;N(0x zJ>NuBM9c!*n_vWuq-=YcN|3G$6q2&&j9J1WT~XG8wx~;OAMDCeVyK~`CDtv!@zKrqFaPjcyT4gw=e$B@^Z->eJNG*~!-w+EKK+we z`-Z`<g94HB(#|c9T`GqM7M#AP6h+(h*~pQKAs3h6A3n(W!WfCUb9+3-ZRL9e>sKJ zYPq3Ux+>~{W`iRU53#}OY!P3b%48D0AZ#XBHZhH_qBw+Ft6hkbaBDEZO0g#(ngaE6 zscPv<>IsS1GCr{kwN~O%iYS0Yzw%Qu=TyWZt>rGOf(~o9C>J)B5_xE%8B19uWLueV zVAQcuFY}w;u3K~4ZQl&bpItRPplC5O!AMN4sItmwI_A>TR*hWmskPBoxk@!0k8!JF z;o$P5-6Czy^(7k(`hb~fYH-!itXj?LZNaRwSJj|nQjvP4x#3HrlP}AgRB4*x6mIGk zyy=)hGVo|JOdwnwS5OJlEJz1b;ZOS&?th(CY^AtMkNZECqvrWDiUNKMc@TqG6h?n3 zuqN6nc#EY^Ct(d&Rugey9hiwtfH}$^3>5J@1(x-4A#l@oro!PGpBFZwejh{KVJL>7 zw6rFt!S5nFpx}U&E~7CKVEsjWtq=@yUIyCpwJD#kHXMS@>l~+WIP7+FPK&Q2k-&zc zNDGaaK^jQf8l9lgR87M(1r9wcl&%QA9!p5<6r%KE5Dvrb7;NrJy2AP!$Gru!=g^(1ZcG zQb8C{sVKEpLm1HMfOf)wb|0qhUZpbJikT*yE$Hr@ZP(0(zl+#=*S5Io5MWk_ciqxFNi-%x+^n0p6$Xm@ro zKKCyjS{_?{eiPq6Q7Sz^#)kdqaaYX$Qd^Dl19Ap`1JYR%2`G#17X-p+yuxUfFj@_p z2&2^rjwpN`j#BPo>2d))u7OVxh6N#>&NLE+v)TGYT&gi9c|0jgCe14B^O8Y;!S78O zX=K)s;Q(Wr+%w}F6DgsA@Xhn-c(R`Gok%ohGq4fuX%YTfIz0yYiS{x+pP8ncRVpW` zt`K1!9E_wMK0zkK5wO0`(O*u=O|T)EI5F~h9gLJKEC5jm{7;(uh{HAVs!ANR+x)y; zMdD(m1{)QNbVJQr`pn`gVPiPhJKpy0XlKoS4|nVPA0IvQhhI@$Mdc^WzaP7}e*4O0 z2ZJ(dk*Z`xrCv=R2;@D6s#n=~$F?IEZtvZqI~z_udHA(oUeyVUcxN-4f5iFdzBYckI=i2WWJEoOzk28JPgDt(rfv}gv-;<9p0&x zt1b?|vVPwZj@Pw4!@U~b!0u?ZJ{92BjBovCfm1@D2m%7wfrfW`}6 zq6bGs4*^&Uu)1qJq(Z%3htJOt>H`6%-9c`-T$D~`Bm;*=W0Or+nDuzwgxQ)JClm0O zozLO26K0K0C)VjGycYC?F+~_0XGvm!!iq^LlaRBd{^pjYB%1j0lSdjb2^qB^X(U}J zJoxa74Nczi*)g2h*)`m=dJQksBszBOe7^JL!?9)aCzgPDX=Po;=~3nDbK6tj`>JMs z$0I)W5G@=bK8Et8E__#UO+u~~9Q>}RixT*xT)~i9s)CI<3TLIG#L8e?nS1 zLs17C2QfOIUy2$G6Af}w)L_|ABueT_V+>Q_u*;x#5`bO!=7e4_P2&%c62CuDM!4Yf zap7o$U>ypvwZU@AaJpPhrcT$pA%EUsD zkZOSheq~wvV0TiQZ%jY%K1`Y#Tq?Nm-7SMhzTVrps%2eIcXiuX^YQ1uJrU>Hn+8L5 zcluw+Q@aMv_2&A{xOpfV~aJfC~y)C{Fo|;tn{_^c%u4OsMYEPIabl~IzvteFzfLx#32^ngwm*kpFMbT63daQh_750X*#UeBS?L3 zBR7PIIO3%6#+Jhy%Z3T&%#!f-59d9A8zk-mF-x*;g~n5DZvr?aXraqcwY4DFayQ|u z3vEXFSQo{&a(Ywhx~9(f4=rCi@FwNDd8~h%7>>Mj;7IozY8?dYXDr6eUZpD2kLR$$C(hWIYl&qU*#?q99HaHBP*0X@aKhnkMaTE zdlXIEKTC@O8``1hhGN*Vb!loRwUaDfieUq~7AUsmu`c_OKgECz2KJ-FHZ+fYm!up! zj`LXZv#@b5FL^0|=bZ1H`w@S7?9H!4#){#0wvDaa^~<58mYVwj6ATefM_Qsf*}sh z&L>o-JFz8UN+dX1k}4de!4Y*}fUZmf`oqYsp>NaCx7lcnJ~a>h&lnweMYDLFf!YEJ zFb7DF@@v43;&v75dl7oHze0gCNxX;4+MUd<+GRilDWMud2RHB%Znt<7 z7Axt%eE8KTxC5NY%_-a#jube8;|RB#oQ8@Jw1y^v2<>3~uTWd~tyb%*_UFLfGF*I7 zaLM?^*G&JtzS_aI7ZuLgCG^*0NC8EIP-U!Wn2UxkdkrP`8FK+EIszBXR5Nc{ zo?4zaEfsbMFL#hJtnE&$?Tqnm#y~Ek**zeKGK4$Aiy1SQ0DqW7ae&VZXQ4@Cffi+A zf{%nm3}A;lLu4``Um{@%ft)AYZlC1@;8uYm#JFL_UPrJPx7Ms>v}Of+9r;Opg`26? zbY_9@9(nv4nd(?;GBs_VFSA1nRoRALQzbI#zHIp?_;MNjNA=`vELT+U>9T|e|J346 zJqdRT&OD8ekMFy)L^ey`%(!9a(I3%=X%h|5FR*Xbo~847>tZHey#*8he4dFzE_!N) zleY{(Yq`l3yw$d+V|s4O*9i_E8v9Ccnz=QLr&j-Y>g|?rYXA3d!|cuBgCm>Q)*p*K zH#CBDo~%y;Pb<(mVu|Wmg?U;gu!v`1|-j>#@!2!s}i`A3^Dy=Rv34bCgzXkX+=*Ks|ive zfzGR*DAtOAWfI3j5Z82IVb;VvlAFh!LL}n8S?*}8yAQif?vr!VN3}=XlH|DM4C*m5 z=<@{`bhUKna5_tAyKHZqN>@p`Q9y0I%E1ki%B;+R*rcZxAY4KNgmiQX26zCM7PiW| z0Dx67(kdR5soMxO>BgbfpQy#ln4(H0ek%c|(G))%H^rytr<`i9Bx*JBW?475Sk}#{ zx>h^!<`Og~`BHZff9zEXZ!-y(v{}8~NTdem))Im8SAI%;N{*wY==EbrhJKKBF~wvN zhMr;vw2Bs2G%i3!eFDwiB&w1h!+~NFH#igEVg70I406FbM^2yud0MqQ9O)S8MJPQ* z{`LqYTz~Y0W_p5ddV&x;PM$^~qB?7OxCso+6reaT`ZK6LQ%}vnpsjU(BYYOCEK4GW z4q(pv{Tu*18(fCjwVOa$l0@SHY^6S>P14r<=!2V5ed|`Pc<}s(mk*AA^~I`iaj z8hiKVl23K9^s?T;-QR3(UxzV_U5QXfO=hT;SB}A#UQq2cQw;S5gMAk4MGm{8Xt5CK zG$9@btQd@)v&c-7XHlQ-D@Z0!PdJ@OnIcagQ7MW?)7nWaq+u7-u?q%yj2$-zyE%cO z19u6Qu)tc?!6PIQpaC4P+~%PcFqEi^RF*KnZP*Ib(RbhYVJn%tFXs*K+kg3^bKiPV z4Qxxu-PLdJJ#%2^eqQR@?X8zq)wZu`zDsm_I-```Vt03+xWBb(?JIk}tGwYGP7g7U|shhqbolHnB&HE!(r~o$oDwlwfv72FrE_G7$)Y zFPR|?kQJdQ6J@$#AP|Kv3goGasu_KO1nLy}a_5&j@7hih<*0MSC)Q_B25m&!h_GrW zw>l)dJ?cswCr_d=Fq95=acpes6nXM}N%92((Jr_g_xYkQseYHM(KnRe&>UIas1G$7 zYO|@TLnC-cK0kzip-TQrb=fUj9ivh!9_1N}1sx}+(I|E*M{#ttHAPOVbX>K2it#w_ z3IrH@!@=`?jn#u{J=>fjKRB{sL!(xQi*Z$L949|OtHBt#KyfvA=7iG&GZA}1Nu?kg zF69|*&@usEDLA21FsEj;)YeNJ>b?$Zh!iD{ZIG$zPrOy_bv@#%iuM`~8~hU3f>!h# zWK0|^QPSN|v|9E2!1uu^;%%!SakPuFwpDkLvacOJ<+9)KQ@j!Xik|f);`fx(?`BA9 zV|K~#Xw2thId90?;meA$)wV(v?B4EdJ}mR0aKX#7K30%=dR$J9@_JJt+RNF@^gXiQ z%Td;3fM#j0nRi;bfFjYH6E+N%_*ktw?3X*!!+d$LhmoSbtUz~mDVZ`s$d~stawXa+ zvO*;v%13Rs810uT!8MlNjz~V4wy?cKtW#!aug}uOVC@WncHXo0gSqxXPx`UST7#4v z7sI?a$n$JG&ay!fOM#+-SSdZa88@ij%G?~cD}9% zfa+_=D=*5P6?R(TdBB*7_kbIyIM#=`v6)>Q#jvT6li}=Cn;ds>^M|SCxxyHXmcOmZ z^*L#gjZ}JrVQ&n>9*9=DRsrlnKAEw0rq5>6()x5#l$1>Df9zKcY*W`2zW2Qs|Htpy z@&8X8`|%WLnfgsfw?nEh1V87s*=e`N>$MAl z-R{l-uhFJ`-e7 z_(Wad!qLsw07^i$zf}(OJhUGJ_W2-&KSX#1S6$5mn@{>2u%F6$*=Q)lw)smvhfpeG zP;n~HgZhbFM){khev9%qgc_$6i2eR_%Gp8DYM?M-cv^5frY?-Mv~&QV=)k}_Xp-vNHU=|*s7OPJO!Zmu zyHgnL#U{DTz>;!Vxsp(oYrRT^hc>%SwAmb3Q|dIDd=P4hN58C(RNWP!~#NqB>ekblJL!x7oH8KMZ!*_Sp6mKMS6< z{>XkbFlrwSoVTA3FbcW+G>MvAmC~S6DRp{%ZbmZ(nq~-+%*_Ba007Mo;2&{trSU@V+4@@Iwtg`fDff!4&mVPS$ z1_%1TT`H9Zy@jiQrZwpKF7zA+8m@vmEwLN;$Qs~5!vHvv2O4q>FreYWujJ6wb8kD| zcKPrNs)T~F0-|7#YmWy{^|S%@8IBpw8m<{AgLQGoT1%jXxglkmXKvh(W|*s2uL5D_ z=1na95h8{Im;j;fo)U9qW(HijGII~%No^?b7;_F?EO)z>mw^nFGWMhfka88RH(3=9 z4R>08{lo(rhr@-0;}1B1MF=qG0(x`2th^h>%yPW>nNg3ASy#@-Fz50yw7a40QSQkz zFK+$4q-~&TaO>8=s)6t9>3YTYbmd@g?_lNAksmbH5C8t)#fhPz$xS~YKiVJP_wAwQ zc0Cmv*jnQsh&}bt%g^uJ7vCR@N1X3||G>oLfpxF;00yNbP=JCrP+BTMA+Q1`U_l5( zKqa^jEC(yWD$or!fNgL#Irj>EiYEH$C+UMU`Asie&28ogmJ_)YM|Rh2uOUin;x&ym zWOv>6I-;~LUe{Phb}s2%LU@-{ELpaM>`e8h2ydz)wJb%B^};u|!M8TS3u)N7p?3q( zy>9zD;${CyKe5>lPx{~Vzw7_dPd(({?H}@!qCe$d?I$-cwJh}o@9&dfLTZ)POQa<6 zoozlS_!7QWAL$b`tqrgNhDEuZ6ci3hEHZ9os(adaNb{}ydY(MY!xFxXPx2(cO1;d} z+8k>tSyi#Z)x7a*@o&Wk<76`47T*vjU2z!a?=S0tJudz%Pq>h8AAdO6%TM#ycp1NF zO>j$);DXU$eUJ>UJ{*97_4+B%PW*omIN;7Vxig%RP2|^ zw!kfYiN_NJop2=*iPi*_ur=COvIUP36PQ5dBdtoX&DdCmO zILi1;W<1WE%QEBTW!O~8pdm?6y8S_O$VSgsb?)4fVg4M7(m3bp#<$UlMiE9>)+mO}`3uLe9vvfw6(BtgQ@7rjJp)rj zBAuT7`^C;kqt&o>oLb=1z;Gt=o?1G9hr%Lo7H?*Hh-bULp@PD3vZ4<9))Jp9rv zZ8}XB=XB^s>1p!y7rVC{EdFudqc7b0#f7o43)If(bUJ-=Crr)$;d-#u_FZ@d+SC6` zpl54-O`LmuT}6m^2E7N;5RZ&xvm?i{+1cYTb#rGLJ#Lz`ZvOeNzH(^}7S8@{_QU`6 zZn0pwV7XwqVEHLaa&COKndp%-H&%Kpi`06GFcvAz4v(QY>~kuW4qkL|ah<_P5VXR^vO6};*2+Ca zT2jFfP@%Un#Xf@4Yg9H?A+P1Q1k_r2wTicCZAP6;6PRsYoq6GRiCs(CnBT26Yg|6j z(|>6zwC@P5d}8T~>BO#7u*RgZ7z!P{zfkMrY(Ar@T8wWOpIa*(Z6=+GN2-g&OqI7P z$kHWUOY8S0>j#=@JM7NxV~ZHATcy>>Xl`x}2q+3?Q4|`;M~Qs^WQpW|5k=%*1S#q* z*&)KK-H3X1xvmLbpF0nalxpN=evgX3VB(%-jqSHwyy6;!z zD&RtW;-OKLX8+>6>|>j{&MD42tqf@C5NWk)E2UD)Alo04x=yS`9b%J)p;js)0zUlnRhs%1$_5HJRS=8{oWaT z7lo+RM`J~MCYCa0VzyEyR!YWcASIb~%MdR8%NH|q>yOCw`2Sv>8X^_Iyb?8 zDn*5A@VoKG6V3jBTA{PBTyQMNsMTzP)Az<>ApU1I9l!kgfiK2_asM90*H(VPZ)eC8Z@lH5*Q-io$QORD&R|^rMtUN1ekq& zaZ%+0V>&fvwX=Yy@_~Sl;5XxmyjrcF!5<TP7@fPv}8a1diq0$QK0x>F|V&;lPqXc;Y=Tg!hvk}%sIA_9TUiyfdGxAGg0^$f(@ zN47P&yEspM(Am6wLk+p8UGJX0V9?ZCxkjCMjo<)+CLnkl2y&1dXQz?9N-$z=aSP5SLQvPzA`pUtaMDRR2}G4%a5^dN zWdNtcAAuNCh$7(;aW^+7tk#6n*+9aBONctXkPuaBA(7CM!qIAVIt57)qY*8aBFPxf zFN%@-#MHUPEU9Hy-{cu;3+J?rJ;^3Jv*}fQiyEXvV#!bvBQw1vRN-y=zT$NR)znF6u>rvZ=fK& zawHKn0(TLAjP#Oef%#C+;NVC{$4EB2j@Wf%#GfkQTfkf$@nf)Y1mfkq$g(-#d-y7( zo40&r5`M(%_0Qm2$U&@3GK6=4k8LqWk)Q|8F=FdQQt(B1lJ3IQ-10#KxPiA)0uKB^ z0HwlLjT(4Z6%{Gc#O6(nFw#|Sz*hq+h$sI_h0QlawOh-u->HYO!PeW((vw0-+ip!{<23tiNApA89{%UMwyDyJVEEjF-_|Tw#^#f&6e>gDy{)0*HAnA2S`ZL@s;*9{#Fr`^ z9j(k{`hgtZfxd9}0>jkNaygoYmRa{m zzl7;p8m6gb``zXxeNE=C)x9VbkB7F|tX5N24NegyuQVXFRM)CXU8__uPR=5l3O`cUbB?c#RID1POG@feHJ_=a zwd#XPtyqat2GjK9gSA%x<4{`RW`Su8Uf^yut0Tm>G_1aF98_uC5tk{(U&Fg^o%IT(nD(n;}Zsh*YV{?qIX` z;WA0$T(No;HVQjalHFAYdPz-b(@L^?g>t^|ZwcEWteO3i2Uc3*&MDnh*1#Pzw;6I?4QskugjY!K7La z6Lc`Xv5pG`b#i+FUz_q8T$Ibj*Ifer6Nty3L7|%f81p&7m2;G=0L%tS=~zH4S3Mn7 z51ldo5puczv6D_h3We03+R{xGh#Y6NR*D{ODaj#8_Fvx1KDLSbjN^Cy**;$`ez~)K zeu>}kTWlx65TETNP2#hGlo0}yl%#|N24fLp(9sp90qfSO+DqGMDd{@I+6p?V4$7)7 zm_W!n3FsfIHds$fzlp-odOZK5Q5e!n~0Nr-vdv{<_H*^%{oKF|02ydagK z<~t+HvvHSiF!ki2tH(4(ht*$WH~CyP|ALXJqt^bdL3_*McHLza=gkfK2M@G#`kj4O zRvDHWf{9?bb9d)YzrS=F&F}Ot$+9&-vW<@D#&vqaG)$d3OF7kA;ln1G3zt*j1_U=x zN{1gn2H@_VALtpa)))x*{dH;$F#yIW)EQhuc%_E$yohUvv1$#efGro2nK+@Glz85$ ztf0TB5YcC=)E4cS%I(vA)#?kbEGjP%y#!80YA5O={A|?zGp2d4jT5h$m9BIVN@z7! zti@tBbGY7MP$I?7tv9n+%r@i<3^OVa{r8gpMrM>D9bF1FQK?0hzS;-T9VB%~iS{gs zj-z7K-(-%n2zE(_FZ9IpKZ;`{r*t|)4M)Vo%A{w6MW3CBCj=nE zaQBgRiGgT4LHc#C_B>@< zX_ePV1F=x|SmENPW!_z$$Zvn}r~QYnzDsva=s#@x!^nxpwyth}GDI^62M*9f`dWkV zL~w=2XgVHVxOB_DH-5ikBX>BqX#3t@9{cw222Y7u8hwH4qzcqU+2q5_jD(q=woFX_ z7&FV~WX!Ap%*>osDimmIi$Us$M{HIM$qwKarGiou1{aB>u)ZX8iRw^CDY=lxV#?*T zrk0ce6!vS`(%L!_q=PA|-DI;#sT35!iQ>|DoQ#ql6{+PqVJeiN0!^W{EVEg7@ju~R z@kWJlY2&L3H5;9g0i1v=NdRLboflH1O+UMLxJJvI=s)tbaiRdg#c&w)!?PEJc>~?Rc)j{>0N;dtC!MhDFXT z(MKZ&=1m=|=UUc!_^H2+t{YWm)pxWV=!;PP-PGVom&1wO>vq$e2CK8kvZ7{ErR#J% zusqE!7veY?Jqr0kh{iz2Jap1>4J!}Glm^vX?ahQ+$(Z27C`JM#R3*YoiN53JQz$vy z)xZ3a-jw7`F5Nc#{IXZ}HndNn?xU+wb=3`JA5?WfRrTK{e0640HGj0yiF97liC(PQ ziEx`fP1EN8PX{Wu;s-OHWH?;4;PJ8R+yBb98KZI0)x*(f^m=sS)g=m}F ze-u(ON7IYjYg_V7ai;^LaRDwV8*N#PamC|V?3EVqN*?aI@?3KU<{F_rTWcV;>F5}V z($TELB{-ce*{qiIou(!MgA6=i-czx0vj7@*cHdQdYF^q(5;-%%Px#UvNF>y*bx zt66Ww?lKzP`pGg|igX=~hB2FU4E7nr=(MEk=qf&|)^*ega30@jHsU4snJVT}gRAC1 zIJ<~`Lb}c-I-)6Rw?lPUaeCNFGmKHdGU0inS|G*+f#(fIoOlXNoOEgpljuCfC>pSQ zd;^XSBQE94-6BU%!l{Q~2Y?J_vMCWy|K<5rQ=F1pHyAhv=XECNXPP??nBQ6s1AL(= z+8K!p=HkxpHeFaZ`NMz0TwgvHI!-DDdDdGA^PS_v4!T?xM2_P{d}h0ypM$+dqp@?M zXt&q$`21QpzsFFE&(F;{zY{B0Nr4hZIR!&X66OtvKECS6XXv-*i%R#41APZ>3b%zu zm12WfM0A4WV8wJ7`Uvf!eAJg^&YA#?2npCvv=h@;i?}eWcg@7~??@wb;_by)>%!5x z(Up_6l4TP8hSH5 zT$asb(&Z4*M;q7f+uglvO~<*tRQMRG>>hwT&C{kA1I)M!|bgS8w zY;fOjT0U_D!2ZV8Jum+Gz3sabVKEcyY8rd}+`)Gu z-gIxX;M%__7Gju~MU2F|9WK8kx+Ga6(vbz>s8JZ~f1=Ra)pNM-XX`V&gcsge_O)*= z>3wPIz{C0X*XGv$$m^244~5z{Z)sTM6`NZViJd*3+*ff{OIZ}r7*(3PawttbM7=3H z(m1VJqrk@#LAOv>mq{c*SlLN*g-Vj_1#tyqSu)G>sCZi2oG{i!<2Zkb>2qgTlaxqg z9B%wvNAg)C!LRVyY(}m%NtsOZBqR+|HrBx>iQpS%;>TCgg>fDr3pf!<67W^Y1TjJ- z4cG#DxTnjoMMAqedu^^q9*ibKsr7kD3N|lVGjRU=BcV3EA?^_Z(S`DVSTEPurtUM0 z|BsK49owK$c2{mhE^(W+p21yeVBwM^}{luN!3=dhQ04O$L5xRNShn~W1lFT=Y8Ja z`@9{?{NWm9l(U7ri)@~VGFpn%f$BbYpw?j0I{mg&I=<7f$lp91?Fq#B`X<*RZ}aMB zV?j@SzEz#u-Wp%LQ<`9?s~N0Lh+Nd2nFOjRiG~bN&lWWry@5+J_=B3beY2>7!}qWN zQS2){^i>@DDusPjg^Nb6P{Qdn!_=rX7^CzmRl2vgud7(f_w_;lHBJdT#-Bz5F+X-) z7Zj|vHh)goM#>}x|Jvwl5{AeSK}cRBvyO)RVQ)lY=B6^rTACf zvhvk;jt(CE-@fml!@+50dJLT>IVa_;;*8*rY56r&00gL3|cHJVk4Vv_XY7fBw+*ohNGjS z9kJ2g-ip`&SH0Wgco;S;vpHohj?Cqi*^Tn}oS{AUxZ}n=sB^zB=EWev3FAVt0cX@) z0QM(IEBXB-F+qIM0cLn4j2(Yuu!`|`HNMnwI%G(*$o_L;)CP`Ve7!baNKrzRnV>J7 zp}by-GNb?ipGZTw2-6(_pc4V0(+OLd3Y-6~-p61IJDL=I9-P3_VpS*)RKfGeJ{3Q4 z`QVgkaVb+MJ*jNXgW1wzppx=w8*fuBV&2w00L2 zxcbaXb9Z6Tvt+X|ZMH7&`ME5abMvWSFeLS$ptPBuB+@RXI8V2d09i<$8aEgjwaRGp zh?{O4)#l+yQR*o%9G#9c!8+J*J}MiHDrk#OgqfLAf%&JcpcuNoG9+;m5CMn|_RMP3 zIkW*~6z6aCWs`wabZ}TOq*592wUmYickUZ{)!pB|bm-;I;&1o$Z#=y7IqK5(ja0y( zb4m6C`nKn(4Ff{IsZt92t}$?d0MlM71x35obf&x$lg) zGDUftP?u!VgJO8Wg+{9ZU08%y z2tk`HCPu-J2GNfOgBks(eS{w^O|uM~>AQg;E?(cto{9tzf^MC!N97wa&Hv!Bjau=k z90~D0)=8|JP^Snz7+A8zU5Rz0yjb?N& z&ugRTUeN#Dto9!FR)xLS!c}F(b@uVhEbl=b-H+vHNxVnfy5ed;QKu7_aJ{TnQw^1-FHk5Os5ae*Ulm^p6ATgXO*2Z?)`*K@)183q$>ao?L zee1!Fmfvhy-?OG~sMJZ7|49W-Q3fuv;OWG+msY>nzQ)!3Tsl$DDL3aMluEwmKZ8r2 zaFw3syOwt!kTqu9^$p&bG@npEGyNeUkGdA!DO}Sq!CJ`JB=Oz8IaXIeM^Q^r@rWi< z;7oQ`+>6>2Mb+yRDY?DxnRUi0nhbpF1&%yLaA5}oOj zyX9RZM^2RY$0!HvGi6|Xa^m*IGLU{D?l&qpXx;Ft7OUdBeSI9xK3|yR-V-|HGRBNi zt2Kmghv_RtlQxZaXhSZFG{EaQLc*bm+aH{%)k0Woa!t^mkFqTE&F4f(IS&Xm0@-7* zur#yPI>n$mK%2H{s7xX@9TOQoLMah7fNudT(h1e)1?4#tobVl?4B{oGy`0?r&DCA! zw;c?+7TLSj1_oAbI$G*UE?vL*z`(}c>t5KnX6vr#)#0fPFK!(!AO2fnbzkc)wgm56UV*(TlJNvT2Rlrj~_WTH5F%X%RJ-$MkyMXyoD6F)f5W z-iNOT06}$WP!evo+59f8*5HCWiYjO)m&-ti|18YREHTg@jv9^ks;d7gg-JRl?p+mS z1z}@C%tmz$JlcH(#3lEui+1)^+>K5*LyqR8s9jZ;zVX@FZ6ED8l!*?8x2XeMy_Mzo z{Qi}#ok5>DzqxmK_|21zJ%ttV{K=o*_~C__e;sFCt9D;`WzWd!_(reWw6ue zhEVXKu%RavB0Y+%!Nw}nAf-~xvQQnDWrF^6RIO$bqT|4DY*UOChTAl#F*4mYg3yrK zUm?eN7R0C^7)*(JU|!&}S^DG7H)eL9`1+>9fBsi5tnl_5J9iX*`RfgRzx%Unsh0*C6)Y9!kQq`(}d_D5++-VwR%6#go)8;=XpEU9Gb>%4^IdYUW27q zW9b>cUhnstSGf1PWo|dYVn>m)qdc!pNHrdT|2)=H7}C|^3S%0dMcj#$mGPVl;d3Z` zmCmVFmJYpE>R93LSh?jFPd+)=J+M6L4jb$&w4XuGgr5E70ETiJUTU z4cVa9T-Xr_I79uh25+;)jk}A$6y_hm{sK8)-k+d65>+x1Rnl-hR?U$`6-8ND z91{5w3N4Tq-V^G083W{~!x6)`7tmKKL%~c4i=YXyF&`sO!3_nud_hbCO)S>pL(p(s z3R^<+5YR~Z<{sMIof}8QMRR`Kq5j?fR=@1C$Ak}a!jpuC=j%+po@R2)H*$5rw z%Y*drdoEY_|CCpIY*Y6c{axRCajxIjk9+NF$M@RTuh@wlY$qljNp46;LPC?!q`eG^@|z5*w2q=p zJ+P2RvntKd(&OEl#Q)`2>N)<;)kin2eBLB4sypzZgA+&q!dps&*PF3bu?~)-T&jz) z1dCma!Y)P=G_4aqRMoFG%rdk&(V@q7rZ+hpG)2iCY-c7DGuzIJfqjOj!52o$lg&fz zO(S-{y;Rdar^l(7Oe%92U4H(sI)62Kt=LUqY{?#RGu0H&OK!JR@H|PX9#;#a8S~3D zJu$v*OvG-FM1;P;j({c*pfI80NB}~)-KN>@XPqu8vpjG{S9w%7B(4Ehh_4^P5(|Ot zp}t6>Fm#e$dObYJFvH0+j0BW$U{5r#X*>2rLy;mmf)E3$l;A6YK*YkCTNq$S1OO7@ zotqJlp~uB|KHwfFe>)b71zL3E4W!^0jB1gEyoe-Z2BaZCo6WZK;wvZ^*%Zi3S_FE2Srzz#d*^OZTFBb*NBDa3R1-p7yk6RYk$d;Ldm z_70|k)=11lNJLii#l}o?Q~ML&sSd8P@d>}L%1c+iF?{Imm>_oc>>1g-EW!^x72LI5 ziq>|FuGzft+h{7TvgrPzFOKlJ{PXq=_CDja0`RaUWl~evQILJ@| z4!8rv(Z}BEBB~}2YaEWWCoV6E*CiJ``QoC?+a@s@a?8Vfn%;V7@X+1C6C*vW))0*L z?pw9t!jVr2DiBQ8h<(<=v;zGuOv{0ZQEg+b&A*D{5-@fX%HkdIv2`n^JFV~EdmvW7bZW#n~83a=Sf@y;;g9T&H3kDA0IC(jT zEQDnoi)OS;H8Z)Pk^yU{LG7G*>}F>OEv5?Ci_c#YQSmlmC#p+>FU_P-31OTisASLa z?v|xcE2lpC;Qpxgxm&Je?IwS0+33g-Cgv|Fqb6PsC>7rgiR6%?HRCiX1s?g!FS*uY@w89wDH0|>G zjbRqwx-q{$jNe#RcfNGq9@vmqZJS=b1G6<4Wb~M=u%1&f<^fR_fS;wzSQ+|7;Qyya zHB=GbUq4i*KP`g!#++KE3R?X{MMnT{+5>8}5S7zvEoU%?Wh;s%Q0^SCoTVtgslsi= zi1_`CyNF1*gh)xh(}*-YK*Z5^Y5Y;t>Nq7j4r&G4Vmam;ngose66L6VO%m&OFgCUu1 zT-er;?8JO&QQ9t$*HH>3!T7TPQ533?!((=XFF-Oy<_fLCn9^EpJyg6)3L`0u4uVBJ z)TK)xZMc8uAn%&ZjrA?#qO>G(Ji*qw;scmdJlHjY#&h#5G1xf0+DIKYBG;NN&DF*VV~ta)c> zPNm?FY(D13)NlstQZt&G%IqpN!p}i!G)5;YN}61iM5m7ufF?S!Wi}Y z9qR|*(QMn6b~??S&+&%ZP2}F^x3D_5gVeUh9bSSK#DRZEFWWeIK5N!!>nBGV8ebp& zzBpj-83;XJ?IZhKi?=rDvz3wfI>~bH4tPd!?;QCV0uL$V!JF_o@!)4fpbliBjPU&o zIyM3E@$;Nnt&4YZVAU>MS4{BWksu%iJiitK^%sP`z%}ME#yp;Z!K@+F>K(| zCQ@eN1rHC05}I@-#c{ZBsQXZ#C}Vf)&b9CVe$57#BPP~KL6^^B%N>3Hz!A|Y`{Egv zvh!llZP%F_G;Y!CB;Gpqbbr9x(ev}c(cY)qmfKqEIu^7kFKy2%BP+ff``gFPJ!?Zj z#%ML_+Lf%8%U#|133lruk{tPWj4Vc)cn>~X(F+sEI(0|Uc`DO1WwcmH7Nf{i7_qWQ zfKNdLnFI5|`lzU&Y0APHjTFX^Wy#-xI538GL}0|gbY_4h+(yo3;dUOZJX$D*O{U1q zJQOzKz57<;)yZcncBs0=Fo-yC^UWr%#gM{`>9R}@8iCr|}2 z#3QD)<5OQNHmfVW&$iF0k=&xfIMbrY2VgLTaVstXyn&B?1het*gQqi)f6nnd635Ap zbCN`Z$Bv(^HW;i7L*qDLu@Y8Q(=L#u({c-EV)#MLP^Q$gl9zM7h(eQ4_YRd|o;H+E z#%dSEJ_?)&7wRayG^aPe^Mha3B=jc1Rm%sS{oe4YW^*d-^E&-;Z>V{&sVP+_q==vx zUb5)$n@XrD+24O;*$!dHt3JW17$SB{xU##ZD;{d|_2MlT(cs80P_b`@$t8$~Zm~(x zdnJQ0?Z$HP;S2@uHZa*Sk4FMzPD8@!XvANH&|3W}uUOewKBBbu!NLhsaD|^S2!#9>_VsF$?&SyffZfZts8#vv!^;T zHH{;Et&6KN>y2(cRO{osftRyH&?`4~WKP5bEyFEY%j$u39ej4df5|Qv*ru*KjGyc4 z*pA=VZ#(fTH+Et>u^m4XKW}0J0Yd^M32DFq+7KE9EI?o=wCmQ2QmyL3kg9IoCZ@t@ znKoDhA?B%WQ(2#|PNGxSPMx%&Ns}UtjcJnrXa95Vb?R;7wHHeGQ5T`j1dPa<^KmN zD~t~=nUJWu@{2Vv$cL$A5KL5+d|5$Sk}y=FUlxDZC(=Lva^>c`yQclkrbO$?_P0)7 zKQZsHg*V1q#m%$BFFic}#pJ$~>rM{;;_<|k?)aJBr@vL$_{zjcf9j(RZ@vVRQmu}O zzFVCX>VBOGs-;Dn7vwQzO2sM9*B+J2uP+ZO z(C?S0tVRa@G%yF$X&|fnk8V=;8ui8gK3#+OSHMsYHRlfH0vk?kj;@;%wjTd?Ci<_~ zCs2Zti!Ag$xR#Os{@>7hBtDBAs0Hoilwz84vaUL>%xF~O0e88)c&=qK$JMHyEi@pt z%ULG|vAen8(ikbDkww?x5I)4xpCJXMKN?!p-nGIRO14MlE;8LV9w*_8043S?<@x3v z*~`m63^iWxXq19SFyhe&jb{6jKC5F(^uYK3^rlE<);r}!wZm#~x@Rk=^qa<;jGY}B z%5!APcRO=V%kanjvK6u>e^YaAI`^~htayrI_Bad4dO68^h&G6)fS%&0fZpIVDHr%+ zsy(ZVsO|Q4whUMUH(0j49XsMhnM|$f#yu2+(y8HH1(amSreqPH-O1`)KuEf#?;_NzDpSs*A)Id+fnyf&-a{z@yteZSkgp0r6e|OM49@~k zDg$qigtf642$-2jCKK=@Up8DcPpk@@umNT~D4?Sz0zb5&xuwN7wR6>Uys&w6)VH?V zW^1ICPa53z-ZqVs+kRx#Smnn$V=%aWCSbJQ>tv%oPbM2NDz((D)T(u{aIi;jIj3Uu z2CIe9ntskU$U+9g#>QlJ`ow|n9Sv9=*?_OmXmk9AT@#9T44It{lMdmUFFgn9@-^gy z0g0h+&wHDKT8$Y;%cdr6J${cwG)`VUwOBnhP-8je4?0|4bx;NK_W{^t5Z*4TRDKNz z?mKff8!;EZUjsZ^MhT>$8eo0ylD#41j;)l07xIO8dBwMc+js)qc#DME#*^j6J?N*Vj6| zbxWLk*204NCVMyZhteCzPxqZGt>3||*_|Cpx(jEwjo;FrmK%*?s3i zYpdLS4P?at-(WU#Z3=lAqqZ_8CsP=Rg7=US#EHflvgC!BCzwuk)`(;ZzEhj;q}5Pk zq7TlzIM=f>`dD{2(|M$0X3x-2VBlC`ZMbuIlh=_qIU8CUeIwNNpPag+Q8buMtjeD2 zD1~+fI;M7xOzaqVxo(@snU8J-$&i_t$A9acDJ~Ia&Hq!?gD9U zfp-(GkRoQfM&BW89)`MR^BJ5MbGhz95BzX}!o79j`8+nQ+@?KT*}i=0l^>%K}X z%*9)n%hilA*hY0NTNo3y0M8M&!;{I>rpm>902V(_9_4G3CGG`KkXK-$D9j}pOm{6P zS3Qn|8zQ8_2v=jN_*12b-5%MrZ6pw1-`BhCv-c`z=f)i`07*pH*J;dW2SyxoS6yx z_BZI2xsJktX9jnyfAGce;o0+GK)5^2m44E#1WKVCs?4WkIzS*i$@O55$*z+rDpjUG zU+C;iXHVv++!gwBl%a2NN?Y7&jY}j{TN~Ac2OO~A0+1JTjs671dE%VwOeJw+y1FvC zEN)CVO{KALLz+ydLk=&lzG~_1OK`1Hp%CtwoD<{xDi%A?4bTe?!VT`2mG79<>cGEa ztm&9V`xmArc;eU6S9*pa7Hc$aYJRaq9>MEd5>a7rd7<*b@1H%!nV)F&db++jb7ywX3l6s7 zfG(d{o!PN=@Otb^r0{=R&U;y1Bh8k8oL2LkI$h z)a`zHfODE3emuNtYyiG_wcbzNr_UfI(2M~+vmn7d!{~K*lMDup3aH@yOGry;wUqP* zp}Y@)cKF7qwJO{gjYenCW6EI|N+y#^>Fc}{ArmB>|Dl}PnqqA(kqvkx5Kk@b&_X$= zTH>h_W)&jOGW1kd2!n{}M>vg%{wGn94)nTME%}DXOFw`JB&q9k%piuV7opKnzn>F5 zhC*>F5XYbFM*k4sCZBxBe=;b1a?Kj8mJ{^|pM+WW;=d`CqZOzh?WMTOXakIS8|crV zYJ#;!pcWuWdwFiXYw@b>MK0|S$TgQI2oBTmgtPC8kC zvQJtxni;N4@@GDu$)qU}LTOltIgv<;N8SuzUJr|5HZzRB7c7=z6r4&EQ*f{r3dI!X zr~G9qeKb_US&fhjM)1g2gDMXy_zUYCW<2~fRNWNdnLvn8UmpJzUINKRVIwwo1$dVx z3AcnX*Np9#>&%K;EC0Ey+xX5k3=d0VKlLCOU?}QVMH@{Y)y2@xUaQ zJE$t}VBqIsbvP|*@~ro2%wp-Td;6(6{Z9|Bbg_d@i(9X9XceZAuf5qOQ`&v~y+g&- z6YZgb)zoD+n#FCF;@=s&{4e`u9^Axr$MN^HtJP&$ zt6TE9l6BZxUy^nuUq}lWVGNZ+F%ZW#FdS|f7zPs{gcQghTp?`=P1>1E(~Bl8Z6|H8 z4agoE=w!-~l+p>4hRmde%#=y~VIU0wIt8h}w~~p?0L5UMbjJ4VzWwQ)`+nc|+22oB z>ap?NE}L1I7%1-CzIoSjo#4Jd#QfEoj> zaI0vCTR9P@iqm4Pq%{g!EhT9j0!5i(92cuS47v+bL-6H%tIy|)5z`6ru?bjhFBVLo zS4j`uO{V7d_`F0{b8}9?&0Ssdh=P+u!O0Z$H%Zr?m_55A9`9&wZUyBY=;(k~ph$BE zCqOPj$zy5Z9VwQJR_SVSZHhYE7Ybg}M6NVB?VZ)5d#)_7gf3xwBxV zIc+YBvA_;8$TxW$j_Eg^zKiszT1%02)3z6dvdV_!`{$t;jkD$*E)=4PKNhe#6y%(XdA#!N)D zwWB#Xl;z~@&^y%8QRRC`>|MDt_8dfqqxC6cj%bv>#X4E*qjfn9KDqenqVFaiU-aEP zbB}MV0?i?jUXFd|rHZk{cQVP2j3AkmW!boJ>#;1itoO|=P>bMmIR>=nYAU{*5^L=onf;#+Oho#;-6zWK&#`bHxPxKG>7M z{uDiuImfm-Sj}uk539L;Yjyh>C)n2>&FWx|7MSC8W*5xy`K>uGFi(K}&#%ai>}TNE zQZv5T5!HOKO(S;b4A?VA)Pp~%7TK2Q55TSlyH&Ppq5ib$DX^!H@JZz%WI`n*3V#Cgis5)l*Lomzg6_Tots~7IJmiLQg_#lC{%>P ztq|5>bR5=qTH!`IWP1~7U_}(H2*C;%GV?_;>xd~%w?!kfz9!Zs@sA>H$tYap9go2n zr|9`Gh8+b4$tZmkWhJj?$PU)WFnQ#yO!8aFFLc|;#*wp}O4f<9TBCKzwx~F3W~44j zy<3+|)0<~m5Qf^?3$cqGYV-VG5F88U$ z%2ejEv{5aFS+!UWm#WfUIgfuL{407N^RZs#rz;pnIk?W~WpY5}Z<* z2X4+nxEZX1Go?5tX-i8(O{Iz&g+h_a96hMX7Zgh)5qRvICXzxbii=!CiYNk2YH6Ct zsyVg7pe|J}R8#7uB73!a4S%th=h>_L8iH;f{_1OZz8kh7PJRg2z;1NIUoYw=mDpxv zk&8n{HX2ceY~fHe5{>wM@WF~kB6gdNe8I|WUbl)dvUa)J$SUYVe@Jgif0DkC-u~fH zteN{kDC)9kX$n_r&1y};S5={)`O6X`SQKc|=BJ-8lE z{Zk*FqEcElN?c-em%99U`SZnwLZhi>$G-I8bbsH@@Ba({4M6h0i?|8TA>Nvn`3K!f zy^HiHj8{pTG6(oaE&J;_xQ$6=K9Q#98H79s+*)Ggkx{|ipN(yU2I25W@dwn|OtyV1#{vdcT_}AdopmJ{z2UD4|{l0Pm%FF!~0YM96 z_j@X`Wvxic>jMS@GZ!8{9nkCHVTcMLE|ZoGE|vLEY9jR<%d*VepKzBrg@LQ#j&Rf> z?hUXgPO29RhW}*Qz(SVs~z)Un?CK@Q-?Zi%}NUO;}G)o2mGeFG0rX8>d+5sz| zQ&dQ@1eByMK$E)Ff!%?h2B-k2qrbdbAmzX`F)&pC5%6nxUKW8dT+@9ss|FIJ@ZG&o zldaa&hppIU-3WMjZ7UFp$gfYs9f0Qy*Hme-tl)2>q2Z8~+%^txYZEtk7 z&DnBpc?(`tqBECSH0p%EvchPQTvO{BV@toe<@CmHYw`|$?Y)pFX`PZMlzW&D+tAfNpy3Bdz877FDF+ZRN zA#lVyd3wQ<%AA+-bb2A;!5cIi@)V6k8r21ya7>Mlt8i0(acQC5<@T2rR=LX9(n6c7 z>|6tGXlO31sqerGe(ac!NGqD{0B?6==FR z77U8Si6U{LNSr7VCyL<2eiXwoa$fBQix7(?irov@-?2wnij`~*fxR*foYPHqobMg& zmWw>`MN<)aTAeLg+CSA$C>9n-#OoT-JX%L{im}HL;LmCNP=@T@B+_p@kF#$ zv9|8TJlA3mkD*3Kf{*P*k;d2<0@7TAN%$s{9S08rmr0XMgG$llD@t1XDWQte-{Muw z8LTfJue>bcY;YH|Bdj_U-C6z3ub$Ywb_@qM{+*GY>Qobn{`l_d>6;VJ?K$^rCNUN5 zOh^v5pvEFmPh%z!@ih$ue84vY`TrTn|7Cd7+;DVblyT7Xba=HCt=P`?ZcXVCTv|Yt zip}8w^?INYvM;c5bsDF`xnRiF(;2e~f*5cC+w{KEC20c#xqL3y)yZLOr?~?}8WOlP zB+zL{VAM|2(!n*+oaT;6S}2~E%Jo0#HhMv_&|HM`f9WF4$5Rq^N;{=l>8fOr%FGXS zXP1%5T^zmJ6<5pkKfFO-goD2s#YA0tcb)omm6?XWQz}uZa*t1=a!#;m>b60e(YF$} zYLGfu9dy-_i*+8+xEVBp3ZjRGk(keqe~_GCz#p9En4t|D1G-%;g*#P6D}{5al1y%b zY=?KzZk$oIJ9C>xgi-QkR_VW$#v62-z) zmnVXaI8lA&mznz+zLa4SuhZE9;L!*{Nbl~`kPa;q=~lZ| zK)8TPh;gE$XcnDBmi#4Dr>6yU6;+PRmO5N~KTXTV4c23m)!B^{WOV-9#iAh@23*x?tC~g1lXe^FOsf zs_#nQT6)1#`L?k%uDaRlwJpZVCB28}F1LnAh1?{Byh{z4r7DBr+pMmDE<`Xv%nT~y z>RE&_hN?a<=EtciwAlOS#|=eprRuIc4vK1L5U#D@j?~v1nx-#6!o7c%u1GuD0ukV;66FOGPxT%4dOc*|*`TL6n1~HpAeL^zrFW^m zS>T7#@*%hiP(s6j;2C1j!eHj^w2WiLov!{vdA!12$7>ogq>Py)mTE+#rBr{I=s5~p5l!0iuPEQN+ zRk;F(>=Xz_UNpK1jJ8@?YBYzu*z4uWIQx7G?7G9=TbwT%ZH&#mJ&aKa6=Nn=VoO%1 z`@Ej{NVk>cBbN3EW{PQdtn=wFaX+v*?L>}7WM`+ydO2@wpddoToM*4qu6^PR;*Vso z_R@btAznDf9jLzef50HRH-pvbk4qtNc$l*xftQes*33y!S3q;nVKXW?H6{ve1G^3i zg6E*kNO>ql#6D@W;YnIS&k9xzrIK{_g;KkcmjQG2ZL{rSMKVTa+GW!|v&B+!swblS zTzky@#Fogg9AQ4&ohp5PliKdLaZXGc`C{hC2|cpzzBom;(7-)cTMbOe=nzGgGLcyY zQDZs`WMv#Y1K>dDMcwwl*3CtOQidIOINa}gyLt2ut1@@BY9SHgk0&DH_6LGRPmtNv zp8V8f>y(7g${l*8!J6G_i#6q;5*%oYjwDWxqZlq_LzM#7||Nbct{sm-Qm<&)@pG6xdTS`JX?Culmp95 z*^@D4sLkxIvKZ8EAnZgs+Ju+Er_g1@(tZYmhQ-1%lZ0@Stbtj| zi+L#z$c+F2=z#pPls6iClE8GM^2++}en0rf-vzjdZ;X!8Zt$Jj_v%mA4j07yuFatN3!|N&T7lG59J`Xc1-v@b29RT&~uPMFQ-CZm`W&C%ibZEoJafCd= zehsN8g9gx??v3c8PYblQtCoJ*)8+T~H)mJnsCmP%ameLD&CUJOp-{rg+XcbyU{*O{ zQ_%G~O5jAojs&X}W7KPFvNy}3-w#8z=x~TcL(Oe(*+p?Mm+O72rHs?hQxCxS4MX|h z??vMfzTgolPk$-+paPUFa1wn+%%|uLa9W-|mz<~1&?|D@9E1APtww;V*|az9Rm?3~ zR_0+GH->S|*qVu=`4p6NdY^@foO$-=KV$4dvlJFCMRx4)*`4l4!^P;vM|a%6_QB0F zpUw)yv6kgMh5K@2dTlFn$?{UZ;BnfT)?Uol+%LPWc7JK}=7%)D4voA^W@$96Lo4hPe>~&d^t?IM}qO?tipwo&|Qmr49mWi=-bS&dTL*t*K@fkW= zk1#a?DV0DI8c3_?7ZZQ16a51aWf7ufsIkqt_r2%X#&#WwBL0bUukJnP_s%`%cYbHG zA=W@!6l*Q2wH9V=#G-4I z2~CA1zYZ!)sOBmxaTV;=|8MMab*I_A3wHas-7dMFDfesI*kD4F=p^jtk@J7eGRlET&kEJaOAl`G*|f#vKEQZFw;%M&R9^kE(PYCm?ttr+S8T#6^$K_V-z!aF zwxH5X{2Zcjea*1nM`L|^HQ@2R-|H)qySe6wWOPA$x(iB~ZLpBy5JL&*fVYZwzxqZ$?eK1X|H1MZvvWPQ!m08M!K^f9C5nc%L8 zXSR=t8#uNzfX%R0*p|<&3fqt{n0#l=uzjj@Y^hYjo19DPQZJHC!inT*gi@*H`Q%*U zYwC`b@B9#UzO3%7=Q}@voipl=neT*Qr%~BSd>=6#RHeI;ngAtFQJ>tXGIt*$h@~uI zTKy#Y0G4^^n|B!y<)S!k(-=Hi1q@#1;FQ%H)gMcFQ3$?IJ<15_} z#4zt-uL^_6vSxW6U(I_hPeYtX)i_^akx%>*Uhq50PRh-8k`Yj#ZrHI3Cw|1%`(Q0A z>tC_Af*T3-Mv~u1dF$yEZ%do<+vMiIvb&~Ms`eWDtL)WbW0@6|mFd?bY{ct~ zM*S``Gm*N18R@F$118oHZ;N=pIANKn!nfdg~3FXuiuPM^U^j ziXn3d^@aLE8@AoKy^QZDLtve3F!=3dI~uXyuHVrlio2DlhZaCF(>DA z7j#b(4|1_NL^wguL0wk7O_0Bd*2!25K;5E;lXLVmJrAeC$|-V6J=NPwh;|B?UU#9) znYJ}Um(^3QCX+dBD|MTm*6mN*dY;^ZQ)YQRG4I4^=eXStCno~A_K;WjJh{SeObefY zb&YJHi++s!ewRxo$kV8}fU9XQ{4RKbY3ur7cJp)ebyz(br$g*%DvTxx4Gs17$|TI6 zYQqNoE^~M+Oi(x$z7W0~z8Th;!;UZsyDuiL&PPRp!wck1)2-f%Krj z)}A=^G5edK1TOh*`j&hY`FuI3#Xv#SG5Rj7o{(!OinK-K2t5^w4rhU!&|lBNd5nGuR$;lEqM^qg2w*^~r!uVJL)Y<3_*?0^Y5;twZ3`5Z z3XWjU0y(D`31rlo?lUgeF_?bxCP zayoByy&qGm3lt&>$hCBI45P8JfdQGEkK)PbM^UmEeJ@I)_KUcZgL)(l3J5SDPUo$n zQS(wElv7F(o*d=eK=Bd~eK~o2MqoqQeC>l+rQmW-j zirPcji1Jp6f=8*6c6k#;qvNGRQIN2j(0`DwiTCkW@T=K1v8|KW1V=(}Oa7V|$-$)5 zL?`3Lkr7rC9Mda+ik5(COL9(_*A0VBpW6983D&A)BbK-0*mjJzce!d=E8-kE3H1TG54t*@SM`y@XcnvlAny(_&%Q#0($$UuZti4IIWXWCb56(9ay;z)JYio`y9~=mug{ z3g-!G5WzCR4e96va=(Ey?2lD$=!CT-8^|IH&i3wZ8TYUxud+!!N?}$=V?BF%PW4dK z6LdGLm@~eYTa7Bbh+anuXDq_HFHSw_j_mP(1RyT9u4FQ*&4pvGB^Pm7E++rPpVP7O zoYUzZTnP6;u0kG)lMn-2ZIeRW6ZB#f3YGj3qFC%JV)P?e4?%Ubd1Ws-<(>7O^)7h@ zFw46NJaa)LsUl0l~tb9Tx`e2iCGko8AT`zoOZG&ayb^&dzTR_K;Z zM20d8V-)UXtWa8zSD1tM^K8TlgK)&HKA@1*B8F-tM|fB7?(E1aUGnWH`nQRv43O(T#VIWR99<68LZQpoFhj#i!`g~M>zk1 z{%%@Vqw!w|PL=7t3a5tEQ=8#bEpUyg8KY*8%_zqS8F=i;3%Zwgt4tV$?r?-pARTJN z-&N-UlN%#>uquBX1UqkDe>P%kMaw==hku+ z0N2-N0v0tbQV4TQs9-EDyD0K9hNHO*cYo}vax8@YurSORAx`}&v+-XbHh&tm-?upz zb)X3587jd#q*#>eptCS0BPx@X0JvzhkLrG{sVLXhY+NgmKMHW>lRShDo@=X zh!QteC48>vQ0Iyl)wzOIOB2{rDh#Scg+j1BLq@4N$ts9*Q8p^2k~peXACywbsCaaA z#3LNw+TvyW5B!>Xc@oe}v?d2ca#CgW? z_lNKNBX;g=lh|<_UoPj^anjAfIh#Z{-0MOhq=BYvofsknq)uoEWMF7fVT`Prs-kJ5 zf6!LqkCy(iKT-`PVKB_J6>F;aV-kYVZEB?z)9$}%X{xCk+oU9W-t(PflC;`1@rQlq z^Ly{}JfHXbKF{-t{+h36YdLO9zaZ3ng_<@(@7H`?$(Mth5(#@$1I#sNX7+w7|CX(u zRpLEs#^*tLLw24x`~6ZAlnE{MZ_k1)e5n?q$3?pWIMPEh8RN+xeg>P6V1<&?9 z+yvgfP6VU12&yXVoWq0WnZzH_+2Gh9sAng)f(KXjPfbZ+Z(}W@IwkGKX!o#rPO_Ec z*k>y9*eWFrnMxWm5^c7Uf}qc7Q=j>|{vga`u1}@kQfaf>JgS}KZ+Mrs)6Y$v?zi6f zz3oRHpU&qa5!;U-Lc+AE(!8|>^OhgmSg1uu+nx!zY(LCdO|9;?R)W`;4c9TsE$2vS z`OnvKIk)?&c)fxgNVa!$RV5?O6m$JB%BJyp1@mQ{k(c1ecR zqSkz{`0ZStr{~Qo0UaV1QRO&72^J>z4E(Bb*(e+LjL!@K8C!VQQm5)_zgz7~vE3=6 z%JMRJVeSL9o%f@42Kji%Tx7ts_J^vq-|~LD3Cp3e(7_PpUxbBT4P6e=5FofZFaRX} zej^m(v`1Z7a7C)D|`CV_RL|wNApWj{HsZ4$$v{ zQ_7ffP`Rv7#ax15vyPN%g;na8pqBNpo%O)>c{}#rbnx*7&(`wax9$7~7U9%^HnRY3 zPmU!ICV87BOhKPTl6<>&ru1ZWyF=5MOz>=olPfORJ=Ut+D|ku8)W4e&+mD`XcE$d` zs`jBD_z9X`ei!`s08OJ=G(AVn^JSM&&YZg z0w$!tM6R$viXMcAvjqz0(QKNRF7Ep7G2OiGe5QKcI#j*J+N;;5ka=ZM*#0a#mc5sK zn0276oSn_msVqj>bP!c{cu%!m&2rKAq|FEGM(wMQdZ=%8)Z*)FqW&?O#$D)5)zP)}B4UAMLhjrEZZ=hj5} z%9=6;*UHF@#Y_5k;F0c!qzL-py#5&hNyxrfp~OXb}c3P|-y}M~L_-qPRpKGB2SZ0~t(G*<|CbV`HPK zlJO6udoa-WXxF@aXX3y(I-6d_>5fs3?Bbw!Dh@ieP5297y>na3V8>coPW8%_wYXMj zi70?#Se%oiCK^vON3%yDQ;7braAqt#!YVw1fQf^X@l;=-l!*MNk8^8BG(-_*mE&(&JR`RM`So z!28koygx87m|lfAEWa1IGhjmoz{$SQrr;Mae(=iA&c}W?yJ>yOhYo!i=LS=iAKXNZ zAV@a|(#Pc~m6rc`4TR~g3X@ia>6NA=&R*i|CC*+l*-ICs8R?dER}v&ikNU1nq*J4I5iJymYYd)bIk8@p@wiQ zqO`_Ttx0M1s~rtWtE_4mVHp!#BJZ;nMG!S5Mr6N&GYn=!s@TvGX?n9={zrZ>@9#^G z&kvw<-hdzS(s&*m$8sKYkw*M$93DeBS|XXyRKFU6%oJ)4HL2NLF6-B_eSSTW%&Lwf zN!JL$Zp_9JBnl{Hr;>Q!z9goDj5gKz()Z_H|#OFP6=wknJ4HorzxcQuU`9lOE_&3Z8T#U2i3d>q&$G|k`F zq&0Cg&3zosrd&1)bh3I9zyTn-`Kiv`-}}w|`^4E99$LyBj)q=)jk-Hqcault(rII< zwC9s&8+yZXXD5j($3EF}btKR)dvO8^GYTx7c7}xgXc8Y{-#PDkMZ0-|o^idXy&R?c z=)NsS=#eeojS8Nl5hG>L54As@A~-WSd8oZT7gAb-YKKp04XE0%(mJYY&nd0D)DCbs z9*b^>#iA!por;UD4Wj5uL^XQqgy?dN28+cVU0vZlJ9c`*;nCnE=Y6u#uTQpTl*745 zn|}E4_zO(-|A+80i*4gL12AWoyX5i^xfHp}OC)!BN<6hZ#7pAxrX)L(9NV%*(Uxop zjt^Lt)A)#yNJ&~Ja*#NEh!OON?E;2h+9GWoSZz>%K;yRQOZ?IVeQJOLMf0EnP12w) zV5&1q$w!l>T#%fd*%?0k|M&er6AK}Dv#`)=?TDf2SS%Yy({VH%k7u(xcVJFOF93w0 zSLuM~2Z$7leqxE3*UC~LmD0}7H`pmH-_Wt3z%H?u**~+JEV06V$YLz&IblK6x8qTi zrL=*~ptr1Ww=G2VciRQH0D~5U!3fe1hx+^NAPNxNYRFik5L&d0&Ai+bF$bU1zrX!$ zM$iH}ZbqkXw4_*~Xu^=WeK_uO^NL4v-S1P73S0`Ubor#n!l$}W4Vdc&N5nh?zWcO% zDi`zTT$Zsy`iCpMGY%^WocpG;;Y4If*a7>F(|PH`TOWB`xHW;fbw_Cs@X$O+Trr+TXe zv!KqZkWI4LLVcosxsKQCBF))6sQ__kjvQ|iB0a62o_O-fi2?n95QzvA6QUp#MG_`D z-DlU+s=)f@-^4Tp)nm7Do|G@3h%rqwx+lm(bK|Y1LOnI5j>VXoI;ZwrWk8hqkilZi z8_XtyGe5(y^3=X}h}ZTb0yZE3v_t^R;vh=ppsdio3ulFBp^FAu%cQqHrCi_g*e@0x z(LTt-e#zupK(rtc5(5ulKm!Sc4aAxLi(p&-Ww5<<#%-O!L6-^+Q3ek}XF*U-x1`sy zthG!?yx@og(>5(ge*9NxK`HO%lL-WY1c@X^#E614nS}0xalvGC^Zso#chB&G*6XFxp3`^xdiHc~dC8pZ z=$id7X}xqzW0-ALLMIpcg)86UQ!1ZNope8aMHo1IG+JxU8ZbrQ%o+n|> zdppk(Pe5N+WPcIgQsvUPSUZUqpu2C3pKehfdKT1&lGAz@*zfJ%*# zD!4|f;LzMQ&h2vA>>OV#6z))@kt&Q(Bv~v_BZQ3@8R2fI)i%1~qI8K0kw*Sar=tm^ z-b5lAg}JD-+hEmKl0~?Y(5w!E!9m8Q;aMjGn76C?FOghPz$K?bn-=0x0a>)`Q^}zl zNT6{2WhG3Lo(Ix2>pyC348~yi!SVxRA|2Ak2O02)0JoFiL4?V#gqV1O-?i^@^f&d| z>{4~*{`!iCtFB;;mFhuXCY^Bh4fY!XrICH#8}|1Vb4IOrVjs>$zr0YA_k?s&0t5m35#G?Q9A>8!cA6aFDr-)?Yrv!?&_@0KgD&z40t zG5llbs5*E`4BZQYQ=>Oa_Y`=B93}S$aTzajyLgvdPL7<S+UIGET>UXt~h6!7!9gV1kuCDLkb2yvJd|0NFdcIRaF_d9q$Z|!$*V{S{o!#Kuk`W?M~)IS9! zcPt}ybhXj7!o#*nkn%<gU+YGUnf;D zv(D%1r_bKP-ko;jZR~;F8r@aaAJNa7E}XSgF+@0QG$$b84KObLR2(}eVobR%V&*zX zRnKSFvRAV2HSWpDbhr`5bfQ%ZiaD_%{yt2KN|QMuhLeQY0F5ygHD;(iqdB)3q3-6K zwmy!pmdket%t(|=1m+cC+f zk4%uy$I~In2=O>j_SrGop!6z4cYi{$j(s2w`UsKgNf260TY`B}8pfK~1?*K!iB-{W zYMsf|B$iCFoR&8`S-`$M`j{{f) z3AUEEO~P@KL)`Q?sf3Qx|KBDPogd}itz~x0mHu6i>11Dcw?X|)K3O|>Z+^710nW%3 zw*T!Du-LiNqxyQMSl^VK0{_<_r;KBEaS|5?l8IA0Z`QC3Hi}^~PR6@97cVDE=ZDvZ zacdPgK>(xyuEU);_U*{`@lWwjBA-WyNHEn;QoSJ;4E>&v*vlkBp?(*!zWIsRqlHrh zq3j(W-`S{E*EjzyY7zET4-Skt4$APM+u=x}Tvqw}|3i8C#x`-@ar~b9<2b(9K0Eg1 z;^*#szJG~x#&@wD$G+I{l{C17qGbiD&^0t|SK1A2NaML$02pYhN73Cz#v}oJKVoLIXXm=n( zxrIZyh4b9DNdgc~XAr%>Gc2dr8AZ7t9agN5EZk?&j&2#wcbr4cG3Nv81LvP(0mmYa zfztpVlR6^>V4)8J#AB$2>2L`=Q(7zGC7tf2Jx8NeZo|>I4M*edI~oTTxij1n*WgHu zV>q1qx{n#g94e~mc{FPpbL}$SXcg97%`i56ZI=kX>TAY>#&+M=bmVA#GIBI&LgA33 zO~|y{9kzYV>j=H_H;nb-pPmQv?HB(U!G?rG0rg#U#x~g?X1FCEM+N`C*x*n;Ui@Y+ zZ2kMWJ$rk!hgqQ_?Ump|-SDSxo(8?b!_AQX{9?MkwIQN@JJ0G|ec6tDubfu+Fp zz^#BUa0!>31XG`>H|m5`2lY%)hLeez1fDpzG1~1p`TA(89+D2eW!7i622L7XGMZ?hBCK zQm%Cr{6rg+j)LE`o_{elrfGx8W5l7CQi%wsX}#=7e0S?OIPsFZk{MyY^`Bq9=q|PM z4w)c+fjOY=FuMpaxqW8);`XxyX(xS-tIRx7#_0gS4WAYAf!U%Rvz|faM!~g4emIchdl&~@C;mn4M<{;fv-XWZV_b+q*)G`z})=3ORTMA ztrA&RbA#qUIV~0@-NoH*O`od$6@NtQ#el zW$JO9#VVM~E#8_S)=({Ev5%dph5!UX-nI>~Wl>~|Qe=vh6~z-&QQ4jti}qHfM^;H6 zWOuUPV;4}n%7=aNWOy6zyM~g2%(FX4ppsdI4N{)Alp1C)t$pT+iw0jf0asm?<+B!V zGS?!mWnOI>*P>-)nsc6WqF~V$>YZ??hQtaoVmO3lL?|{JjYbXipv>I{x^voVO(>?_ z$@)3Qpj_Y1p}c{D3KGTz4{Ts|k4&Ji_nkUonjqsViHH`Kr)WLMKDIMu1 zTVD#WZ##H@A^geBXgrkbh=HewANHs-&9kk)%?m8Urqg?(2LZ%SPVi}<>;7Um)4YzS za=r0bhyb{be&hAu94moqf1-v#)J9u@bE-Dv*ayS|$w`~c2*-ql?1K5aaN6|s61^mj z*>NgvN%o{oQG}23S#gY1seV(nv|?&lDp~f9l4DO%Pia%uw@Z`uVd5}#*gBk>wHJvK z)Cp@bw^&-V&*$F4-YPBGSJfNpEn7NCo}x}!L~lUp2=hrE=lQ7McfX5`BBtM8@6ERh-$>l#!NFy`Fw6FNShYAvc#-VwkX?YQD#=8 z^k`{#Sl2Z?8u1I9?D*(ENT&N?(cq9|TBc)8nzQDjdB*H8FX6v>uYBk=&gfb&Z+&p$SWN%aU_UCD204}Y_BCt7Z z8q5P@?CGh?7~!TVHdrh5N9o$Idk|5KG;vVbw zYilTl{=E9qH=G~c0DxCyXogx&Jh4xGq;(k_Z=K-vCo;{3^`y$SPN3^Is*E}j*YHP0 zOEIbdfcH4PoD6W9$W~>YOSV55s`LAMKaIwyB#+t?>NqQ63d7$PI)}464uf?;{h48YlEG|nI(#ysLdnLIdt;j3N`?)TK77l_VeZ;~CZ)pqraslI4z0H^~m2yY8-50Gs+9l6TYMi(MS25?3gD3dZ* zrQ#gyA$$CVK~08APQl$Bxw*Q!x_%>dlG;zZuTeBs_wzy8yH67-;D~1L`f%#!s+jS2Ku%_vN zp-JO5P?kPum|yl#zz?e9buZ-z{*5i6n zKcpYkpVzPGP5qXBNAJ=b_!kDfGxB8QScHg_FyVrL3l02t*9PlvB#?E<_sunP-JDrA zA7aS1b-^TdE3mGZU2NAD=w;Kf{-2hH4`5)zZy^V)9x&4!I&d`(85Eike89}mfoqab zs1lpw@Er5 zNP8)VwY1V&uD{xfl`=m#1B}+c4)#6sGXBEr#if4^lmd@~&-K*Te%QJPQZJo3&_-!s zweuctFz9*$9BQ5WsyJd5MJrQ%3!DRIUoDMW;AkX0()vB<8PD{1>_8L=TDsVJueIlc zuUipIg*R~GE_7ZE|Bms!U0HC}bv87go0nhTF|T|^ea79CZdST7Sy4*oPGw(|R)VC~ zr_fVsuS*Nn^L3@z_qb~;v^T$3G5Yp9_p1|qFN$;0Tz*cOE6-JaPW((fpFgksinvt0 zPTX*X={&8(@-aoqN|i#Njp>^TKh-_ax248xF`sx@076W&vETIppVt+tW-T$VLdHml z_FhoZG~Mg%)7!VCR#?Rfg>s=@M>)&<$y{1$cG{j|*tkL)4yuwujjLK!VHrS$LVQ-r z<+y6LTNG7Sh!1hRvoK#SC_t&^WVxJ!KQOCKkbo>WryX+++%fL}4%LZyf!C{Zv?u1l zJ$GrE;wEAsHp|DWsg&qcMKR4geLU~Xl_{#o<$N5M<3p}$cdo)wPSq*+T-7X*3yD13 z1l*dh;Ds9%gjhjQ;_(>i^?1mxTm$U-Xu1r_in9US3vm^w$U9w3)ljdfx70hT1x+l_ zo{D+{S1}F~!SSoSLN$PW0pkF71OF|iV}1DeLgJGjx5d4>w#ux_raZH{X0ARYab~^0 zf3qnUkd?7P4QtsYW-2}h8?h^ z(^g;frHuzuT#qQ0xe~{pIB_ggg0kS^r!Tb{XNnf6ij6NI{kq{zxC{G>v5)0kOoie6 zT*brr!xayc$yOXL8$7C_v|~p^ayl`0@uJPJF;0KO}X*>^aRu@{xDt{yDnkt}Fa!`RFo+?LLh4O~B=Du#X30-x5KHnL zGrqcomRnp31A@FP(LVSpOWN2JOQw=20M$q6!@tQZr5YP#)f&6KMs8PwL92Vc@uonZ zIXpR7o*F+K@>(f1w+|ovWza>^wZbsNP9C4OP^!ESANfVtO}eYnK9Mlur@^Xc!2U7w7OQ6;7D}lGnz<{5HOZZS~`oXUc@O2+eAP*BT zjQA9K*bo>rB5XXDuM{(YW&uy;auJE50JB4poNh*GfUrS191_DsfEpol6xG;RgS8q& zL&|`#L!rPNm0d1-vNkk2K%#|#bb(d@{KV9PT37#}Zm3pulm;~1`^OOlAw6ZR*m@_5{IJ|F`&1E=fuFLn^0dB6sD+u1a+%}?uE{Lek zAzT1my;X>)20y+QziBDUFVVA%HK#ZR}+%_Os9>U%3wA*45KV*{h0!tPmrf(NiM48w3t-uT@5vh`b7 z6w6?LGmLlR;9U~97(gZh3EVNs9AkdO5GlG$<4@Ah(l5||r7Z`@6D0mLejLZu*l-M2 z9m5Ws_5dg0`HiBk|A+B%4~pu(;`r~}-+k<5ANTUu zH?X@b3oFWEc3~HYfs0s;yu`*R=q%Ax#gtYBjpC~+6N8D?S0|=%I*QonXwn#Yn8liE z+G?sYN+yKZiBo4fRA*Y5*3>v@B1?b2y9+7P{?VP;d++Yvz2|$*`TWi~KaLes?8y<} zl!PREq9Y-F22v1hi@Bt&Cm5PQ_klW^yxX zCgZ9s@Gd7x%n!NLWU+!fIY297FyKr!39b~iJO;Tc>YVb6{}CkD1Qs;I)1@0@*29fBVI6|J(sr=SaoTv&Zk>?fK-B zZW86Hv0?liejk~U6EsR4$|%=|gCXM_Bcs*XbyIb?RSQpZAWm11MYcFCie-m|GhmBF zpC&0%O8#95Bm!Y#iHtq&q2-EPJXA}Wh7KlPUp_r6`tpkW zT1|)MvIc9)UGlxKIxwr;lfVv)JZcCxH;k1uOrHbHH;^TPKX z=H*QXFRod!FIq{ddy zMCL0OdQ%B{`9hw_HiQfe?*yI!)(!^I3cL-lL;|J(iMP0IHa5kp!|7gDl&#~4dI_TA zaJrG3!0A@pjKwxX);Kkcq;Y5%&D@L_osYvUqgTf9jKg__#z$pRtk>67dty~%z7`;j>IM3L!3L>>L*AB6UDkNlW4QPMR1!<4ZJHpv$g z0gpAr7ig#()FLpoSp_dfUVbR3A~zm&vyscsj^T&sy9-}zZ{4~5?LEKRwrS_aqwQ^bmTuWMf3tpbis$gl2MJNd;Ng1l zWt57xDy~hY*Gx>EX_blDDMO14%Vl_81}_E?gT;c(q;%fsR#19E1piJEok)~P$rBA_ z27Ci?$c#Tg7Tk{#kVuY6DE+SWB^@VsDI^)zu7c*+-ahnKluO!oQa z6mBRhwy*uE|3t{Jc8E;X7r+CL@JXaYGnJ&hJZ$5Ea=~ac4gmyAT|ovAE)ks?q8Crn zOVr8(qc>Z|MS`oqMLVRb2Of=Hg@>uhl{L>M*}?PPhLWlCPb>*kcOiyaWir_%$Vk?6 zRUgvhLB+7w1Wl$bCdS02r7^_tU^j9zi4pukx6Q^m$hk`t@r9UuV%(oMQbgWV!3b&M zMMdE-MMPD=3lmUKCX85xf&?t!4>FmfhZ&nrdVF5Wydbi&}s$+Ela%=tuT zeNCdE^W@CivugdNqn`nr>G9_}YLnusZTO!kiS*c6y{*RGMuy~gu*YU&_+(YEgE0`H zifAS?0PxAllk^sa1981Yi7L-(y!^pX)_+LN9+zr1F}BeTSX8no@NQsTsHA>nLC#{c zaY}KjcU~%yDN0t8zxAc?OKpvN+1l*NY3Wrqkfjw5JvO=*H zrdYvZg;$KQ!3Zmiu+RvLD)EP&;(9mxnC!N#MuPr*j&CpP!uTi2#xtg6yf^yc7M)-OaCLxyy3W zQtUcu^~#Sw>*y22tm^E#P|jMf zd1+fo(d_xJ2XX)uKT6%?sSfh9fy6WofNyYE(|Dw zuXQsFA_e+7`H}ca{iORkkB}XLeKnmG{(}n+kvz#`RWOY9lK%;)Rxvhm8@YDw6vzIY zjj(@UZ?mkx@$_MA?4i93!}2T_!PmQm?;bx|R5YZT2v8%kY6vw$Gc_hqgTocSteRQ* zc1_{I1qaXVfBpdNANJ^5@b|c7EqYDSpVsziuW9iSEr?n|^fkqxInDKP*EoEH1A$}d zS2E9Qt^gc{lW?94-k7195Sd0aWLUZ0tJMO_Q*}zhG2yJh2*RWo1oFb9?aUO=J0 z`%Y{)oESgL>MJ)x>o73IfD@>CtK@X{VLu|B;?d-r3_Z-%)X* zIwKzU=rJOHF%3S0nxgMQdt7-*S4>$q9}}a9GUH?zCYI)&{|cchfX4Ap6F^a$P*3a) z5PPbvE@BI@WB-cIhi@k$Bq1^a7VF^O%vW1%99J1Wm$~eEcJ4cS^JR9up0(3;GUMG@ zJ2n=cR3WsGIwF{)j@WFJ6a+6x904j-Nc@ES5E3K=5(sJYfEqxRoHhw{Bck{LA|$#b z5|LX(jq+qsDFr_yr4cmCe`cpnN~8)>kXUJVW_I`g|L=U~JO3q~$R;)=sFILFj?|ij z1t}$!9-^%#VnKv5xu6 zUX2IwAffwl^ueGNFUgQFrYT9*x%eW?x7k3E#o?iN(jVqU zdsla(n{;=3ekK-=4}{;n4tlNLv+~2Q@8;$X%q8!iDf#szPkLU za!ZFp`PTmW>*M3D8}1&PO{=X+rHnJ$%CB>)tuia|`nYxjR-b8w6|9rl!buZ4X*O31 z(AEs5EJ%c6*jihnAGVg&3K@L=+|yH^HoIc7DEG$9SU#C23a1DqkqDp5J>{L)d0^_m zVD|b^uJrlgEt^Mzk*$5Mvh9hC9HVvs=lJBFd|58IiT(v#sU$VfsLKBlFNy_Z!Yp?x zXxzzQF`Z5irs=ixN_s6#GpdGTnkJu2o=K7uWvv@IkHA}Kf*k^Rr=ayHm!FIm|8UNV+dJDVz>#LQU ztvO%}9-%1A)x$ZX*w3=R2pPXx1u8-&sujHG`A?m*3C7;e%s0NadtZL+3%mCTS8BuF zW?oJRBmR@kL#2bz@!aL#!-vH_R6>7w4IXa=$F-#Yqx8?ygu_YvD|{1k4zA%(VcJ{h zHm&Y%lqeuev!H26G!Z_7nrIQx6L2brBvt@n@av8BR(;g#*x7OOX>->6q4_hDkC_>B z$oz`=yt!ZshN(LVNr}gWK-F!1m)_7hlj@GcG*nP@Uv+G!;m}~p+2x#Zn$DubpLNbV zBoB%u&Jz9%KTf8jv^#wRElpKY_5|6G{Sn z7dFeRG3rcc)e5ViQQZV(l{&lvlZW^3tch`LT+(yWP+!tBQ^xk%CpM3y?SXBzkxW5& zVW^PPNxCTSNXf+kd+R4h(xsk0Gn)oZe!{(hZ}V4>fc6FxD`btlODIQ{DXvk>(Ig$9 z6k36|@ja*^0t~nl2um==lp#?CJi0~KDWUT`L2fIzT3^OlH`fB}kOHC$91yWMSWS=N z+Y4J4_CE6re`Rg$)Tu`z^K1OOJf-|Hhie?>xFk2gQSJ}I+rmA83i!j32?=iT>pbD- z5r^Dmh@5Ld=tm+K2gTx872k%idl$BHZ=5={#yS9#U%*X)gXy#sXc;6WP$py1ge0l4 z7)6lIT9DJUR>iGCqI>ALOhCP`JDcE4m80e-W8qt5yqe2!E#0MP~ zK5Sc0Tz<~hERaaDHzC;rsdBxLGKDW^ld>9YDQc=|fkwJhO0Uslz?4cuxj7vh?)vac<;K{8UHylY5bSJyR>;4E@$wR*XX z%jH@PwcG8hFyXC)o=oR!i?s&qHpSyq%^5zD@ z8X$Z&P_S3PsKBsgHLNeSf6U-%(N&GEN(5VuuHiEDo^Tl#b;F0l=+?@eR~?tQk!f{(#gn{S)%XZF0%h24C841{!LWAh>zxR zp2e1wr2qANUef}E;Q3N~#7DRStHEv=$eatkm@u=BJ`{f({RX^jdN~xk8!0G?g<2xOXXsqKAr^#Jd?;&&`FgS`19?T2{Q3Q@o zvxQew-9Ipm)#>K+;`G&NZu&on?1E})EIxexpCCBL@8Mqn1ho#U^w0N?qQRgCFHhc> zT%V-hnw(@xZOk@jug}uiAa44z;EZW5R4W>2+uSAkZSXJ}dC33cIC6p7E^!(S54g5rik`zpQzTyzH-!CGIwkD$I@#S94UW2uD& zeSE9-Wl;8DXtgQK4^^DFhbawmZbD^5}eJllj?>;=`Ya>XsToKI2P^8|75;;W81o__`UBv zJ58NG&vs%vi4#A^PMpSRU;O;yv}tNzH*WJ9OxwU{H#JtGu@A5zC9PI%NEP)YhG0Tk zm?n(@lG}kaO@Kld{)F{ILDNLbCKbU4hJ*-+FWrZ#lh_Af5OdDG&yJmR{At{=en{e^ zzu!IQch5cNci@G+=Qst37X*R~RS`X%&AR{*-63LIt&Q?p3o(yeDK;6aEz>WFdgHje zR_T9@+*WC$ywYN<3z2?&MDW9+r@qY2Hk4so^ahVU#{3E()fgo)%m6>M4~7P%L6L&! z84Y6CmW9EyNU|`3*8PwP79oD{F>nXEZ_y`Zd?lacBcfm5KQ?%evvu#$kb>|w?CdsE z)0n%{)WJrG*I^6X7zTKqv-JI%*J;$?yDQ149IsNf;dqkTIId`X3SJg7j4s0z3^5-i z#@;3m%&-}KW`1UArZ`iYan1`p#@f#twn;4 zKy^iNvXW#1!~i7?&5#U4x4KP(yMaoV;d*fNOEu^LoSNjw6bK^G91fXgK&m+{C*`*E zY0QM%zAH)4DUPfhkxKZ59LcmPK*e&lGEFWs z$68b~SB(Z6T7j!m&MSxH$Etblqe^v-_4;{UB&Y_ZAP%!&T|_&RRe%N=exxd8{Bx`R+Ag&^ByA~n92PUDOpEntrjS?V@`^2p=XUm7 zJkCdem>_jkVnBs%&X8!2JwtGO;TWk1R6m1u#y||%H&&a%!0?LLX~-kwDRTUZMAyo1 zvu?j17BR`wul9SQ-e|{j9;ZYDxKstOZFIG{O%k{nkVXT~2Hp+GB%lVC1J?pd0M$Q- zi5Bd>_FYUFqm^^OqyAoaRQ~c5e0hWQ9`zm&<;%4Q$6oSPP`#IVDd|E0#rPy( z=rjZN+RC-QSDb;kigsjNXjjEQ&YGbZkMclK%fuEf9Wt3#r=@A6o!*he7!uc+&+Lz8 zRP$J8yz{(b&%l$=d2|+*=x8tNE%wTlOU(pJ*nmCIfLTjx%^bGpM+2G4`MP`G#}%qf z1LfaNgB@Xc25(idI(fv&$iY?U2)&^0t1cDX*g9+O?e*}Xf}NPPp-Fac3M!Qg%?%3_2Bh3l6?=2{Y8=zCEldVE2~6o#Y^iJI z-!dOhk?&yIg0=*s3=3Bitf~pAw(wNrwN3Xv^3Ifx%I`QY0q^%kkEP2{E5ZkdLY-JE zf~3U@mvI6vqs|962Ji4z@hQ4oK1KRiGuUlO^nKX@HsL24P0?&X?h3j+#w!>zLL?SJnOk~tqn~@Z)$w?PkZC9mHoV@0I z)lB!%W#t(XXMLj9JK@HotfSM6vX(Yejh={JjFzHG6svDr#W#e->8`RE^n&AQ*c>~! zi;F~nhc|h6LKDo-uu5}tPq9tP6J?;9&@mzR|cXI&Mnpgw1n9;~o3mP!F@da@f> zv&fpQux9BYWIgnuu#)t~i_Yie(?S89N<8xfPR(h=dYZxMOivTO8Rc=9=k2XDk1eKd zRyL3eHi#FMj65c?MJ}Et=bEf?O->4~EOKRSuI&Bf5;;1qS1X3+h;Bo^<(MS1tkvmI zNa1vZbMdT0)vV!9>YP5eFjt&Y<~~RQy-+>x|9Ga*jGrm0jcbNy(&f!FKaua|XHHhn zokDcVMyDEw#?H6v2G?3dt~;ItjU&tly_g)Eg3#dy z)zYm6t7s_}(d!)Oj?m@T=z#MLj=ow`$9q^Sq7ROFIC_FRI<)5#`h+wg99_dXl$V_k z0msh;hx8zDB$$dEIr_C+E*wUhDWqvdnkjv%G_^9NOjW50jpri68^;xm`|ukzo6J${ zSBDWk(l=!;AO7QEi5#AEcZsGIIb&wgjn8Knvlp|atfFT#*`=(U`yJFKxBnCBcLjE-gkzw)-^FQpS(n&YXxoOHxKkuMlaZs;U^IwIEi4jeH zdzF!qmNofx)}n=7l(JI$#54SxB^u#DB&;tCMFVJv*Y%n%BW{#)E{Z40R zhY}9kpOc2)*BLWogOPstz2E0N@sG!T^VBy^oJtOOhT=i0(Fy5K=f^YYqo4Zp$iQd3 ze!V}ur;iSFhpgjYdgzJSA^+(!17G}tHat3Ac=U<$5C5p`w7!4OK%&cobrdUKMm?mI z<2B*hl`lhw7`r0H`L@tw;`djZ+s(D|FIY=Fj=ppRUBigoGDe873UT3~8_b7}Mv5wD zfNvQ1eBhf2(O8>AqW!G^jUY5)LnAiSc0y9O{1?E*>u?=f9|c?paUmNQ+QfYCzaXwIo=r$?xxxUW(ocDP@p7Wj;HGk0{+m}V5{EiW!12jk+ zv<{9VhoiBP>KsUqbXO8ylFmzl0`-4hA`*pb09;%eRcR}N{ML4yPiJc}>g0PmH|_Z) zIzW2)p1r+wb+D(^QU`mUw_`hns}R7~tM;wJ!FE~OL+cyX!+Ks7!#?O?#~UD5*8_N| z{0k}u0`2WgzG7-#J);tJwU1{tMR{xlrUXK->6~5*fKdL6$$*9z!Gcu}ZL4ckk*gnb zU2k$K&Piw9X@G(|LuY9~i^>Zl(9s-NFIK%F!+QBoudnPDO7 zu&5G~8@Pi=YiPPIOMJdvtN+#c7BB*Qj)b72fU}*Wdf3_P(ZlZ9G)I1cSZr=u*GC=) zLJr!@IJ$I>5<`%51gV0cM+xk!`>D#_VbSdE%zk~TR_yicAFgomLH7TO+_c*WmgfQ( z1r*@HzVxUR(tlJvuNw6N&?}&-4j&swucf6*E%~69Ty!@=;HKP%bU0TlzqlWLGZn{J8gs~+Y9vGlP)37ppbeIgY7_b0nc2UD? zhMx)jO%F8n0=r!myx&#u6u|>$Z6ECbx1Ni|0FL=Ls*KXn{OHk9LvTYLS!n)_FemS#)6rLVsI;onSn7d}Q}Lhae{vky*|&YVm?`Q0af{f{3$ ze-KZSMCp+5&yP|r-`@6j8uoszE8I5{e|{=Irlh|&nj7h`MKwOPQQ+f6hZcz}?_gA1 z$ZzXo4~_K=omR%l#@L_^vdG#p?VLnxV z3fv_We-ky4ci%t*W=FSeqzyS=66E%?H-_*sP>aQkg_{%irp zDfn z9W0HNUilo3m27$BhY;n-f{tu~Y@IgVgz1@21;Ty9d*xv?O#1{}a4)-8+{8^AnpEU= zvxx*No|vcLA)?3XDSAltaWZ?1E6*%fb3iqp;HdIORO@(Qe0h9j+%QfXwy9`*+-_&M zsaUFzBKcG?C8RiNy_(v9s!#e1RnbuKDL@TTn}C-sD;B}RJ+)Yxni!%jW-Hi8-d3~; zHXYHn1){;i5j|CiL(~rJgUi8{API6WgF#7Rm_xCl!Vt+16^Hn}kYNsO)4z~JcfvLIt^>o}0p@skj!7A~E-Xt1sd`LCUjzbjmwvLY{yg{`s?2-Y{W6~e zGPGfbn$aa9vtizQYy>uOR;z*0gMOePfaluG2@iIL@Q|7F@ewrjG<^&R-t{^M`3)_H zRzf7iH7OJV^(2B4j)e=krKu@UPr%K_ zvV|<129z=U&F+4hO>=i;We=NPet1CXDHrV_R@Hoi?`%{XC*()7QyS(^YhY z*1{btiZ4WQlv#S8QTf{3%2&FhR#Z_mYBp1|_x9kuK|+KGZ@uBNdLgn9DMrX#WIiIG z$YdlRArUMyYxq&-T?P}mQ)@D4x8rL$;C}e3{CM_tB1|*jUhqJiE=~)XX>6UQ(}n3< z(*`s>)!j|a6Sp(>GT=e3;z4d9SIm*Q+G%S6UK@ayG0W%Y#~3_?4*>Ya8r=nhu0&-_!X{QExmmt;2* zKu_}2bXim}i7zBEN=_yhlEtKfzqc^&lF8k>>B-=?LLbC#(@$desENc9nS>xDDjp^l z62%0WOUx$(l$cE96C{B{s~(1MXp@KR(W&LIysx@Djk54E^mi{6L1LmIYZugHgxyIa zdLu@(?#31C>Mk_O_~#Yt=_$hqSm&5^PPfigTbJJ|@2l=Mql_+8td#*SEi$u~b!&N} zbya7z8ReE$+hn|z^=E?FCUo1xdcR8-*Rl3K8tc-8U0lc7`)I677uT`& zqDNrOb;GvG+H`~@%_;QzML0#`tQ>=7HO>rugWB5f)K*)swl=r$m5PlZf^p3M;-Dvk zOXUw~Tk|f}?EQu+0NTwFJU22wa%+T)u>Y^!CaNQ}xlLu?7CUxn>u`jxv~Ii%zor5s zOmNOD9x7|hy$9KP>x#vro{%wuCng+N+bSnwj$Ox@eeJ|Iv3O~G!-+G@0c zC_%{vV`xd&Yqbv5h#eqqmP0BS%U2D3Uq^_ZHVi?L)5J*xa z&6H$vC^?qoQ8EcNFubU*P=!JUDqG`s7urJ<*N6iA#ZWNBwFR&_aD3$wUAwN~cP*rMZ&1L?`ak)si6-!;r?1G=fg3 zRD$YTFmxaW=C{U77eaN3Qe8-paOS>={)y~FZn}RuJDs~g-pb#|({^{Yh)0W)#kC?| ztcp{l;uH;WiiSAFsyIaur$`Gq6Q|b@r`Hgtw<=EW`-)T5CK@%`VwxR;$R=3p{GiRB zSnWyUcknnmLo66&9GTh7Tt>*ygR>FZY?R5sg)U5Im01XsDJlj=7WIvV23_qmkcCb| zkp6CtBK&TSG{Otk$f0qS-ULa=A5f9jt(CP|O|WZmZB(1o1f)4Mzc!{#X-jZttkaO0 zPU+KCbM4fRrlQ6l>w*5Sn9z8|rx}yg3KRXuz+~+LMy-xku9Z#~wgQP(r_fB?B>a#n z(T7MM?(%@HO7tPphmDneU9}q6WT3^sMgtot^;TW2H?VH&JD`hxUp@zjCHi4tk184Y zL2MS<*q))YzIQdydn1cx*QFQ=p{l4%THmn2?7aU(%%l($homij0&H=?(r7QHd< zfcZuAmx~x_XS5X!?zev+4owRNNrn_A)L#0ytN4{IP|FmD!eK{dilxVL#)L9sFyJRM zCo*f94VEy=^G8w)4l-Eycu{4zdywILq4K}|42b1Zx|$&ttD3nj)T?|!ht$Y+`Xe8C z_D0lq)S^D7UpBvpd0_9vLr(0Zu6A{)6zAcHpht`3bXu)MEFT<);14~lI!S2!o`yUL z!HZxP>V*a#JH#n*R-6-;MH3RoV8Bm`C&V>zLlne{Mq))H(a=aVG!iQsi4~1RcF2K7 zBGpJl|4kO-l!A}wzB(VQ&h43Fev<2k-o~=Pb2vx+?oClx=;~G(hIUm@YGpXz*aCvR zeLk0it^*^t!_B!#lcc)A z54FR!EV~o+T>A@1Kii}J+Dp^)4p5KbZc52y<1>!THAnY1NTbydML z${9shc%;OYymCT0shE^%PfC4%sGjvp`cLpXCKq`AD`Ol(2>FSPL(XOs_-!E;No`?a z->9}w*{R{3+98bg=wA?0{3nqgohIZf-tT(3C%pJ$-lJYF?Cte(-*MrHOLKAGbmC{6 z_)#Z*#EGA^<1fNL3x1lzhq!T$+s)zjcI5N97x~Kz1O;r1+)dKt@33NIbyzv8wYgy9 zFQaQahMi90!}=VGkwy-W1*QUX0X{%CxVfQ8wFf$y-2}SiKzD!(z{b*0q!D>f{cL`F zd*pHN;=})(LpjpKbLA*TQQ74sF}BYZHEv)RJMiFz=Tw@m>LULJ%0reIZFTCy^Q&J% zWLsQgL^hNN*kx{HAtTb;zg)ZsB>fgSZ6Lm#J$Zf?i1a~yE zMy-unLM>CwGHh7-s+RkUok_4P#Yn#WSM1W#S;AvEF-@_g8nA) z%Cg-K#=&^79GnR*1y_O_!MY%6ajHR9D2=*t_dZY>H*#*aWA)5O2K8??p^*!mU!IjY znVuwa98Ue;l8h|dY=o1`e!nW0MM;&H!Iw;|b{JZk)KU40%-LlkpOpV53wAj!m*rJ> zHObXF$qEptj5$7+Z+!i zSKY;mkLj9^E;PYkL&{kW;{PQgd8rd9O5o)a;AO^h#$)yv#ffD=LLcX!=0(_zb)$l$ z|8*68mgcRa2ha6jcrNPKh^?pR-^5pIY+F|yKj$9bB#vX>d+pfQZ~MltB!1j$``V6^ zHa^bObX^~#tZiC>m#*~105u6s)v-dNZGthOEg#T8AhC&2=!a>cO<(B{jf4t_Eh8FT zrSV}@;sdBOQZ>3yYaRaQ+DVH9d|4~xL{~Y^`Rm-@|9^fDNun>MaoP>pt-zLo7D;!B z76FI^W$;vHHgi2gXl5)koq0WD$}rdGb{ljv*ABE}oSK<1))Z*T#CU@n|Ia5t-0BHX z2I=TmG%5=)*oiRI)ki#&(D14dH65CzrFh+xiXi}x2u;x zEaT*zv#4lkPhEt$$!1k}P=DOvjH+D~P=zkP&x3;adhk||3kGeL_BagInf7+u+vI%^ z)uo20f||N3_OiXKj!!J+a%HuaU(AUhtT23eacOy3Dy!@_iKV=~T+V7}^huaSM&F>Z zkuElniIQxnYpG-`zR zBJUpBeXxF+KUv*>UuRt{QMB6W6QoNq+m<6n=t#R{tGRs1rtO-H@A!NS@j|^*jZw&l^_E zxI*ZG>|I`aivjKwc>fgjaBzCRpK@w?45)7wPRyrin^`yH+$J?BZj}WdT$TF~E&Vq{ z)ip%bDU}n{in>?5teVvS*`Lo|ZPIjSty%`pn8r}?3~7{8%u=%);WUP|rcsR(wTkw* zHl|H$yw<2@lzUk9ruchrtKu0xf`;ZyguNeR3A0m2stN^RMbtH&>O|FNbxvoU5F}l1 zc0_NmRH0e=q1FbWxwP^N(}&~?Dxzyt+Z4zBaeN>#nc%(?$4BG%OL4p-j-T(s2fL1S zaW984IUGJ7=FFX*&Yn&J^mcWwtxf3x3Z#O-abUv)p>K~Dd!3<+VKeqcMiAaa8bd}hw=XK(J;3wj5maFn}kXBZE_V6lpt5B z&0?}(Vj-3g>XRKl25(2FH|pg$FXp^n!22q-x*doYc@8c)k0VTcY*fHm0V6>a!U7R4 zl514lBnXU zdtE-&-o_JRB13=OC>u8irrVT;n^S0L1p0k_3Zl(AXqZczUNQ!Y_s!1RBY0iVKSpOd5qSbD-jN#OZ zi2BZRcwum9kYhWALF%=Gq5Wlbp}JHhRYq)J`i&=uYn9a-Zw5TpM@VUK&sO^g6>0r_ zG(c^T2+Qy@;Iu-qezyCuExPff8;$4rbWvaGhp)&rAfRMJvTKEAf_oF+CO_wjJWF3L zK8p~FQjxnvk?MtSq)nai5}Ybb(Tf;1f6}K^D=%d3o96p|VH!cw)G_H%5aoJ=W3_ z!GeNU6x^#|A}AH*ab;Gytnd~-q9lBb$2<;d4f|udH4J;LVMsxOHDu+y#LRMl1g$@3 zzGD8sOw87V$AJ>_z-b&(m&@uRSmaugS!8G;^18*XjMd=J(ec{&IK;Um78i0-*<<+W zhM9(+SgT?f>0)W^W5`ESO&TAdJEdjn?x#nNdi;O%4t-_F~`V-{?-xNMi<4Mm8hZsaof`#m7NM%?>KLEG{kN z3^Bxw7ct%eDS2lkjE#dk`RAGk4+i|%F?^Q$>CKPtj?{Z6;k5M;IPJQ9lc`7d<0sy# zfB)%pzznlu^p)Izv`HI@6{qf8NBPsZ2gc!?#iuXzKvo;4uAUx;gW@BZ*D_p&I%Pe> ztZ!!3Y>qcL$#`4xBdAtwR3m@CGlOE(i%~Gb+b9-;YH&12f)uWJkixVD*X$}os~gAg zG@wOLa2^82!g;etM?5B%8iEFZU{(BWGOJ;wpy28HDZCrU-h#we?=i*kpIcohi~7+& z=27p;E!wR_^-dA4NYmW7`f?o|x!&#=5fV5~5)rC&d429sh~0@$t3wZUQ8#V1>u$Nr z6^Tf>tXV=Tj)L=|%x}?PheQ7t-BlOcwsnPhd3i~S`XMPwBK1d7mQ2Z(EZP($S@Rzg zCymo|Uea{Q*2MFWra{tn2psI84^2~a3x)v;7PQ5NZNO4=7%&9bFsvxxKFtrFfdN&U z2P43`IZJ_T*voR#USo$ouxuhypX7FduHlYmZa#s*Y_fXWZ_p7KF& zGsJNp?g73O;BNo+4&ay$0*C?d$sY9YfPv@r0o$$$RU!=liUl6hoB;qzBOxwYEnM}x zI>@u05~`X90^Q9}tp>!W1wVv)%R?XUK0lH#AAIiA_b1r5KEE(+AUt;An&oD7!6Nmz z?w$~|44a;)zxSnYEq9#8lJfKYq+pt7{P^*N{N%zfkQ1Bll0uwSXG-Gk{gz%Xp5P{b z{XH~QoDvy^+kFSTat*wK8G-3C`_S9LVofwGUsf_XxI|UIkV#`LClH>)2*R63GLH(F z=K?N>Bz(>WP%tpSumKyCD?ZD*PL2{)!S?BIkc3P*2l7w-rX`E28JKkVdC()qR7~5% z!7cNy`M|{VcEh}7a8yWr@|#d#U>7P4 zcCu@U3*xGHMZ6&r@i8jaLjUh<3=wgwzcl~^^*n8WdB#w-1~iA zV$i8;mjDtWXda_y_;hebZMGhF_x@f@>HsGo`#KV;T>%>UVkEWvD$ftoJj$H_xB+M4 zF#V&+B9bd#E}PKM^Z-)h7k*$j_aN2$RFa#@)2ZBK&(7_B_t``H8|+)Z;T26Qj;Hzi z2Wtn9L;HLtAs-I@7hd`(iSKWE`%WEs`n)&k$I)d))0+hv{hx9M^DpupCd-r=KhT+M z&L*;~h>~Jwie*L;MMWkI<9hIM`^wIpK62rrw$zq#rw^>EH8H%IP;SrTZnXo%+UaI8 zdew30DD*x|PBg}3YkBIY_A|#86(#BB)KPhClAYtrT09@uW{cb!66JKFbtspWM#fz| zSv!!H6>jFDoiDWW#LVa>Y=M1Pwep9UOGNh^Hvc^ju~8c3vfGm6dux`3i6vM5Wzm?l*9jIdWlg!Nb#00W2_))Zll0pCuWq74i& z08N0>;+|eW_=qY-$qSbd8#y*zOzHcRyw0WDrcqg`S(9nKTS!M)PkJFU63nD){OJ>k z#+6sCjA@Nz4I)*n`V-xe+L`F0Q(C&*@s`UI7k{bDG_YZi-Ld3YqlS6#N)o(spZ^Ik zl>=VUM-(7(reasvBoXa&!50*`RMtUOzHOHLk^&d}U(^KF3y^^V?PHcTrGzo!`UwL@ zr9>{lN(s#*l4F@#Sz;L(!7PLWOc@SiYc#K$T0*tB(T^1x8GqHctyLBphoD#aijDz(nl4v%iXSoruU_vP49WHi!zR#Pj_lvW$%cqg7bv-D5& z+}Ft3QvKlWpO;VfR*Z9Y~*^)0%e9UD>{F&&H=&2}{b5_pH z;Vf}orrC5Fg+kuW2g$6T&j!402f3ne2a%+2+c8`obpi+psv6~l?mJGb!2}FVkr+YI zm8ybOCB~>o!>SglIx5*`PT}lP*Q)de5CwU!Hl9Ptm5DjB!-r>AgxMQ zq#F{E_TqbcW2bj#b7jR-Hdi3EP_~p!6?DXKb30pbNGbqms2CJukVS_vP4kXAO|Bt< z*$VNMbwiNRP8jHG6kFvmBcYKV3Po3^3IVY^%tF$wFdxw~nbuxnl18sPt$JnO%=ts- z|L8=sTKApPOJDER^hj*xn4pQmSXpn_84~3_E0r$J)ZRG!jl3UOTYTBB9{TDNXB=z% zNzW)3-MX6{pYkgStHHz5s6zG(`Q)J6-FTy8sUaRF|Sh3uu`5~zA`5Z z7@j`NyS}dW_xqu!*FU^6uSi&mMhd=_D4|lW1XD|NY7?fGMyn_%u;UXMnT4q=$7Fpw zUM|zAGLh}c<|-+ zZ-X89X{LtvVe@?ZPrIk4_UxIO+P!|$*w}*)j*V?%KDceY&M$3g-`iR95_Yeirt7bV zC4bqyf&u(=u%rD3T^L)f;E`5$&D~SoB{zY>dW!r5?PTAB{O=(Bq=XDUMN~-CEh@(0 z2SoTSuQmb^Fb`3e2F@l#*Yy?0snDycxnj;TAoMZJ*96y2dD0LFHPyU3 zmt0pL{^D@bfkSEPV*cZkll|;zM$;0#LXQ^Z_?S3S5JQ?=A4v-#NsYiWeHQfBGyF!d z!r7Nm7DP(8Q1;}UYEVY_yKkp*UQ!;A0Uu;s;Nrrv6r4vaMWr3jDJ1t6+ zKtAvu=R12!w{t1g(vxd;^Ybh2Cs!&twUSI^rKnoBh2FegREw)K?6-y+EQu(BSg3Iv zVbdCjT?ATlKlcY9TL=Bv7iCK`0W2~=AEy@QU$oMl(s#h%2gp%!f{^brKV)8H2w;iA zw5*?{o1!IbFYAXzFN@S9iiFLypQi2EsOF`Uw(6_C6!TOz5{^3TI6K4cW)HI* zdqXlV{7O03-LkiqR5h+OFLYYF+td+&GuyX!_@bl!O0YvC6ecKL(4A^FbSh%>1m1tQ zzd7fo3M+(VS>usUX{B$N$^LcOc+uso`|tlmh?jIV8rq_JTLuT}-)A;Bb+CS$Ei!-O zj-fO<@iNlEiyt#no*cz7J}S$C9QO{(XTXO=87E{JrEQ;;O~AdGKH*)zUadeB30ZEh)2Yqi3Bn_9>+6yH$Dtbe8Uju;0-%=0MDh& z+er&ID^x?bS`F~xj=zF*?)q*SyVM&-=;;PCB&Z!IVNu3vy3B$0nGqY43ipH3!|^ho z$=Ht4Ke%SJ${b~jvb?#;Pa0p?eiUMRs zWr0Bi;+ZeTJZwcJi8qs$)j3Gvm}ezf)#1na8Gbi^nCJMLV71WdSb#U!Uha*+ojBw{56Mv1bxoX_Yn+ztH;^9%DW)f|Ni z7-YVM?OKC=<}GNLUYLef;7lkN&Z^WnwU(`P`WB`?q;Ih9x|&KbCaQ+9sfOH=IuZgc zRSFXmif(}A{d2Mb|1mJ$Z$EYNB(wAV7p}ieiZ9@=1z!L}K)b)E zGxuHp3yJO9(zci@TP|HXc5Gw2!OSf#E=~qNLC-G+*yN`mt2~9WCot;d$e5&f4#o=p zHa>$1rqZ)KGz4Be310j>_Z9Hse-dByv29&d{C>PoyN;io#LrHe`1_-A;+NRZPSd8z zWl2NQHchH!?dWh5Mz?h<&}PuFiEgBWfhsCBMN?Tp`#@9`2x(iJ!m@7A3bu-=ZB`_N zhEU6ZA{B`sChZT9R-1G0bK11~a}roO&+mSmd*A(?bME;a6+O;eRF$!$NQfb><%^|l zFBsE8)I*U%7@4nDSzVynCP*TRq{@_0J~0Rr$LJ*8Ln&34hph-%C;4(KV9U9^-x4ud z>xAs3I+* z7!EV1yX;{Ebf9RJi^U?&76GXu`d{o&JyZRm)Gv0Jb9Ny2Iy>OmTRUtRY~nlg_LfRw zhY@RJYGh_a8o}%M4(n<=to#4$z){lPkzR)#ej!%wkUs}IC76#MUXRiG0a;>nkhvS} z!P+u|Vi}w*7eA>sKb`Wn&_3&ElYfJDgw;{hT{J;T%!?3el+|%i($Y2CHKpb7g&y)ipw*jMvZ8*G{dBBmU=b z`=0?Fz&H*a%LuM{$!edAj;cDXZlQeBts+|_GMe&^ienaN2KI-ash+kClntog23 zCNi;eU~5*-eIq2NOR-g{me@e$K;bRc@C=|077{jqxtq6%P}(|%*J$Gw{!Z66}mi6-#%^lv3~{J zluU2$%4cyTY$gEFpL?6b&7|3UlfH)9Krq}0{fjrQPA?h@dE@H2tLOT$RbF&Tqy>j| zUs;uGSf73 zFxup2D>4m6x@BX>hFoeeI#zkXK@=Yo@rGR_NT*4FYKU{TGnEhUhx7#0Qq5?Jwf@16 z4=MOb1#ed#QAogS@PtAbX&MTvSf%sy!W?SB>KOn>qZj8)BS7D9fWqzId5c#s7Wx;l zWn8|o@Td=963%t;(n4OqQO40?)CL&3;lz!!L6j)qS)6DE@P{|f;}2HWZ`?fWZ$4Z~ zt&TPy3hX$9lP~Y!D!bTXPESxnx?uJHPcEeGa5t2>QK$a0|RWoc=CLETGPLYx>fooIw|Oi<9ZD&LprC6$GCz z&8{8*$vxcu@Rvb&)UK^u!0%Sy6RW$?pO}p)tj*vm2hQ(e9gF+s;$4YV{Jl`wCX}R*AqHB9KKy^9t&=hOZF(*o3Z58DNl?;E41*UBWgz zCO|e#C8q8H*$={T@mKziuc5~sT<})b>(*VGi-EfxcD?8#Pr2}zYtpsH#W8q7J*Xa2 z=_4xcQAgCzsI*PR)T@S7;+JpY!&R9yE|D$?Bgv2=5)C+5L8%2WeG4DO@7lM)`n zTQN-nOGm(XVG)W65?N>f7MVpaA#woWaWsYYB5o~BQoP^^s)~n84Z4)X4sosMU6?wsc4xVGW=rWue3$m%EAla+tMqZ-Qtn#p{#jdPquYdY%?%GbPG&U6ZSG++ zbe6sZe4jhoH1{-KQrS7n)nIj;dH zm9Hzm1$NiL*`4wwx>xxRin9PESnGz+W$@Bp8Y|6|&Xy!#vNithuy@c_9~0WSk7=Xv z@s<{$JvKHrGj?`N8oNV#0KJOek@k=j`3d9=l^n&vk3tAn{vv%3x5}>|FKYZR+f@VG z)OCgLyVuXovmN_6{!K_?JB||vli1kLfk435k3a%RaO`-Sffxb{kcrYH(6VW3yQ~{p z+1ib1YCAfnMuQ==6|G4i1i{uw>oT-;C9R@rLKTe=oA#F}Lq*$E67SsiOrUIz;`83S ze)oLmyXV~doy&RwaROJ&17Gh(AWNA3;-YXyMk8w)V^J*}1~p5!qs76tLr=CvW5T(i z!)N)QZwR+;k=8wP`iF=ETt0k_`zGXxb)4`BUm-sNZy|ORzr8waiFxfX?Ca}O5OF^8 zHwDoz7$WU4&Wf0NzK4FSG3hEH&QD-I2Oopcc2N8Eq=AI2_0|S!NE@Ea|6$zdkU|C9 zP_Xp{yQ*OEWd7d8UAvAQqf8~UG6)W-KJIF6C_e5l`v_A5^610*E`6_Fqi0E`7s@0( z9Lt=j%+ua}-~gMaAs0gpYERUiuhy9O-xaVrVV>*%S%uoJfF!s&(bs3SQryqdw!|TU z9UgPX*zMRl#ZYTPmS{iM)j!jZ!~L{>p`Y}lhTPB*hO^MaB*4QB{#F4g^Uwz#wm=VK zZf~!tp*UNZKda84Rp-wx&!6SGvNKs6&eH5cmSi8FznihGm6s!E;xhTQ=yMb2BGVC! zGs@vsEip^WZO|xWJQ}LPr>>-ubDrh6Ro@3kvCO8`o2AM8ZEBL^;V31mNrXfRP80wn3IGx+fW$I@ zL^v^=7)fZv#2{RpOx#HDy>R(ff+QXS01DI|S6OSFcRBicyj}Ym8e-Xcoz|pM&CL{x z>B00!`pxuInn&qgxFMl*JUswU=F$skZJHs-#uSrQ%=or;NwF=hiXBU+qs{8*uDq0n zrBFYBNNHD>+3+s2p<+2ggLoj$RmJ1cC}5EXQixfQHF5!fTmT>!0LTRZ@&f=e10eq&0E~&H ztB>wy+5zt4{QJl~4*rx1F_|q=I7yTExn$B{ph{{Nki(mg>{HqSd=1{L8iO|{^Y2qr zJnnKa*xM*n`8HOZ4-O{|4RL;Qo4U|6gU)$qIFT#F#MTU`ic<0I2q=tFMSZzKB~76{IXG7t`JAri(FP2zODr~> z&WG7uZDTazgnx2dAE&3G+trzjT7%QS*By8RfP#L-U557YXiWnRe}BPtVGg z?39k7keZq1Pu0}J-)~~SfAwNVhbTV$J#2-a#y~LKz7+(k~UCelC&Cw17?_j2^m%1>*CONc@j`a;m_!G%0Eq zi8IQ3>LTTGyOqBjXH(M9;)_MqRIK$!End6VqO6rpQl429DM+q7f8zJAzwzRWSZ5BE zuQYMidah>a=JD6g@B7S!b*;mD2M!*2c5@>)|K1Nqo+7hp*%cLigG&qPrQcrp{#XBU z;^4D~7C+qo(je?~TKbta3nU-PsEpRbs#xL!f{>f_ZfR|BEF zwS%=YwR5!^^LqDsY~(=|EYNj!r_@knG)w&rUuwWYpfrHRK+H!sY|yzp!(!Oy!LqMt zMX_5~6s1+P$ZIZ!wy?Mutq8Ccvz1mzM*`0Wa9~wOS50rtU=68hnk4m?<4`uOB~>dz z^Wv?c`PtljL~ZYsrlIpsWs6fNerJ9@zBpATz611^%{T3a%7(mGh%GdUHl@D3F-1dL zBwv-C)c}*yF=)C=S~Sy8|@_bAEMM{oGEo8|tYJB!27&sIB6wTc^qq2_gKI`H8$ zeJ`YT-Fs=v-lc`F^q=bM+IBSGSsS>#_q)TZpBj2~{};KVPxNF1L4RY_QS!uvMj>nt zu5W8>UtRC=rh2~dQL<9*;qHE~GvQeLmuWb$`0H!QmBQle3fjRcry3zmhVQ@*ydIVb zqgRy5=sM3BFQaoe%26b;^ZJyv=Tl*$8j7TVvLrST9+5GZD;w z9TqFgc9iIl8`9tHeLVg3SGm8V|MFe#u}xif9KYw>hkgCH_xkPR+PM$Mj#J06lh_Fv z8NTgE8Ym$_A}NKMWNf^at;B7BK)WUZg_Tq*A?1-#C=o4>j&{j5CPFIIlm$km1*(;{ zOqE)YqE(gf#H5r7O3co^F({?&5?NRFKXE?i^ZR|jhsK1iy$3Hg-ru=1+e(__f? zD{1U|R8Nm*rPhp2&9Yju`BbZY-?Eu{;Pa7}Pab|7US{&e#Z^boXGN~*j>m)Z);{~< ze5CT!-mZ3HDs#0zBu!79>F@fgckK(jy-M|XgUTk$3bBz8n?`XC@{x55hy`VL+Tk$( z2w(@03%LO%agr$E4uV^dn`;(=6tB<%sW(I&xiQut7$OFo#|~uO zOQI?qFf;X&quD7)ehKrY# zyfg})zqo3NpIEdF4!-C6X!;N*tY6kWQ1_UAdX)Kt`u(zd)PjlF`^x%O2#m-UqreLx z0XG@#uh}63IV)Gnp>ktoOW7mrpIDM5bQ%Yppo{1b2OUjo9Oz~mQZ&%xv;i~aI-g>6 z7>^|4y$?%dRTn3X$tFHu(SK)WqMXj1G3fjJQGq=GH%p~iB59=lk3{iDcr2 zia3^-PF+Z*N)sQZlU(`+Kwu)tGQ>&UacaH!8cBn6Nud{(Ol7y3to`Rcyv!Za z1yO+Bx|}52wBpUdvwL0%S>`!?g0K-ZfMCbG8=D6XJoDr_;XL>ySaPNpzI)-=aLdYC z=SnbH+QLK4%G)P0d=l~mxn1OjTh!9OC(>D@V(pgl1yHu)eqR;En6Q872 zP%0yp5Slh^!0bLb9xIQdWpAVoI}+*5`v=;VtrgB^_GE_6^gg-#=;5>dear2E>x;^($S>NTW}|dbW-7A*^klB@ z|2(s;ueR>TyX=`a?u_2OaD2EWSsQ*7JRS@qjy3lti5}t{R*L=S4Cc6ZO^GsGte7)$ zv0DzH^MVszpqJe;9FR}Q@RkhdKu(}A@KxY;fZS&TLpER=0VYKp&Iir;ARm)40$>D3 zh{QGGCPC_PB5ckxDJFH$ykg80o1t8xQI2^qzKw@{i1Ri6CQtCL644m(D;UkuBHc!J z(S0;UvrvE$h~gdULL>LCDzwEO3$cE4P=_VP)8pz2Ls+k?@vM_@_%ur$_WLK1HCc<{QuQ;ddJsg9dJw-5mVdVO(TbX-eLtG`O`ek1bvFLD-VW!6mLXnLP;UH!3d1T zoct=Rl#_SmfSgD&JyR5u>3_{sm)yVSPLFH6RA4}T0!~LsKU`NtEhEsxOZU48Rq^&% zrhWPdswU1^)ubMT51(AwH2L!0OlJ9WolST5^ul*ClV`8^E2M|INcF;ZUcU@<$A-P% zbb3x5M~vp9G;K$W1k?-16$9qy{GuOS_kyY(^Neh4DhNIeei?+f{h-`i<8AWdmF@-Z zr`-4sY99rAi30?j18dxq-y>WCV?PT20!i@oeU%D^;8-QFV*X zB(1s-QYozhA~z*TGff@(GK;n>eKyHKsoT_Hu{&LUOIA*VlxUwm_i^{Z-J75LrhM|v zs(LY>!QZdVja%93&ddwN;lY-+cYjl|WYxv3e-QQG~7bqGJsfNG|ZSQN4PT(w5^VXu}GtJ^+K34Dr zQZ33|Nlv1>31WkaGp43%^24vw+B20%Pn1MgYOb|+2`gIq7x2Ycys>#&go%j&C?UiGf&R|Al*w0M%*t&2>7&blv zwimuy_(ma46*>!{zES{l-A}kzxN*E4fKz(V5^M{?;UI_;UfdP&7wBv*zhYvR#(y4% zY+Q)LxhS~2f)~yu080o2s>VdziJVFkZ z&?E@j0*N54N!n2;p=ELCN+FGsj-tTI3e!+m`p1|$ST#n0Qc+;l)M#R$79l_ zu4;%XwGpdE%O;4k-|xa}QXT1@c6|Q)KHtydY$@Hl8Z6i;%EKVkR)fL z!0@&|@7Xjq+_&rN(*|*NyrD^tAkJR532ujbAk|I7Bl2k(4Tz&65|yAj;@O9XRdKmA z^rihsPD?PLxGMq{K+j8A<6t`7CuUg~BPA zs@IZ{W4s#1AAX8D_A!Dd5Jbc*zAH>$&gSOY0+P^|yp=w8^Q#}n2e#(7PIY_O(xqQS-ELiH^08-NqO^Bo zbU{cEVjS(wcBw(SJf1SLaP=jPPl{{dd&{Kt@X9k875O<|i`ETm^mynexAraf;m%8t z?3(?Yx{Pz90fG5bEea`)lR4zDmGe#^A4|Yk23BSoGK76mdxIT8yI@C73b0VZk%V>S zy;Xw4p?2|FSTnVUG+NUH1Pmk98-(u#VKC^Usst*98~|It7GR7z1HeQ0ivi;c)|n(p zo(xb%0CE8w%>w~OHWf85V-B0aU?|@!!vT3zMzZX3#TWjXfmvMX5JO5z&cM1kh#gwU zSy^+iKyo=2)8gQ?Kr9Nhe2D*u%;JkV>(cbRfPoKiGAA+X&Hz~Y+FQ`k9f`e<)p(t9 zB!NZd#KU`6MH(8Z%fBjpe&&Ur{eI7I=gNWp*MR9o@ zrt?kTl>XJ%f9j=)Kz!As&%e_5NR70l^eoKnDZbwxUefyTk)2&@i#-6&K3!T$%b3+! zaMnzhv6X>5ihDx&H!9CmBH$c#?srm7#jcthw~sr-QJexqjF~9b0z&BWQAW*3W{qs1 zYAXYk3HfTx$5pUrVbsjHIH$zB!Y&lXq0|NJ-bg%~gvVq6d%=&uK5z)k0$Ua@Or2yX zabxm4A#)LvduE&b<`edyHOf$u4~Ok{2_0;HryOOs=Qb)o&ZjyE$cB& z()C88g{1lgxDMe|&$(bZ<@!S-CB+Tg6zOJHU3pqlLJ>2XP805WaX1dAvuTuW^)BRc zGA1C!=CJQi^Akl5D;66vQ5EU#v z#(>_I4o00T2_EHpD#D_z&%X5Uv2A9@*p86{FEY+_colL5R)oaQW=h-sa>iwb_niHpf6M zG|mBpBYhX1Xp#4L^Nz^&2%@FK5}K5*OK54ZJBa8YoD5zMqALO<@f1bn2^<5ec{#+` zm{5YQNzk6S5cl8%YgARJ&R?kik+TelD(Yt9B zrJ*Mz(=_n0jGt*@C_cf&X%@J7cb|K}J?ggM-s{G9{h8W)4GSM);Q%|z?q?~Eg)GbZ zvcSZ@C+8!dBmar5%*4yMfDWiiDe6O@WqjIKXW1t-_=$orkL0`JAaU7wmNa3rEfUAI zma;g;FHepQpC9w{WXItbtSbn)0!h(0?-h%9jEE0FV!F3uO(P^;i&vMdID`$B{njfm zMkqks*mk@_%O^_DKV5TmO(y1EQwqoUx-BU2N(QclrZGah;OjH{%qI7POKmZilHG8t z?aMVQF3ziMuZjGfUfm-ua_G8yd0qdltCX-c)9!^x|L@iP`&D`Enh2gL*X*QiukB^9 z2)tzuc~L!TLl@Ci^etin%si%pxzjehhHg-KqZJ=#y;(g=IUdNvoMv+DN9;A0a#1YX z=xH|D@_ciwQ3GZI_@Tekqs3xUCy;qLERW0o#O*^~C^a)ef=gxW^*UWH`K3TK)*1(( z<=YSOe6(0Wuw@!zsHdi|{9x~$nY@QM4m23fbyh1WkPu_xI2T&*fZTRguTpv(39z^UA^W= zzGD2{MyUfXhQ=Gq);`g7^g>bYiTHMws@nOCm)Eok-wRap-vTaP9hiB%pf{f~kA6|Q z32pGy2FV49a?O@zCy^ba>;)T7Q+!0v!?Sp7sPyp7*#?XhQ&{X5v0Y1&sw#3Y#{db4~gIL&{IwI)a4$r%_%EHKHW&Ja1d2f$on zM)ry~-wN^mU|fJgniU#a#rMB}fJ$EWlgGdLV0%^LF3bwtOwn#U<2vXyn{}8UJ1=Xyg;YJ`xWs1mgu_$@S@$bebu+v;0p8zeE z`ps=E(;lB8TBur&MwV>OKh*l%ZOywUdO5WFQ|uMBGw)_sNBy6C;wqD|)uXoBRnfqw z=(nX#;t+bRJOtnAgimc$f`T8PhIf<>;NKDfz;*>Ep@s0qIj~^%Kc*Y2Rk9v}1^fcU z+x%oDQrIxadH8=^mwjv#=N-rIdG7o?_QjXGa87bL`}}fo96uPaDg=Kp#)Qzc z33ZhqX20hGU02yUKYs3!Y~Ank`+mQ_S)ytb(X?Wzh!X|0xv;%(vhYbk+Ca7vd_ue; z;`Ty;>(bX_%oi&ZW2{gt+Ju5+(POc{#4seS8!;rse6brbu`~8e3`^8Uu{KDz(L+@1 zqv!|p6^j2zKckq&3Z%%|X;M?e$PmNLEvA@G`cqiJB~kO2k-I*mx`W(yK9JRHZ*YI` zK=5c#3I=2B5WC23GHDPN@32pq6k~mC8#~RU)eOlDy~X~;@Q)bU%62k5A1-4|l$ekG zgdJpWv-9jOql(Bf40q@ZiA-nBOqAPMK}-|UM{t3VZIH%DjQo_`BvJz`aDbpI1bswM zoFIdA5xkM0cgcrvtVq>#GQBiCkbWusYMQvy>H1WuTpB9vC`qL`N+d>YHL|oG)hCBx z@VlvfFsY<fE8|K^*C$Ur1(CE56 zvHj_;>NMbQ#>5{ue_fC7TTLt zegq|+c=;R8g<3loz5L^9OUr6BWmP;_ghZ4Lc1?ZlOjSMO1xo8+^6|QU2$b$DABkv6 zUAE7Uj!#D$a%eNWvna_r~Df*P6Z&7rRq9(=|Zep9*x0wjEuq-8cm&(B-UI0%8@M`6g1l5o| z4ebKd^mK(YRH>Wfz_ABD_5u(CoC<(u6r93AhM$2MVz>fK)nzgr zcg*qr$}ZRcGXt{*pC(2|gb~08oEnhHKSHMQk)3FdfN@-BQkozR^MejDRBv$XNAgzZ z&5c+8o@!iDoiS{v$5sz-T3O5nGo?9;pY$vLSfsc+(Z2mdw{Q2yQqiV4QQX>?L4(zg zcQ$!pn978gi3F)zi}ROb2?k8N z)>3ONjd+!yMl?cFw&}BNGgxcYrj(#hQG(R%j(TLD$0MuCtIC_oDMj)S#c~J2SxeLO ztZIcUe9c16=aNRN)%wu7Wc|l-Sx4n_GA_$VEXxPvQCYw6ZqYKLGRJ8U1fFWcf~ zd%KN2c9Xrz7TuOT-Nx_Q=y7wsiK*FW;-^g1WHJ+LG9|WYQ9bS#rs{s5+mp;(yrW&X z<1h>n(g{9boS=))3IIF@J!xJY8*qfuygGV1A#io%Q^!DM*ho5Znt+=;9RT%99PFjZ zh`P&VIBmeADs_)dzS>ek1r6{Y;E=b9s2L(E${}9#=7%w=vAv!)H0qNRig^3&jm1c? zuX^!4^xGP5^=D}LtaZEPC}#P=XXm<%l9=$_d5L%F2ATGeR&?)qUdye*;>yh}P zw`ZtF>RB$BNH!z3A?RftcZA{EtFP5}=;w4Yr0>`9e$XDQZ|p#Eu|ur6Rr6U5u9?-M zE)!HY_V|J!$l{PxjL?mry=||W-2J@*xTs|=rQel zW%%^i#8@T68*B_7a$UxR3^y?b)oDvPmX>I7HRr&5Kx1O9SX z?Y2*De`%9!tzJ&7*Qalsz4klxTXJ39d*-z(jf3cnKH!u5u@zIFUW`4hff5?u(%_0r zTbj!+pVnr~MdKTq6puF(Xzd+(f4vr)x?$k^f!LPSd&SNbp9Mhw;hcG=pdGs^zlK zDh+(vh&?P5aw-E0*Bhz6XhZb=^O4!d-b>kSTY`gmqooYbe@L7iXz5L&%dXaJc;w!0 zY5u)$?(KT||%RP+6D_T9U)^nIV7p7?42HFuk=JZJFT(;@RNq0)z0QkYAlJLo)BMGZ_+ z!P&nmj~PsfU=UD2;PEaHb!LBIIH0S7PGELmK`8*(T&Xk@`84v+2#UlhE6`ihenzyX zy%k$sBd&ukM7daO)!1;SKgW)MF?$7D!?fxPq@Lk&Mj8e&-3K}9LG}7Zwz_W;w!CGk zchQ|(gLNaP;oLn#+lbG&0ut}J7( z6-C+I4W7JFVq(Ppx86F@u}#lG>y6 ztgiy4)}7XCR`gy8=q&|C$tgW0ZI(1cGT1KzTDHlZ@;X@)fKIPY0A`cm4kH&z1T2Q2 zM==A%++l`hvmLl~9?Bi_0&h($CD?&In#tzpLVC;qZeO^zPJR4-)3i)XQ!S?%oI)QO zk++Djxg4`OQKRap2H(pUvp6X7d&`m5#uB>fQu&@^E?(Ssyx`cIx$~1_OP8Je`5O(O zVbdGGmPr%3_u0AcVa&ih)4L;rs--h1cNtE)2c_}$AmgF=I5 zZ$<9Lk?XlVhg$HAnsaG-1Y^cS#i*Z7QjyuulvE*;pbHNd!UA@Ty~d(Z3mD~q!9Hq- zdek4@9fnK<*t8ykBgw}Y3rbynpF>yb6^)9KIHJ>Blu(TS!V+n;g0vQ6>`neM|0$1n zxpD%@@M=tN&FgX0d65y#l_WcMBDKpO=Iyl@Ap4ai?)gu^SSe4K(`f~?z*+1hc--9VZQ`g99Ar2~VKN>r{P-#}m!6*Rup)gojkq?J1Vei!fZaX)#CZ45N{6$h%uptmg>b-5ntf9 z2maXRv(EgP>v@8Lvv;vRUBs;>MmEjEfeCqbJE>I6#3mZ_i}f(2S9}^HV{sOl`vovpc?ysq z*sCzq6cg24SmqEeK$+X*-eaCkUm2Op}u#kj+;n=YOCd}=B`UjjL5PTTS^igZj| zAIOEdGKr75>H5|A-j}-nUkdV?hw>xV>gFE6gGLt*^q*c-6Rgq{_{-9{@{+pNZ*_y+ zC&!i#{ARh*9gB)j7>ZJLEo&Pe2e-1vM{I03ceB|hbBxay9@U(As380;cdc)4?t_m8 z+KMg9a;LY53j+SO^#s4-tVH)>{K`}lcuFZ?%7yZ1IdW<%NNelH>3FgcY;GKGJkyBY zOb9JOU;_!T*e3`)z$pN$*JFeIEE$*q#pAT*}o0^<4P%tC_DT-k3 zb`e=j_vT*ArFeOv!@W8{$F7G7Q!*}S9=m^&NVhG(wy%S{z) zV&UOOU;PO7pXm$MVJ^Cc(Atc-+GY3oUSJBnM;5ObqjfNl+{bGtn98IIA{Xg)- zZhx;I>iiBrG&txA8fxikdLg}y)`+wpY0Byud8G_xwi;B&BY}EESvoAxXenbHf&&&h zY=wa`gSt}R9t6P&;8mOyXR)1SIKXfM7v*L-jU91KiK?@*BIAv{fYY7K>VY1wy-@Cs zxfM5ZWBnU^J8vI&hprI2z~_&%1308%H~H`#99nSL#^2t~yr0SMG$~H|=k^Wv8}c(R znB=hCkIvQDR=j!AKCl~dBvmSFwK}|4>PnU0UmjlcvzMC(I$QhJ_N=T5m->80*}HTt zpR7MSy!ZL$OaEvJEm^o?#p#U2=POFs>$ZRQ<-r{q?Ju|0buCSHZRu^S4MiSb^n5Pb zTIQh*>-t_fJy^Yd*W$#y<*C{gC-#9)+DekE*5mzZnVp7{*s+tKbG)<|C%goq(IEcv zm%tZ+I{|dnbklU#gpO#y6)o_T$z>2}G$Jo>JTHt3pjqe?)(L2z02~6?%fHS;9bduM z@EiCcp1#0;!QbK0HXiUA0cnb5!mp9w!Jwu91;dJ@=q(8eYrP`t7`!8|xy6KfW-RJi zF&T^rieVXOLrgJ8u0-$?T#?aNY*gQfBRg=1Db~X92ify1q*#{4v4X7$2l+~+Qhf(g zoS-UWl`x7bT{`l1TX8}+fwoRc>|>+I>oETN&CIqtyY0>l`_kQ=eVdtmpWU5( zYfG_Z2dOQurN9XY*%m!H$i=hLDhDKYZGuUaTtZcH1dT{AdR*?j;CYY|&RDb-jr2r4 z@%}gjlS30@>6zf=^s-aGzu9g*h)uJ*^U|dI%;)<&&lf`%U1$vN|9R@8^{4*!O_<>N zJ?1Qff8Tn`9Ax6=CIrwbpjRB8gbEK0o^W86G-&R?!N)OZK(LHJU0-a;bvW0^7Wwu(z=%e>QipnU5 zPFzKSr4Mxt3Kt)-bLAHDa?vtvp_o{8%MLJ=IKBh#=OL~KGi z;%7LNSJ-IYt-EL3^j-I&d&y0^-FYqL&`7D!OkHPD<<6{WY#`;G+w){S#iZ4OxN0K` z+l6|m_*lg+)~l@tm&w3D@qmn^_w*Kf-W(bz_YIDW>^<4voAtJZv#YtFSJ7(s`^u&M z4aHKw@k+bsK6UH{6IDkB2M&LJ=;B8cx1-KPzPYt%St|GSmx>$u!Sj*J=%c!s>!8J5 zeU;rO`cxk+(1^o93+J{fWQ(*}U1cQ}j3)IY!OO|Elu`10@=|gp$p~~Znb#5ovT(Fa z-t`u8J%I%};f`jf@jrf|=kg)Aa2d{9L-vMtc7frzY&ffB=~gLl3Nj6q!Cly14D226npcsH|Wk5B0VmCEHxNjUgJzi&-OL4oi z``pjO*q~Osp5GPq7$5fYJsIe)9b4%8jN^&u;g23ZA4w*nu4cs>hhByIjo#>wo^}<>!`RnlpV5=6U%T*y2H3&=oGgFRnM% zMrU2YsF8ikfORap-HfJqgIs4u0<7vR1-sS_61nL zbQfcU_hX8u@q|p-BUT>f(90ph7HXFLeo0vYY#cFG6qD76I4I!>X-b-rZb{5A#E%B% zzi@wrxdj1aL6!NEso}e11DNrXT&bh?2zd=hBfU+D2tqvvoGaLYnMDd&chD>6!RCzT zzP~?lv^CB%J5BKZ^Xi|X&P_9&$T#(1P7I5hNQ(>*c0u>40VGgnRFDahdtH%kj@NjK zRo9O^Ie2TDJ2sTC!Y;Sz9p1D_56k?@44sbA}29_eTh(U3L*>^XwukvWMKlRCpnBx!iyQHrK$!69-U zHq23|@{nvC4Ysx}U=0io2;*;833jA*95zSL{DGNlrlbfRHluU867N>~;+m%z1E zgi`_~aFS9$5>kj5sRD8pP;y%V7n+f5*nm5&C#7NE}9Fl+PKQnt_7j@iC$YqCzVXV|~7^e%RerBduhma?#Jmh#&IX;ICv zRz-*Zth7qeX8GBwKx%EZN?=-!gZD_3)@GMGFZjQ?uY$yrUh|Egw9Z<|@;XG|t49Fn zh*vfq!WoF)S(iRh-(6j8PHe`2- zV}bFuKbSxSX{gh9nJR%ML`#Jce^ivM9b!xY#<0d8Q^lZM_x$XTZqgF@e2T5R-1m8& z&-eSh{LNYRS#LZf`3o?nu0U-6dgk?+`8ixBp0}D_c`~qR!RwJ&uIQIWkFvjunn|}T zrc!eo=Gr-jV^j^}Glej7oJ1amnDO%rVCFc8!yA;G3SiDgz z(!`7$94|2)`C_q*Yv*7`Idrv1;i%<9Wi3bL$F+0!C6xZsrK-UoUNQWUSPR5j(48h6 z1!5|`sNXnFT2D{IAML-uGT3S_dcP1-(_!)tdj-t4_u4(|)SrE;-Gl-AK#JYf$+}lg z+YU>f9qW8{YQgmVsAMC0hi%}1PMDCVZ*&LLw-6~h48yuX7Cnz9=;$V3j ziddv-;%NxCx=KbyExW!Jvx3h6SU{)0rY3pkZf;Um$Uj#PLot;Wsi9P)MRD6=WRv~i zy8Una9xPfCn-P}Xarc)uVcHd7p4y)*@)rX2js_=T$QJv(PWv4}Zq?V>_mc4QPFUn{ zedoQfCr0kspB{;~l{Ow+zxmL@ z*{OWJD_u`s;u@a4*Rb=j{V#ibWCzIp6@xp6Z{FX%tCf9iZA(8ar7Z10?NSx(?w@C5 zbk6Ufd~;=Jlc6AjCT2wTiu+G)cD=Y=WcO&WJOn?9{xZtW*MT=;MqJ?Q1Rl?Nh10@C zfiQTuE)ZT2SSBXNj2Nkjd0&*mde{t;Fo7JaN`BpM`f*jmJw=$5R)EI>j0(uygkdm( zx<@^r62Dp-kdUk<0WuV0P}hq`U&)|cH`wnehe{f@|Eq=uQ^xnvcT!ll#HPLH6a~Tfw)3WM25SaDSNiMUR-&{B@e<|A7Wtpj+$}SzR>6 z4v~nW!`JHve|C;%iKov)Jh*-sQHLb@B~8~%?YG(mjpK=?d2l~@Xu0LM#Tejo8cb!| zQL&ww_+n3whxLS-sIZxM+oC=;O9ry*dN0>`$zK@?>n=0_L2VY z4sSnya$8>z{+zPkjf!?5X_rQpt$9E@w0lCwW~i}}HPKLXN|XqpV5l)f1gGZL(i$O* zl$9)r_?#J>>T~38XVRIvbUK6Wb^G_cuOJu(6<`@Q8Zi_D*A*~~z?*5vrXih9b;D_3 z0Rov-<|dOhdoz&9GFfMx!YHz0D80&7Wk_-Iiq8s2c!Q4g;&e}%NNLbWI?b61-o+C6 z+JaJ-k2iBnep*$1(=f9pF+I&;6D2NFw940T+pB=Hr`n%PN2ruT5ac`ZUFB`1%3?TJ zq6wa^LW4-zeA8|YsZkZZvLaGWRQNzwANpHu;Wq8RD}lI}q{Va49{cIs-hr<7SI%14 zvEbbcYa_HSX9rgPaP85L_I(Vi?Ti1z+aopcX#>kM5z*OdZRnXk`+*nhv~Jb#v1M~= zJewD_CgIgd0#8L}8^grf2u`d0$3buffuH4j#rKAfwEEz#`i07F@ILT9@sbAb3*Px& zV(^KGBrFzKH>hlGKtU{Ywp+JVcy?6G%sabo^^Eg)-l&)uZyxdVPUaHdOVma5G ztultz2c3?=GGLCVf;;X?R1$KfYI!x`bg{0AE0VFEFK@#eBU2)F9qY|3Sor4WT`6t# z!12Rdzqj1)ZD59H`h>Z?ylgFfG6p&)?Ki3ZG zy2Y{YJ=f=aKIi++`TqZ(nE`H7#XE2Yf=GD?v518AQ=1~L))Vdf&zwH?H@)rodJ0jf^@YUF+nBz20pFcHaa{Cl zaQa`oc;Mq#c5!%Rp{dPV`ub_V^{RdE_ZYu%;I{+Z2w0M9cGY2ununW5o2f=cm<_ao z$3EwK(f6{CUcz&jOgga1;dF!?ROe{0{7FXApfoH|GnFI{=K*>yK+4Civc=(!Pk1o$ z2p&>PJ@pN8gG$dJwI*{Mh}Abbz*f#zb2zOh7;kE+g#?(jYM}+$r6fqO|9w=l%1ki1 z0Ydqp6}zlqct8=P_{lC^m!$i1-TRdC4^fMqT^8E?&i+Hh^ytz&3m6tEj?sHkb5gvtqgkhls>`a z=n3rn#m1B8Hpq z_(%QJ?+-nJ9D;*rsYA4T{c)9ue=1%QuZw>X?~D9Kaf|pPk!r-9;$HDJk<)xNcqn*0 zNYz1Gkh}pUgem9@4h5+}B?dXaf$8j);>y)jt6XJ4tB)gtU?5g%Fnc*!!yeW_6w$~! zPVW?0?%CAm$NnkYa7mgN@M5nDrACTNBhyi)%543I)w99G30A~eqbN}*Y|U45PNm*t zkz}NPCbKkKj0!NC={pbKz_F@?6c_{$-l~AitIV+#w#Qkguemvq@FbKB-VEMlW!VX} zZ_ORpw98XxGrHaO_RJo6Rrop2{v-LL`|~RT&bhh5u^W%}^<^Bodfc_QXOq{rKAUb> z+x@j?f98(7F6}6N)cM2JPj+oXr2Me7kzS#bs1f!YMKytvkpcoZ1#yxPp@fIlC7Ht1ZC3@_fu zegJ>j8#iv?2PF-DkiDEGYnI;2UPk3Ix>LS`uk*Xf3dAAS_8_Dys4+^y?m_5Dw2prd zR$@a7s(;~=aNczkCBwR2ggt{3|nG2RZor%DCRjII>1zB0#V+Ii9?k1ddb5f#eXdJefS3yqDA@5rRr% z$oQ&p+&F1e87puF1+V-``L^bkGS^6Du8d)1m1}Tc1iK>P$Ux-x5iX*vPU&CjRBuv# zztTUW^mocun0I$?_dxeh_i%T)8}#XQWA|rgZYXu~W6H=cR96fGQA}=znZtU=(-fth z>6`2_ke*JL(_9)|3*c7+V}WY{8c=4y>=V%78Un4TZ_yK@zDeJzr!}M&+d07mNrNSB3TyOnlL?!QS}(E>+K26< z_6a+$vD=%B5sSLX%jxY#IB-*Rm0XWjnm!PahzG@Caa5$@VxMM0Lwc1Eo-gJLvqfRP zScrnVrHW>D<{)h?1cPQ20~VRJ7cjh)aIhSp-N}l}RTEO`u6jMq?$|T)_TW~s5BKHY zzVbz1fT5TNVCUVm`YRV1d#>}OTo=>ZZfx!Q{}+w`rshQVhe|I{h2PA zl5j@O9LY?8%$Y8S1AY?rK`?=WOv51Dkg}Hl3Hns+2KO|fZ(K!2I*-)!Ho|m4?jbUf zS3eaevOfwRjm|h3)j=F4V`P$CBR2_Oao91qT_CEbhhP)I^96E`aO|4_G6dh7`r}TH>0o%R8427DKn56&roM3 z1vkT)$;?7Vl_9vDk=xKhQKqLWEtCJSUG=d|U03|wcm4c4#oH1GpsqBv~ zfGWm1RRShuj82Wlv_jX8*gN+IIQBd5o^$-}J?H#>zf-+$^p<*YqL=itOz#S9 zdnX^-Ug*_345Odb?|}SMYR7$q{m94or(x?qBbL6tT#m4PFv6^Ts85}}1sG#dtuAIc zkM1UTp3*$gc;!V#A`ZNFM+br5o=x3u!-_V4SaIW z;ca#)rFOQW(Qm&&57bR-_Eso8joSe`cfvH#JDm#m+RHcR%TN9B#Lx%mH;2wrG7xOJ6m`ub(YJ{|jk1udVcM1wesWShn zZQ-79=|*ZMC0x3^l@21!29iNVj+yFI5@uD*NTsURagZ9qz&-CA4ae9N)u?^0NNz^vnrds(O>-c;^BTn&!kXe9N&8C^@-gt9NKmxBb&eIO7G8%rQ;pI-T<>KszqGOIs$_C8B}EV$!{~U`d+kC_@J>%N?a+#TnZm`GU3C!=XOhSThk5trPa^*ap#%E#G z25l93uDU8E8;uLA)L1IEq*Mm2#!`{udBB)3abu=)nF*6>Y}`q4rW1934QJH-QM0K? zvq6hPv#BWgYe1X;AP&>DoY#?RcH9MVx)u>fixDla(%I-P>Cabp=|kA1C~#Ot7Gxq% z$*1I!tS?snLCkW%FA*d|6!{x_Ey4Nr((^U!fG95JCcMRo4N)~gf`h@mL2g^H6a?`2 z7cmEADXx|HX4HU^-Yadt7v5_z)}I*Dbmc{j_;c-WaBU| z=DP3Abpu?@7pmBUu#6S14KFavv`Q?s4sEq*P23n#*vN(AyCSmv?daO^-!D(~Bm$lW zXDsPo?l7BprM}6698qp}`EAsH?b?@T{_xB(r>`}j)R-bI>szMSpS=|Aum<-oYCcsz zG^%^AYCh09s;sMO9Zki3wMJEOjEyY$N~taAi-(mNU8|~u2IBhv5^T{=>uqkaw~wNW z=q1WnP`v#>`>}S+w71j7Zi6Fh`^L#@oxNwVvyW2N1HQF*T>%{{Af`~DCA*5> zP+*l={R4Qm9P>-ctL~h0deSTf%7Tec*KrY!jX>QBQbNH?eaWV17Q01}UFqx5cj`$cd1QsNfxQe6c_|aNO{No zk^q0#3-hRcVJf%0?c z@Gg3%WtnT;gX`rl5r^K~>8n8@Xoo;~jZOhh2@ucxZknmD+#=gx@R`EMB%)8mFGTjc z;t$26BDU8fSADpi-NAmJWlhj!I)nr!B!pP6E-32^KE0*ZM;tv)pX`<-;_{^>A8rU( z8IfU)n2ET9T!1GAMAn0xeu~Fec{Igeni;;lz1{>E3*!%TnbW-`}$J(_GE_6!y`jz*}r|Sml z{7Y;ZPl!j4gqIC(A4N}G>dYS4Gj-xb2~U<^D9^o@E>BN{_>dUx<2+;a%@+T@>qGye zyV_&hy2|)H=U!jiu^k^jW9PsM^wBzFC5yfisgmk_!(DJ5-FAZxX)tdqLFKvn64 z);|Uv3_%cR73HB;m5N3+$g7K?JW^I9#ugS-+M!BYt107;t)3z+biibX?_A$J8o+XH zPV9W=d;Pw1e!s4VtH1v6$;Y1idRFRk8x};qv*Uer3G08BtH?x?0jL zt0lvB{7vv49Oq$7Zc}q8WVM1?l)+Heyt0FRRh=HL>nCQ3K*w;|2_94C)?~!Dps6u64)MK}I0o?@h$BHIOp?zgPbc}YQkE&mw!O-*1_fGnmPNp7?- zR)Au>OwENtw2fl45q8u5Kk-FLe&*PVla&?eYu(`qe_seP?S zGq4iPAo|O4E#m%0C&h8Fia$_`r5kWTo>XhmR?mQ20M9-O_n{aK8a{?cnt!J8L{?ts{v>5lO{s_98M9^sPxDM~?ZL(AY zyONsQP0h{^{(8re3>BJSNL`wl3`KMDGW?0WL&l@>dHJpkG;)!euyg z<+iHVA){g9`w*8x8+dH>BhF9!fQMJ9*$;02dpJh4KK4QfeyLVvr-p}f3=c3LL5S;$ z1LPC~#48LC>OSiLaZIa{8jV_|jE08_M5A^x)&hn&26nNP60Pw)u;P0VvwJ!~?RYeP zKF%P(3?GC*{iX&spgXAMp4XyYRC90PF;}F;9mV~{yTyf~$Q6q|9|T>3JxXhmug7eG z4o$1M@6vXG4#PCVnZKiBf5)8;o=G)xM&QJE&Y|6vdl5cf?f6jJz!e8s~cCd-w6NB zIuAbKa}4#Ys`(6S`7mzY0jGqb4kfUOQRTccrtq8+^U9Eu0(&bD9&^k4t2u4da$2bO z5^=d)G`e0HsF~D#53KkeM2q0NFpkp9wasA5?EtbhlU_&*W9hqTfaXWkl#V$-XQW}b z^jd(k7*5yHf=<;L1-2imAP>uR9QCWyW6uE-pX%>-Iw{iT;fY!r-&8fnZpOV)1-Q3w z9BpO?q|uX0Z>F2UYh`NlX1krLz=h&--L;G`2HY#ab#m3QuPMW{d*LC3kGgZC zgxmp%$RT4uvdUrqCXZ*2Px6OD8#{$yG*S$Q1i4-B33CA)JS&eTl=d<(dOMdTS)4sV zh}963<#Zt)Eh97JtGJPp;*NmdGP*KtFov4k0mWa&A54OnbC+>uvh>7=MFTMJzeDfNOk^xr3b#S*_%2MdyvXKj#Pn`)fb4oMqXn?O`@h?JI!Lh zpBMt3vVQT(p#ZiJTbX}%;t(-#o*pFwZ{T&=RP*fh^oG625e5bagl!$MV{}f`haD)N zDHQT`f&sdqE(_c)po78%Ys};bJUR3`DK?m@UQ6$exG(OD=eFu&1dXM3wuyR!-tM)> zI!dYHz)-txTkZElky7!K#jggE(P%DsTrf8}4t)W2|MTyWWM9B;Fc=#<63N2uM~?J_ zS(lu(4DJ%HaT1qDFR?C-i+Ib>F!eT>2@!X>)u(ICT7t=)VvFYGg_q5;jjdYF`bHBw zQq*V?ccsewAhlVKnvlsVA=gt*^l2w@3S}fsBhk=iHMO*{&iUo|Xa;2tm?fmcY!98m zYK5oSVu7cly!4^!0~QNY>uotH&67_mL&AjAvBUdby@OWX3w6L%8gPfI<&|%uhyV7vyne(f0npfg{ zgEN=WJ?b&NpyLn{1YN`#bfg{U9lYas;qo_Bi~)`qvdH}ksVv7;ooDc>kQzk9@CCuc zTZP(&^j?WJv?Njzq7a!-*58{tghZ>MY%oq7vYHsCdX&!2W-^?D7&BPj~)2evHt-g#642$Q~7_A`!iEnf17Nu=Aci1qC-u=oCpU7 zzJzaKe9r5&7ptG~95o;ba4!Z|rTvCkYyE zJ=l7(m2YS@Tf3tAF0ReoB)Q8-M-xuT6%deMY(>V_2H8T*W`T1dGw+h6puv=r&bjSz znb!$cj%lr#dkW_v*MaZ@V47#`ot;4aQzLWREB~mZ$UBv}3VgI74N8)|(1 zPSoWiwp^@L)T_V4K|burx?zknOeSPAO>P&_!QUVXo_V`=iWh$L%%wN+w=SNkO&tjY z!UmtCr7`=EdHBn(KYzLQle3RLeYJM^!sjEIub@AkxvEb&GG9b5J%6tDGWub}=V+1y z|F(U%=-c(X{~k4cs;?LShwZA5ZQ{Jc@5lM$?AX4ueU8sg;*ZPO7u$&) zf5wC0Ye=CXAqgJ^BI=Ss`RLS%n9^=t2V@%*Mp2nmL{|DoQwnMeNJV^f3DYz*Rcu;; zAuUTMwgKvZq9Jdc+R{xBv)?&EQ>Mw%>$~^-p7lP@`+J_}r{aZRjSK&4w9|=!eqq3{ zs(X4BI*xyezA=t+fU*f0T4X0euh!3bDQz`DF~plE?v&I|4y#P*nXwKoqq< zjQfJ=e({QUL!_d|=l2GQMM4rM`6ViuWoi|D4#Dnq#PmL#0B5y=+??lbCgatya4ETk zPZi2#IP*XexA@+94>y&(2~=>`ilv)VH(L`WAO{CBRbQHEb-}D^!K<<}Q}D?IgzAxp zLtlNW%TIlHq}Hq#4<9_Ma~_`>J5*=YS+e0L@y-Wt4fH)N+I6n?D~sfw#*NILQsWy- zA1oaZ*AZDJox#m?`D(Z7uu^$xDcH0q``-QDr)t*{&66PUGW&GjLSdA`9pgv>+}b!t z`UpOQ$#KKa4W!FFU?yhE$Cf`?sPS0=N5whfeUU~R<}?sXq&`AOi@hb-Laj_{?BNZy z+sda8rtnBBW?G%Cjjhz?2uoq254*yzgemt%!}|?n+>RYArmTY{6tP1r;q@U?trCkd zeqP~xik~JGm0|g@hyPNubyE6GA4WXK`+1cg*4MOI408L@^ZD;_?KL zbm?iB0vaH!(S*tCWUsKwm$yP~It|(qp6)^2yyK`zj5DsNH8O#7= zOVA6>X$8}4BAn6qbQ%~s;~4@M@H6{P4}bB`?H}OuR|iUO|DiX(cUPe=ohZFG^x9WA zedn2_yLK&EhqHJdUUzp@p|I*MwsrJfJ+h+1I^T0^G?$!PIQ;7Tc4@x2c-_gr_jOeM zcC4?XqwiSdqQ>uZcd`$ZDT*$u12r7fRhBFuWRAXDzgkbl8a!sjd7(=nKl9+)I=r%O zV;#u_7Y2zj=ng7D+9p3C6PJSZic1M8w5HzNC_9~un-gs)A~WWCvqf~f#%S^^__^ry z!!jGQ6 ze7&*j@~2&m*RO2dd2UY6$fxbS2e0GPzx~0^Z7=^~@1L`s{~lW_tr)5N71xifkk*d< z0K6om)*k>)@Zb;d=haS=ZEJfIh~nuu#TmE5I3sxgJ`LUqPOhWZ%^1&JGHynICr5~ zoGe~SPM^oB+AqH4xr7R-ViC@y=VCFwTgOFrZ~I7#$~u=J4DulbGB^MS3!-iS2a+!4 z5dP4$4C8ALCg_Gr@2Rv$2-VTM4|b7v2DZO6^1AP-wHIV&a&^l~c-ejZR@h%trAWU` z4#tC$(rWu*k;G|)DG{~FfjurNbn-I zAFzv;xXagOp-`NuS3p9$E0wnZB&DiLE-u52=i(z^ux5j;iT}k0(8&b^4IcX3G(3N) zaAdGD(d$aPy^Nx#XzCDtZT0tO0BWQW#@w7-RFNM{Y|y$i4qWe~{tEb4W7WT|;=RyY zdQ>YxO_GgMNk}!a>Ci0C>v~wGKi1`8O{dn`p{whW){PRh@Ueylm2`rub&k=MkGfG{ zB2xJta|TXY52UcV4fsX;3Z|biUo)hud!U;fZ9dyfj>XQ!2*k8bHA}6V66`Sh6PBtl z++Zm?lpW5JY@k)zk>8&u`M|t+;hsASj*4ENuNE7T!YM=I+Ak zPWY5Ky!N@C6W0;;!zOyUNjR?eisf7JV(H#_4qOr@zSJ&&P_4En%G`x~5fyHh%jII> zy!Hjtw~JG^i?E~|*LsTSut)=jYPg1~&uDo(lh#Bur}cP`oKuoAfocl~mjOPYCC3ym zP2XuY3O!*pP3D+0FH{DVZI91eF6Zl<@kI&0iCaJQ>qLBoiF%|b6O3RB^L*Xh(8kI> z9N8L9>t)$$4ZU8O#QJ(6cY9s)f=qh{US2s-@NZd?P8gz$+TxFp!*X-pv4oa>Sg**H zPgY6oZrjuysbyqqNJUp=mmT|~BKyt#Qt^ZsVq{H2_OSYIqnl;c2j34~iy^)mO7 z#%T(KiqAtn1&&M6D34Or3NCqo)ZH~9AJA95l!m6=(?FLA z>sRfloz3F%Q_rs1^!&xc-z-k;#{I>^=a!z*ahYv{g*FrJ-BVg?k!KP1AI8f*wu$?U z*m6JX(8Eun&zjdr9}(I^G7 zQ9(yrEp%&Dphbbvm9Rfbq^9&`LPZoc{IB7uK(N_2{<2KVa7qb?dyIKImBRM&_-2J#=h_b-CF_#t}l2 zZZT1U5>e(wo3mNg+hvu#4!>Lozi3B$(UIwQU@lxlN6>M!=!7ZHMqOiZmX;r|STvMB zlpoDgG2fdX%2Op@ghhXTI6t1}@`RF>5pqnI;wF^uNXB${Rx(z37R-fa=!r+0VL_(; zZXU*7z8-|bhpznG84~Oo$2^#YEu?rtgPHvKTe3&r8k;fv##NuK_tY5LZ&X1z2h~x|iJwh5@jpVi z?_O=~0&kk# z(U;qrNzZ!|FUbiW^e&40*$+&}8S>^BekvHx-yhtnXS zY_=NhlgSwVdIE+u80%%F%(9ZB?ZQOcCKgx6p#7K@x3+-HmMwOPwIlP`yjy0P8H+{P z6n4+J?n-p!_$-^vx$=bOD|r@9Y0sOhCXQ3zOGINLT#N1f9;A*dUjXy4&45>vx>KMcN{qIh*W#e zto^fEvwc%PE%+9~KJ`rh#nb`%>4W_GOI8n8^~O+G>&HL9M6?WAh=4*;h}e-TsUelJ z1F16$Udf}`N2afy^!hcGZKl;GYRG=bP6Q58=T%*ie44`?vZ?uGvVEkSUqJjR4|ktdedFvfyIMInwNqjNoXTnL1p@I#=4BJa}}& zipQUN_u+ZZCIm;WN1i%)VS7(j|LWdl@Bevj$M(Uehd+Gja7X)%)V+1>JHmK3p1pI! z?iU~XA=LWxXVB4CDhxl-n;a4V+(5PwvfVM{AgFermIz{0i4waQPy*=yWe1?>We{{A zNhQD-@B%`S4pTtLNq~Y0mY?DP{C=VqR$ydqI9#m|6jN_gCifVlyKOP zk2~sDViixX+|E?Jh58gDyO1HqR}HY_R}5?!^%QVjIJJ4|ot+z?LJt`8ayJUWEE&;P zts~fC#`mQjO07%Lb>Zt_vPIdUyrxihFcKtNf;)n*1?hL>XXS%3t%>NpEEp-yw37-cHfST;~g~yxYIv* z?v0^0PkwXLx+R@ju&wK^udMLfcf5Fb<>F(VbDqj(8}C~4==XYZc;edrfz9-BEN<@X zNp=LYOP2O&7cZUOH}JPzYo74ST{r%?YR^Up5qAT{xiF6-=)Kd(26Z>r*PwYqc1b(v z!PgDiE5R(eu<8)Uq=WW0he_ z=Wf~d-nwOvlnO!7!p|=DbuYN*!F?;{w`+mWvh_bY_3(21(Fe~x-!bdki=!^R(0TvL zS6+T>&)w;*_8+g_{PHfSzB$u-XbW%)qa^yLZuPbV8nlq4s9Km!zet=NFYDj1yEGKX zEg?Nb`sy~BMr7&1na{&2k0Cprlg@&ym9du2pJQK_*hi(;F>7*w zY`DotnX`fPR*H~exK?H;e8Fq5E|=|p7%%&nHtsWy-|v35&-VFzcec-O7$4X^3>d#~ ze!+%1I0DlO0m>m?|Uwi9SIZT-VGoMg%RJkRAFcI{OR_ny_jm;u=mF^ zy_?bU)WI;08677n98kJo&fTW?t&}D#X>Hu|=nxte( zBxn*<< z&vGZTlSaViPOn`4d|4~TZ>O4uPF&mZDl*I0n|a1;^-zHIl7=|%jnesMr+@Jg)mB3tI}i3ZdG1z6{13%eZy4&3Vq2nB@BuCL|BJiu#=mYGSphCy~y6_UWR&9-(M zZgY5yF1`Dq2572Kj(@#4JuQX$4BEde+qs4L9Nt;$ELuIuH?d{7%T}2KX_7m?OFHMO z-$N@;JU7k)mdo>!OW*jGF=wrHabyKp*;iTr{A_XJL7tX%rVl?OybEY0fBpBV?{Td} zuDTi}zX?h5ULvk8w&aJ5MsPs~C?r~Ho?4`!^oFYlAcJS%+lb=VdSIlAC>*DBl!Jm= zN&(C=rAo^2_qB!)`kYG?DajC~0xFUgXmg+Wka^sE-Hck7*+wFX+mI;D6b7T_F3hQ($k8R>>aIN>p4i!G;@94~lzJH~j-<9+n(g0qTpeAt zWhl(Z!LL7l<8)uo8N-9|!O6FKde4sLchxrRceP2()}URKA!emm81Od~3fe_}?7PC2l7@Gr#?^81{8_V+vQJ~2I9`Gs) zY4Dm|PGXb*+X(bKJisFXb_|n%B=y7C3H0MD%=ayr4|MqU_=bJZ_qbZ$tjG0|nWpFF zndubr+Vp%nm_jE(kj*-7N}|4a7gZ>fZsuMt7HQXy;n%-hvo!AZh7{vh+JmbTPrw6AnPpbd2RMm$7bBq zdhOO)-n4bcsmHzftQ8iihIxKn&Egl)r7|`pw(_F#6_>p3A^_ z@`2%O_wIjCy1abiqmZU)>D$)_e|x35Gr0~){6)0;Hk6DZ?5~Noh`vsbA1MdDmID^N z(o%21TP;17eHM6LJE^^;g>PuVdBvpSmIA8PgNa5<(5JX7Bc`XG(CbsJP%-lX6CL`XTh^Uut7}fyfZ1u;)DLQl$P_cSj^(jw6{#* zz*2(ZS=(3{g3HE~Iq#&)F8hQtNOOR;RO80}k*@xQI|sW*ds_B|98s6p*;4Mmt+RRZ z;;SqrF8bc~*3*|yt}pT>n+{)Ws5?GX6R~?*9KoiYv2g2@OyP7Biu-K?2QfrEfrxX6 zco_SAqBr8H^WeuQ&?W2@@UV~+@HSzauwQ@^fh&O<0XP-_6ZjSU1`b1^eAXgxoKJS$ z4cu<0;3Ej7Nr@{d$zjlm5#nhRpiCxANtc3B6|LlzxK@er)BGF{bs4f6TI5B)2#rt_ zk?n}@VF_sxQ<*^ktRh1<(}IH%)%ndSWHJbRwtPsC|1aY2x=vW?6zD;=-vz~I)eaSp zV z>#YZ0sBF8B3XM}Cn`#Zmb~XhaEgpNMX6SfbLzc4a14OwV=n|umXk8RPW(8g1UJ(zA zNfB=ow~6~jI1#@RzY&LHaWFw&p>NReB?wtnbq%Z{$x?ff;BZv2*U?6Y0zwr*a3&7t zC?hbMg#=5IWwZ-WE*Hho6`;aMb3BJ@Ay->N5XE{vL@1FvsR=+6SlM*hTp85Cvdj!r ziE5Q9f$kNR$|l9DX`K2U^^k%As)HJ)enrhua*Are)-cnEa4L;hOBi3u!f(GchTHl1NE)XvTUhh>a)8|3v?t#uZwl7Oy8aka)2glq%{K8x&BE zb2v^y3;?rSXRz5YrHe6SS3luFMcno7p&K41RJCsEowYGnF$SInmg?}0@C;UhU7Nyb9gQv!K5U%yxiwuRa(DKp}HieCj zHf>QUrEIjF){b^+KMW9+SS6%F(p4he7#$xxXw}lOeJJaqut~5FL)9j&F+1lv;bmj9 zV%a{DBl-6{=XrjAUBR81R6*4WCg5)&ZQG9Ti~KT3t3K(54Y0PTjkf&~3{hSx1}(b6 zN>Pb^T)H9Al*CE2U6OLyG%JBND76DGpI~$+A<5$Zs$*XoXV`c&7-NVPb_W_b4jR2% zoSMaKra-G->!Z^brtvs$%uY==>Ue~ZphAQ^p?J7?aviM>#64M2DrKI~QYx~iC6Q%% z_{51}Vt?hRwy1j$`{C8Ap~T|*X(clpbe>pTYySN^i+T&ysJ6QPZSB*ZemXQB&#UU7 zvVL~Dl}!wr#y&-TF-iGv{6*JgRohqvCzEHBv^5D1N?=TSPNMehV_S7opQN3vsCx{~ck zq|N)vpd4A8kJ+V&D5@>#UeZOT0(YOfPNmgsIieEfrk1p_%uVMuI_{28)3R<%JkXen zfOGC`JaTs$_yG~5rMI`N$1eWJ!}Biw$y2=*EaGeD zM7;gdSJ~6Mp2?S%laJuBktbU^zH9`rhK}z8FM^)ux4d|0>?NvI7q|_ZWsE9NrzR-} zuFE1)mn1kDI2)j?0dUX>#+=VN>HQ2~XwZ`#%5KPhoJB{%peH;O-VlaP?{4n_?{P0K ziJg=ri%Vi3XAzrKx|Bf$jzq>Hv=UJh(U5tc3}hjn7wt~LVxiK6J$s*jouBqcWI_EL z7o^A$^29%GhkoWJ_5Y@wOZ`1qfDrQB296Aa zGOyf`4?FR~s>txQvf%j9hwnZ4-KX}PZF^btc#=s+Pv7PP%et#858t!!>!2TuN4=e2 z-22AC$>03&l{R_hb#7#^L74kW;fZRe{%*7Z+&52?zC&mS#y@135e#YX+ zE$2-_A;&mM!88T^!HmR|9Be0AhE}6j(NScwAYgew1bf6Ei$52kS4@f>t(QJ=OhiY- zlOp|n5lo6;Km^Bf=W_J(1;Ci(7_#K@ZV^dZA#XycD7fV~qPRCL?_f97xLC2hNEeF| z)oBcGsaWUE;_O&&Tx`@yc;WG1>xH-h4vsrUcVPZhccXjiny-Y<_nNreZtl!pzwyH2 z2PhE(G1eU^6tM{407XE$zq=J}w9Za|OO!H3H7=6d-P&{&8Kg+n45@(EG%*&vL5&oY z1y8STOR>Yv^NA{70`G)Yc|N`9v$*dCx#q^cZbygO2Omd#sDJkGAJ;GaR(sFFVt+3F z8GT_**lI~6`s7lRp`F#R%Nj`h>t}}!MMAlbHE~i;3g3nUxSmle3wFNCngDOYwfm=T zWd$wlcXC>E;>KnDlAO@41c5mKRtGi(b_T8l{t+-$ePE#oto%NHl0U~^;!SqDBk0IE zpwE`Fb=siG2Kb9;2GJ%3nS&v7kPGv&z=h+oprD}HtjdBY%R-pr+7%=!3hGB|5RDWy z%u&wwWN=gfyMz~nLjshAOwjCQt>>+uTd^Zr^^EG&^FZ#lb{my=5&7g;}3Uw*RZuOG_M#pl4lKx9v-{q-xeD>`01zO1_9 zu?R_7PP|2~XE_Od7w}B0AMevr*0J(qJ^4H`)1Q2D*YNmZ4JZ zDOyTRK$jkXF_lWC2id~;0$p8I0NV@Wg@XlH=-?(GtBYQh9UQj-G8kgE3%1KPlf{PJ zX2D2K_s%l7`Q~PNi zFfm|BrT7{kzdK}B^+Bq})nYZhwyJiy#;~;>*4OQ$CFsN4PL+984-7^kWPh}~y&4sn ziqKUm!bM^c7+IGEY&M!LW}ziJ-lkAo*_H1!`)C~off*{K<0 zPpqxa%uW-N#2|6MfFelzZSwi)W@+B}>A69V8OT2pPw&mU&$iLc=b zG~dS+AcS#WZoz~Hs6Xk}w;-TsU@`R(QaVB11(-I_!S=BavhXJ?U_EbI0M?Rxr4se1 ztEhi7Uv05boM-g^XS_SJyUfn)dhd7JGqbzQE?)1=-nHEwz!)+P_yWYG?ScymB1tQ3 zw@TAS2v=#9ibw%fKpRD=+)7Q8RuxDn4Xz^95^j=K7KzxAZ=?<9prg)d~@ERHt>f!Fy9gFXzifcj)|@|6xkX|?O>!tFm5$``#St! zDC_&1h#9*3K`x-ti7z5#RGp>j7+K&|qq(aOxS$m;|7kd)pX#r^)t&9hH2cEtbX%<3 zW&MOqx!!r^v^!X6&T*DxYA|t@8vDeQ!3Igg8WBw|A{%6=33Z58Ve41uewv~!C=rsl zU{H3tgD$HWQF#e-wA3RrX7bWW^Jz0>MvdAenD@9{yb!`6Del(7fm3qyTR64shE9LS>hi^}W?V{Kbe(biE zIj@v>aa12f%gabwu2C8K0_C9sh)jkeAVI@C4WqFs#DM`y_B@(*BF!tZs(>{Xv3Q%n z#@Gx?BUWHX*im+Zoo3BWnuWf*R4C`kPt}pmw)Zfx!t4 z_Q7;OSo#3`ASUXDMp$c|_=af+7*MpH>)E6@1==D7hVbl@ZX3nQ(N2k`EG^N)c;S)8 zGH5`S3!xD`u!k!&@=#9#>PY~zX>?w-23aIwA@$a-8I=(k z3A<~coU0%aazYjG!j*fo|?Bmj*rbgBtFrQ(Bu;2?M9N3ZG;x9Yt&Clojl>YQY2u6QLWIz6MILvLoPTl?^ z_@S23rJbQM;+(qS!UH-n6h~j1LNXYMt?@!$jKQUu=b{|NalR2qPGEIB*yZl=pcrA) zAJcpx(H%EiB}y}MO~?#jnCC$X=44_8j2qL!!rZJtP?$lLwd$vDjZOdIV0D(PM#8vJ zaJ}6(wzj*)Km-?>iEW^GquP$4z3ppdo;^!IcsrKK7zOSfC=~Y2*US6pT3P=klumWL zl!=755H7p*UTP64ji6WFKp`BaLzkCts%5JqAM!NtcD_e2+8=ya20CB>O&Y^@5n0GB zGK(kSV7AaG<`h*v&M>4G6!4aa!Q1AUMTSC*z{Hpl<{~rA++djcaT1OumSJL1Qakkg z_}W~(Bg_yHj3WT1a%;wLQAGTVp?=3Y7IiaVj7Sf)*puy^e0L3ml+PPYckp3fORN5i zLeO2iOaHr$!GGO1TN>jThRfEgZ#V$e7cj3*S$+6f<^|?uhGrRTqR-JkrRjF+P3j$r z{+s(hZmQ4ytosEwZF0JuRIl?f=TRr^!w8FBpUdm@J>!K8Fn~ue6~(Q%f?=pyMts

jigeh&XQ%8OXDXt0 zSDUH5S<6Snwz#CBBt}Ug8B2~NN0VoglgY&-n{2I)Er8Qn5Z=2ZTqAhqs>V7RQ^-^) z!9X<<=ON<6?%k=(3fHogT=mX4d1rh!TO|qS`4cl_bB$H2_3(+YXFbxy+v}@KXe!{Q zH6ymF%5_GX8V=}ZPJQXv$dkYR!BYog;m3b|OA)#e&W)O+-CUG^Ut z|M}E6zx(y0KeGSh@bDR&6Y*6s@fE$as!>|4GpCz@G0XB_%?X&p1L%(Wd5-v6Ho@BS z-gIW$4wEameT&;XK+LU8%vkOD?!1-H|IYF!%ik?@$wGIFrlu6d*lgRhZc0>lXkd1= z5p7hP)aEr4(k^NgM{5NS>0$EeNzX+O<e4FwN&W(Vmv4al$I-l;G3*4qG@n__ zP#LWtZqY1)9FwUL86#PcCuLfehX(6RjOS`g3r2^}k>)1$p|;^zBX**OD!CkZKZp*9 zEC5)5#+gh*MKZM%%my0|vCFw^vAsS1v3|MOzWVlto92Z6zH+4T&=YSdKYQtw&v`iS zQ9RT5gsUMa59hzyM^Tg|4qp2Dw>*GZf1$W9)#iH?|Mqb|NA_rZ|LBz?!oZa)lcf{* z)Nr&QiW)zpKRuRKi#u%!exr{w-1RO8xtUSJ=_3B;b3x7^RR75jl`>Dpibd~TVe|d} z%O=G?l+MpGo2z6RnP&r;M(X(tkx6pW;ZIHH5^d0lkwfn_y-Hs|2e5q#4KLrk1b7aR zbz%cf`Qhj=6);=L*$eB%D$sl>F4A2=xzoBcqVDS1AH2ML;}X!Ezr1`^JpojE2Iaxx zAf3tg1qV(3)Fb`-8M_Nsh=NK&i7IJ8QBS57LFqI~fS2G2lrt?pBHFJ)^$ z?Ht^>Bao{xZ;dJIEUn0PY=dk`f`iosWRsAqNUn$E03e+4K9B?Ix6RDQ&)Ahnuo?_Z zuf98Ze=Y#Vk9~&%gDyvQ=xytSXZ@Pqxk@;XT`TP}RND7tXc*tWYWJmtH-Y&RHbw8- zCA7K(gLr(ZPQ32^b_gtUDY6eAB*csLNpL9H3C)A>at0FKhtLIObZ!b|f$e4smrrIf z%3{_W!44(WlVv8$CA zQ}N@{N$Ipi8(d1qy(hh=y|lNr3RHoe66Ow87eI)Hsag+hmE9!F-2-Dq!rK_}RvYnm zJT#=O0&W0put9&QcM?^(nht#9={*PUPh_@;5U3;jEE(qk335*h$i70v1>W(?vTCMILpw?s3(uCSFpq4hdMW4jmvxrgL?dRLyZKvCp z$B+**z5=U=1tm5X*dBO1K%)Q~paLUk6Ep>l3~meM1qkS{#+JxQ{z7t)C2F9Sz!~TB zzwoN1Gt) =3qb#4vPSf$T5?B_ns>xR!HwmlD?qB;n>N}wq8C`!8JR=lnbT6y&w z%2JMVRR2Z42XiEf-qcnw)<7_*SVeFOQS9;hvm$Z-goytxek@Wcv0tQ|VnC!^bdV8g zD^es$4Opx$PSRLA8@NEVa=WGU&RN% z*X*l&d;eXJ49HN~o2r*gpMdLlVXXd4Yx_wO|5(C#|2jW)ldxW(j_|MW6n(&p_uH}C z9c=MUSSjJB=Ndm?CK^%Cf54WK z+Hxj^SDb}FH{xZ!gQt0ZKo(Q?c2&PMU5_E&AD9EIHlc2)Qr_qB|JovPq;2K z39964ruh9Ee@`*dP+ujJcO*UR+}Ol}n~%{pwP`JW^&Y}cJ!JX{L_?I z(NIh($g<`YvSTvVWGp9;jkQs>RFOS7Zn*CP*l&6PU;&jhmwD|2=xBgc)R(KJ5OBSe z%^Sgh+E@8U;yYW?YCIinDRP|9o@!CnD9H3Jq>o13_ zpK3L^<$x5l_!-8{VUFvyHzZZ~B1Do*VA|?eG`XOvx=s~qDpoW4e071&`I=55Q}<~O zyrQIwC8r)@Hi8dHMll>Bn)@HR>w*cr1%k=`Q`cAj*+g=w^wjlgd-dE>5YaPSfjSIs z8bfz$syT`wRj{sLFqD_=;V`11x^%B%bxnuuiWZ8o1%V8$gQ2i7yf`2*DqtkAf-KOC zfLhs;DH6Vn@bCqt#$>&yEe&-$1L^MiP(~e2M?*y~(Kxuik~9h|g<^IrzyZi8aauFP zU7gvmR@X*1e#>{8;DXErM?fa}oRwA79O&yrJ2hvc8Jqp}#SSkPn+C$7-mr}xoRFFm%)f(8JVFO1~p~all6j|N@=~?*96y>d#T``m&(^8sVg`& zrx%=F)Xf{Zm#}=Um2FsNo5XRBAVP8XMD zct0QKY1>v|mp~y3yJ*U+idHfP?8t-@W)p*&8>SgWa}_+EMK8rVJ-+yK&HSehLHA4E0F37N3lkrDiJ0 z`$FEWxsiCjdthv4ZQjg3P$?+=v76}^_dYq4Y3-caxclncBis2qov{-q8cC8Y#Lt*h&cQG&(2%B z5Bo4FvhR2K`z$}d=l6S_M?7py7$*%3+H52YEU^k<>+zytMCmNuN8?kYDsrk3HKTr_GMrmQD!oc444!bDbewUp zBJfzq>aEe3ElnZ?5}c|Kju}qvnD&x}2Q@ULqOgiaRiwdZ87|#MWS=*mOCUahB%DYD z(%n3vfQMMw;XIc#V`5`bn7lV&d>B9*1G|Av0Td_@wYP{-gxzo}i-ak$5+e3>JVKmo zurfM64$y)jn2K0&Zg#d|Z)Z!TQ7dK~@m7wrLKZ>>bYYyB2l8n}LC^x&qjzPEX2wW> z&yqktg2=G4AWRtfKmNS_Mg5bopL4pLQlzBSw`#p%j}$Fw=rDTm+GJJIcGh3ryDdB5 zayYqz)e-b2Li5y?KwQ&O{t>!=t3R&Yey33XYBwKs(mz`Nu)BU1<;r(=w0v(zZHpb% zvwEM7Pub4d=+osl%Cw$JB^lPoFf5Zwv)wEmWG}Ptu^+QcH#^AQVeu_kW2~Rm+3PIB zVJP$totI_#g#4QP2N^ml%fXWFiaMQCI1n{cK^tpzlsU${#Na^&4Y3GT;V6rk6st3x ziygHi-VPnL+l6#@*lHhiG&~%ScP7oCYgiB#TPmQ9!ft`41SBkP>1`~R<}2&|kP z!){dW>ZZRDEW1b(gGfQ-w%Tkf^mL~tRVT02kJV3VrKscy_iE^OS}7tqoi5HFMj&$a zS4XM`Ij6%lklnTyk2|CM?)q1ScW!HO|5mzx#1G#R4{VvI5JGRx?b%$;q54_(!$eQ^ zgPvT6U9%RwaD}2FPxNyw#;OFoO!i*wz1fS;W!}rsm*i>rhKxUspdYlMOR4D;O|SK? zrQPjqZOK~ISF2S4xfm7*2X=r439b--v5MAKw^Sdh;;!oVt1nh@u!^o$(NAh`*Jyh! zT{}=aT4OHPKCj)W;jS8bs)lN9)pmyI;45a~V{t&`SGT6`gVUe65uAAe~=>GI&ic7mM4It)_Lh&FQhuCZJ~GxV5Vi z?=gE!K4kDc13h#B_fWd&4;lI-_Wh9>gm6TdV1-jFo6b!Y7O!V#KO(v)1}h{Ckcdh& zplSU-{J_emL>(H0A(SD13j%r^p3vY2MHqvu@S4>d8Oy(1GW`o8TWa{lt}@UgwJhBh zyGf$8^p_+B5S#0}9(-m~Ew?15mgp*>+J-00T*nse-}%8!BS*V7l*Fi{D2e=ihkEnn zU;X_3uYb64gY?~-T0>hkOMsF5^!lxOdi8hKM33fb2c8=Kc92iiuRhZ=99O#^-7vV1 zC{_pf&u7_}VK@B7|A1gq~QtqT|%J78CoZFD)_BM(<%>~5-g&qLnf-?ie5MUoFG#esTpj)It-ipl z&*J6nJNFwmzRA_Uc%rYC?~#pdqYoL^@iino*;~sm$EJh&;0h(qe`zftJ_`W3Q@ZKV zqZWw?Oi_R(Iw70B226j&2tdkHya!C2hu4#)9wTtY0H0Wr3JD>AE7X9?O}Tk6cMdW+&1n z!}~0%`Jnbq2xipoCD_FQEH4M<$bp0H1i5xfNpjq(1hj{y3ILE;Dg19lYK&z%Wo_{W z3}j5LsSGq-Qv(GObUy9f{>WpOSLKkiQ!d=Uy1x`R;Lf3o)*U53JkV#zrTV{m^0gy- z$9{_L{96369@@FR9EUrH_mBOo?s^^Wgh#g-pvCi_)rT!kwNXWC#@rQl?{#i(ES8_qg*W6&0eurRV~eL|y=Z z1b0#~+ZBbd$OnRONO?{r)}-YWwZ)Ds;%~VGl>U(->0`f zz9*Mz%<0_oncT~PQ1aw zF4$hP&D*ez0)sMlWU5HUkwCg(_FW51BuqE!X)BB@G$R74Rm?7~KH@<%(HcttS!+7{ z65W4nG?0;R+}JUqrq{iGIO~4}b#?wSc>v|t(VI_g`pe#qeRHRYWAK4vm}34+C8$4L zh)|Me5=?{B;WIpfBPp2@`DqgD97;MPotLI0M#Pe&DkM`~gxg+~(B?ugW;C{w15Q$~ z-zb$MwG)nTR2+sjPP~K!ULqcXVRi~|(COGHAqfz<#Ge@hr)HxDj?6Zp7>G256_MT6 z)NFDwy@W(lCg41|wK&3MKm()}R1}uj%CtIV3Fj+KXzod;|HNGi!KnVXb>D1RjHIwg z==ocC4!m-P>ZHz?k8uf3Fv46rM<;?FUCXz$`0X)YH14-$;#7@ZpWT@~n8jJ#k+Zw_ z7>W(kp(us}QVQoUgJd|KF{m{*CxG8?s=ZQ+05Mc`+NEPLWSA_&5g>+&<^}{df6tz!>9w#D z4mz35FfcxD$JJcXf8BrR#62VJUw=7&^OmEB?i+eq`F#sD~uk$`c6-l7XVBqVJC2^rh7uV|(|GJq^~_$e_3TAo>4kv^+pMS%G=J zxhrf)(R$b>5K0QI?Nptn^LK|}ZCd$~!paQ7Xd1nXLOtPhDH5-z4V#aoWiH`0LlLW~ zrs~J6lNO3uISXOSiZ-+j8ahS>RfaY=QoOy$P}Jp{d_dA(ovuwx`oTti2aitill(N# z@|D*3yxC;AjNhguyhSD&8d$S<=QP^Xic=-1p2=Z-TtLmLEMbNK}fG z`E!On#blY^HLEBFDE5yS5<)Q%>~yXkg9ad#1A!Mr-Zc%yB!yTMtD3H8ny%9#wUv|* z6I=N@Z|WxcrwO`QG?$v}OXdX=g-!U>gbz)4-h9QpXtII6O8A46F-k%qX$G$v>C{>CIheG*joB{CFHS?DO(rsL$iiSR7%6YifUkQHh{ zL5kC*y{H;Yge2csmJ3o%b%K%vH6YQYvorqfnT_iC3%Zb8@1L(Ljs!fUl2q`Bt1mnT+dZJ&*cT7nlI45 zsEVp7uIMPD=%|`j&DlyWXRCZ($Z3kmd6H9bS({JcC@P1u=_bU|l1E=)o7-2{L?G8r z5q{*s<1XxSVc2cCs91nM7htpi1I}Rw{oa9l91v{y%!cFk5ADk~yTgW6_8m6rKEfuC zPHW9{iO`@*NJ>!WfVJaS2 zM{SGO$Q7>j1v!+1Qt^6)75JyYG`05)RMD)hEMy4Hpi!4tm`Fxg}?5AF#RiK zhyTu9W#})z4-pS~%~Y=8aRb?fDCXZevE1xoJuiH#s-PY}yx6IdQ*?|~J3mKjulOs| zxgO%QO!DKC@Oq}g{HA&PhS>HPiis}(Fo3}ZR^)&$mCAy^i$zi3dAD3r%H>k=dWw*s zE(@iiF2vl5vnRf;;Ll0L<#myNz^eSi6I`9zr|?|VXr?iclO`x=Un9O(+(c|ZPNN(aIUMA>dOwBoha|4)b|UHVg%SxV#sK}m{y;*Y3X zop;W}?L?n{q0!4_VBh@PwvN_|^LN?Hi;>%IUI}Y^@~N0s_g0ry!&#r}E7~&edHfP_ zHT&J&YrmLv`deD;dnY@?R>h5AndVQ3sQMA!jpV)A@46eiqasfjW44TK&?a0CIenOs5|VqJNN zNq~?@s8#Z`5~G4j3kV%UwzV#IE+v)`VkRoa>C$Ezoynlo%u!Gv5{79-iPva9&+}{` z7*(u0g0a1{Yf+$9^kk9*B{{Mm?Y{d@$<$KI-|Q?mVxMo^3_q=7ul&NZ<@$DEM4v{A#5Ft*vQbduY2-8O(uaDk0L?ExvC6Je_3Q|3JXd}6=x>keZ z8iX`Ot81*LaySRM?KTA&$c)`MMjdK4$q8FwHvh--K1Wd3zgmSJ@LR4w71dT z*zJ7VZ?J*07#yN7W$UGm3QjCsjdO!OyaUsj}g88$U15Vha zqJEp`9;M=+Gofh0TcoC&hUv;tMV6x(ugTchwr!%GZR-)WDhPG;&_;4ob*%x%4G0+| z*A3Rtx%_q$%qk~qa<4onhh#Y;-z1ao$zeVsh4ZPVluFsDY&})g%zCOHEA>=~427{& zE`@r-DbrFcwW(5LEMiPU-Jl|syoziwj~b^8WRw^g%eKtQ#GBVz7tVCOnYD%-0*;?I zJ5ZkKXBuZ~fmg#br@0 z+90GM+G!PQrw&b(0+lwjjj1>LzMGiWx~s@>?ELdP=lss^9Lisi^5oa*LdA)fn2OnA zMLODqC}sHXi)*`-KgsTCY)HBOGE3W!-+xeh_+&qXttF8Q_0inw%1qay=lOxssrD~r zKiv+$QiZDtFH^vW$#q+FeLBSIpavhn$1qNyi|8i8e{=rJiRL)BIQyKq%J#ag#fII) zt^+Q&!{u^!60r+&VG~3mjF51HA>^bcH*`lU!F@r9}CoMHELOeey|a!)Q@z z5l$cC*F932c40(sW8rJItK?<;B zkwrNoV-uER`8E*G5!{8EB*$iud}-vcCeGh>6-~;xsEEKm%HJbOe1>~$G%^;85#`bs zw`xE{yebV1FY!S8$p%_ysqj~^0RmGs>NBJ zuu*RP<RMn!4)D4JpWL=A|r~fei9Tk!60zDGhP2X{cV0?{Pkab=lmoh(S$USpVU+I zEJu-85U{2(h^Cec+q%jVm9HJlMXW4NQ(`lXc{W}d-uTu?Tf-V=c)`Q9^*fGs>{Ys6 zHN9fD1cMlH+2XQCRq)8~`}UWVQ!G-X#a63W^duLt7B|VChwVfKVLm(*CRo_r1c!GW z@NpRKG(w}5_0-V|gEk~h-_ z{=Wjg`Yr@?Pq#yON`E%(s3A2I(KXRJtqiW77&Ns)*h+Aym^X<7993~3#&Js>vpJ0e zeD4Jul*d)78i?oD;4?r3oyig*6K=}fm5BraZW4A0=v~VR3(^~o7)}|k7?>m4Q`#$9 zoK8$El{~U)ZK6nnwu^PdMJw>T19e;@hd9y8SZofHj+pfb`5|+U@%OLA@*sb$FiM7{ ztUYjHMa9vUj$NBC!+&1x>Ph>v zvUFhKvagBA!R+xbHJzGvU?J1xfpf{}KSawBI-!A`+TB{zs)xr-@J(}%8MT>Vn*ir~ znmtJ8ad}XS4|28)+hSX*jo~n`K#w+urU8%H8qcw0mu1&wV*@7n(h)Y|tZkXe5>P#$$!!+dmnxzbJBWe9$zl`h&Wv;B3^ST#U0_8a8w{dZXaT}{ ztw)Otr8;6O9CT{+Qv(6OW*Mil4uTAYD#9A$;FTOvkEaADj#8t%PTnRD%4g)O@}K2L z^0;i2WyW2|>!O8>f$Wfq)%r14DdcacNRCEE@6hNKv6ZTdqU%GSyk|RhaZWhRgwfC#Rkfx2qwXbbXV13PZ~gEmTfX1BY)|8?+9QqjTE~nTj#_)u;o8cj zy-R!H_3M56rd4knEGzp}_nh*B{WmYppC;$cELp4%<>(ic&JG7k=h4j~STQ@8kH9q2 zHOdmK!5W|MhHa6qNN)t6w8NG5H|;%k{AmPg3t9>`73?ZtT5~q%?8zY^2{5F@@r=ZL z!F^v4*%M2*1}IguxlkOSmW*pIQN0|16>!ocRKboA zaMcS>id;kLZfXoh#`qhgRpdc8f5TJz?G5q|{N2&9d$fVi{vWu#_Bd%;|}^_ zaX=%3lNsLs5?=PPO`LZezu)tm&*%8%?qWOVH}35CqkN*VHvj}`1RNj$*Xhf=*1wZ}a1m69fiSpP0z3 z`FdKliG1PHLS}*td1S^f%9OFd1k7IKDUUKu!n2}y#ZO{Xo6yX*Di~`E*R{2V!)-tQ zSxf1knOM`%z%iX6;R>3-64o9o{q@)>zo+iJCKzsQs|&Za{nt_YG#KgW--Ld8I^4qf zhVBnOmW~~a$}Xbv2Var=xJ&wP9M)!UUt)o!foNq#xfeP6PlvLnV`V@GuU6NIoPaMn zcT4voUvwMU@0CVQ41M|K=0MD6?||Pg3xYi+u7Rt=Hck@k*1FQgA>2E;+-xvJX}6o+ zejP%4{ZUhu&xaH-Q91*$7wrb{`4aBO@0V`aO#*SWG`T9f$gVw9-#cXWpJyW$Te4f; zC?k(Vc?D99*er)~V=PcC&$?O6vYtbBKX#%j!Q|waN)eiNd zcG#0Dx1F+T)o&P>{Zi^<@`HEv7VX{^yUFZGdg1+1hu&MgA=)2kuk(5Vmx|tiwHLLn zuaU^hM9tdbwSJRU$3=tvYHoFwa+(b3c~Po^`g^v4Sqg(o|3#3t7OLcZ@=^J`Oz)G9 zO6MhvFWARbu>#9!WDVjq0hQiJ3k;}M&_@iit95 zej|P-jIaRn8PXzit<x`riKj@DDe%6pw6- zXI}1Z=~(shZu&DRwc)9)$!p(qEVD!{CcnSQ^*9`T@0I7zT|f1D>IpE7wsbap^8x(& zXi7S`{miND`>6#SR!_Z`wQ0k^vXYJ5)-#R;Eap&&WFy(ZSvzSqV1y;m0GQq80guaX zG3CsnPoHDxgJ?|UGXIbZT*SrwydUYYpE3J!O^wNhvM9@%l7Ap{f{bHc@VfmWN^f!+ z7cojX@g~Tru%=i5)pKXt`sD&y$kg~uV<)sb-`OkNmauvkvRlfVN~9jiZ&$9&65Q3R z4`;ZQx%?c(<#V?dW86H&#mL;Gz1kyMl-9$_Ae;;SE{F_4SFk=vLW#_?!gKv(dQTeQ z-5})3JSW(5W|PmA^LhJ}Ey~9VRupQ0AYF)xb0Il|j5t*7CCx10G%8u8JU9gu#aV&7 z2FmVoI{)9`W>K#&zHoALtdk!e{xM(`7Zn2%HMD z4*xLK`Cy94X^vA0QA<16vo(Y1J!yo0D;7k=iDYzU8)r_c>U-P3C0o=vj*&wIHoeA`~leI$4KUUB;_8xu`GT zCjTaqX(Ik{@q`rytYD4i^V8*V7vu3M{^sWV^kt!W);Rb=**eJJ$BAi>M`~3jp_G{( zPLvZ%XwIvFbmYKzS>5?cwHPS-34o{K!3pfC)p}El{A0dlc(k6f+bF`KqQ~Tlzkr@~ zo>mvHuhkbnkwH8ihom+FGIdn08IgWI3U{yy!Iy$1RH8r!=9(Aqnlf&BbT6^Gh>TK##3Rgwy zBIr5oF)d=Xpuw-=H;Kj>~KT(ZssscotMHFp2L=bDT z&=n8I39lEUB?44;jJewlr#} zbsb8&ZnfrQi$s^Hk1lGK*~JpOVXwwJcw7+EVawr)xtExC;oiKOUKLo=6_HrX-(U!3 zvcdlsSq_lGWfRnbOT;zRK%!2(&th+kmk(5bE4h#{^xEd|hsW3A>4Pu)@pko;mSRlH z*S>QMfT>*Popq}mc4=E&8R+Akn?EGZ#5>o45ByCFwWde^Ao+y*l8wWiRn`533R78d z{4zyjuS_>uV1tk4;CRC$4fKA`7d)pt%j%@e{nRgW)L|Ib2Yl zWw?t}9yJlCnv5K5vL-R~8%g?D>`q9ypT^wZh-vvk>A+OKM4q9vO%KTVq2 zG+_@?-$>3y0N%#TlGJYAE-&B>>rYp0kaWY33)8sgk%m|KyiO}_^^mIoV!fK*0%==N z!xro;4OeiKrEI|!GdWuf5I+$o25nr*pVX<_#|~A8&VTtprA5J|H$Rvur)<34@Aq}6 zd%8N(XHNX`E89X&jWT(mlyZ(W; zZRmeuH$57lU$Z&$if(;DGQ#3d0=a3B{He34Yqn&4DBUu z4|j-rgZmw4Ff*LqiZ}F>StuZHvQR)i2^NsU1KEPNFj8PFOrg-HQbhWu#x)R8fTe(i zq55J==7=R!K}Iru#YKAyBv;gIG{HDt8FWBDv=^)LiiLQn`A0YiX%f&EJVu|M__L+K!wTZmN6&-q`4NBzMJkE_k_({rmke>i^^%`MTPl=@>hj6E5N3N*f?lr;6a=}7E zXO4lP+C1<+6N|@M|Cu0RqB@KV_q@`5q!=!ey39OI?w<4`WQ#89YQ!vx4G#R{LAfrU{ zh3@*q~|u{m*H=WtY}%jy(4Gi;qt2ll&C!f+N*_{j2z#ZwG^ysS5t7cjFmt8TJg*R$Z?Z z|LkG~Os)s-^!~e-9?yg48PGt3KmbCyGh^wuY_u>ZF*VwsGXkSgwhJZgBp;^cu!(k1 zeqi(uZIK1a4I16<&K>U#0&37YNSm3#S?~}tjdcnrbE2psm53~IPKZhDz@ zrCQZE-Wyf*jVfyfJY&`&mb@|g*()P=cQ zxSP%sj35+&OR2Vzk0s(2Z8$_Ik_Jn%uRh_n8aUW$UDcniFQx!RK)S!Bp#Q!#(pjxb z##o6B2ZoE3125b3uMSs!tR~mS1F^oWcU`ld^Nk;P!q&RcQSIi+tu|As`d*t@bXHsC zZTy-G7iy8P93NnOeIoLWXaDZFvj3QaPX|)n@y7z6p}#ei`sh>w3qMF}%20vBJBeV8g}a*#ibZ;sL@ zY5Hj3WPmoxE)1Z5mUT@Jr}w96Jp#4?VUsW^Fyum;RM0F2gF>mul}g1@uqf*MYyl`t zAsR+u!hk-l64p%TcHW=iyHrTNnB5~F=@U4(^RcnBVYcOixkm_RWCAF)JE zj2Jwk&fL!{4p!wLE;K*uQjYXd}!(8Pp|SR0bH);T)ZHy_VRsDqATs$bz;-6 z?M_Se&7Cfb2UBg>hN7nkyvEX|h17~L*g&Ia7MdWT!Y1UVV=w5`ZfU|^6iuQ9v<)U8(_Tz4X|$>aeS_3$ ze<0mZ8+BEOkOBy$V=rh`iMDGeMJ>G9K&`{`JG(RmHmDTc{hsrk)LK$g3+I9pE#6S?G;6e>V@n#LH{m2^0i#bqSrR5>pbN$yXV z`@Cd-csoOku>#x8_OqKTC{xDup_>k?`NbSaUcPGGUSJo2_&JRaxXa74XZ^uqdA0#8 zwdUOs7GpjN@M=&018Y&dGp`07z5NQF_)>8^!@{NTEw&mTx%ijPl0Svg>03)OTbJL{ z`EWI_PVk}baB1}XS{A;5hR|2giuap6wF5P>haR9LNK8^8bS#eJCBcwlX3-`gB^aQz zCQgZS;%V{s;tes#gK6=wcpSnNQ501xJBS2jO*%q?!{%^hn2vean;6;Xv^MRS91bm9g3a6x#)!1a01TqgJA^)Sej~ zT}+H>{9>!ofaTftOfLrTGc!0SQk%jbsI=cL8eFEaSpPkduj+ocq20&50eM5_{p^u< ztVLZn*5b%|<@+y`wY0hhkL(m)dOjMD7JvJ{?+`}iZMQ$bKk0m(q-%OSWLZKbUg*r> z>aI1KOe`xf!Xlj)@#E!$E{oW@t>54MJWtjmL|+9p$S8(tUQ&;SwGa*lBofA>A+Tp; z1lg#l)fTv%+i*m!3-2$q7M2zPpzXjc0v$?G``3!TS~=61K2xEO-8s`^AAgL0_K!FD zk#`X}GDe<;%&ep9C(!_ue|fO(JU8(20D*FR&5PDbtFog^>md^R}WU_ zs z*%Ggp=Pcgmu_ai}%TzZY=1hfgzDx7aG116}pJ;QcaIlFOhwnMG# z`nbVABu{t#7HNe^znN}r&uVKrH#exF9#WO8^jc=mRs5))v$B6z1ID|fV+7YfV;=t(=MHM54v+Mt-Bbx%q5aLzSak>c=wH)yVZ>Ksj#_$ ztpdKd==1(;;Hw&@UcdC;$j7rAx8*qbJ|n$%-IkVX7xdh=wc|{Bg7eQr`+ffPcb`i~ zCp#B*aQ@-w4*a{LTkXMgQ7`OUpZ)F&-+)bccY;ZfYb$@m!?+;)5Q$(u$4(*)eSvks^54}yVqdeq-tQPVG!e{|9 zlDG+JDTklm3Pl{LPvL|ky5XowULl(&6|B@|{5h4K^E-njYq2-7oYR}Y8MPK$=XsmZ z<>>bhFmJd{W0bP)Ibq)0q=Ig7VZ(zDZU}v_ZzQTm(mB1Xh%rfHN%`lNFbSXB`c>zn z2OCl_nI6gP#LpjMqHJ#NRRTO8coG%RFHRyE1gQ?Xj+hZ{kQG8m&VpCG_RGoCREngm zQ}i+lp$O>GLkj3p-49=Y7$OQqrHmBfFJG`7ett8|oRGxvn3|XJAWCV9r!Ys+R1GJo z#_t8)X?NWEY?nxn1iUj_fSBtJwYc(l8nZtv&Vax;72F%aU@+@R%5^F|7FXK`ng;!Ff=yU?)-hPVN^r)^HUW~Ha0)=Oc`E9AcOdDU>7Q) zQzwzSa>+|+1xHT;5SD}$qtPSb6JZh-x>Zv4-NufiDc|a$|VZ<1qc|GkRt`mq++T=P>0g#zb*U|)~v6Qy`bUWu~;Jsx0&Judi zE*Y+t9-ARwGFY_T-b4c^Kq{JJgFpId7B~3?eAtI!rh1gHb%zq!2Q>6p79e496(r6F z*NF{$2GO72qAbcBeI6ibfX3jE)B)_#fs#k&>2;6AII>t!yA-_{B{V9X0z@ff`iK&c zNny1w-v?>bmqUJz__!cPYRYK^a4Er<$#Iz+ml@-@a$Q^@z%`V*gDaKK)p7*ou#_9( zMeDPXVXd2EJ#vdvZO)8`i@bmD=9{lA_tOCSWz26D8>7VDxBEaBqcJAm!I+LlW0|6? zM@I3!_1~Lo{~OIt?%QTKkqt=T{M?6k0?{%W#+sMyvjc+7hU(6^{dxPV(CDak-mcj+ zDcFKAzw(Kf=v(6q2>5`2H33sq$P0uC!cc`LT3qx*Z^Utsh$SkDL#Un`O7c{U=uUEo z-;rTvA%sJd466*^U@MI99-4$G3nT{S>4#pl=n+8|N&;LFibc*?fh0XxoGX%IF|qd7 z^g|Se9SqScucMUjPuNJ3&HnJyzC1m)ljuaXLL^XARE z_%^7$u<{9iE)O=}d)|*VZu<+cAW}sAC+F1~8^v`-?{j8$?0wD5K5f_;FScRVWevOA z;5FDI8m|+Ki7P~jDT|%ZBnBj~BkF)qBr8IJl9$!AX_cg@(^PHMDpgts7ndJw5%2?* zmR6-zP=Wj?5Uf~15hX~?uKV5DHIGzCQT=0Q@A&S$=bU@*x#xq6r!JQ9hZio&JYaQO z8!akX_<8F!>!wASiEo(rl=*k_ib>yy{VGO=VtZobKNN7es@6vrWRPWAt(I-E2%G@jYG9_JgnhL>h*#I%uUm|$xCwu2FNypf z_Im?t3HXgEwuCDLUwmLyhB%>vZ~_$;W#-qlNvBzLR)r^`6ljaYZ zubU)lV$miZ$qbt0Yu_-RG)GPPOv8Z&Vwerg(lxGx?aCe73bx5miyBUy0@X)E`2;Zx zysq*oKB^)Y9f2V|_@NN1nwoQxsK{EC`~auvf%zIL-f*XEf^$YTHwTIK;p#oH=(bPx>p@)iFs<{gX{RBz=Edd${*mx&n@}3sH$LY za?F`Kg5I&8cJT-&E-j)Fh3b+W1}uSCAQb>C0f8mZsXw9*=+vvnbTXm8rxSe)xqWUE z?nMgG`d;7y_JBmaQcNOB6+W!g9sC^C0savnuw|Y?rEGyWcX294FBE~5@W^|p@w*%3 z*j+r!f4d*)?z;uRXqrBOXMleM+0&>-Tpn5oLTYHrZP!xn4!FU8{A1AZ2u|3pF@J7c znNWz5D$GV_3;s5dM5AYJK<$K*0$SxZgnKUldnsTDKNc}-CYEgLNw+?l8+o#^u1PT> zda|9KPuDkf=6atQw3j41vd!5J+0_9P{Q(et>LAM5byNX3oK1P{Amu#3iNZBk&aMJ_ ze{4X*TB;B&6{52hFr^!3=CR0G&?PH;zp|w(#RUGezkPUUQM6IjBU-XOmdLGL-pYP9 z`k0+at;#lKR{@IT^7^KZoR|Z!Tmvj&w91Zn1s1nwirRKyUK-aOXlQGzn>oCiEDW*rr zyN6XUH-(9JC@;%ik0{M%Z*D0RQD>oaMPx=_?-eIJI(M&N;84ge2R-5V!-`Jr>PvTb zr~7uXzw`~~yVL3Ju3hL0D2YJHswkyAB#+xDWk4wllqyoIC?RtQMDDy-ND3%ruNy0F z@s8$I^-H2`aFh)+z~&34@l@Zg3Qp!9?(5stC2-EyGZ*=bD2jd}s=JRSJ^l<9##|qc zW@OU{WfWgSQ^r+`LvD<7R3e1=JrI5-?GR$(+V;(TGzFIKLptbqWs(qG73mW>>C-m# zP{wrJc+ffP(mf4SuZv4@p;!$`CkbPe2w}!p!kNcfy<5Y5zsPC$q z`QquVkxk1MTZ1Of74!;oit2%JrHmW-lB_GWo4DYE=`<*C=Llb1vC`A?FtA>>DYEr+e$8lS z+iI?)Us=6k-9Xod^7pYXadXf5eybVH%|U8D%KF*&h=gM3?sgC=IHAgV^fGH<$6;BH z+p3pfw?r_Z_y}!=+D$SLk_e@u)xx;J7$*{kyH>354zv#uhBD|uv>!2rLRY+0lDJJ7 z6PhlEKHp-y8L46ItcSh8n8JMA#z~Q!CD)0I5Jlz$LH5N2m|g&`|2I>IC&sL$oLE*~x)FaDzs8RL=Z`G& z`Q!90fzM(#J_x&=qPi(M2BxB*qvTyg>5mXe&7w|m$-<=yCkr2Z>M7{FR%rAw3y>_| z3BPKyy@+5e+~^$Pp->cjzI2%GClSVv5Z9!2`KRGza@~#I8>Mw!Pds=9rFv%zD`7+d zO()s%2Myc!&hpQ3zZiFv1@JLv+;-a-hJ`1syfQY0JxBIq7<{S|+HY1zfAfMf`bcl- zUj>vZiGVgz(9?Q+^wRdY7}w!g-i!~<{Q^eqo`%g`oJ=guI0h77Xk{kQdk`|H4~Zj4 zV@OQrMW3KKL={w|bh@fUDtbmF#F3|+tXOPKL`fV-Cym8hmW-9q1ji-9D(5&VhsqLHp@6F2Q6am~Bg8R*(^^cPw5$ ze+ho#DD-jpznoWFY#dh^K4;F%nal3ZWj(XwwP$C&>%G`sZ^rSCz1gJg4sn{0q$w7p zltws?s3iDz)1X5|I61Swdp5klHFB(WXk$x(`t; zApuHjoBy1(6Izi6YVT$CoS8ZQ{OA9_%K>4GUz>w#At!Gm0v=U(fk0|rN0Rx@-K(WL z8J^+^7SKhw#q;DmTrHzVBMXUQWORq(j0y}CfplO=alxg+eV_x0MI;)*9E~JRfVnr} zSRgWLwkupiR&aO6e3}bA-R%ndhM494a#w%7hMzx@KGJR($gz+Oau@~K&>+cy|@g7uv{4-2{0nGxKuR~5Ae_aNs`+1ZQ zHa8+hh%B&?3Xa4GI!BD4YhDxQ#buFX#XxL|#1xqkMB+7ZRV0eIfT3IdwAC##C;dUF4)buM7GrL%J*q&`Dq`1ob4Vm+<(D!QV&Q<{~f)3Z~v_CmUwlYB1wl!IbOs zI+e@d8S0?XQ=qr-_4JuN#r~IwH)v(NK2lO=ve~aq2=zVRG#b|(U?aCTBhQENhuM=< zg}({!ORqqNe;C!Mro<#*Ohv|o%=CC6iQIIkk~A449WU>%W}D1 zuDf+t7T!O0`}VO1W%6JFiLwO|;DkzA8$>2M|OdvIb0F;o)RjY_bvo^Ma7HC(i0o>E(0v590 zZ7wk-+rexL^3Eq<1m4gMr`Rz+kJXl;w<5_;?pR==YNM1P)g~ckx(n)+a(OBWCnc!>6HXCnF@PZp;eOU z&>6sgjXmRGcglqc~q&E&`nw^W{H~520KPCUWxiEVI_i#E9ofB?wHop_$64zHnglZt)0}w4GkmB)cQ1{1yfV4 zwFPr=OLlCP^eN`O_z>oR-uVTfj+(a?7kSZhiFD`|N1j%)(SVCO)n4gH^J&%vY{z-w zx44eT^KFI#24Lm2%>EgFk8-H3IsIE^5B%NPXAXo-C#Ea5oqxGh|9&j7&l@_nFB|wV zD`wl}lX)*Y{pb&b_Wq+uYApV`THM_P1n(VuVDDqP>RvgQv~$t6p{lLBh^qWi`K$7gA|}ae6tgZ2C@In|g*{1?+H!6OSpmHXlg%F! zyJ5`CmqIFIH<7_RiSBuh07~n_xjgDhvF(k3xNb%UVO&L!k8GSEw!z@e_97?B6+*+w zI)OuCj^`njO_cq}@Uwp4lg`(&|DOM`PYvQnAVK^-P8tN2fi41G{Vgt60RR^_^*vx8 z3`1jW_RuIa6-1}i-5vMo2lo%;2Dbl) z^s0}k^1R~jInT#?udIb@E7Xrt5fHsrZsmfAqP{^z#gA!Gv~8~Jql(il1w}sWW+_D@ zu9-A~R^<<^ADx;lTVoN{ZNX%7vz4{UI-6|6WQ*A!%WS%2TW00H+j*Y%y_fgB;Pyue z+=QDv&+m86`Tfp0&-0U?oS0|-ZB}6Nr1vYUnwFMTh(Ppc#e(&nai)1$%6OawV= z;nDEFTB@JRDWKdPr}4jE{KOE(6V?P&dmu0rwA@C9AQH>CLws^_Lu&il-)r~7U6I}E zIb|Bttw-rpP#xolV5*ZU41IWbFmXB*bV3NKOm?SzpsE$HTDAzsQyp2vnr`^oz?Pj{6+^)ix{?lVfqu83#1ki%e zC_so;)Q$^AHxnN!^8GOP$E3Z;U_5pYB6njkn!59ziNyrVWznoseCcQXKYuEIf4BWE ztoit3+WxZGJ?s&y=?roEsoK2__0BkbRdBU}4-Tuh*By5Y*IMX_x8niz$8WaT=iBIx zWvq@>i`}#>%r)Aq+{uB7S;b6!OchgjU*4Cj@I)r2PMV5S3!YkNb!9?kKZLC*ZLbs@ zEx>|;LLny60xZ(ag;shxgs9O%_#LB7b*`(Ago*p$MP$jDK%%FLb7%sy3wlwv7R=u{e;r#TpdFkQuwZ&_TpRseQR_u8; zXWopoqVze7HWaTditw}bTh`}?H@7UwSQ?Hlv&z@)ty!NJF3c}kvmm2%#cJpkJwOyVUi+P5L>$9>)^%VUtqpj)1oxJSY=NkcbJ7E9)1!DOJz zJY!;q3H2tJ9tu%v{zSveLH#6oJT}VX?5E^IGNWz6eIJYE)@&{xmx=>VfeoHjh;3$< z$rNgE6x9#<5Ik7PKIx5@;!O`;z*t~SzbF6&0~wg0p0Y?y%seCE4GHzKO`;?i6lFBM3*tg(dEqxSwSpxs(@YBUj*RKW>c zdWtthATGqHdU6OM#|iP2-QhrxdZ9`40*(pQW3~&Z6g2`% zsofBo^hm`G%msBKDs{9P&#u;;8gJFck79!_k_sy~83TcxX7ILj0>eI?QW8hNAQ(bX z_lF!Ej>eYEU9xzTyi@-qf#6XU+5tPA?e*8N!pe6gLIENi7f>gf1#VW#0Ufc~CBczO zg-B zKC4tb;h^kEHb#;FhgMzow-mi@GAwlm<>G|0%OVk)iqTjqHBWC+tU{x-z6ynuIeS3S zIs+C=_wia{&FE#&$~qZdl(0qCdC2@9PmOhz#`_LTR9Yvr23k(MSTU>goCG|Dml0pa z?;`F*cmbgbM{P`f>Y#)st$%_q)h#)pe-*Q%MXwYM9eQn|AXy$NC;r{5s-n19_t}8A zB5HSd5@_f!L?({$bF?kBaoEe@MGiGo0>UhEE{-I_*1AuadO{tUTI^l<;01ocz1h|K z3TyUZ_9k8Ii2ft0-%Kt0E^$WS9?>rF>th>;U;IYQEB}pkdfQWh{0`?RwEU$0_gm{` zo6yNGaoooaGTg~v1%vqv!VFB7Mc|UT7HHvb((DnYsscIuRc!%R|I-lCJQnbKAk_ln zdtghE{}cqHpNzk?jvRsgG2W5O_$1MoBe5HkH`!SESnE5j`jJJ#!+T{MoI%aY*71 z7@TBqn5E7?*C|6Oz{x}?uSPwX$M2It6yR+3iCWiq#;Y=Y}vgFAPG-$je8>2C?>5zsE6 zS->R*$ss~k^2`k#Y|IBY#yd`wH(9B|n39b0+t!9o-EQ7za6-q|=tvP~F_@(M11sqP zz^`zm>hI@}!PTG`brct<-K3VQE=k{01mqWL8qt*6*NzrHnGBzM7B|5<<(`ZOpNZEC zAAH6$yj+9E>(+BeG*?=+9HLv5%_|dJ8Ig63-7euWJ;hqNG8%iFgKoJq$le~k1ohgf zUFDG0jVM*JwN4LIe-Nu3!#!cD#jUUz7L%z)!ixM&cCF3Ne!sPbsGHK8W5?`oo8U}j zVts|E5^>}}1Hvb6B5MSQ>?Xz6(0s=yOe7t;NxrFGqeOoLo+huw8x+?r{1!4F*RNP* zj@M2INVEbiqrQy^#m-b?p?{%4Wx+^(G_jY?~F3y^*Q z&eImfkI^V3n|I<#M2?_`q(R!DIjN^&B-L+juHD(FJXhWb8x+)oKk_`KgNkG%Pg|3& zNZ6{XNY)8*LD_Ss&X7u*F9hAO3Lr;iX~2GWBOE{w*>?YKX!YJ2G`?)jJ!Zm6bBl@e z{-GthlR*oEKD?pRqpHLOJ@rgfaLE_mVA1#;+9^=MXn}sT22MK*Xt8~Z&=W6`Q3h+Q zS?`%2nAl`Ooe2(!RAkB~PZ<&8;``Ar*n_JyI?exG_AsHxuj5ib`X;MzmW0U?(jcCPupl2`&~X2uxNKb!&SJ@I+p_uO;OIkz`-q{;oK$$7r-`+lG2`F>W~ z-{=r9O~4lfZOXlfWmrWSkNs1^AnB5Dio-dCUh{kYzqw0V?tjX^VzhXkF0sc^wO+ld)*&n>;~@E%Q#C*xyJq@!3-667pe=lUF*uI+ zlKX3AHi-2E>8Zv#Y~c|J9TK)lD3etZ$Iu!yOMz~hO5~+W+<>CMalkJ#sbrFw{I}d* z1G_QzmZLeeC$RM=m$52_T~?ok_0|>(JN&Uj#e@nSEI<941vf^`3{^{d8BNtnTX_KL zVLEvUDjoMWg^WnO!Z+n`xWEEt$oK%_Fpz{Nn=E*&Zsc5BF z3dj>CG?PbO(H`-aI*lgI=r8k%UaJf@D#B}gz^zNb3|OT>5S;J3AL5IlPEFdgFIvzq zK`A*Y8AY4}0@{S9s7A{$TSdvhVS;7BrD7$eI9p2AVyUl&MS5=0tvD;)Uy#uvbF0+; z>Iq$+iu?P_GUpGBi5tE zf#)n!Ymb+qbj@^pEh6{6%ahJ%Ck8Ros671m}={)AfYQK-E-I)B-^}Lv%RQILW_i}RGpCUGGl8q zQL#@)n?Z43;B^5X>O9|xu=SxE03zn|8lgH#JzcG7kX4qaT3Aa^Wqz!|p4Y1LY-=VF zPGj)4mUm4I3VcI%W}qL`{-SWmk(r@4nq+BR!zqhot#nddk|g}A()g!jZNhzb!n#)4 zr6j7EK`EU z&dF($Oy`CekmMb|tJGDN4}E$!!hi|8_pmz9M-yPd^r3~kH0;dHcBSc<-wR*YEVdw{i(axzf?l5k0)9Y&5&iB- zXTMl}hEj4q7i1nQ(mjo^Kz9#uUcuy{Iqdq*u*R+S)2Fq@exXpWf^A_qn?YLPaU*ZP zWC>X(@hHBJq!M-nn(A{2%~m=pqjUun8_FwqVrVR`hkKFvQ@)IpQdDJol}4J5T4I;% zlSmD}MG}j?%klMx)dsnAZBMga!4vl{K}@q=k-sZv+2h*0ZaV~L06~T1eC2J7S%&no zKq*XmRN}3FIb@;xt2OBr`Kfq@Jx1dkVV(M(JV9pN$@i-hQU6k+D$-w0H%)-($eR`P z$tgpH{6+QRkNJAb?a7_8SN>G88o5s5I~>}$8lNKpykwN|e%1&pah`ZIwdvb97_5^Y zYqBe^N{CA+)gW<@=8^^79`#*eaDl;l3_4ja!yOE2*gA$rf?*%^coeXxQFD#=LM*ymkJr_XMpEtq<1C1rAYjl~ZYgiIeddPn1GYMDpawD(TNSH0- z5=rf6ObMp7Os{y#g8deW-(%r-Em&s3*XYuf_%?wF0p}QOS2w=yVL>yJA+k@>=Uz1@ zp((vAb*~BsDNhszPNMS8;>!X$1-v3)t$-D3Z^Z>p7jQ*K8wwGWtI0h3>9D+;<1svs zNdI{4AxSi|$b6YS?(d8>_%3&B1rFZ-x1o>6{N9^q7q;^^Ilf0l_mKqr9`2wBsHil? zAsb8so2xcNrqm<-4!@YX{VcUeChN-BOncm02ruAz+>UG^LRkQMQ5~#kW)|{#-&HYs zQvyFB3Qg^6#9xINq1Ya?PHvN#cB15?dnrPmncMQadX%@?`V;UP)GHAAU=3{3l$-hf z3w8;$vc}s=3kD>#YezOnpe=TmK`%m}v_(2X*sHvCC6~3LZ84C5Uc)Js?$s6WV|M_z zhl%JpyXZP$?*|tAQbLb}y$qI9e%{KM?{H;r5<%C>aRf=UHlpGk_qtI*%(73ZIGS=; zdzf2R+GPpNNMi;3L&BdV+>k1|*U2Wr88(4ZvN$Qwx39`#>RR$1oWvmN-F@y~65!~u zrqtXVYUPb#k}0zv{V#`)IJC3VhFd((nxZ)}mv1k#LdXM-Dsi(Kc0)ORzsEoA9D70! zJH_y<>epVxS2K}{E}Bl|nU|t&I7)%4z$TSU(iXns))L`XIlRNQ9K)bJ{=3ezC&n!( zwIJV8Lm}TM3-zAr6#1b@9l17j5LG6<2zqrPI?aFs^)NkDX|6qi#^yl_sNO6~k(C!9 zXf}qNTkxPd7{H zb}-b5%j}sZ(Jmm9 z&+XHU)Nc9@DX%${iw&4ORR+lT=!r1h6&s)9?!N>A}HV=5XF>0+v(TtlH!^e)Vg zPN{NxBH<8i;vNBOM2o;EAm--;MD_S#NIc^1PH2nKkF&}>MvxfXEA#ECI*HEaalVwZ zDIDSqN*S!ht=NG~CrTYBd3t$`m1}zqx)UAS={_1E~Xm_*`g>hhoW}X^@sLdVA*TPK> zj_CH}n(^vu&u$x%Ukpjjf^5Unw8HK*hxOB4t01f{x|LmK*u`3vL`jZViR8P#!{zR>*}i?T`=>!lNQhfbb}fKuSn>NJ210$c!HxQl>LH z(9u%qjCIEPz!9sCgELb3P==b^Q`g$(+;h)KE|A18cjkUM>%aH@ueJWah}snHsM ztAhp3i_R)X*!g22u`WW0{ZI+Tp^gYtzVEhqDhWog`)AL{{Nzm>8c})3ln~2a+l1wSE};Y-F>=#nuA&dV7Svr^sDQ+ja^ z?V&+*FUsxo&OmIay1Qn{T%QfIgLz+WiW~)>Dacg?YJ;j(?oMpaBZO~$C ziy-}mxiHLb!OHXY3xvV&B2}_sDqlXsH6{nQ@I5nwc7q+p2|Lf~?L$$H>k!arSIR~~ ztpQ-pYMrVAcM@TvLGcilA!xWGC5j(a0n_APt|R)zIs#pakX9U7W6Y|^_m z9-&zv5~4qR>6Z*K<}LSiuPDd3`S@qcnCXh8X6ADm^10dIlmiDH>M}x3FEclac7eO? z9rOTA;ydQNzNE_3BnUnJhwe#F6XRyGY_=Hg{us+5x{A#B8gBPW2Y$qXgLlqAL9)}*!ppb``^=VUS{h4%#JZmf+H!Nm)}K zbd`6qk*_Z_ zlWQDU>_DLdbeB~c=peRt258t!o-KkyUV4wa7rzfjD8XNjMPBoHGr^ zrEH;Z!(puDGd2WgoMA@fJ2W59X<9~X%`G+&TX)iUNcnOykzM3OUeXjJb4OY;-f~N9 z=#>v8r!^DQg=%EQ#+ku>$d+bx>10h`726VY$ZHrX^&r#UdpflUZ; zgyBJyXLH=AN-XUMF6KSR@7yLowYwLaq14XK^exRY+4&e}1SLb%YgnZ>Xk1JTq=dh> z0|)fFDKEXIE0Od3MBeOvq&!P3SL=;5Hx!H$zY^%#uTi#3JQuvngNZP*BhnN| zv^p4GvlIwTrEa%;CtRI(Wp=8tEg6teDgizaLZBzRU36D1g2$lTvKtrur(97Ptr|C@ z3%M%aYrBM_68c{^Bl%F}sj%E~7+1cES8zh4^7CeVrvn%5e4&HeGw&TR5N0S}Xy*&P zHehdqW6VJ?}8xnkByOkH+{CO>z#FM>F^2wIEXCc-Z7+kV!Y zZN^g0TqU6$VIv+zT!t_X*~FH(L?+~lEW9vsk#XoCdZP^TL;E@j^~ z$To>pa;L-;Y@ws1cX!u%f>wyKZo4mSfy+!;|NVH9+8e5o6?@ebq=BGKP=Mo1WkGAM zgRK??ENW4}+$W9;+#JOhhi)`0CE`o>&eVRYjuO^wcN+`itarO>I!SYHz!R~EzI7(f zg!P^lX_*x7W;>AM@Xn~=ol&X4qE)eAOi4rFJ|9zhOYDg#5rv^m@_V<@Q%K40-(58% zG5Hr98Bw^`EcfWDjsXjXXcj6I{THx-IdHDPR)#E?;J{ZLaEP+baBOc-7~oYg<5fTJ zwIsz<0U7pG|4a8RPd!D)yIsE^_1(V}6GQ3;#kQG+1Xa7$RfQf|38JbY3|8B{WE=mC!^Jle-yzfQ%ba!m_iPWM@?D{e~4sbAupHgreS1`J7tfjTXEf~44H_wstQDKZ zIU$w_I2VePw6$qDq#h>oa)>6$Ke_YDq0^_R?(sR|Q>YKu<+L}9o4j48ovV91|FxcJ zFFQzkpSdr4-{&QeBMkvlv5Ji!9|BjhP3u>x@hZTr6do%Tv>9_IZ1InX^Bvi;6N+Bti6JW(c zKF@3dYx7<}^=tP`Ib4IO-fO8xyPqJS^3?d*be0*F5LE)B9uMNFvMWra2SY}u`zTco zZ~KMDyc8xz9h+`Oo|bS#!g&NPftwMQ;Tk$4H&e8edTuV;N)}-fc&AyO=~})(tqpxW zD^_gs8#L_nU$j!~PLlnOGyLg{Z^yD{J8;%03z|=&r$jkWIh^Yk#*hS+)Sr z!CNpSqGpa6LwoduhCLdVYM>!Tb2$;(V~!B_>9(L~h_G(CuP2}tUacy$yAGP{_+#e?3H!#{#7s(PM+~cAn{O*Hd zE6vP2HCN$SghecfraJYZXt91jps-xQC}rm>wuk0=A01zk%8F6PC*WOp+Pf;TC|N5H z`I>yk$IX+JJOT;SbftLH<`T74)@k$e&V6=FLf5K|{rq0u zd-t5*`TE^+4zlMMUFO|V;>o3n^ZgkidZhuy*^7x0SHSM}$BJ{wZ^|)g z=3cWiGiO;0NU@77$t|K@AzGjoVvED1VH_w5#{J@$^nUMZ$x-ebrSRMG{8kjLe39rf zWY;q0hjGsnnRJZ(5H78jy^#mIEzoHJy9HjPVExKUO4(Z0V|-w|S{@6J!DHxtFm6e; zP%ZDlJ#Qng#x3brvQR>4kQ^nHAkWPPWsoz_JV7)GR4GIMK$5#t*?cMo(Z8j-qA8KO z5N@=D-7%;R=Ko!LDI?X+&jWT5#%1XWY?ikXMm$qE^}RZw0RV&O42h<4ZLKD@&H10x zXQeBL(dzt1@+5UBHhjN%i~!BBM(zO)Ty@5iumh+D1Mo8xfXjy>Bv7S4fGB2)f~f01 z*QKyL`5@|DkUF47?j<@_xm_PFphMMRi*Cs<>l>qv%Z^zGb7WY}_)3%VsZX;I&CQv> z6pIoLH8jS2eqXG;v!fGgtiAmQpBk|R>m%Ft?%f*m$h|-9>woRwra+{rwhOTrUX}*P zKDmq7Nh5b?EXbmaVdMRT63vn5?$mjOe(S;SpR>-anIcx!n|r9O)$I{V67h~$yKf(F zZsy{U-YcFt792+B5eS+x{iKOk6TYAYrUX)#hav?;2KPiTf0*czz8o5>`n!8B$>+JN<{z-K=Qu`-nfM~O2NlG zkKo@*M_S?y;gI6>VB9+1+27x{e}7-!lil6%SkKn>Sda9l{{2t(iJS56o>=?V9^vJ` zN*=6%eVBC?@}nst7qVRQ1>!{3WvVlISV>wg!b#*gJI49sI7?Cv8GOl)FCB)LfWk0k zL7ZLZsiuIc+^G=}5wt>J&F7Z#`J8}`@nKp^RNr5HtB@CeKn56#j(fagBmX%PE}I&9W@lB@45dzZ0r1W!}Ql zl=m1D@SV9i%+^0joFs6>V`R-FJFF2<$psX`*l|KJVNqBB>&hK=#S-Z>j!pMtR{R*( zjF@XI@<3ee9`3+M*HX!(4h+ue(q|<*cN;1ZUv{hdJF0TWQ-jv19 zQ5XSwR35=iC8&Th51I_Bj3$o5FiA2I3W}jnFcg-gJS;_XMc*#_9Q~V0MIwNv3-h76 z{@R7lLRT-KzM_k1i68!j`CUVvm?FNyB5w?>j}xxor{UhXqPS~@H3#^a!!zu*a)uwP zBhIR7+$M!oU9Os~VpS%E=%DH=C`6ww6H{&u!<|E7E@prz%vGuCznf*sByjd~Z1X~i z751!Voifw8$c`zZ6#mXD(T?vak10lu>gc^F1z#@U$ zm`~PWo1neaV9|r007pQ$zveJ?UQcL&~=Pf34_~X zNube*I8w=Sxct6DvpdzMwQ7SS6y3C8)4dHcMHFqyx`aRxX>W_(ZNI}o)CB?yWDzYV znvPx=#j>q*XiiX_s}S6=znCH6kk{k)`Msr7ITQ^!8q~E->dx66s9W9=YIn9J)+uf4 zdq*}u(r%iHnm;k^#}3W({IcdRH2eCO+xy8^u=inOJ2_oAg;gBnP91mmc_P%1BWw!t z$OU)Q zLqh)m>c3dhPgqgEV(JG#;wtH5W}n zN~f2M*#mI@5Z3)Kr8nUj<#{3#+&-CP_EiKU`YyIcbD|@{VFH`0XI{ylq95bCU9Sk# z|CAfa4W*4#lAmDnSNM$kD!g&x(p_~fR--6-)mo%J+~oxP=JvQab4|lnu#W1;333kg zW#}~5>~6YWhYxkob-D)Uvt%w7O$}oIc`Y}H)N7g`HafB2m6EFw=_C>F>=5aEq+J!kbe5_cC1<0&ptQ*O1 z32Bc+i@co|?FHJf+-Zo*JH3XxSRCGBhw-RrBw{^1F=M-ED!$zli}fJ#e$0)tW^O!w z-XfBMJCXQwR>zo~;Y2I41^Cy@Q3-S8y>gD2NU^&>fHQfqQP+zU^~TN`rw*kL8N1Rq zZ<4!^5NaZk?;s(fV8#^AN=R542|LHK%zUqvVJ8ck_}*p((b1aK@_&&`=cln$F z>dzt$NL{{pGra;WuZQN707#y{YHq*r@vQ`Z?kkNa}`xDWf<#(5c>)`SGE>s;4(B+V%cX0))R zTf`{DRASl`Wdj|f28!FW{6()5R%A|oNq3)q+9RZq9%F-^P|I90s!d6vHm?k<= zq;%87P`5SL`_8o!($GnuS@yM)d(QWr`s7`)GN;@R6z}1Q%6XF3a)+R`1V713IA^&|1NkoQdJ?SbQFb!J72-_zLq zRP%}JF2Xx`QthsUG1Vh36B|WpctAPVQgf{IE(=!awy6rL?p0AeA`0?0D6o>91wDt_ zrze{bEF=mm!8;3heko9&P(^+4gGs78(ruRtoo7}@BlWA-sgr{+D(<91)x z=HJYOVVVbfz^GV!;9aj0;9kYBEfde%73M*C@Hl15($76h|AJ}h2iIa1n(hZynwlc_ zZDH=*<6v;2$>|b*Zq7h&S6Kx(xX6fdr5w_Ja+;JfkGCaLZ7{e(jzaCd~Ti2hF z_ClW+Xsyo+hc$K!dHGTLGPuVHCNnmT@tH{~TIA75==ga74s1?+GoCSPdu?B^{Df+z1=Rk#8 z)@(WrojFs~exH6Ml?_l?;wiEb3DT`0z);!8X!hGR>r!z{a_L|yq^|6K^r6;96O)JQ zjKr$7jjeU8V^h-32Yj_F)61H3@un{|n2Cp*&^w7FMS7v(T;IAY9BKX>{68i zmjKZ1=<;Se$Z59*en^HMX2=-wGvAP*OG-#(f-)4=eQ?$%V()XiXXLO|jJ+Q##x%G9 zEc1PYmssA)GUT*?vM*n7eocDo_Dp8S*7TY!eZBBLye-$-(b1aQwhvx>eII~YjFx_g zB(#>r_G3Ii@IFv_;t{uW=p`z?1A>!`;nn95=tl}C4m==eryGSr&I0LJD2UtzMzT2i z#@OZhxqp4bIgg*5nu6GWh1km~v6taAW$v7w z#paH)=3%_PbQDmy?R+4rhPb@_JM+VjNH1p`3wnMGKg;~SUccWKhRp*=8CHQ+uil=! z0hw>RnV}oPW%4QKHx{@MGqTIFI=}UFvN7rfxH#9iBHH_v#1|sZ{gl;rwKeG7nEE{| z^F3J0Z-BwuTn0B>1|KC?!KJMm~BaL`HP5s}M!w*_Hnp#>qUOUo<+sG}*890Z_bpzW_TwFKOSFRiBBf2}% zH;TDNvKGdbOI9A|giAN@hjbjqr7j>C2;s~BXN z-;muKGFD}{A#=r0mG?65yqEA+Apt9V!daA;AH+*=%FmRkEt3v^wd^Fi_TB-m=SE_~ zUi2xnhZdA%N(6=g?LP(f+C(fm9Rn&ay3TJoxJ9r7cyKN-f-jFifPtAARMAnFN^iNH z9bq0BOGFWn4D+UoNSkq)A_yH!GYRvO^8y~&J_!gp;QVEB5>|52`3c?#Oc6!9#!;lg z6gp=LajbNcty;Fiu8P71vu6Q>mlhe9$_LcSx)ape>UV`B&hs4ol(WMX<^W+JBj zuAdV|teA_Nl#>bf{RViMP2uPuxb{WguOel1W{E}%@ z7K!5Z$U>C`%a#OdVyZBqM?f*dM#4`c0wflclX5bf%to>idAetKc>XOMT=WOz9D$s> zq&lRc%s7(Zh(`?54rp*eVwFt%GEx=jBSnVPJOOMNwx){O)bthi!Gm1&nOulLS7hw$ zuHLU-fwwp*Wugby{lLFn$ksgf=t~~h&AE@n3q+SLySur;#VO+AR3|?sQlAT8u=}qGCPLyK$hLx2)dNdj zgA@wB2+u+A+*x`Qpm3Hy(k$?zp1>^$=e_HKiJ#`a1->^e%mqrlrV^|WJ{P%j$)dS% zeuH?E^IoD)+~d5$=R0o+8}R4F&48Zyd(e|(XL|)bbwE!Jn+MEczpc8bvRvjHbGNU~ z-VcmE{y$(;+4~>fOkaawr1e1j5_(X&NG7id3euSgo!83e15)-ABH= z?LhfW7`9-VZ$Mdq7lNOuzz;1^;38Qn!Krf+D!d0O?1j#&MlX*eADl={3)(OHaJ`Dv zYia;10p9O%v|E+xB}<|nK#@Rrx5hN41Z*vEbO_ct`d`wkH7KgWDs*$8o3qtuZkSPImd1~X}D&{|Uybz+ifttR3F zo!D$L9jj@nn6Wl}0DdrrFWdUTu}Ni@{?FZAplO^=r(Etmk9+r=bN~1Je-F_U-5&eB zy0peD{f|4}FSO8n17PwiF8=c#Ux?MvFg_vv1Ume;E`5u)D@Shj0= z5Z>6Y*oa=rmobV88?#v}%`s z(Vq4iOJ01N>+NI5zMe@jm%WOg<-Z1bRiI>m!sbC^_fleDsk*c#p!Ta|HG5T+)lBSm zd=r!Ve`yFN_rX=Rik=A#!Ax%kU-7!?D+JVh8s2Ysj<<0BS8pK@?maLUEFuYuF%Bjp zGV3ycL=r}W!1;Q6`^O2t5kEsc2QbG5bQI?1&^mAlZkYOlT1t(WQOQnde0>6VJ znCP(`doi(LEYknK<7rINa0DV~{oTx*>LvpR8l_VQA(%(o@8h=khELnotWSrme*xvA zUtK^JNcha+QrT#?Ic4Jv2Gl|2faOigISV;t{<-<0nOqS+5hq2mUpOwD6$lw*-eAsv zXpr=hT_VYyFLAscw!B0~&_G2)TNc_f(iSgS*sT12N0zJ(Lq=aV>dNgiJPcWYGbnQb zwL{Ld;kIwKwNb*KK^q_t*IdW}Dw)Nc;PPN=mCqoVlE725DA-#4Xh{-zTu=DJg@Q(f zALmB@lfJ!>^B+RahxnHv101l@D@wYR#>Prxlc~NLRAyTXp`yvMWId8al0~)DAhk$@ zwPstLRzk!gTal-T*mxu;f?_F8kB;bQWK207 z7A>3I=g93Uw8({h`U+HvOV#MKjopmi*58XnZ;m7)1SqEh3pIumSP~7N7pgPCavN2v zm;%4A#%VI=nKiC#OOem(So61sVE47u1AJY%CBs+b@Lv29n8)`eZ-DwwMAZRY<3XKg zT{M2yR5WL~M}&&U+>tX^yW29Hx{l%`0cFUhKGxn>lG9aQESLA8Je-$^3602TbTm-_ z@5UnfdlVv5y5}KpZ2Vst%l43d-tpy^|KdL#!Ze9*L9yxIAPrg!@2atB7@9gvDUVs2 z_h$q}qe@UEU6%zKlu6@yi9q4xW@KbWkv7K0BI?I&GYg<7OR7wPV66XsfB*f-lil4X zPjz?0Oih3+r$FEGXaU3+!U>a5y?Td5odGh}KeuQ#jHV{d-xDNocG@$!UfFs4I90gGwT7p)h)o4B1h@L{*(X*%z zy?}m%Ifc120w1pYLyK z-U`P~|KqKhn>Se{slt%CXkk%7CLFE`zrV9=HPY%D$zxdOD(l>-eN}h(RX7?RJAR}i z{PK&7l^^cjz2o5E6B`C!gk#qZyYpMywmq}9MW5Z0lUH5a0*Cy}j(Md!cJz92gRqj- zECt*L;V2_7_V(_2Yt@lsjjsWMgOZMnkBzsDje}gJ4gGk8rq}2Qq*+ak$D<#CYNF+V zD%_);vmNUF@kpXOqK^O^!+0=g1j4KiHD?_4H&m~t#z_s597i2WUBzE#M^t$dz@1VX z26ic?I~g*!Bv~4>fsJL@(#aAh`-N0HRXS9z1#1K5CizV2-rQ%u>bJ$oGBsC8svp)v zWiLlfQ-HY@p1`5l2k}cd#MFnw@j>hfU>xwgk}N+D_yRtsSC+l;D(v%NI8Ow8z5vri zuTy&`!Z^hC#4k;Rr?QgwnLU2^+wThme6e48VHBUgi1y&i^cvqlum7OG9#q@=!eLTC z=clU(Pp~}`;c$4W2Zs*8BOW;8e}s`H=m0-~N;CAty5T|?SouHe!xPLOd=-_kWzey;UM^69t$l}Y;hKgnLX0xHkp&{R(t7Cb>S{ye*!D+G;gL>qwNr|%A>=_u4qDqhJV z>-5mlKncOPK z<(l)Sbnok~Q3fJ;Ln1huVWK&UL@iF!QjM#@2kjukH3zlo?5dNymoOKOSqd(+bD3q$ zADuXH;ujw^mwk+{;Ze47h1=;A z!?7NUeJOBCff6SKVP^%&_5LZAOabP#cLO9%3(P$9fZdA9kc{5B026&OG%qOIR7>Ly z${D(RUAc~AvjxM`w}uRoY#Jta&M6jbu@rfsdOE$V2nv8@)-9SnX2wU%=Cu5I!{oEm z;5cBI^BSEjiuq{>x`xVJ0XHq#0F!o!e2NU@Gn7wmW90{^K3f0lu^UnSjhj)L=1Do0 zJ2{E{7}ShPf*oSIsx@OtrQ_%TyYc8V(rVG_YTou!PJss0E5$#7NYO zcJY>YSLD)(n5MVclmdrrQ_?^%M$Vb7vLvy3h^b<*DbSlC+ia{ZTk*+qHcLaC3nA9c zgm}b_Af!1n;iVcV2dK-9vjRE#8`S<;8>6GJW!kob2BIR!$S24?5mU)jmjjM-(dH&i^b z0Akj~RHFgzCGZdVsEh8ryGr(g#WK;ug`*cizhs4+uYHe9A`QHViA+#*O;{?aXJ|-a$d_u`WfW&No zdI?Tax|V5-LLyizl`51Cru_mESV>fXB$bL`)s*cn%e2VVeekok`DvfXvs}#U=YJfI2<_~b;q*U0 z^(DRKKW+^q9lmFpgCjBzY3(zdMJ`~03@kW!fssJ31b-Ox3SR61cp-GG5^ysZ*&cZ< zLJsNZoIb11>*T!pYxRaouFHRsakSq7J!7F{A6x};8^+|W8K9e#2|{-Sq^<$WBu_U= z%!DqGyNsi-a22*T+F=+EG*z!pO<4j5(e(4?wIXb*M0;y6kSp2t=K6g@t5TUa*X-M1 z?y7dK-k4U~iq9V+TZRXRhhN&feRy!g(D=q5es6Q{mg2fsHthuUYtG?zRI-gRN#;W{ zX^(3_?Rc(exa^29s-(tM;$^jf95*zguox8Lp6O&5S^*Imd)~6ZMlic3sgw)*tAE(cjatOmv56 zcJ~?uu`1R?BFYyjDnRDbuW#<-RT38!v%B?;w6SxhV|Zc4QdwZp<#}Kb09F70*#|wPfu;*TArL6* zC(3ejbm!{c!S#Eq%lms$UWc>2ZDm_AS9*3uArT{vu~lCh+cfq1rsoscm1VzsT{7SM zVtsH+yS^4?<|ANI3{)Tvo6FI&Ts#o7HpJ6`h><`4@P_GA{l;(HXu^*~e+&$UxQHLN zLrRfQiy{J0VPMw9Vsz$5y0?}+h-G`i^XxuK*t0_g92gjMQgV1o$?15 zrh09mdhJo?K^RIDgvpu7M=U9oC@_;Chn-Kep#{hP$OUMkocY3Z#eSr3*s|U1T|2U8 zsGvARIlvzaD-J;po#*?a`i5LQQ{3DQOsUnjjC}p|`paD}e@o;X+B1s>zb*03I10az zlD}eZ9vys+PTf`9gE|1KBK4SdP!|Wx+@bcj+i`-{Clr#^WGzXODMn~>XJN3;D7Z*` zmq0)f$mbn1F^vwRqlk>7U1%B+gv8zIeif@KC&K^t5M~L*l`}cI;lxu0y_!KmHbf3R zfX`%CI*}($H5QuJL7WS-3IzSeR6hrFdli)Y? zNv2v}@RzC-?`zb}5ez8A=%)nOf>Ud0vit<(rz{+Tx^UJPuC9y79nA-;M9%9J z-4Xtn{PHj!|)u|o1mp-7%jhY>R z>~-5tW(e`-z_$LW{sa94_oHonQ+)^e2<}5Z8#2>b1DRgU0NAL=;WVMZY4lv9=bD!M zS+Dhw~&K>Pf6}+nkYQ=E`LT^!VI#Z$Q^(m zptZ0CT;+0Ex;f)7BifRA+LeWpv{&VW1@#t}vG%HE_pYGN5<^y-tjYq3Bgg9|c^RGi5Qjf<=;i$Nz`2gJ2&PBa`$MI0F zXL)sZ=&M`D+dRC`hkLX`DAfjBzv+u=GF-#)4QP!O$;2 zGM%6n_bmCmV+ujjB^g24ZMr4HEz>3mrU!pq zGwdFpC*vU=QK40-A|K-mJmGo!E@4{0g6QD9R5?X*`xK+$mQBo57q48FE`vY(Zmho8 zC|QO&AG$2fSTRazX`-B}K5GQ*)2?0R;TB`)?7`&;&Jtd0M!?HwET*dn&Pjks)_VrNy& z#xX9&jK+;|W*0NZ+=AV4qie#2U2SSb9Z-qNDVmLSv37vqj1Xpsi{?<>iqdq>8g$GW zuu4v%!X%9tGTcL#>o7c%5H!Xt!;s7L7mfiauu_hs2slKxlF(8~m<>f)W(`iIjB+uz z>itz<#+P(P5tfUd{rd&h-F4cw7Q5umW)593ye#YUbttjs@6n2+%-JO$pm!6LD-Gx^ zMVrkIM>d$nj!ZCv1tR*8A(9w~mtBh{I}=NwBHo^Ni=j-8_^BsknE+UX8&)=viin8> z>Wg{6cuCPn(A@CnIXY20---T9 zb(sJ+ah-Aey?xSZWl7fR7P_qy9rjvUSw`SvfjAtAvD*w#hsY)bf`K@}4(13)$;3cO zfiRtvW127lQXrjlNCE-F(Bh_srVVasVweIkBr}eaOskSk2}7p#y5EyL?L_O%HhPQk6d5(ETJPOuh^@Ken#98o+2Nv9J!RyUGF&_Z> z{mQJ&a&x#Aj;OgmayPiIIfap9as7wv-`KBMV&dp~l(S}4SwdS6SvyIy)`nhz^o=9M zNf25fObPtmTZ&6*Qow;AKdr@-bQO*{njpI6XnqQxA^;ZB310?VwkUxBfN&M4Uq zaem4pkL-+{JLy+cXdgKv091NIP2j4C047q)Wh2A>+5tLn0$I!e@%&x0cS@4 zP*|8M<+Jc^SF^{KKi-n7T#^X@g?8=Kd#?4c1P zH0E}q9URUTZpP>)+&eh_Dl8+P#1r1?POBwms}ej9u}T5h5($nW#{iWG3<^;N zF`}w~2U9b)FV9YL$*aRBjvQ$!MeyH$Fg{E!DR+SeL{T;9muppGV}fZ(;B9WaNQo^$ z8}IRXDm}!b*8}0DPNA$V1xLxl?F`~zIAk$Zglx#kJAF>#bY}b^EzX1#nnFWFp+n5y zPUTaSa0mF?c~KbXGGrmq2E7V%>W0@|Sh;b2!y-r3?ENbm>T2ihyMs@Cw6*8# zJKy0*9;aL9JvFVm?(+xBrqB5&(~g6gTQm1z#_M!S@;i z3)Frn0-XV2Exec#$^Fn$V_j~jd*Kq3Qo*p=S$31@q1p==zqzF*;r!yrp(SlQZaz1^ z#chy3QRzkw>zOg70w3Bbk8b*HrnUpfXZm8U%prfdr+t6Nv7p z-tD#6osx|s8jTc;ru7=HhN;!W{muXbk-a(qx{vI9KW(W}!zu6tidU4bhQ~&XS!g(~ z=kfx?mnsoZRt|N7cbFl_5K5{fe!^G^U`4^85N88V^~Ptjnu=s)Ri3U961BXzW6#U3 z@DCGXeU%G>)>FNo;U&L2B;StUhrilL{|X$jXSo0F@PTa$Z} z%I4%^817BJk^C&lqGVDOB^=LnR>iAOeHDFTAuH_LOolr`pNIC~cKkfDzsKO|z0BKZ z8I0880`lGw(2yuq9(* z=Gw77;*AIq!Vw3rNu=3Q9yvTAqh959h7>A|(W%tC5sMp|Sj@71D^&_p69UzI1u>it z78JFKh@Z}@7i-?oFije)5puw2*FpHZ==uP^5JkW>+O4Dtdp+nyoLWN{OhQ-` zUfSf6+wkkA?#-5IGL=P|RXZVG}a$%i7)G2I;2rMZtystir9V8mn zx~PsylMn)ieIM2h0?&u@I=!|{%Wyl2w(Cloiwjq6;U*6i72@kK#e&qT~HD=Jp+KZEAIyD9lW{ow^ zIo*=<1g9=qR9pAcUVQxB%|AbJV&B$Z{dJp4>w4_ZQ>;JRcI%tf>j&lTX~CynSatB= z!aW~QCoGX4R&|spity+r(+aI zp+zVh;dh)uQWOTs$?&B!VP0W2B^|Li8?pu@PLmG!%0nu>8as)ak+cx_vyoU@D>3>k zjHOz*B3oT*)x0D2i3|cLB%(=*Q^fjl9MEb~oGFQqn?Uri!(Z5_Z`60oo8!6@zq%u>XG&)n6SdHaP=vG%;D%x-a|{o*Rz^y|m2>Tbz$`|dMQ_mb9K7x3KE z^9OB%*w?=M_fhxa$G2Ue>ua|BU#hDGxQXKo-|pQ>_mb|Rx6bnEB%LJN7}-d+;~3DD z@bII?41w@yT{{^M#ykTp0hbuVq+m!3o=L(aEtAqVVW#xqOev-gO^c^>DJ?idheAV> z!VI-}l(*?~t!P3;n)0ymv`X?i9TRj#31~AB z-PRF=sc2DTsVLL*w%>mLvP)f4UHE0yl4S5Nub=wh6yQMko#Dx)8}FXj zux#dNBlD!M@=B zAnBm|RFWbYm!yjBD#H=r(?-tk8_&GZbFL_g4q{23}LxpMv zQL}Vqa}lHKMU3*;u7Ja2myc)!j8QN5iT%WK%I};xVImlwQ6<~WRhBgm7Ob8 zDAF6EL?a7|T^?MrhS&Lq|3f}MEwkw|!#}~S4JfdNckd154oCyu?`B7i* zuC3o4xcBeUKl-g<#3vgFg8B&6QjAz>*41gCz65Mxb~7-+04Eb*U>V&@@1seS zSv*3_7Y-+!GfN2o$h1xhTs-VkR4+s13u7N3;hCC|$s*^9PW^7-9CB?Bd@DMv^T9b# zpVU2C6ER#8gdU|nN{#>h_H(O0`OW+)zt(P-fgZUr^eeCu#K2?Jl9Kmd-E-@Pb(3GX zRIf6OwBB;~r@#R`pcS1WV$COq$b0CPw-1-45vkaM5EI1QH!BZSLZ%WNk%#5q$z+tO zqF^TlzDEJ7db(2@0d6yq=EJ2uesNK-Gx%(f30MYKx?R8RMZD&0!qkQ5oA&v_TFfAbuIJpDDolgo2DkE!o(;>WfKZwd2A^26H`;+4{a{K-X5N^!&Mwxb6wVDdlHw6 zrT@8q%-P-@MOI3SS9Z->%M2na*3&kmtFC;hsZCno*Mx`s04;%+(P#k88;Mis&i=e`b zxSYedko|FE&a4+F``hEHU>IQD)BQi#p^#sKYX&mqh1=z^E~}}#wXm96dDg&Q!Hay@ z0P5{HF=9%T-|I)VfC3Q*<78Op2>gTTkCb>LkrF1XhGQ(_Wy2ws35CP>tuV)XIgaN; zVUA_g5@&=XMIWh~Bpb1X+Z)LFOTbelAjQ}5a4Qc+_%l3Q&Vm2?52Y$@#$nu0GSXPP z9H=iwiJ}hY$C2_5&{AtfpENeW1f_}rs&8z7MiU0@6vd>Y-6-}?od={mw(6qbQ|v1e z1W3El>Zk$N^txNld|_d575!4pbgsCB$BN6AryV!Sv*4t)fFzl;_8LT-VQ*RU!7#k{ zS#it8iy+9osDD^u-7ykE3YIgfP`dgi zyaX>4Dq(Xq{8M41==_@LgY z9!mjusC|AJt6!=XN5&KmAh^O&y+Z>{@EbH@2D-Ydaptla>-SdGWHY%VOBb)XXN@j@ z{e|cxNZh?}g`9oS`t;iEu>tQj&;%MkUDhNw%$Zl{0rz+9=q&@eVBr(U^UG^b@a*70 zj2~e&Q)Sd*#0KZh$^``AsDDtwOh4szixMf@eyo>I1ul0F@AGs6XhG zkt`0$RH`?3y0kHGG zl$U*M6XzYr?|JUdIlsg{zr{%$>^t9GY~%PPv7HbwaMx{9rwP5mxMZQrRl-I8u0JK>L9$Ts0LQS5}64)ZxNYwz3B{ zRO7IVE6QUd$9Zp5a$Z!z-K7*bwEkr}uSz*`E5A^;!zqWX+$vjm@or@~@qcuiZ|0n2l9S9HF*xH8wa4t#Fz zwov&(^7%dpq1s(k1OB=@k3KoCM)sEGF9l!Fo;i*ck6-?9_x{UmtD=tPVDaUH?MFsB z1$jejyEnFF%~5h;i!&;U2}9G957(8}^lE+Nrn=mq)gX#XjOgr3uT)09cfg)2Vm^$B z4<2P~J1CWTmxsxX6m#gw&7ooUxWKV|WS(peWN4d|#o!#qpipAfhSHiu8$k!`a&k#f z)e_MdA`3zqeMDF=tA$!VuY{Mh2#Ys$073Gm4d`sN*-M1j5M)A$3Q-Ous=Rx>7rbA2 zDT5c}lHPcmjQ(?5qNPYA5+NE8^gj9`Jw|^`)5~Z;6A3^h*u>Wf1Xd!^D8^+WUW32! zRn5~HSd-|C?~4z_Nj82aekV@G{JdM!t z;h+nL3+oXzRbx{#7-fA5#|e2Wd(JkrH3 zyLt0WWiL1~gG_p7$}gAKXno+yx6Gi!kUYy@4*otv&0^G4C+H1Cm>9f9IG#R|J5W_; z3_znjq8-+f%&-Q8IGKZ-T3rlmg+{VOaC#(rG4!jPVQ2>oX9b*9wl1@FS}B7SSgl3a zkE*285+%6+uX6c41TXu6KUx&)$OXAUw7PzlM16Jo!JSWVJSlThnyT`2TWR&TQ@F~b z>G*hMA&VL_@+(8JH+F5f8VfF15@_Q3 zsuHh^?B5O^ov`aw`lz=_B4utn*qGY3<2Mt%{nnz$ik|fG{xut$z}tV2B)CY}@?>OH zVU@)|Vx@kBlmhf?M2Pt56%A*!L^xc(7Ur@MwRT7g3s^6Ej=jd-V(D@Yh&iq*^EjtCGo0`E$YfA+-4uAXX$$f*`Klg+J#vRO}} zzZk=8ZhQJz>izTSsp(aNgHgw;gRlXh-qVzRelr1yS*Y!X$P0u>1c+PmQ5&abBZc{D zePpL_P=IG`qc&KpZPj*b$=#|WD)=+<=j0WVRKYx03`wSD7C2|QX1Qe{|0w)TfNz_D z84bkhkT}1TCC+N4xYym_BR6mt<>YXv^cX0OMx)D7t0mAay(k@)zL6-iWb`?N0;5QT ze2oPi1+YM^31av%isJH^+J>AJHO|lPCJ~p(l(K40p)<5Xq|lX3r7~%ZK?RDPVk!ls zGNKZdqAavn_3{cE>d5Xawc#={)Y0|c>IqbIy@uY>i`8S%J@53#BUetH-B#e7Z3wRZ zXH#GIoY48h;I|*|>wodZ`(01_Hop)H)$JJA>8mT6-SJA{u3|pegFWr(mlTV(t@*@5 z`B&@1yTY(G)Ea^oujqxeWR)c8oxi_Lg@YXkGP^zD#WS^XXr{aA0X=Ph-RG%9iGa z9ebB|wA=my8ZURXG<1B>-6GEwrK*aqx7zzx%BF=zG1S#JTH8FhrFBuv<5@Vrt+%hf zW>Lc%2jx;9k(m+s7|ke3e0q&2MLv<#8zZ#=U~!9XNDEd$67C5U zItonmC1hqOJ8_WwiWCz54ga+Vn5GodV?60#P zV`0t6V^mRskX=&5KmdlQ2%`6|G^#pOP=)3HUAxjWuc@v4uJqCDg8^S-+~b33;;?+$yjyZ5oPbF-hfyEnHV_W|L!5%B~(;D93n zavUKB2&R>TXaN;NDK!$ch_!;&f7)2lO3)$%3k{cOkzy~}N}-8hwLRNdd&Q)wO@-U* z^X_tJ(|@`jGyA?f+0Fc(=lOly4jMsr5xR8^89R$z_NilgvU--*$=Ohr@}N#2lqI^I zp*aSjwj8rFdXD8 zFob>@`KnSzgTZONtnOibkbk5Z0IqA-4#2rLbLk@Q$=b8~W(@%S=B>-uy*eK7 z;XMO|-KWaGEx*fV!RFRR>j*3xs#o)RscNl&{;j(znUyR(xQq zS5^A33SH>vRCrm1e)WecU8O>lf5a)_`#Igff5Pbs4!Qhy%uQ--D4EJkV9Og=+Z&fV}?CZ$#fG#SU*u6EZfM)RvZiQ zu70do@&BiaLc6i_Sj+z|6__*rx2{;x>B<6Qt^?JA4YoZ5-IIOSUjAB9pIOx0bNiB2 zuVGco{V%@4Jkw=cIWhSeyaThpUfJ6k?s@PK*7o{epr`z%n5FqsA7g@f0`ELazUSQ4 z1<*lnqqHLm8`IxP)4#gDbkSfl%#W>%(YTfJG(l(651MEbPJkSVFogs_V*xd!IDSV9 zmHZ0Jq*#q#(Nq?h}QI@Y-X7Z_ZZC&e(-9gv4Lr{vzg`iGtAF zD)|E^W;B`b^R7;_P$BeUMFxbxO4$3D{>*8I7A&Ksadw$q#J+giS#eN?i?uM%H|V?D$5sX4PypP`9nDma zCZhC26x?RL88@FcT{~m@VicW7O&Z%MP8y++H8xt*Y0I=bTCmja$w+l^O9^}1i6)3T zYJgGjzQGD4X`@zdowzv0&kB&n5G9O)D3lepu0*`59~r5NBiuyfYnmt49XE;jD_bqT zXP5im$rbMCelVBl8Q8zUnc3kSn$y2(!MTwgyYGMdH@ilTJbB4p6CcU5i+@!7LyJeZ zZ+U7(|Aucn{ejs{O9r1mx@PdXeW(7l=Nq+M759uz?=Y+knBSdg8!z>XDKHku9o5bj5J zwiGHkHGrK(aqu>pBEqq;ykA4$z~dJC1(Be@@`b7Fdi4AvgV2yi1?HbB|x@yRO3>h`J300HV-3xv2N0XE!A0twEjIcqy z#*_pE|4@>w+B5uJPF0SV@rWafKg27=*|G4K_9M~r2&fSwLXp5~iN!5y*&;#Yh^+_h zF@6yf0)GpgC^ppAqVWBKr-WCkHrY^dt?)(Do22)>D`%@Ba0LULpnu%XhzCly;QQer z!Ti80gV^Dw!ZzKUQ;S#Tv_7sC3u0PtjInFvt%J5+K38~g_&PJ}HM?qJVgpKTM~5e= z(KfWJ2HMIejx2xA_d&V5>G2ck=JjhII}Hn8UvVLL0iv58e>2^@ZuQ>N$nlHIeaK-) zNek-sOU~xjC{|)&c6D}hmc85x^AdxJyA$k{5M0p5b-Jy7Pd)Y2gM2%`lhc>#U}4?r zI(o1M9+eNtl!VuXsS;L$s)4+3xE;4s8z{L!jmK3f6Avn$upUl?nH*MtSi+;uXip1X zQv|OGS{qwCRB@Zr{9k4NwKpB-jkJXTTZv?gCBkjOU+Vgb&7w>X-gq)z>0vH3r34y$5Ywj90V*5r~EL~UP7tLOL35zWDWuwhiY~7%;&+!Zc!;?Scxn5 zASFN;6(D?&Kr-|y*Wl30Z+>&@w+_7KDKIEN8gLvdNWBh@RMC5uRcHX z!3#fF5?k(AW?!^t+qX}Qey3d;rAnpJV{!+YWGAte>Y?CTRT!h}5Vo=bO7%&=7#8{^ z%0WGv^Xch&I!e=ezMhZrw1F}D&1R(YYdE_xr(A7C{rKtS%A*YlZKFKm2L3Z$c*rzPt zo$OgIUq-Rjy~pk%47*2vyfM1Jefy^Ire&V-hx6^j2b5SZ0)2jgXK`BDIkHjh$c27H zS>K{iX=W-7RF^}UY5WT+n?jKk%=c3i`!i)eZmZ1S1@oKEqegg#UqPiS=bT1UmE7Bi z#6~bZx275!U78$l7FXJhU&De+gF#SV>R(QI(aNM2tgdHA} z9H(@xEx7L-7*xuV-f2E>@gK@2lz<&rGF^Ed6&sJq9}Y$Jg{&b>pv@U-^Y?+_ek zXAH!liHQRv+oG<&Usce;3mW5dz+Wfo%xPA#o1s=vj2U(o2($<5)9i&~vQbVDRyRndgNLb`y(%!a4~O z^h9JWHf*qJd2IttKj=roTQKFKfV>3$BSxD^~`IJAW6 zV)~hXGmMql$sA)&GmMr&I=YqarUz(-7V#j)Iu-+OF&0?J!0~#)pso7~HGZwYoLeg? zz@~ylSxXG&zd8UdpneKaJlV1#%`0B>X;K&$z-+S0pyvOt$+%Du3Pz+T8K@_a#Wd}u zkrxG03A4>)3RccgHvpK4IP>|wtKm=Odw%&t@9WOO`vLg<{nzUnhBne0)AB!xpWv?I zn=~F+|LBI|Khe4EkMwO_BeTfTmGvBTKBjm|GoXqCJV7JXOcitcmuA*vE@fyTQh+>GYG-RN*V4Z+|H1r`nLbP-3K4_}>k`GB!ITsg zSt$Co-umilYp{!ILIT~?WMl2tS{qJ#HBPRU6#i0xs8@qDn&>ng%@OJ$G43RiDi?b}flHvF6`7KNLE($pauT3dZ$^+&p&1|hOYW?YG`pP3e-_&(u-_}#n z#haU+dmD{?uzj7M>3)XpHbmY)OZy!)jNi}HIQr%H`h3IkY2tih^O55{Z9?&F!|O_> z8dMDaE)}HW)TLb40fe5wXe5YeG29y-4DSsyVpDI^VAI|v#>lz|$qD-8NeGm$%3oj2 z`TfqwFC(`jr3e$TH#nBpQj#CCpf!qMO>%Wka+pk#lZ3fVN(57Io9IA-Bgn4Ox|9iy zhEq-?Ig!&z)%&A9(Iw70cbs|`U*oTrlIOympmafLMV!-;uv^X8VkVs+*dkOjxGTUI^e2pNn>V0DKI5a4?sCjCX~uDM#|e4m7KbUW z+8`8ilA5|j24sq&G+eJalzS2#pONp`!l~3iwgcf8+LQi>b2mN&&gj&6yPkOW$=rVq zX63V(m+#La`6a{RB%oNZbb~(%Jk?44DR<-|LKDm@3~mlT7d{@Qn-?Lj1MO@-(2gH( z8)?IVHuQY@L>dQMy<9enW6g=iRH`}DNW1E58!*+mB7`-1QY#A7QY0*0O0{NNb3u`F za(lT+j?vH@M+xze-JOglQt>3;Y3sy7C)MTDy90v9(jdAm(igL&IQy?z@^O4i{;%_i zc%{4{bO}dUp{OEVk(F`f1Zg0J>Lt}`tpkRj1ujC^4fI31jjFJ+R3uD=aTLl?Nyg|- zSC_RW{GEWJ_o>YQg3PSceZpnpkG?CPkw1F(9ajGAzl@iCY!mkx$M5&MoX>V*`}}hD z`TTb0d-2P~apIVSBqniQ?bsLxMw?ZgVN{H$hzdd(G@E!CbPFtnLbbKfZV;+%teP}h zp-P!hwUlK<)z+zhObkt8s#cb1nvhtnAT0s9VM z)%p23Agdd8MpBZL4{gS`jWAtqha~m+pHUB-2aR9*YNsuyc258G(vSXG_{r4ib%Ox) z87y({Ix&K#OdobPyXM=yQ@wDHZr#5B^r{W*cAA#uhK}r}-9u>##89wx{bKz5?_Qd^e6!S$@=%h5;iBEd%GXqZf(QJ)x<$K*XSE=wFIBv?U8NWu(!FWbW=Tr8Wg+ueb{aTc%= zMZq&>U_S1ic0;#Yf^Z`VNU5=jF?l>TS;C`=z_9@mI&8imup703j9O4?@wZ2-@7&zA zIp9scUr8}ZJ8EL@SCCX*O20>sCn<%(-ksFOGaAg=D;4ywN#owRNn&o!ie|Qc(VrpT zcpU_4U$~%~Mlba>TwB^|m{8V2&^!RgiFviN#qMc8aoR+!Q=eZ)nO^&D^Lq7{E5vjh z+>>Byib@Su-}v)oiLf}^Qd>bvJu*Ryk|fd-V2^tB*`~ENNwV>&Ul#2ek@TQoRMPt$Om1{h7z96dsRohE47 zA_}A&BjvAE|1-<~1=UaKwWlAd{R+MIt&h~cZbm&c#Q*TI zrOH=cW%|@=!q3RyLJYhe^#yyX|2}qH8e%(u>C@fL5E`P+-Jh!0lm0GAs`tAyxa01f zoCmEWR{^2k(P}PWn6Vq3@e(!y#H>p$15X)j$%9;eG!G5=wmi(CK%DI}nfe~n4>4OR z6}-$ynKhc$lnZ6D9L^V9Wj0^P=X3YZHgLOhiG++)I3j>DE9A;K-G)K7jBF@FxSs?j zbnbH;QX&f`KVWG4rM6wYnkyvs8n^+W;>?s*y@PT|F}M(+EpmEfhChR=gz>P~bb5*TJUi7Xt(R%2>*aF8)m_jZY5dZ3>y^sSZz((P6<9l~!*4U^=cp4#<8e*Xqde#0<1wC##pB^%$Q2BR40a*T+kz-SpqmD>#Ya-12H=S>K94aP z6S7eSq$UQ(mIWy#ECV!XYO6iI?y}r@KGHZIKxN#H{-9KYF+F-ZL4k#u{os1){;oCq+v@E9FS{u4 z>t_Jh)U~_Zy4;Ab7D@0LZ65G|^XP(%nFE7cHbaxs!o*%c zs)4$Dsuwu+c5i4usy=b|0yqbr+qQO-y6HP5ZIfDk5S-bxcAI)wa&K94`!*b}zIgl4 zyIb6K*Q$R(+&n0YjN?DRcuWMFv->7+aD)LJUf@RKuua4lL=YCmX1~wn7X`mh5Jl0; zy1ZVt&L)X|bTu36gJ$65T|uWgEJ#@&YnbpI@tyMFF?4~L58U(ti!b1VzA!Psu4gy1 zxQPX)*iTppSqJ+%i<|3M0kir=!l>oNoyLZ=u|SB{tk+tfMK|?@H?1F7KeXajE9QI+ z03e>?-r(Nj@G))=H_72oa=^+3Imlrcg*79-b(s8$1AN2rO$T&{2HH&z(fG^s&*;lE zzMkGp@1p-mU#E$~Gyt@nhDO?%yru<7w4hZg)Rl^czjC9Z$I%4@zLiCZwW@#8p=+sg zyav89{=eiGxi1eLtBfykN8T?{UlG=sKR~V#cM{|3$2+>tX1=0kDyg$wJJgQ{^TYjU zOLzx=T)hMm{loeHa$feaO`LZezvnr>U5uTx&yLS_e75iWwm9Sx`(pbXk~`aZvEyV3 z8Bp@#1X?IzEg&c>6vm(#j6&BTRg@M`r@J0K`o+yH2Djm$V=HR3URGnEU7O^w)*^Dh)?9FC+i$z{h zZHl6D$eP7$t%9tH-aW8p9$T}}D`Zp{jJU(TmEN!+)#_H;o4g4a#1cMXpd}(m2Yo@( zN(O_zT2A2xIFi+H4mwjca|Zl710oraDd;H`467fgQ0*n?Z1I7al_kyGGt~oAJ^3Ek z^AR)mSIsPZ%*-bo?>L|jwH`@-hmTK0{42$`uiTxvg96uQa5u|o{Nzf%h!E771wwQmxI2BYdl4a0!*}_mOFj9A<qS=j3waYE9V0wyBYoKtgyISs4LLhsg&$Qc*(V)hXuT-7%!P@FfHr+0ZyoiiJaQ3<8hx^@0ajh?WUX( z&%2#w=5y&|X-K5OyJ_G_A4or!emSi%r9Ekw&S=-jn`B7I;I#aK46QPNvQ<7WBLvA= z!rYddN6?Y`2udxBAmw|?ZxwQjvPU_pkfRDPE1Uuq8vSNSbbS;*Ap{`J@&K~?m<r7ZptOO(=_9A{yuh*dUhhS?zy+#)XdB9dxq9c~E_NXzg5}7P{kg z_@qbi8D5~*gX8-EVoRJ{0(}w~FHP($m4eHWEcpr9WfAD~o0kBcyS)-vD!9P%$N2|b zC$HWE;MJ4!0L({kESFnuVm4mFYz$#G0)nb^lecx-hza6D^|`HMVDsm}(SC4jC3u(z z-TXQp9`}LadhiSb`q+GDa#c2!Y)p#cN~xtqN+v@Gxf2}Z^7#Rl6>O^po*D(Ck=PiD39-PTVK8ho26V#s_~=j{yVe;%m%n!HTI&!M6I)u+nU0Q3XJfK667hGE zL2^`}(D$w-l(#ba*Dqc7=3=>@Pa)+Aq`X6Okr*fbs74R_K`zmjNhYERQEZGi zH^&o+pr_E|bn>3(dwPl^rFB?R6G7BXlQGp=+z=FbQCMd(3A$2gWT3!K1GnmO^62te zT8D;gtpmoErsif@ZEshjVc#_HsHR*(9}Wj}BMwQ6yt&yZL(h>J2 zx>d`s3Oh0#X=Rglzw4#S+#^co#==k2fd*@xMQ-7rY7nj`Tv$(WUeDF*y0-isST_!B z753G)d098FFt6or&Fk6Mv+L2`0dDr%igY}=u`n_RyfkgrUF={O&KyBvN=VGTRHS{! z*>3szp`ucsi)Xu}%oO%9>OZtMv|~gYu&b+g3x@@mlJoLjz7i2G1ucRSZ4?s zo-~l89}`Y=o10OMtd}t~VHU>?Mybi- zj~jVbjjHHPl<|jHR&{wKFAH|Cb1Wp-W)?*jmTg~^at=oz;Ey_qPeqJ8H5 znQ8!euUZgr0zv$qQL5|F6N(sk*Tnd|!HE*kVeybXb$ZKUIHS}N4v`qn3?8&dp(?2H zYD=sdL=tiBjUL9pH9o!Xrq`mR@eeieY#8YLb$+;>o}}TJ<#7u%SRxikp{B$|a4{$6(uIWJ zidv)D9I7>edeWo{W-}JdM42ST{Hht6%~HG(+jgbKq3O{)q#-E{Ish6%@&>FE)>o~! ztt4Tkt&p-3+y)LBbzFc^nd!OzsBXp~>6mrQ1%@>2Wk8YvB*QR}A{nO>r;i3va*DXh zR{zr|6js$K;{b^U=rVmZHc@@3R%WcBi@k+&A)zSo{&Gwy-zd{JXOLdFs{lJoplY*) z%OY6#P`DZsd3`H#onv04xMe;gVsT;)&09u8r>~~gVyVwQ@{4UR9(L@vL1zbLOp51( zXHDk%?6#>Ehn>+lQ_ZWzB)J_N4t?XL-1hZHLX`<{u73-RjcODSGM~NseA*Tzr~dnu z(2Kd>zrq}AX)qH6N#y7Ltlg`9jHpG4yM=h=ayWucf8+GrU)3a4D-AbqZH6Y%BSLB{ z3`n(ZuntaG!6x%=GaNO8H8tQY1s>Dw*TGsi04E?>qpipCq>ypy)dn`=4Pp-ky(-Px zJreErdNsDl3bHApp=kdql&I8jgY-Yjt2MZZ>k9ALEA6i2wY8Gg(n>2?T3IUz+p=uQ z*ake7FvhVV*lw7BO{3UMlb8X5ackZw&SO$hpkYWekeQZOXu`C?H3W(w4a7~Ib{Z@~ zCIvcq(CG|hhEA9;`9U%*UiV(f0*4aP>T&k&)&9`^&UeoFJ}M@a)R{OBM{|)RmMQ0Q zbwI_h$8rCR#A2ls-bv%C5dIpCI@6_-HIRLE;p8MsaROLI@dg8C0UItXLJ%Fy0$x4Y zAni=9*IDeD=BQsk{I>S7cInMGK6x9A;QIaX&y1aYS3X(2gnh`?*4C<3c5Gc(*h&@; zzrdze9{;>=3H@8`(z%Ntz6W8LGj{aDvlA5PUwUig7dK)?_2&`^A?=-CZ~60Hg6`aj zE9ev&qRfdx1w2|4!Y-K)T{>kVK{09D~Ji2K5%tY&jHNx`(suep#x*3OM zB3dtPk?2?vEC?k-Plon{21EMl@S^Y&VN@M%!iy8(KZW%_2!mYeo@NRF7w}uWUcF5% zU?ZwN&*I00ag2(V%J}-bHba+zHbj!wqj=av??9V=GMhAQa7;7?fF8e zXk)Wn#VT(S&Z^)foP@YhbZTb(xy|oy?5T^7^`GCo;vGv}>&B;MmL(e_2bAz^`jNT# zS}`L((e~`$;p2e~PY=AhZScn%o>{jy_3ZYpO=~;1=FeIBh^RI!E!w?iC+QV4C;q`S zVs5&r*AmKl2edfA?}S1ps16Vvz&h}tf5`xA4PbCM9mML+$TNrzd!C`zNuG4(Su6z( zdjap@3w(BmXvYS^&gbC?J;3Z>XvXP6cF`ti#-q=-XECzDt*m*TBa3>coyST|<@yQ8%*=b#t@SzS!#DgcIzX{;@Gv6j{~pxs{Jyo`psEE6qRVexMO|NEEM`nx z(e+>^`Kg_Wg`yaAfb5Xn4!*9nx58>iLscgJibPrAj%x z1<4pWKits}Q_fvXG>6qX*~x6Wo*Hw3smkOL&35hTH0_jHYmUN@tG)2TMTxUYwH!uBZ$rScF$Br2-_94j*tn2r13VdgWzB zXHXmpy_-G64zp-CI)sK1s`0@(1r{k#qd-6by$+Zjb{(5y5!-`EK_Wy0$Nj{-%lw)d z^_yX_8T@82D?WvADsDB4R>fmAQve>n4}4aq)24WAq9WRS9!2yhvPZO<^YR7?cHnvB z^COST=8$Dtv>Ip@bSLS<7+fs=ZUa1pVX6P7ml>P4bcz#l6w8oI_%xlooJ^DepMz1Wz@yQGbxrJj!xr@{gxfIF8IWm2WBBYAmn*2G6uMX`Ru#V;|Gh$as~raHP+|uLOBdQMVuh+ ~pc zu!y2Xe#%MJ?)S-@Zci)i6_lUl+mZo5-<;REKeG{JZfV|;n^UL?K?Yv_>Mx;|cive#s_E zk}XL57(x{xQ4EE|@^Ty!brnTLl9Vrs3!3U`8$)%dIaFl`h5cSzz=|lzEth*3(PXkR z8Jj|YijNY|u=N-v*x|VV83%&BXe@%wCb^`9QVf<*FsdId7)|M=%q?Lo{uMU>B4{8p zUCF#4!vc@jnhaRqfNOfjcq)1!`zV>zZLe8S@J!~0;{nE{Z7Z9%Z4efoSu`8< zvekyhTdP*Kbhwph(q`Jdk3JUmItv9}RU5?)EeiiC2`W6JexY4Dd;a`cmH(gby_w`k)_sm-`;P%~}Hf{RpZF}}?JAHclo;}-7@9aBp zVD*bH_TorUG*vROSARo4MA>oOyqS1vc{#L{Lv1;13PWcY`h)OT03HrN6OO*eeRPu# z`W4tD!x9;mJE6r1SUyMvAQ?dHc7aRqdds?XpyNUzUaF%i{dFeZ!*}t$`~bg?AL8HV zzu*nL*IVQYSwuk)QCV3@D5T>!Mu%ku&W$jRLmXezWC2)$VFgCC7oG&MOq`OJJ1?SV z^#pW(wo=rLA;?w>QC>luJhOnCCfUb*NPlDGsP?to-YRQf9~~Jv3Y^^9E(3RTAB7sI&aJh-K*8Zxq~>O6|LfY9+LyUCL3ZxM zTe=4HH%i7{;dG*^t+KarpmL~E*Bx9P+#f{U>S}erirU=0?g96ZTlcgROk^mUj5~}p zN6{eY%ZNRwDp-I{$(RKkI5PF1l0%8Q4 zKy#A7yKuR@LB#?YNsF^U^Eo_cJW2$t*&f3mDn61Pf0r1B_`A+Dwh}qZkTVU0&sj!i zIX&sOY~;-f!R#*t-rRn*uHi>3PB^~T?l`fszkm5KTd0I1UMqKE#eW#D65uATGyMLy zyV}+2SRJ-yOUSy{vShrLEXgspIZ6gIP!d{Pau6~wT%BP;n5k3JX*-=@ulrUq6f&JoS9-f|SNry9|Nnd6 z_x)c!dDY%F+mpjyy~0+Q4!_r1r z)&O(^XzQU*0()p%2ygQOaYC%dVKgpqbUCm?PxMySFC_7?TDxm@%-J^w&q<_ux(B*( z_bRbsa^(|s!6+HTYU^k)(QcZgf<{ho=H?5?2u5R+YHjuf z7y10VMd%c_i+G+0#UkiL5Q7Bh<(ar%nlMce{gqPV*P_>npr*zzM5S@l6xo|DsdPnB zWv;B0B$6*;cA{!i8H{+MaL}X6{-$}C;%h!0+tm)9 zRd83SzZfbDIeC%yO3&7`(axdc%82sgAD&Q7DkH~-mVW+6uZ(S7+_$dF6!b{Sm94cC zeJ}Oy=x>?dx1$#twpBg3Rk;!^44S&u^|fz34b?|jX3d#1z`pv6;kH0Qp)V0JM7^o5 z`}ZeLe7b-Crza+V|JukG(yo%HH+LE$yxn9_ZoPCvd47LWLo%ICHh^vL*sT}Ar8n96 zh@o@y(CK{<(U*tR5=mW*IN9fyD_(#2ex`5p9U# zFG~Fq{+tABRR9eY!}?M#M{dTu+1mokv7`wY5F`ZB$WFj{Xd zs}!w~I%_0it)t3Sf%~<)v0T+Pe^&{V)CH2sG8I{DzEex9crqFzfikwLs9NlnQ!2oM!}*%ehA>L~}Y; zrd9HE<~w6IY3QOi(mUvj^iBG&w1#GBPSy=z4UeR;G5dA<^)ZmfdpCu_o=-{#@+IuY z`igur4bHFdN;jlTTfqotR+H__^mK-W3N*X1$o-N01(v%@kHU6jKMZmg9GgD%+pZ^2CVKT5c zPHsglN+*4fxZBz2ML8BK+*UYLc%YCjc2+vEO$%!{c#eT08eF&w<9&D-<6Mu!YxOKt z$q2bi9J7xBBhLnhi9AbUs|B~qEx9ST&NoYIbhxZ}j$B>H5yD*PfCx}RQ9+SH#555h z{!2O~O+;@;YqRjWoSOK@go?S;hf}u+oO&PBR@n0&(#SZS@?1|mgOB)QG(#?x)Aw9k zl+l^h|5ViASR0x8UD*;bUwQq=(6SYWhTr(k-mv+}JRkK6>{R}oUC_eh8c%&75OICw z`+q+%dG58*?o?A=n!Hbg(n6IH=P99=Wjm|0>9C*=bOzQ3C^IF9Ac!L(wrGT7(;vz6 z^rqM$0p1sY7a^#5Ler$74roAQK=u}^e^v|foBVEnkAJ|=aDG1;Hh>|BA`60DK^!#u zb^9=2ZJ>m;I~}u(Bt9f4XH&J~Brv8wkwr$Ll1|;8`jCVt)k~OpQ>r(t3TbafOd%&L zp^th&bsdooiBv{ae;Ob%^G=s;ZWi2M=uh7ONa+GsLYzAV6WQ&$aTcuYLXIn|r=pQAgrbIDH%MW%eQ~ z`kNfK3W&9sIJ1B-YcYa>GaG?oEjn7SqdBvNwJ^MvXVl-(F??Ruf-wicsH181jA!^9 zhT+Yug;h_V;mkQ4XKsWw&%yQqg{M3T~#et4yi~?}1*~0TEmzPZE2(@iWk##GLS!|Ul z0=|czLB5?h=;y2_1k=W{`O0QrVU}K*_>@)*>6t zF$*H(u6FbqX?%u9h@FyDa1KUG5GcS-ScJgewGw;wZdG#Xa3~}uj7gU#2Gf8jM5Q+OWkwDvU zO?ULsS#wcDF2Gn|AI>X`=s|Cx1PmO0Y|iVc-f>HI&d=ykW@+?aZ0ABwPSkrPGH0>K zV4@ijjX$nxMmQRg5H}fCMydCiUlC2PAs^v}D%6M;qb_t!Uewm=>{wEktgERmTd_P5 zkCYWUo0%4ZkUFLML_KraD@{VQcq7or3r7=&X z>%0!Rps-NY8u!2HuJ+ibt}}ifzJ4Zt#BpwHC-L*zah$}jYsZFUzDb+JN$d~`*Jn!+Dg6{4eEN3=pVRZHl!2m1;x64IX3C=(Qk-U{r^pT|^<;C3JhYSIZ+hz6 zCXomPABQ-i>KDi*JIyTc|Jd>WI74M_;hFTBojccjxhWdhSrYEvq*5Td=}Yu#$#(m1 zCEL#Xo8OeA{AfwSpB+AYBO&B}CO**fhYvq3B<6028a^v(dA<0!lM^3MTmeBhSy+!x zOC_KTR1tLj1l?ryDbX!3G?pR+Z#tfwz!wb-n6tg*&a zXJupxESCZ(m0K4_WBMwCIudK}`kXH8=PLA7YECMbF)Dzef{}5n*RIJd>FY^l;_VN2 zw05_3CBl*DqJ-UAhb=av$zn_RGB5*t>6xkNDbkU#G3^XRWjYv(O$EOQYNyWA&SLrk z*$+|!ZO-P8u(2r;#TO>YE;%tXS$e_rf1e{8^Y0RGh(?;#Xf+{ujaCoFLBgZOAT@+w zmCQ{Wc48+O%V^bUVQI~25oft@Bup{|N2fZs*u%M7pvz&P*@HwjL#tG%DijVGa9x}= zdYU5}H?IqI_vP0dS=QN?Ll&SZU?IQ){6QQnT+x$&tOu6YN z2YOoLy16ZMT}@QUhsFC(kgJgcJ-ey#_Fwwi?thHO-`ld_CASNuo7?VxZ6i#RZ;>x9 zDt?t@6Rxm}c~e#njG!Of`B3jK)A6L}PYOyR)UYa*?pKmCq#LWp>C^4)F{dzr)2BRw zXX4&B!gDGO4?GZfw8Svr8T1_YeBhb%eC<(ar5;br*%yykT00XsX6{;q0w!M&JI&#w z+v1QDGRl+TnxI)Q3-VgtoG{svoeo=jy?twPB#Evjp*87G3Q3$Chy`rnR=-W~*ayP! zI>`-3muPRLhx6H+SuOcZk$NV|x3a||lFAi(dk~)u26JpM8_$xJ$ka^R3Nb|#PvuB6 zLdqgxgx5RYua}bL{1_(|9PB90caCr*64t>gy35k;gJ`_V9kv;yQiBfCBlB`)m1O

kl1T|FYNawW}O$yZ5wmaz~@R0eBqBIf8mdJJF7M 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 Pxnl|vQmB2kZex?y$YQ&51 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

  • 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

    -WP+m-l^Kg0gbH;0e8B&rTyjj_?zIxqJ?{~ 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

    (JRQOH<#`R}7NG&0qt($M+!nHUC$FgRLmOQ+`E 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≀wWM2Z2KSJNg)+ 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%0D*Le1Sj+{SPl(YTE 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ⅇ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󏵞-j7Mjx13oeQ~5ER@* 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�j=+Nz~N6%ZxZe(OamH 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%0DY#9aM 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 TUY3FW^isBlIcE=~_U$xNvXI=Ck(m+?C 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 zacceptedCanonical Ubuntu 20.04 LTS Security Technical Implementation GuideThis Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.DISASTIG.DOD.MILRelease: 6 Benchmark Date: 27 Oct 20223.4.0.342221.10.01I - Mission Critical Classified<ProfileDescription></ProfileDescription>I - Mission Critical Sensitive<ProfileDescription></ProfileDescription>II - Mission Support Public<ProfileDescription></ProfileDescription>III - Administrative Classified<ProfileDescription></ProfileDescription>III - Administrative Sensitive<ProfileDescription></ProfileDescription> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + I - Mission Critical Public + <ProfileDescription></ProfileDescription> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + II - Mission Support Classified + <ProfileDescription></ProfileDescription> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + II - Mission Support Sensitive + <ProfileDescription></ProfileDescription> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + III - Administrative Public + <ProfileDescription></ProfileDescription> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SRG-OS-000002-GPOS-00002 + <GroupDescription></GroupDescription> + + UBTU-20-010000 + The Ubuntu operating system must provision temporary user accounts with an expiration time of 72 hours or less. + <VulnDiscussion>If temporary user accounts remain active when no longer needed or for an excessive period, these accounts may be used to gain unauthorized access. To mitigate this risk, automated termination of all temporary accounts must be set upon account creation. Temporary accounts are established as part of normal account activation procedures when there is a need for short-term accounts without the demand for immediacy in account activation. If temporary accounts are used, the operating system must be configured to automatically terminate these types of accounts after a DoD-defined time period of 72 hours. -To address access requirements, many operating systems may be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000016If a temporary account must be created, configure the system to terminate the account after a 72-hour time period with the following command to set an expiration date on it. +To address access requirements, many operating systems may be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000016 + If a temporary account must be created, configure the system to terminate the account after a 72-hour time period with the following command to set an expiration date on it. Substitute "system_account_name" with the account to be created. -$ sudo chage -E $(date -d "+3 days" +%F) system_account_nameVerify that the Ubuntu operating system expires temporary user accounts within 72 hours or less. +$ sudo chage -E $(date -d "+3 days" +%F) system_account_name + + + + Verify that the Ubuntu operating system expires temporary user accounts within 72 hours or less. For every existing temporary account, run the following command to obtain its account expiration information: @@ -19,7 +1598,17 @@ Account expires : Aug 07, 2019 Verify that each of these accounts has an expiration date set within 72 hours of account creation. -If any temporary account does not expire within 72 hours of that account's creation, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>UBTU-20-010002The Ubuntu operating system must enable the graphical user logon banner to display the Standard Mandatory DoD Notice and Consent Banner before granting local access to the system via a graphical user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the Ubuntu operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. +If any temporary account does not expire within 72 hours of that account's creation, this is a finding. + + + + + SRG-OS-000023-GPOS-00006 + <GroupDescription></GroupDescription> + + UBTU-20-010002 + The Ubuntu operating system must enable the graphical user logon banner to display the Standard Mandatory DoD Notice and Consent Banner before granting local access to the system via a graphical user logon. + <VulnDiscussion>Display of a standardized and approved use notification before granting access to the Ubuntu operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. @@ -41,30 +1630,49 @@ By using this IS (which includes any device attached to this IS), you consent to Use the following verbiage for operating systems that have severe limitations on the number of characters that can be displayed in the banner: -"I've read & consent to terms in IS user agreem't."</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000048Edit the "/etc/gdm3/greeter.dconf-defaults" file. +"I've read & consent to terms in IS user agreem't."</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000048 + Edit the "/etc/gdm3/greeter.dconf-defaults" file. Look for the "banner-message-enable" parameter under the "[org/gnome/login-screen]" section and uncomment it (remove the leading "#" characters): Note: The lines are all near the bottom of the file but not adjacent to each other. -[org/gnome/login-screen] - -banner-message-enable=true +[org/gnome/login-screen] banner-message-enable=true Update the GDM with the new configuration: $ sudo dconf update -$ sudo systemctl restart gdm3Verify the Ubuntu operating system is configured to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a graphical user logon. +$ sudo systemctl restart gdm3 + + + + Verify the Ubuntu operating system is configured to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a graphical user logon. Note: If the system does not have a graphical user interface installed, this requirement is Not Applicable. Check that the operating banner message for the graphical user logon is enabled with the following command: -$ grep ^banner-message-enable /etc/gdm3/greeter.dconf-defaults - -banner-message-enable=true +$ grep ^banner-message-enable /etc/gdm3/greeter.dconf-defaults banner-message-enable=true -If the line is commented out or set to "false", this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>UBTU-20-010003The Ubuntu operating system must display the Standard Mandatory DoD Notice and Consent Banner before granting local access to the system via a graphical user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the Ubuntu operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. +If the line is commented out or set to "false", this is a finding. + + + + + SRG-OS-000023-GPOS-00006 + <GroupDescription></GroupDescription> + + UBTU-20-010003 + The Ubuntu operating system must display the Standard Mandatory DoD Notice and Consent Banner before granting local access to the system via a graphical user logon. + <VulnDiscussion>Display of a standardized and approved use notification before granting access to the Ubuntu operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. @@ -86,38 +1694,71 @@ By using this IS (which includes any device attached to this IS), you consent to Use the following verbiage for operating systems that have severe limitations on the number of characters that can be displayed in the banner: -"I've read & consent to terms in IS user agreem't."</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000048Edit the "/etc/gdm3/greeter.dconf-defaults" file. - -Set the "banner-message-text" line to contain the appropriate banner message text as shown below: +"I've read & consent to terms in IS user agreem't."</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000048 + Edit the "/etc/gdm3/greeter.dconf-defaults" file. -banner-message-text='You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\n\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n\n-At any time, the USG may inspect and seize data stored on this IS.\n\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details.' +Set the "banner-message-text" line to contain the appropriate banner message text as shown below: banner-message-text='You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\n\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n\n-At any time, the USG may inspect and seize data stored on this IS.\n\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details.' Update the GDM with the new configuration: $ sudo dconf update -$ sudo systemctl restart gdm3Verify the Ubuntu operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a graphical user logon. +$ sudo systemctl restart gdm3 + + + + Verify the Ubuntu operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a graphical user logon. Note: If the system does not have a graphical user interface installed, this requirement is Not Applicable. Verify the operating system displays the exact approved Standard Mandatory DoD Notice and Consent Banner text with the command: -$ grep ^banner-message-text /etc/gdm3/greeter.dconf-defaults +$ grep ^banner-message-text /etc/gdm3/greeter.dconf-defaults banner-message-text="You are accessing a U.S. Government \(USG\) Information System \(IS\) that is provided for USG-authorized use only.\s+By using this IS \(which includes any device attached to this IS\), you consent to the following conditions:\s+-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct \(PM\), law enforcement \(LE\), and counterintelligence \(CI\) investigations.\s+-At any time, the USG may inspect and seize data stored on this IS.\s+-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\s+-This IS includes security measures \(e.g., authentication and access controls\) to protect USG interests--not for your personal benefit or privacy.\s+-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." -banner-message-text="You are accessing a U.S. Government \(USG\) Information System \(IS\) that is provided for USG-authorized use only.\s+By using this IS \(which includes any device attached to this IS\), you consent to the following conditions:\s+-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct \(PM\), law enforcement \(LE\), and counterintelligence \(CI\) investigations.\s+-At any time, the USG may inspect and seize data stored on this IS.\s+-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\s+-This IS includes security measures \(e.g., authentication and access controls\) to protect USG interests--not for your personal benefit or privacy.\s+-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." - -If the banner-message-text is missing, commented out, or does not match the Standard Mandatory DoD Notice and Consent Banner exactly, this is a finding.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>UBTU-20-010004The Ubuntu operating system must retain a user's session lock until that user reestablishes access using established identification and authentication procedures.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. +If the banner-message-text is missing, commented out, or does not match the Standard Mandatory DoD Notice and Consent Banner exactly, this is a finding. + + + + + SRG-OS-000028-GPOS-00009 + <GroupDescription></GroupDescription> + + UBTU-20-010004 + The Ubuntu operating system must retain a user's session lock until that user reestablishes access using established identification and authentication procedures. + <VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. The session lock is implemented at the point where session activity can be determined. Regardless of where the session lock is determined and implemented, once invoked, a session lock of the Ubuntu operating system must remain in place until the user reauthenticates. No other activity aside from reauthentication must unlock the system. -Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000029-GPOS-00010</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000056CCI-000057Configure the Ubuntu operating system to allow a user to lock the current graphical user interface session. +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000029-GPOS-00010</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000056 + CCI-000057 + Configure the Ubuntu operating system to allow a user to lock the current graphical user interface session. Note: If the Ubuntu operating system does not have a graphical user interface installed, this requirement is Not Applicable. Set the "lock-enabled" setting to allow graphical user interface session locks with the following command: -$ sudo gsettings set org.gnome.desktop.screensaver lock-enabled trueVerify the Ubuntu operation system has a graphical user interface session lock enabled. +$ sudo gsettings set org.gnome.desktop.screensaver lock-enabled true + + + + Verify the Ubuntu operation system has a graphical user interface session lock enabled. Note: If the Ubuntu operating system does not have a graphical user interface installed, this requirement is Not Applicable. @@ -127,47 +1768,159 @@ $ sudo gsettings get org.gnome.desktop.screensaver lock-enabled true -If "lock-enabled" is not set to "true", this is a finding.SRG-OS-000030-GPOS-00011<GroupDescription></GroupDescription>UBTU-20-010005The Ubuntu operating system must allow users to directly initiate a session lock for all connection types.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. +If "lock-enabled" is not set to "true", this is a finding. + + + + + SRG-OS-000030-GPOS-00011 + <GroupDescription></GroupDescription> + + UBTU-20-010005 + The Ubuntu operating system must allow users to directly initiate a session lock for all connection types. + <VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, the Ubuntu operating systems need to provide users with the ability to manually invoke a session lock so users may secure their session if they need to temporarily vacate the immediate physical vicinity. -Satisfies: SRG-OS-000030-GPOS-00011, SRG-OS-000031-GPOS-00012</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000058CCI-000060Install the "vlock" package (if it is not already installed) by running the following command: - -$ sudo apt-get install vlockVerify the Ubuntu operating system has the "vlock" package installed by running the following command: +Satisfies: SRG-OS-000030-GPOS-00011, SRG-OS-000031-GPOS-00012</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000058 + CCI-000060 + Install the "vlock" package (if it is not already installed) by running the following command: + +$ sudo apt-get install vlock + + + + Verify the Ubuntu operating system has the "vlock" package installed by running the following command: $ dpkg -l | grep vlock -If "vlock" is not installed, this is a finding.SRG-OS-000068-GPOS-00036<GroupDescription></GroupDescription>UBTU-20-010006The Ubuntu operating system must map the authenticated identity to the user or group account for PKI-based authentication.<VulnDiscussion>Without mapping the certificate used to authenticate to the user account, the ability to determine the identity of the individual user or group will not be available for forensic analysis.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000187Set "use_mappers=pwent" in "/etc/pam_pkcs11/pam_pkcs11.conf" or, if there is already a comma-separated list of mappers, add it to the list, separated by comma, and before the null mapper. - -If the system is missing an "/etc/pam_pkcs11/" directory and an "/etc/pam_pkcs11/pam_pkcs11.conf", find an example to copy into place and modify accordingly at "/usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz".Verify that "use_mappers" is set to "pwent" in "/etc/pam_pkcs11/pam_pkcs11.conf" file: +If "vlock" is not installed, this is a finding. + + + + + SRG-OS-000068-GPOS-00036 + <GroupDescription></GroupDescription> + + UBTU-20-010006 + The Ubuntu operating system must map the authenticated identity to the user or group account for PKI-based authentication. + <VulnDiscussion>Without mapping the certificate used to authenticate to the user account, the ability to determine the identity of the individual user or group will not be available for forensic analysis.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000187 + Set "use_mappers=pwent" in "/etc/pam_pkcs11/pam_pkcs11.conf" or, if there is already a comma-separated list of mappers, add it to the list, separated by comma, and before the null mapper. + +If the system is missing an "/etc/pam_pkcs11/" directory and an "/etc/pam_pkcs11/pam_pkcs11.conf", find an example to copy into place and modify accordingly at "/usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz". + + + + Verify that "use_mappers" is set to "pwent" in "/etc/pam_pkcs11/pam_pkcs11.conf" file: $ grep use_mappers /etc/pam_pkcs11/pam_pkcs11.conf use_mappers = pwent -If "use_mappers" is not found or the list does not contain "pwent" this is a finding.SRG-OS-000075-GPOS-00043<GroupDescription></GroupDescription>UBTU-20-010007The Ubuntu operating system must enforce 24 hours/1 day as the minimum password lifetime. Passwords for new users must have a 24 hours/1 day minimum password lifetime restriction.<VulnDiscussion>Enforcing a minimum password lifetime helps to prevent repeated password changes to defeat the password reuse or history enforcement requirement. If users are allowed to immediately and continually change their password, then the password could be repeatedly changed in a short period of time to defeat the organization's policy regarding password reuse.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000198Configure the Ubuntu operating system to enforce a 24 hours/1 day minimum password lifetime. +If "use_mappers" is not found or the list does not contain "pwent" this is a finding. + + + + + SRG-OS-000075-GPOS-00043 + <GroupDescription></GroupDescription> + + UBTU-20-010007 + The Ubuntu operating system must enforce 24 hours/1 day as the minimum password lifetime. Passwords for new users must have a 24 hours/1 day minimum password lifetime restriction. + <VulnDiscussion>Enforcing a minimum password lifetime helps to prevent repeated password changes to defeat the password reuse or history enforcement requirement. If users are allowed to immediately and continually change their password, then the password could be repeatedly changed in a short period of time to defeat the organization's policy regarding password reuse.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000198 + Configure the Ubuntu operating system to enforce a 24 hours/1 day minimum password lifetime. Add or modify the following line in the "/etc/login.defs" file: -PASS_MIN_DAYS 1Verify the Ubuntu operating system enforces a 24 hours/1 day minimum password lifetime for new user accounts by running the following command: +PASS_MIN_DAYS 1 + + + + Verify the Ubuntu operating system enforces a 24 hours/1 day minimum password lifetime for new user accounts by running the following command: $ grep -i ^pass_min_days /etc/login.defs PASS_MIN_DAYS 1 -If the "PASS_MIN_DAYS" parameter value is less than "1" or is commented out, this is a finding.SRG-OS-000076-GPOS-00044<GroupDescription></GroupDescription>UBTU-20-010008The Ubuntu operating system must enforce a 60-day maximum password lifetime restriction. Passwords for new users must have a 60-day maximum password lifetime restriction.<VulnDiscussion>Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. If the operating system does not limit the lifetime of passwords and force users to change their passwords, there is the risk that the operating system passwords could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000199Configure the Ubuntu operating system to enforce a 60-day maximum password lifetime. +If the "PASS_MIN_DAYS" parameter value is less than "1" or is commented out, this is a finding. + + + + + SRG-OS-000076-GPOS-00044 + <GroupDescription></GroupDescription> + + UBTU-20-010008 + The Ubuntu operating system must enforce a 60-day maximum password lifetime restriction. Passwords for new users must have a 60-day maximum password lifetime restriction. + <VulnDiscussion>Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. If the operating system does not limit the lifetime of passwords and force users to change their passwords, there is the risk that the operating system passwords could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000199 + Configure the Ubuntu operating system to enforce a 60-day maximum password lifetime. Add or modify the following line in the "/etc/login.defs" file: -PASS_MAX_DAYS 60Verify the Ubuntu operating system enforces a 60-day maximum password lifetime for new user accounts by running the following command: +PASS_MAX_DAYS 60 + + + + Verify the Ubuntu operating system enforces a 60-day maximum password lifetime for new user accounts by running the following command: $ grep -i ^pass_max_days /etc/login.defs PASS_MAX_DAYS 60 -If the "PASS_MAX_DAYS" parameter value is less than "60" or is commented out, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>UBTU-20-010009Ubuntu operating systems when booted must require authentication upon booting into single-user and maintenance modes.<VulnDiscussion>To mitigate the risk of unauthorized access to sensitive information by entities that have been issued certificates by DoD-approved PKIs, all DoD systems (e.g., web servers and web portals) must be properly configured to incorporate access control methods that do not rely solely on the possession of a certificate for access. +If the "PASS_MAX_DAYS" parameter value is less than "60" or is commented out, this is a finding. + + + + + SRG-OS-000080-GPOS-00048 + <GroupDescription></GroupDescription> + + UBTU-20-010009 + Ubuntu operating systems when booted must require authentication upon booting into single-user and maintenance modes. + <VulnDiscussion>To mitigate the risk of unauthorized access to sensitive information by entities that have been issued certificates by DoD-approved PKIs, all DoD systems (e.g., web servers and web portals) must be properly configured to incorporate access control methods that do not rely solely on the possession of a certificate for access. Successful authentication must not automatically give an entity access to an asset or security boundary. Authorization procedures and controls must be implemented to ensure each authenticated entity also has a validated and current authorization. Authorization is the process of determining whether an entity, once authenticated, is permitted to access a specific asset. Information systems use access control policies and enforcement mechanisms to implement this requirement. -Access control policies include identity-based policies, role-based policies, and attribute-based policies. Access enforcement mechanisms include access control lists, access control matrices, and cryptography. These policies and mechanisms must be employed by the application to control access between users (or processes acting on behalf of users) and objects (e.g., devices, files, records, processes, programs, and domains) in the information system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000213Configure the system to require a password for authentication upon booting into single-user and maintenance modes. +Access control policies include identity-based policies, role-based policies, and attribute-based policies. Access enforcement mechanisms include access control lists, access control matrices, and cryptography. These policies and mechanisms must be employed by the application to control access between users (or processes acting on behalf of users) and objects (e.g., devices, files, records, processes, programs, and domains) in the information system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000213 + Configure the system to require a password for authentication upon booting into single-user and maintenance modes. Generate an encrypted (grub) password for root with the following command: @@ -184,13 +1937,27 @@ where <hash> is the hash generated by grub-mkpasswd-pbkdf2 command. Generate an updated "grub.conf" file with the new password by using the following command: -$ sudo update-grubRun the following command to verify the encrypted password is set: +$ sudo update-grub + + + + Run the following command to verify the encrypted password is set: $ sudo grep -i password /boot/grub/grub.cfg password_pbkdf2 root grub.pbkdf2.sha512.10000.MFU48934NJA87HF8NSD34493GDHF84NG -If the root password entry does not begin with "password_pbkdf2", this is a finding.SRG-OS-000104-GPOS-00051<GroupDescription></GroupDescription>UBTU-20-010010The Ubuntu operating system must uniquely identify interactive users.<VulnDiscussion>To assure accountability and prevent unauthenticated access, organizational users must be identified and authenticated to prevent potential misuse and compromise of the system. +If the root password entry does not begin with "password_pbkdf2", this is a finding. + + + + + SRG-OS-000104-GPOS-00051 + <GroupDescription></GroupDescription> + + UBTU-20-010010 + The Ubuntu operating system must uniquely identify interactive users. + <VulnDiscussion>To assure accountability and prevent unauthenticated access, organizational users must be identified and authenticated to prevent potential misuse and compromise of the system. Organizational users include organizational employees or individuals the organization deems to have equivalent status of employees (e.g., contractors). Organizational users (and processes acting on behalf of users) must be uniquely identified and authenticated to all accesses, except for the following: @@ -198,65 +1965,167 @@ Organizational users include organizational employees or individuals the organiz 2) Accesses that occur through authorized use of group authenticators without individual authentication. Organizations may require unique identification of individuals in group accounts (e.g., shared privilege accounts) or for detailed accountability of individual activity. -Satisfies: SRG-OS-000104-GPOS-00051, SRG-OS-000121-GPOS-00062</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000764CCI-000804Edit the file "/etc/passwd" and provide each interactive user account that has a duplicate UID with a unique UID.Verify the Ubuntu operating system contains no duplicate User IDs (UIDs) for interactive users with the following command: +Satisfies: SRG-OS-000104-GPOS-00051, SRG-OS-000121-GPOS-00062</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000764 + CCI-000804 + Edit the file "/etc/passwd" and provide each interactive user account that has a duplicate UID with a unique UID. + + + + Verify the Ubuntu operating system contains no duplicate User IDs (UIDs) for interactive users with the following command: $ awk -F ":" 'list[$3]++{print $1, $3}' /etc/passwd -If output is produced and the accounts listed are interactive user accounts, this is a finding.SRG-OS-000134-GPOS-00068<GroupDescription></GroupDescription>UBTU-20-010012The Ubuntu operating system must ensure only users who need access to security functions are part of sudo group.<VulnDiscussion>An isolation boundary provides access control and protects the integrity of the hardware, software, and firmware that perform security functions. +If output is produced and the accounts listed are interactive user accounts, this is a finding. + + + + + SRG-OS-000134-GPOS-00068 + <GroupDescription></GroupDescription> + + UBTU-20-010012 + The Ubuntu operating system must ensure only users who need access to security functions are part of sudo group. + <VulnDiscussion>An isolation boundary provides access control and protects the integrity of the hardware, software, and firmware that perform security functions. Security functions are the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Operating systems implement code separation (i.e., separation of security functions from nonsecurity functions) in a number of ways, including through the provision of security kernels via processor rings or processor modes. For non-kernel code, security function isolation is often achieved through file system protections that serve to protect the code on disk and address space protections that protect executing code. Developers and implementers can increase the assurance in security functions by employing well-defined security policy models; structured, disciplined, and rigorous hardware and software development techniques; and sound system/security engineering principles. Implementation may include isolation of memory space and libraries. -The Ubuntu operating system restricts access to security functions through the use of access control mechanisms and by implementing least privilege capabilities.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001084Configure the sudo group with only members requiring access to security functions. +The Ubuntu operating system restricts access to security functions through the use of access control mechanisms and by implementing least privilege capabilities.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001084 + Configure the sudo group with only members requiring access to security functions. To remove a user from the sudo group, run: -$ sudo gpasswd -d <username> sudoVerify the sudo group has only members who should have access to security functions. +$ sudo gpasswd -d <username> sudo + + + + Verify the sudo group has only members who should have access to security functions. $ grep sudo /etc/group sudo:x:27:foo -If the sudo group contains users not needing access to security functions, this is a finding.SRG-OS-000279-GPOS-00109<GroupDescription></GroupDescription>UBTU-20-010013The Ubuntu operating system must automatically terminate a user session after inactivity timeouts have expired.<VulnDiscussion>Automatic session termination addresses the termination of user-initiated logical sessions in contrast to the termination of network connections that are associated with communications sessions (i.e., network disconnect). A logical session (for local, network, and remote access) is initiated whenever a user (or process acting on behalf of a user) accesses an organizational information system. Such user sessions can be terminated (and thus terminate user access) without terminating network sessions. +If the sudo group contains users not needing access to security functions, this is a finding. + + + + + SRG-OS-000279-GPOS-00109 + <GroupDescription></GroupDescription> + + UBTU-20-010013 + The Ubuntu operating system must automatically terminate a user session after inactivity timeouts have expired. + <VulnDiscussion>Automatic session termination addresses the termination of user-initiated logical sessions in contrast to the termination of network connections that are associated with communications sessions (i.e., network disconnect). A logical session (for local, network, and remote access) is initiated whenever a user (or process acting on behalf of a user) accesses an organizational information system. Such user sessions can be terminated (and thus terminate user access) without terminating network sessions. Session termination terminates all processes associated with a user's logical session except those processes that are specifically created by the user (i.e., session owner) to continue after the session is terminated. Conditions or trigger events requiring automatic session termination can include, for example, organization-defined periods of user inactivity, targeted responses to certain types of incidents, and time-of-day restrictions on information system use. -This capability is typically reserved for specific operating system functionality where the system owner, data owner, or organization requires additional assurance.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002361Configure the operating system to automatically terminate a user session after inactivity timeouts have expired or at shutdown. +This capability is typically reserved for specific operating system functionality where the system owner, data owner, or organization requires additional assurance.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002361 + Configure the operating system to automatically terminate a user session after inactivity timeouts have expired or at shutdown. Create the file "/etc/profile.d/99-terminal_tmout.sh" file if it does not exist. -Modify or append the following line in the "/etc/profile.d/99-terminal_tmout.sh " file: - -TMOUT=600 +Modify or append the following line in the "/etc/profile.d/99-terminal_tmout.sh " file: TMOUT=600 This will set a timeout value of 10 minutes for all future sessions. To set the timeout for the current sessions, execute the following command over the terminal session: -$ export TMOUT=600Verify the operating system automatically terminates a user session after inactivity timeouts have expired. +$ export TMOUT=600 + + + + Verify the operating system automatically terminates a user session after inactivity timeouts have expired. Check that "TMOUT" environment variable is set in the "/etc/bash.bashrc" file or in any file inside the "/etc/profile.d/" directory by performing the following command: -$ grep -E "\bTMOUT=[0-9]+" /etc/bash.bashrc /etc/profile.d/* - -TMOUT=600 +$ grep -E "\bTMOUT=[0-9]+" /etc/bash.bashrc /etc/profile.d/* TMOUT=600 -If "TMOUT" is not set, or if the value is "0" or is commented out, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>UBTU-20-010014The Ubuntu operating system must require users to reauthenticate for privilege escalation or when changing roles.<VulnDiscussion>Without reauthentication, users may access resources or perform tasks for which they do not have authorization. +If "TMOUT" is not set, or if the value is "0" or is commented out, this is a finding. + + + + + SRG-OS-000373-GPOS-00156 + <GroupDescription></GroupDescription> + + UBTU-20-010014 + The Ubuntu operating system must require users to reauthenticate for privilege escalation or when changing roles. + <VulnDiscussion>Without reauthentication, users may access resources or perform tasks for which they do not have authorization. When operating systems provide the capability to escalate a functional capability, it is critical the user reauthenticate. -Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002038Remove any occurrence of "NOPASSWD" or "!authenticate" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory.Verify the "/etc/sudoers" file has no occurrences of "NOPASSWD" or "!authenticate" by running the following command: +Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002038 + Remove any occurrence of "NOPASSWD" or "!authenticate" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory. + + + + Verify the "/etc/sudoers" file has no occurrences of "NOPASSWD" or "!authenticate" by running the following command: $ sudo egrep -i '(nopasswd|!authenticate)' /etc/sudoers /etc/sudoers.d/* -If any occurrences of "NOPASSWD" or "!authenticate" return from the command, this is a finding.SRG-OS-000480-GPOS-00228<GroupDescription></GroupDescription>UBTU-20-010016The Ubuntu operating system default filesystem permissions must be defined in such a way that all authenticated users can read and modify only their own files.<VulnDiscussion>Setting the most restrictive default permissions ensures that when new accounts are created they do not have unnecessary access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the system to define the default permissions for all authenticated users in such a way that the user can read and modify only their own files. +If any occurrences of "NOPASSWD" or "!authenticate" return from the command, this is a finding. + + + + + SRG-OS-000480-GPOS-00228 + <GroupDescription></GroupDescription> + + UBTU-20-010016 + The Ubuntu operating system default filesystem permissions must be defined in such a way that all authenticated users can read and modify only their own files. + <VulnDiscussion>Setting the most restrictive default permissions ensures that when new accounts are created they do not have unnecessary access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the system to define the default permissions for all authenticated users in such a way that the user can read and modify only their own files. Edit the "UMASK" parameter in the "/etc/login.defs" file to match the example below: -UMASK 077Verify the Ubuntu operating system defines default permissions for all authenticated users in such a way that the user can read and modify only their own files. +UMASK 077 + + + + Verify the Ubuntu operating system defines default permissions for all authenticated users in such a way that the user can read and modify only their own files. Verify the Ubuntu operating system defines default permissions for all authenticated users with the following command: @@ -266,7 +2135,17 @@ UMASK 077 If the "UMASK" variable is set to "000", this is a finding with the severity raised to a CAT I. -If the value of "UMASK" is not set to "077", is commented out, or is missing completely, this is a finding.SRG-OS-000105-GPOS-00052<GroupDescription></GroupDescription>UBTU-20-010033The Ubuntu operating system must implement smart card logins for multifactor authentication for local and network access to privileged and non-privileged accounts.<VulnDiscussion>Without the use of multifactor authentication, the ease of access to privileged functions is greatly increased. +If the value of "UMASK" is not set to "077", is commented out, or is missing completely, this is a finding. + + + + + SRG-OS-000105-GPOS-00052 + <GroupDescription></GroupDescription> + + UBTU-20-010033 + The Ubuntu operating system must implement smart card logins for multifactor authentication for local and network access to privileged and non-privileged accounts. + <VulnDiscussion>Without the use of multifactor authentication, the ease of access to privileged functions is greatly increased. Multifactor authentication requires using two or more factors to achieve authentication. @@ -281,13 +2160,29 @@ Network access is defined as access to an information system by a user (or a pro The DoD CAC with DoD-approved PKI is an example of multifactor authentication. -Satisfies: SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000765CCI-000766CCI-000767CCI-000768Configure the Ubuntu operating system to use multifactor authentication for network access to accounts. +Satisfies: SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000765 + CCI-000766 + CCI-000767 + CCI-000768 + Configure the Ubuntu operating system to use multifactor authentication for network access to accounts. Add or update "pam_pkcs11.so" in "/etc/pam.d/common-auth" to match the following line: -auth [success=2 default=ignore] pam_pkcs11.so +auth [success=2 default=ignore] pam_pkcs11.so -Set the sshd option "PubkeyAuthentication yes" in the "/etc/ssh/sshd_config" file.Verify the Ubuntu operating system has the packages required for multifactor authentication installed with the following commands: +Set the sshd option "PubkeyAuthentication yes" in the "/etc/ssh/sshd_config" file. + + + + Verify the Ubuntu operating system has the packages required for multifactor authentication installed with the following commands: $ dpkg -l | grep libpam-pkcs11 @@ -302,11 +2197,34 @@ $ grep -r ^Pubkeyauthentication /etc/ssh/sshd_config* PubkeyAuthentication yes If this option is set to "no" or is missing, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000125-GPOS-00065<GroupDescription></GroupDescription>UBTU-20-010035The Ubuntu operating system must use strong authenticators in establishing nonlocal maintenance and diagnostic sessions.<VulnDiscussion>Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the internet) or an internal network. Local maintenance and diagnostic activities are those activities carried out by individuals physically present at the information system or information system component and not communicating across a network connection. Typically, strong authentication requires authenticators that are resistant to replay attacks and employ multifactor authentication. Strong authenticators include, for example, PKI where certificates are stored on a token protected by a password, passphrase, or biometric.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000877Configure the Ubuntu operating system to use strong authentication when establishing nonlocal maintenance and diagnostic sessions. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000125-GPOS-00065 + <GroupDescription></GroupDescription> + + UBTU-20-010035 + The Ubuntu operating system must use strong authenticators in establishing nonlocal maintenance and diagnostic sessions. + <VulnDiscussion>Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the internet) or an internal network. Local maintenance and diagnostic activities are those activities carried out by individuals physically present at the information system or information system component and not communicating across a network connection. Typically, strong authentication requires authenticators that are resistant to replay attacks and employ multifactor authentication. Strong authenticators include, for example, PKI where certificates are stored on a token protected by a password, passphrase, or biometric.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000877 + Configure the Ubuntu operating system to use strong authentication when establishing nonlocal maintenance and diagnostic sessions. Add or modify the following line to /etc/ssh/sshd_config: -UsePAM yesVerify the Ubuntu operating system is configured to use strong authenticators in the establishment of nonlocal maintenance and diagnostic maintenance. +UsePAM yes + + + + Verify the Ubuntu operating system is configured to use strong authenticators in the establishment of nonlocal maintenance and diagnostic maintenance. Verify that "UsePAM" is set to "yes" in "/etc/ssh/sshd_config: @@ -315,13 +2233,32 @@ $ grep -r ^UsePAM /etc/ssh/sshd_config* UsePAM yes If "UsePAM" is not set to "yes", this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000126-GPOS-00066<GroupDescription></GroupDescription>UBTU-20-010036The Ubuntu operating system must immediately terminate all network connections associated with SSH traffic after a period of inactivity.<VulnDiscussion>Automatic session termination addresses the termination of user-initiated logical sessions in contrast to the termination of network connections that are associated with communications sessions (i.e., network disconnect). A logical session (for local, network, and remote access) is initiated whenever a user (or process acting on behalf of a user) accesses an organizational information system. Such user sessions can be terminated (and thus terminate user access) without terminating network sessions. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000126-GPOS-00066 + <GroupDescription></GroupDescription> + + UBTU-20-010036 + The Ubuntu operating system must immediately terminate all network connections associated with SSH traffic after a period of inactivity. + <VulnDiscussion>Automatic session termination addresses the termination of user-initiated logical sessions in contrast to the termination of network connections that are associated with communications sessions (i.e., network disconnect). A logical session (for local, network, and remote access) is initiated whenever a user (or process acting on behalf of a user) accesses an organizational information system. Such user sessions can be terminated (and thus terminate user access) without terminating network sessions. Session termination terminates all processes associated with a user's logical session except those processes that are specifically created by the user (i.e., session owner) to continue after the session is terminated. Conditions or trigger events requiring automatic session termination can include, for example, organization-defined periods of user inactivity, targeted responses to certain types of incidents, and time-of-day restrictions on information system use. -This capability is typically reserved for specific Ubuntu operating system functionality where the system owner, data owner, or organization requires additional assurance.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000879Configure the Ubuntu operating system to automatically terminate inactive SSH sessions after a period of inactivity. +This capability is typically reserved for specific Ubuntu operating system functionality where the system owner, data owner, or organization requires additional assurance.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000879 + Configure the Ubuntu operating system to automatically terminate inactive SSH sessions after a period of inactivity. Modify or append the following line in the "/etc/ssh/sshd_config" file, replacing "[Count]" with a value of 1: @@ -329,7 +2266,11 @@ ClientAliveCountMax 1 Restart the SSH daemon for the changes to take effect: -$ sudo systemctl restart sshd.serviceVerify that all network connections associated with SSH traffic automatically terminate after a period of inactivity. +$ sudo systemctl restart sshd.service + + + + Verify that all network connections associated with SSH traffic automatically terminate after a period of inactivity. Verify the "ClientAliveCountMax" variable is set in the "/etc/ssh/sshd_config" file by performing the following command: @@ -338,9 +2279,28 @@ $ sudo grep -ir clientalivecountmax /etc/ssh/sshd_config* ClientAliveCountMax 1 If "ClientAliveCountMax" is not set, is not set to "1", or is commented out, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000163-GPOS-00072<GroupDescription></GroupDescription>UBTU-20-010037The Ubuntu operating system must immediately terminate all network connections associated with SSH traffic at the end of the session or after 10 minutes of inactivity.<VulnDiscussion>Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session will also free up resources committed by the managed network element. - -Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level, and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean that the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001133Configure the Ubuntu operating system to automatically terminate all network connections associated with SSH traffic at the end of a session or after a 10-minute period of inactivity. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000163-GPOS-00072 + <GroupDescription></GroupDescription> + + UBTU-20-010037 + The Ubuntu operating system must immediately terminate all network connections associated with SSH traffic at the end of the session or after 10 minutes of inactivity. + <VulnDiscussion>Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session will also free up resources committed by the managed network element. + +Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level, and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean that the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001133 + Configure the Ubuntu operating system to automatically terminate all network connections associated with SSH traffic at the end of a session or after a 10-minute period of inactivity. Modify or append the following line in the "/etc/ssh/sshd_config" file replacing "[Interval]" with a value of "600" or less: @@ -348,7 +2308,11 @@ ClientAliveInterval 600 Restart the SSH daemon for the changes to take effect: -$ sudo systemctl restart sshd.serviceVerify that all network connections associated with SSH traffic are automatically terminated at the end of the session or after 10 minutes of inactivity. +$ sudo systemctl restart sshd.service + + + + Verify that all network connections associated with SSH traffic are automatically terminated at the end of the session or after 10 minutes of inactivity. Verify the "ClientAliveInterval" variable is set to a value of "600" or less by performing the following command: @@ -357,7 +2321,17 @@ $ sudo grep -ir clientalive /etc/ssh/sshd_config* ClientAliveInterval 600 If "ClientAliveInterval" does not exist, is not set to a value of "600" or less in "/etc/ssh/sshd_config", or is commented out, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000228-GPOS-00088<GroupDescription></GroupDescription>UBTU-20-010038The Ubuntu operating system must display the Standard Mandatory DoD Notice and Consent Banner before granting any local or remote connection to the system.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the publicly accessible operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000228-GPOS-00088 + <GroupDescription></GroupDescription> + + UBTU-20-010038 + The Ubuntu operating system must display the Standard Mandatory DoD Notice and Consent Banner before granting any local or remote connection to the system. + <VulnDiscussion>Display of a standardized and approved use notification before granting access to the publicly accessible operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. @@ -381,7 +2355,21 @@ Use the following verbiage for operating systems that have severe limitations on "I've read & consent to terms in IS user agreem't." -Satisfies: SRG-OS-000228-GPOS-00088, SRG-OS-000023-GPOS-00006</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000048CCI-001384CCI-001385CCI-001386CCI-001387CCI-001388Set the parameter Banner in "/etc/ssh/sshd_config" to point to the "/etc/issue.net" file: +Satisfies: SRG-OS-000228-GPOS-00088, SRG-OS-000023-GPOS-00006</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000048 + CCI-001384 + CCI-001385 + CCI-001386 + CCI-001387 + CCI-001388 + Set the parameter Banner in "/etc/ssh/sshd_config" to point to the "/etc/issue.net" file: $ sudo sed -i '/^Banner/d' /etc/ssh/sshd_config $ sudo sed -i '$aBanner /etc/issue.net' /etc/ssh/sshd_config @@ -404,7 +2392,11 @@ By using this IS (which includes any device attached to this IS), you consent to Restart the SSH daemon for the changes to take effect and then signal the SSH server to reload the configuration file: -$ sudo systemctl -s SIGHUP kill sshdVerify the Ubuntu operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the Ubuntu operating system via an SSH logon with the following command: +$ sudo systemctl -s SIGHUP kill sshd + + + + Verify the Ubuntu operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the Ubuntu operating system via an SSH logon with the following command: $ grep -ir banner /etc/ssh/sshd_config* @@ -432,13 +2424,34 @@ By using this IS (which includes any device attached to this IS), you consent to -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." -If the banner text does not match the Standard Mandatory DoD Notice and Consent Banner exactly, this is a finding.SRG-OS-000423-GPOS-00187<GroupDescription></GroupDescription>UBTU-20-010042The Ubuntu operating system must use SSH to protect the confidentiality and integrity of transmitted information.<VulnDiscussion>Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. +If the banner text does not match the Standard Mandatory DoD Notice and Consent Banner exactly, this is a finding. + + + + + SRG-OS-000423-GPOS-00187 + <GroupDescription></GroupDescription> + + UBTU-20-010042 + The Ubuntu operating system must use SSH to protect the confidentiality and integrity of transmitted information. + <VulnDiscussion>Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. This requirement applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, and facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. -Satisfies: SRG-OS-000423-GPOS-00187, SRG-OS-000425-GPOS-00189, SRG-OS-000426-GPOS-00190</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002418CCI-002420CCI-002422Install the "ssh" meta-package on the system with the following command: +Satisfies: SRG-OS-000423-GPOS-00187, SRG-OS-000425-GPOS-00189, SRG-OS-000426-GPOS-00190</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002418 + CCI-002420 + CCI-002422 + Install the "ssh" meta-package on the system with the following command: $ sudo apt install ssh @@ -448,7 +2461,11 @@ $ sudo systemctl enable sshd.service ensure the "ssh" service is running -$ sudo systemctl start sshd.serviceVerify the SSH package is installed with the following command: +$ sudo systemctl start sshd.service + + + + Verify the SSH package is installed with the following command: $ sudo dpkg -l | grep openssh ii openssh-client 1:7.6p1-4ubuntu0.1 amd64 secure shell (SSH) client, for secure access to remote machines @@ -463,7 +2480,17 @@ $ sudo systemctl status sshd.service | egrep -i "(active|loaded)" Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-01-24 22:52:58 UTC; 1 weeks 3 days ago -If "sshd.service" is not active or loaded, this is a finding.SRG-OS-000424-GPOS-00188<GroupDescription></GroupDescription>UBTU-20-010043The Ubuntu operating system must configure the SSH daemon to use Message Authentication Codes (MACs) employing FIPS 140-2 approved cryptographic hashes to prevent the unauthorized disclosure of information and/or detect changes to information during transmission.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. +If "sshd.service" is not active or loaded, this is a finding. + + + + + SRG-OS-000424-GPOS-00188 + <GroupDescription></GroupDescription> + + UBTU-20-010043 + The Ubuntu operating system must configure the SSH daemon to use Message Authentication Codes (MACs) employing FIPS 140-2 approved cryptographic hashes to prevent the unauthorized disclosure of information and/or detect changes to information during transmission. + <VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. Remote access (e.g., RDP) is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the internet) or an internal network. @@ -471,7 +2498,18 @@ Local maintenance and diagnostic activities are those activities carried out by Encrypting information for transmission protects information from unauthorized disclosure and modification. Cryptographic mechanisms implemented to protect information integrity include, for example, cryptographic hash functions which have common application in digital signatures, checksums, and message authentication codes. -Satisfies: SRG-OS-000424-GPOS-00188, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001453CCI-002421CCI-002890Configure the Ubuntu operating system to allow the SSH daemon to only use MACs that employ FIPS 140-2 approved ciphers. +Satisfies: SRG-OS-000424-GPOS-00188, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001453 + CCI-002421 + CCI-002890 + Configure the Ubuntu operating system to allow the SSH daemon to only use MACs that employ FIPS 140-2 approved ciphers. Add the following line (or modify the line to have the required value) to the "/etc/ssh/sshd_config" file (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): @@ -479,14 +2517,28 @@ MACs hmac-sha2-512,hmac-sha2-256 Restart the SSH daemon for the changes to take effect: -$ sudo systemctl reload sshd.serviceVerify the SSH daemon is configured to only use MACs that employ FIPS 140-2 approved ciphers with the following command: +$ sudo systemctl reload sshd.service + + + + Verify the SSH daemon is configured to only use MACs that employ FIPS 140-2 approved ciphers with the following command: $ grep -ir macs /etc/ssh/sshd_config* MACs hmac-sha2-512,hmac-sha2-256 If any ciphers other than "hmac-sha2-512" or "hmac-sha2-256" are listed, the order differs from the example above, or the returned line is commented out, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000424-GPOS-00188<GroupDescription></GroupDescription>UBTU-20-010044The Ubuntu operating system must configure the SSH daemon to use FIPS 140-2 approved ciphers to prevent the unauthorized disclosure of information and/or detect changes to information during transmission.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000424-GPOS-00188 + <GroupDescription></GroupDescription> + + UBTU-20-010044 + The Ubuntu operating system must configure the SSH daemon to use FIPS 140-2 approved ciphers to prevent the unauthorized disclosure of information and/or detect changes to information during transmission. + <VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. Remote access (e.g., RDP) is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. @@ -498,7 +2550,18 @@ Encrypting information for transmission protects information from unauthorized d By specifying a cipher list with the order of ciphers being in a "strongest to weakest" orientation, the system will automatically attempt to use the strongest cipher for securing SSH connections. -Satisfies: SRG-OS-000424-GPOS-00188, SRG-OS-000033-GPOS-00014, SRG-OS-000394-GPOS-00174</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000068CCI-002421CCI-003123Configure the Ubuntu operating system to allow the SSH daemon to only implement FIPS-approved algorithms. +Satisfies: SRG-OS-000424-GPOS-00188, SRG-OS-000033-GPOS-00014, SRG-OS-000394-GPOS-00174</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000068 + CCI-002421 + CCI-003123 + Configure the Ubuntu operating system to allow the SSH daemon to only implement FIPS-approved algorithms. Add the following line (or modify the line to have the required value) to the "/etc/ssh/sshd_config" file (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): @@ -506,14 +2569,37 @@ Ciphers aes256-ctr,aes192-ctr,aes128-ctr Restart the SSH daemon for the changes to take effect: -$ sudo systemctl restart sshd.serviceVerify the SSH daemon is configured to only implement FIPS-approved algorithms by running the following command: +$ sudo systemctl restart sshd.service + + + + Verify the SSH daemon is configured to only implement FIPS-approved algorithms by running the following command: $ grep -r 'Ciphers' /etc/ssh/sshd_config* Ciphers aes256-ctr,aes192-ctr,aes128-ctr If any ciphers other than "aes256-ctr", "aes192-ctr", or "aes128-ctr" are listed, the order differs from the example above, the "Ciphers" keyword is missing, or the returned line is commented out, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00229<GroupDescription></GroupDescription>UBTU-20-010047The Ubuntu operating system must not allow unattended or automatic login via SSH.<VulnDiscussion>Failure to restrict system access to authenticated users negatively impacts Ubuntu operating system security.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the Ubuntu operating system to allow the SSH daemon to not allow unattended or automatic login to the system. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000480-GPOS-00229 + <GroupDescription></GroupDescription> + + UBTU-20-010047 + The Ubuntu operating system must not allow unattended or automatic login via SSH. + <VulnDiscussion>Failure to restrict system access to authenticated users negatively impacts Ubuntu operating system security.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the Ubuntu operating system to allow the SSH daemon to not allow unattended or automatic login to the system. Add or edit the following lines in the "/etc/ssh/sshd_config" file: @@ -522,7 +2608,11 @@ PermitUserEnvironment no Restart the SSH daemon for the changes to take effect: -$ sudo systemctl restart sshd.serviceVerify that unattended or automatic login via SSH is disabled with the following command: +$ sudo systemctl restart sshd.service + + + + Verify that unattended or automatic login via SSH is disabled with the following command: $ egrep -r '(Permit(.*?)(Passwords|Environment))' /etc/ssh/sshd_config @@ -530,24 +2620,66 @@ PermitEmptyPasswords no PermitUserEnvironment no If "PermitEmptyPasswords" or "PermitUserEnvironment" keywords are not set to "no", are missing completely, or are commented out, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>UBTU-20-010048The Ubuntu operating system must be configured so that remote X connections are disabled, unless to fulfill documented and validated mission requirements.<VulnDiscussion>The security risk of using X11 forwarding is that the client's X11 display server may be exposed to attack when the SSH client requests forwarding. A System Administrator may have a stance in which they want to protect clients that may expose themselves to attack by unwittingly requesting X11 forwarding, which can warrant a ''no'' setting. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000480-GPOS-00227 + <GroupDescription></GroupDescription> + + UBTU-20-010048 + The Ubuntu operating system must be configured so that remote X connections are disabled, unless to fulfill documented and validated mission requirements. + <VulnDiscussion>The security risk of using X11 forwarding is that the client's X11 display server may be exposed to attack when the SSH client requests forwarding. A System Administrator may have a stance in which they want to protect clients that may expose themselves to attack by unwittingly requesting X11 forwarding, which can warrant a ''no'' setting. X11 forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the user's X11 authorization database) can access the local X11 display through the forwarded connection. An attacker may then be able to perform activities such as keystroke monitoring if the ForwardX11Trusted option is also enabled. -If X11 services are not required for the system's intended function, they should be disabled or restricted as appropriate to the system’s needs.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11Forwarding" keyword and set its value to "no" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): +If X11 services are not required for the system's intended function, they should be disabled or restricted as appropriate to the system’s needs.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11Forwarding" keyword and set its value to "no" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): X11Forwarding no Restart the SSH daemon for the changes to take effect: -$ sudo systemctl restart sshd.serviceVerify that X11Forwarding is disabled with the following command: +$ sudo systemctl restart sshd.service + + + + Verify that X11Forwarding is disabled with the following command: $ grep -ir x11forwarding /etc/ssh/sshd_config* | grep -v "^#" X11Forwarding no If the "X11Forwarding" keyword is set to "yes" and is not documented with the Information System Security Officer (ISSO) as an operational requirement or is missing, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>UBTU-20-010049The Ubuntu operating system SSH daemon must prevent remote hosts from connecting to the proxy display.<VulnDiscussion>When X11 forwarding is enabled, there may be additional exposure to the server and client displays if the sshd proxy display is configured to listen on the wildcard address. By default, sshd binds the forwarding server to the loopback address and sets the hostname part of the DISPLAY environment variable to localhost. This prevents remote hosts from connecting to the proxy display.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the SSH daemon to prevent remote hosts from connecting to the proxy display. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000480-GPOS-00227 + <GroupDescription></GroupDescription> + + UBTU-20-010049 + The Ubuntu operating system SSH daemon must prevent remote hosts from connecting to the proxy display. + <VulnDiscussion>When X11 forwarding is enabled, there may be additional exposure to the server and client displays if the sshd proxy display is configured to listen on the wildcard address. By default, sshd binds the forwarding server to the loopback address and sets the hostname part of the DISPLAY environment variable to localhost. This prevents remote hosts from connecting to the proxy display.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the SSH daemon to prevent remote hosts from connecting to the proxy display. Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11UseLocalhost" keyword and set its value to "yes" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): @@ -555,7 +2687,11 @@ X11UseLocalhost yes Restart the SSH daemon for the changes to take effect: -$ sudo systemctl restart sshd.serviceVerify the SSH daemon prevents remote hosts from connecting to the proxy display. +$ sudo systemctl restart sshd.service + + + + Verify the SSH daemon prevents remote hosts from connecting to the proxy display. Check the SSH X11UseLocalhost setting with the following command: @@ -563,91 +2699,249 @@ $ sudo grep -ir x11uselocalhost /etc/ssh/sshd_config* X11UseLocalhost yes If the "X11UseLocalhost" keyword is set to "no", is missing, or is commented out, this is a finding. -If conflicting results are returned, this is a finding.SRG-OS-000069-GPOS-00037<GroupDescription></GroupDescription>UBTU-20-010050The Ubuntu operating system must enforce password complexity by requiring that at least one upper-case character be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. - -Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000192Add or update the "/etc/security/pwquality.conf" file to contain the "ucredit" parameter: - -ucredit=-1Verify the Ubuntu operating system enforces password complexity by requiring that at least one upper-case character be used. +If conflicting results are returned, this is a finding. + + + + + SRG-OS-000069-GPOS-00037 + <GroupDescription></GroupDescription> + + UBTU-20-010050 + The Ubuntu operating system must enforce password complexity by requiring that at least one upper-case character be used. + <VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000192 + Add or update the "/etc/security/pwquality.conf" file to contain the "ucredit" parameter: ucredit=-1 + + + + Verify the Ubuntu operating system enforces password complexity by requiring that at least one upper-case character be used. Determine if the field "ucredit" is set in the "/etc/security/pwquality.conf" file with the following command: -$ grep -i "ucredit" /etc/security/pwquality.conf -ucredit=-1 - -If the "ucredit" parameter is greater than "-1" or is commented out, this is a finding.SRG-OS-000070-GPOS-00038<GroupDescription></GroupDescription>UBTU-20-010051The Ubuntu operating system must enforce password complexity by requiring that at least one lower-case character be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. - -Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000193Add or update the "/etc/security/pwquality.conf" file to contain the "lcredit" parameter: - -lcredit=-1Verify the Ubuntu operating system enforces password complexity by requiring that at least one lower-case character be used. +$ grep -i "ucredit" /etc/security/pwquality.conf ucredit=-1 + +If the "ucredit" parameter is greater than "-1" or is commented out, this is a finding. + + + + + SRG-OS-000070-GPOS-00038 + <GroupDescription></GroupDescription> + + UBTU-20-010051 + The Ubuntu operating system must enforce password complexity by requiring that at least one lower-case character be used. + <VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000193 + Add or update the "/etc/security/pwquality.conf" file to contain the "lcredit" parameter: lcredit=-1 + + + + Verify the Ubuntu operating system enforces password complexity by requiring that at least one lower-case character be used. Determine if the field "lcredit" is set in the "/etc/security/pwquality.conf" file with the following command: -$ grep -i "lcredit" /etc/security/pwquality.conf -lcredit=-1 - -If the "lcredit" parameter is greater than "-1" or is commented out, this is a finding.SRG-OS-000071-GPOS-00039<GroupDescription></GroupDescription>UBTU-20-010052The Ubuntu operating system must enforce password complexity by requiring that at least one numeric character be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. - -Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000194Configure the Ubuntu operating system to enforce password complexity by requiring that at least one numeric character be used. - -Add or update the "/etc/security/pwquality.conf" file to contain the "dcredit" parameter: - -dcredit=-1Verify the Ubuntu operating system enforces password complexity by requiring that at least one numeric character be used. +$ grep -i "lcredit" /etc/security/pwquality.conf lcredit=-1 + +If the "lcredit" parameter is greater than "-1" or is commented out, this is a finding. + + + + + SRG-OS-000071-GPOS-00039 + <GroupDescription></GroupDescription> + + UBTU-20-010052 + The Ubuntu operating system must enforce password complexity by requiring that at least one numeric character be used. + <VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000194 + Configure the Ubuntu operating system to enforce password complexity by requiring that at least one numeric character be used. + +Add or update the "/etc/security/pwquality.conf" file to contain the "dcredit" parameter: dcredit=-1 + + + + Verify the Ubuntu operating system enforces password complexity by requiring that at least one numeric character be used. Determine if the field "dcredit" is set in the "/etc/security/pwquality.conf" file with the following command: -$ grep -i "dcredit" /etc/security/pwquality.conf -dcredit=-1 +$ grep -i "dcredit" /etc/security/pwquality.conf dcredit=-1 -If the "dcredit" parameter is greater than "-1" or is commented out, this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>UBTU-20-010053The Ubuntu operating system must require the change of at least 8 characters when passwords are changed.<VulnDiscussion> If the operating system allows the user to consecutively reuse extensive portions of passwords, this increases the chances of password compromise by increasing the window of opportunity for attempts at guessing and brute-force attacks. +If the "dcredit" parameter is greater than "-1" or is commented out, this is a finding. + + + + + SRG-OS-000072-GPOS-00040 + <GroupDescription></GroupDescription> + + UBTU-20-010053 + The Ubuntu operating system must require the change of at least 8 characters when passwords are changed. + <VulnDiscussion> If the operating system allows the user to consecutively reuse extensive portions of passwords, this increases the chances of password compromise by increasing the window of opportunity for attempts at guessing and brute-force attacks. The number of changed characters refers to the number of changes required with respect to the total number of positions in the current password. In other words, characters may be the same within the two passwords; however, the positions of the like characters must be different. -If the password length is an odd number then number of changed characters must be rounded up. For example, a password length of 15 characters must require the change of at least 8 characters.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000195Configure the Ubuntu operating system to require the change of at least eight characters when passwords are changed. - -Add or update the "/etc/security/pwquality.conf" file to include the "difok=8" parameter: - -difok=8Verify the Ubuntu operating system requires the change of at least eight characters when passwords are changed. +If the password length is an odd number then number of changed characters must be rounded up. For example, a password length of 15 characters must require the change of at least 8 characters.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000195 + Configure the Ubuntu operating system to require the change of at least eight characters when passwords are changed. + +Add or update the "/etc/security/pwquality.conf" file to include the "difok=8" parameter: difok=8 + + + + Verify the Ubuntu operating system requires the change of at least eight characters when passwords are changed. Determine if the field "difok" is set in the "/etc/security/pwquality.conf" file with the following command: -$ grep -i "difok" /etc/security/pwquality.conf -difok=8 - -If the "difok" parameter is less than "8" or is commented out, this is a finding.SRG-OS-000078-GPOS-00046<GroupDescription></GroupDescription>UBTU-20-010054The Ubuntu operating system must enforce a minimum 15-character password length.<VulnDiscussion>The shorter the password, the lower the number of possible combinations that need to be tested before the password is compromised. - -Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. Use of more characters in a password helps to exponentially increase the time and/or resources required to compromise the password.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000205Configure the Ubuntu operating system to enforce a minimum 15-character password length. - -Add or modify the "minlen" parameter value to the "/etc/security/pwquality.conf" file: - -minlen=15Verify the pwquality configuration file enforces a minimum 15-character password length by running the following command: - -$ grep -i minlen /etc/security/pwquality.conf -minlen=15 - -If "minlen" parameter value is not "15" or higher or is commented out, this is a finding.SRG-OS-000266-GPOS-00101<GroupDescription></GroupDescription>UBTU-20-010055The Ubuntu operating system must enforce password complexity by requiring that at least one special character be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity or strength is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. +$ grep -i "difok" /etc/security/pwquality.conf difok=8 + +If the "difok" parameter is less than "8" or is commented out, this is a finding. + + + + + SRG-OS-000078-GPOS-00046 + <GroupDescription></GroupDescription> + + UBTU-20-010054 + The Ubuntu operating system must enforce a minimum 15-character password length. + <VulnDiscussion>The shorter the password, the lower the number of possible combinations that need to be tested before the password is compromised. + +Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. Use of more characters in a password helps to exponentially increase the time and/or resources required to compromise the password.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000205 + Configure the Ubuntu operating system to enforce a minimum 15-character password length. + +Add or modify the "minlen" parameter value to the "/etc/security/pwquality.conf" file: minlen=15 + + + + Verify the pwquality configuration file enforces a minimum 15-character password length by running the following command: + +$ grep -i minlen /etc/security/pwquality.conf minlen=15 + +If "minlen" parameter value is not "15" or higher or is commented out, this is a finding. + + + + + SRG-OS-000266-GPOS-00101 + <GroupDescription></GroupDescription> + + UBTU-20-010055 + The Ubuntu operating system must enforce password complexity by requiring that at least one special character be used. + <VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity or strength is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password complexity is one factor in determining how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. -Special characters are those characters that are not alphanumeric. Examples include: ~ ! @ # $ % ^ *.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001619Configure the Ubuntu operating system to enforce password complexity by requiring that at least one special character be used. - -Add or update the following line in the "/etc/security/pwquality.conf" file to include the "ocredit=-1" parameter: - -ocredit=-1Determine if the field "ocredit" is set in the "/etc/security/pwquality.conf" file with the following command: - -$ grep -i "ocredit" /etc/security/pwquality.conf -ocredit=-1 - -If the "ocredit" parameter is greater than "-1" or is commented out, this is a finding.SRG-OS-000480-GPOS-00225<GroupDescription></GroupDescription>UBTU-20-010056The Ubuntu operating system must prevent the use of dictionary words for passwords.<VulnDiscussion>If the Ubuntu operating system allows the user to select passwords based on dictionary words, then this increases the chances of password compromise by increasing the opportunity for successful guesses and brute-force attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the Ubuntu operating system to prevent the use of dictionary words for passwords. - -Add or update the following line in the "/etc/security/pwquality.conf" file to include the "dictcheck=1" parameter: - -dictcheck=1Verify the Ubuntu operating system uses the "cracklib" library to prevent the use of dictionary words with the following command: - -$ grep dictcheck /etc/security/pwquality.conf - -dictcheck=1 - -If the "dictcheck" parameter is not set to "1" or is commented out, this is a finding.SRG-OS-000480-GPOS-00225<GroupDescription></GroupDescription>UBTU-20-010057The Ubuntu operating system must be configured so that when passwords are changed or new passwords are established, pwquality must be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the operating system to use "pwquality" to enforce password complexity rules. +Special characters are those characters that are not alphanumeric. Examples include: ~ ! @ # $ % ^ *.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001619 + Configure the Ubuntu operating system to enforce password complexity by requiring that at least one special character be used. + +Add or update the following line in the "/etc/security/pwquality.conf" file to include the "ocredit=-1" parameter: ocredit=-1 + + + + Determine if the field "ocredit" is set in the "/etc/security/pwquality.conf" file with the following command: + +$ grep -i "ocredit" /etc/security/pwquality.conf ocredit=-1 + +If the "ocredit" parameter is greater than "-1" or is commented out, this is a finding. + + + + + SRG-OS-000480-GPOS-00225 + <GroupDescription></GroupDescription> + + UBTU-20-010056 + The Ubuntu operating system must prevent the use of dictionary words for passwords. + <VulnDiscussion>If the Ubuntu operating system allows the user to select passwords based on dictionary words, then this increases the chances of password compromise by increasing the opportunity for successful guesses and brute-force attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the Ubuntu operating system to prevent the use of dictionary words for passwords. + +Add or update the following line in the "/etc/security/pwquality.conf" file to include the "dictcheck=1" parameter: dictcheck=1 + + + + Verify the Ubuntu operating system uses the "cracklib" library to prevent the use of dictionary words with the following command: + +$ grep dictcheck /etc/security/pwquality.conf dictcheck=1 + +If the "dictcheck" parameter is not set to "1" or is commented out, this is a finding. + + + + + SRG-OS-000480-GPOS-00225 + <GroupDescription></GroupDescription> + + UBTU-20-010057 + The Ubuntu operating system must be configured so that when passwords are changed or new passwords are established, pwquality must be used. + <VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the operating system to use "pwquality" to enforce password complexity rules. Install the "pam_pwquality" package by using the following command: @@ -661,7 +2955,11 @@ Add the following line to "/etc/pam.d/common-password" (or modify the line to ha password requisite pam_pwquality.so retry=3 -Note: The value of "retry" should be between "1" and "3".Verify the Ubuntu operating system has the "libpam-pwquality" package installed by running the following command: +Note: The value of "retry" should be between "1" and "3". + + + + Verify the Ubuntu operating system has the "libpam-pwquality" package installed by running the following command: $ dpkg -l libpam-pwquality @@ -687,13 +2985,32 @@ password requisite pam_pwquality.so retry=3 If no output is returned or the line is commented out, this is a finding. -If the value of "retry" is set to "0" or greater than "3", this is a finding.SRG-OS-000066-GPOS-00034<GroupDescription></GroupDescription>UBTU-20-010060The Ubuntu operating system, for PKI-based authentication, must validate certificates by constructing a certification path (which includes status information) to an accepted trust anchor.<VulnDiscussion>Without path validation, an informed trust decision by the relying party cannot be made when presented with any certificate not already explicitly trusted. +If the value of "retry" is set to "0" or greater than "3", this is a finding. + + + + + SRG-OS-000066-GPOS-00034 + <GroupDescription></GroupDescription> + + UBTU-20-010060 + The Ubuntu operating system, for PKI-based authentication, must validate certificates by constructing a certification path (which includes status information) to an accepted trust anchor. + <VulnDiscussion>Without path validation, an informed trust decision by the relying party cannot be made when presented with any certificate not already explicitly trusted. A trust anchor is an authoritative entity represented via a public key and associated data. It is used in the context of public key infrastructures, X.509 digital certificates, and DNSSEC. When there is a chain of trust, usually the top entity to be trusted becomes the trust anchor; it can be, for example, a Certification Authority (CA). A certification path starts with the subject certificate and proceeds through a number of intermediate certificates up to a trusted root certificate, typically issued by a trusted CA. -This requirement verifies that a certification path to an accepted trust anchor is used for certificate validation and that the path includes status information. Path validation is necessary for a relying party to make an informed trust decision when presented with any certificate not already explicitly trusted. Status information for certification paths includes certificate revocation lists or online certificate status protocol responses. Validation of the certificate status information is out of scope for this requirement.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000185Configure the Ubuntu operating system, for PKI-based authentication, to validate certificates by constructing a certification path to an accepted trust anchor. +This requirement verifies that a certification path to an accepted trust anchor is used for certificate validation and that the path includes status information. Path validation is necessary for a relying party to make an informed trust decision when presented with any certificate not already explicitly trusted. Status information for certification paths includes certificate revocation lists or online certificate status protocol responses. Validation of the certificate status information is out of scope for this requirement.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000185 + Configure the Ubuntu operating system, for PKI-based authentication, to validate certificates by constructing a certification path to an accepted trust anchor. Determine which pkcs11 module is being used via the "use_pkcs11_module" in "/etc/pam_pkcs11/pam_pkcs11.conf" and ensure "ca" is enabled in "cert_policy". @@ -701,7 +3018,11 @@ Add or update the "cert_policy" to ensure "ca" is enabled: cert_policy = ca,signature,ocsp_on; -If the system is missing an "/etc/pam_pkcs11/" directory and an "/etc/pam_pkcs11/pam_pkcs11.conf", find an example to copy into place and modify accordingly at "/usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz".Verify the Ubuntu operating system, for PKI-based authentication, has valid certificates by constructing a certification path to an accepted trust anchor. +If the system is missing an "/etc/pam_pkcs11/" directory and an "/etc/pam_pkcs11/pam_pkcs11.conf", find an example to copy into place and modify accordingly at "/usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz". + + + + Verify the Ubuntu operating system, for PKI-based authentication, has valid certificates by constructing a certification path to an accepted trust anchor. Determine which pkcs11 module is being used via the "use_pkcs11_module" in "/etc/pam_pkcs11/pam_pkcs11.conf" and then ensure "ca" is enabled in "cert_policy" with the following command: @@ -709,7 +3030,17 @@ $ sudo grep use_pkcs11_module /etc/pam_pkcs11/pam_pkcs11.conf | awk '/pkcs11_mod cert_policy = ca,signature,ocsp_on; -If "cert_policy" is not set to "ca" or the line is commented out, this is a finding.SRG-OS-000375-GPOS-00160<GroupDescription></GroupDescription>UBTU-20-010063The Ubuntu operating system must implement multifactor authentication for remote access to privileged accounts in such a way that one of the factors is provided by a device separate from the system gaining access.<VulnDiscussion>Using an authentication device, such as a CAC or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. +If "cert_policy" is not set to "ca" or the line is commented out, this is a finding. + + + + + SRG-OS-000375-GPOS-00160 + <GroupDescription></GroupDescription> + + UBTU-20-010063 + The Ubuntu operating system must implement multifactor authentication for remote access to privileged accounts in such a way that one of the factors is provided by a device separate from the system gaining access. + <VulnDiscussion>Using an authentication device, such as a CAC or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD Common Access Card. @@ -717,23 +3048,59 @@ A privileged account is defined as an information system account with authorizat Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. -This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001948Configure the Ubuntu operating system to implement multifactor authentication by installing the required packages. +This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001948 + Configure the Ubuntu operating system to implement multifactor authentication by installing the required packages. Install the "libpam-pkcs11" package on the system with the following command: -$ sudo apt install libpam-pkcs11Verify the Ubuntu operating system has the packages required for multifactor authentication installed with the following commands: +$ sudo apt install libpam-pkcs11 + + + + Verify the Ubuntu operating system has the packages required for multifactor authentication installed with the following commands: $ dpkg -l | grep libpam-pkcs11 ii libpam-pkcs11 0.6.8-4 amd64 Fully featured PAM module for using PKCS#11 smart cards -If the "libpam-pkcs11" package is not installed, this is a finding.SRG-OS-000376-GPOS-00161<GroupDescription></GroupDescription>UBTU-20-010064The Ubuntu operating system must accept Personal Identity Verification (PIV) credentials.<VulnDiscussion>The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access. - -DoD has mandated the use of the CAC to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001953Configure the Ubuntu operating system to accept PIV credentials. +If the "libpam-pkcs11" package is not installed, this is a finding. + + + + + SRG-OS-000376-GPOS-00161 + <GroupDescription></GroupDescription> + + UBTU-20-010064 + The Ubuntu operating system must accept Personal Identity Verification (PIV) credentials. + <VulnDiscussion>The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access. + +DoD has mandated the use of the CAC to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001953 + Configure the Ubuntu operating system to accept PIV credentials. Install the "opensc-pkcs11" package using the following command: -$ sudo apt-get install opensc-pkcs11Verify the Ubuntu operating system accepts PIV credentials. +$ sudo apt-get install opensc-pkcs11 + + + + Verify the Ubuntu operating system accepts PIV credentials. Verify the "opensc-pcks11" package is installed on the system with the following command: @@ -741,11 +3108,34 @@ $ dpkg -l | grep opensc-pkcs11 ii opensc-pkcs11:amd64 0.15.0-1Ubuntu1 amd64 Smart card utilities with support for PKCS#15 compatible cards -If the "opensc-pcks11" package is not installed, this is a finding.SRG-OS-000377-GPOS-00162<GroupDescription></GroupDescription>UBTU-20-010065The Ubuntu operating system must electronically verify Personal Identity Verification (PIV) credentials.<VulnDiscussion>The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access. - -DoD has mandated the use of the CAC to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001954Configure the Ubuntu operating system to do certificate status checking for multifactor authentication. - -Modify all of the "cert_policy" lines in "/etc/pam_pkcs11/pam_pkcs11.conf" to include "ocsp_on".Verify the Ubuntu operating system electronically verifies PIV credentials. +If the "opensc-pcks11" package is not installed, this is a finding. + + + + + SRG-OS-000377-GPOS-00162 + <GroupDescription></GroupDescription> + + UBTU-20-010065 + The Ubuntu operating system must electronically verify Personal Identity Verification (PIV) credentials. + <VulnDiscussion>The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access. + +DoD has mandated the use of the CAC to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001954 + Configure the Ubuntu operating system to do certificate status checking for multifactor authentication. + +Modify all of the "cert_policy" lines in "/etc/pam_pkcs11/pam_pkcs11.conf" to include "ocsp_on". + + + + Verify the Ubuntu operating system electronically verifies PIV credentials. Verify that certificate status checking for multifactor authentication is implemented with the following command: @@ -753,13 +3143,36 @@ $ sudo grep use_pkcs11_module /etc/pam_pkcs11/pam_pkcs11.conf | awk '/pkcs11_mod cert_policy = ca,signature,ocsp_on; -If "cert_policy" is not set to "ocsp_on", or the line is commented out, this is a finding.SRG-OS-000384-GPOS-00167<GroupDescription></GroupDescription>UBTU-20-010066The Ubuntu operating system for PKI-based authentication, must implement a local cache of revocation data in case of the inability to access revocation information via the network.<VulnDiscussion>Without configuring a local cache of revocation data, there is the potential to allow access to users who are no longer authorized (users with revoked certificates).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001991Configure the Ubuntu operating system, for PKI-based authentication, to use local revocation data when unable to access the network to obtain it remotely. +If "cert_policy" is not set to "ocsp_on", or the line is commented out, this is a finding. + + + + + SRG-OS-000384-GPOS-00167 + <GroupDescription></GroupDescription> + + UBTU-20-010066 + The Ubuntu operating system for PKI-based authentication, must implement a local cache of revocation data in case of the inability to access revocation information via the network. + <VulnDiscussion>Without configuring a local cache of revocation data, there is the potential to allow access to users who are no longer authorized (users with revoked certificates).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001991 + Configure the Ubuntu operating system, for PKI-based authentication, to use local revocation data when unable to access the network to obtain it remotely. Add or update the "cert_policy" option in "/etc/pam/_pkcs11/pam_pkcs11.conf" to include "crl_auto" or "crl_offline". cert_policy = ca,signature,ocsp_on, crl_auto; -If the system is missing an "/etc/pam_pkcs11/" directory and an "/etc/pam_pkcs11/pam_pkcs11.conf", find an example to copy into place and modify accordingly at "/usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz".Verify the Ubuntu operating system, for PKI-based authentication, uses local revocation data when unable to access it from the network. +If the system is missing an "/etc/pam_pkcs11/" directory and an "/etc/pam_pkcs11/pam_pkcs11.conf", find an example to copy into place and modify accordingly at "/usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz". + + + + Verify the Ubuntu operating system, for PKI-based authentication, uses local revocation data when unable to access it from the network. Verify that "crl_offline" or "crl_auto" is part of the "cert_policy" definition in "/etc/pam_pkcs11/pam_pkcs11.conf" using the following command: @@ -767,26 +3180,70 @@ Verify that "crl_offline" or "crl_auto" is part of the "cert_policy" definition cert_policy = ca,signature,ocsp_on,crl_auto; -If "cert_policy" is not set to include "crl_auto" or "crl_offline", this is a finding.SRG-OS-000077-GPOS-00045<GroupDescription></GroupDescription>UBTU-20-010070The Ubuntu operating system must prohibit password reuse for a minimum of five generations.<VulnDiscussion>Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. If the information system or application allows the user to consecutively reuse their password when that password has exceeded its defined lifetime, the end result is a password that is not changed as per policy requirements. - -Satisfies: SRG-OS-000077-GPOS-00045, SRG-OS-000073-GPOS-00041</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000196CCI-000200Configure the Ubuntu operating system to prevent passwords from being reused for a minimum of five generations. +If "cert_policy" is not set to include "crl_auto" or "crl_offline", this is a finding. + + + + + SRG-OS-000077-GPOS-00045 + <GroupDescription></GroupDescription> + + UBTU-20-010070 + The Ubuntu operating system must prohibit password reuse for a minimum of five generations. + <VulnDiscussion>Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. If the information system or application allows the user to consecutively reuse their password when that password has exceeded its defined lifetime, the end result is a password that is not changed as per policy requirements. + +Satisfies: SRG-OS-000077-GPOS-00045, SRG-OS-000073-GPOS-00041</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000196 + CCI-000200 + Configure the Ubuntu operating system to prevent passwords from being reused for a minimum of five generations. Add or modify the "remember" parameter value to the following line in "/etc/pam.d/common-password" file: -password [success=1 default=ignore] pam_unix.so obscure sha512 shadow remember=5 rounds=5000Verify the Ubuntu operating system prevents passwords from being reused for a minimum of five generations by running the following command: +password [success=1 default=ignore] pam_unix.so obscure sha512 shadow remember=5 rounds=5000 + + + + Verify the Ubuntu operating system prevents passwords from being reused for a minimum of five generations by running the following command: $ grep -i remember /etc/pam.d/common-password password [success=1 default=ignore] pam_unix.so obscure sha512 shadow remember=5 rounds=5000 -If the "remember" parameter value is not greater than or equal to "5", is commented out, or is not set at all, this is a finding.SRG-OS-000329-GPOS-00128<GroupDescription></GroupDescription>UBTU-20-010072The Ubuntu operating system must automatically lock an account until the locked account is released by an administrator when three unsuccessful logon attempts have been made.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-forcing, is reduced. Limits are imposed by locking the account. - -Satisfies: SRG-OS-000329-GPOS-00128, SRG-OS-000021-GPOS-00005</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000044CCI-002238Configure the Ubuntu operating system to utilize the "pam_faillock" module. +If the "remember" parameter value is not greater than or equal to "5", is commented out, or is not set at all, this is a finding. + + + + + SRG-OS-000329-GPOS-00128 + <GroupDescription></GroupDescription> + + UBTU-20-010072 + The Ubuntu operating system must automatically lock an account until the locked account is released by an administrator when three unsuccessful logon attempts have been made. + <VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-forcing, is reduced. Limits are imposed by locking the account. + +Satisfies: SRG-OS-000329-GPOS-00128, SRG-OS-000021-GPOS-00005</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000044 + CCI-002238 + Configure the Ubuntu operating system to utilize the "pam_faillock" module. Edit the /etc/pam.d/common-auth file. Add the following lines below the "auth" definition for pam_unix.so: -auth [default=die] pam_faillock.so authfail +auth [default=die] pam_faillock.so authfail auth sufficient pam_faillock.so authsucc Configure the "pam_faillock" module to use the following options: @@ -796,10 +3253,14 @@ audit silent deny = 3 fail_interval = 900 -unlock_time = 0Verify that the Ubuntu operating system utilizes the "pam_faillock" module with the following command: +unlock_time = 0 + + + + Verify that the Ubuntu operating system utilizes the "pam_faillock" module with the following command: $ grep faillock /etc/pam.d/common-auth -auth [default=die] pam_faillock.so authfail +auth [default=die] pam_faillock.so authfail auth sufficient pam_faillock.so authsucc If the pam_faillock.so module is not present in the "/etc/pam.d/common-auth" file, this is a finding. @@ -817,11 +3278,30 @@ If the "silent" keyword is missing or commented out, this is a finding. If the "audit" keyword is missing or commented out, this is a finding. If the "deny" keyword is missing, commented out, or set to a value greater than 3, this is a finding. If the "fail_interval" keyword is missing, commented out, or set to a value greater than 900, this is a finding. -If the "unlock_time" keyword is missing, commented out, or not set to 0, this is a finding.SRG-OS-000446-GPOS-00200<GroupDescription></GroupDescription>UBTU-20-010074The Ubuntu operating system must be configured so that the script which runs each 30 days or less to check file integrity is the default one.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. +If the "unlock_time" keyword is missing, commented out, or not set to 0, this is a finding. + + + + + SRG-OS-000446-GPOS-00200 + <GroupDescription></GroupDescription> + + UBTU-20-010074 + The Ubuntu operating system must be configured so that the script which runs each 30 days or less to check file integrity is the default one. + <VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. Notifications provided by information systems include, for example, electronic alerts to System Administrators, messages to local computer consoles, and/or hardware indications, such as lights. -This requirement applies to the Ubuntu operating system performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002699The cron file for AIDE is fairly complex as it creates the report. This file is installed with the "aide-common" package, and the default can be restored by copying it from the package: +This requirement applies to the Ubuntu operating system performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002699 + The cron file for AIDE is fairly complex as it creates the report. This file is installed with the "aide-common" package, and the default can be restored by copying it from the package: Download the original package to the /tmp dir: @@ -833,7 +3313,11 @@ $ dpkg-deb --fsys-tarfile /tmp/aide-common_*.deb | sudo tar -x ./usr/share/aide/ Copy it to the cron.daily directory: -$ sudo cp -f /usr/share/aide/config/cron.daily/aide /etc/cron.daily/aideVerify that the Advanced Intrusion Detection Environment (AIDE) default script used to check file integrity each 30 days or less is unchanged. +$ sudo cp -f /usr/share/aide/config/cron.daily/aide /etc/cron.daily/aide + + + + Verify that the Advanced Intrusion Detection Environment (AIDE) default script used to check file integrity each 30 days or less is unchanged. Download the original aide-common package in the /tmp directory: @@ -849,21 +3333,68 @@ Compare with the SHA1 of the file in the daily or monthly cron directory: $ sha1sum /etc/cron.{daily,monthly}/aide 2>/dev/null 32958374f18871e3f7dda27a58d721f471843e26 /etc/cron.daily/aide -If there is no AIDE script file in the cron directories, or the SHA1 value of at least one file in the daily or monthly cron directory does not match the SHA1 of the original, this is a finding.SRG-OS-000480-GPOS-00226<GroupDescription></GroupDescription>UBTU-20-010075The Ubuntu operating system must enforce a delay of at least 4 seconds between logon prompts following a failed logon attempt.<VulnDiscussion>Limiting the number of logon attempts over a certain time interval reduces the chances that an unauthorized user may gain access to an account.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the Ubuntu operating system to enforce a delay of at least 4 seconds between logon prompts following a failed logon attempt. +If there is no AIDE script file in the cron directories, or the SHA1 value of at least one file in the daily or monthly cron directory does not match the SHA1 of the original, this is a finding. + + + + + SRG-OS-000480-GPOS-00226 + <GroupDescription></GroupDescription> + + UBTU-20-010075 + The Ubuntu operating system must enforce a delay of at least 4 seconds between logon prompts following a failed logon attempt. + <VulnDiscussion>Limiting the number of logon attempts over a certain time interval reduces the chances that an unauthorized user may gain access to an account.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the Ubuntu operating system to enforce a delay of at least 4 seconds between logon prompts following a failed logon attempt. Edit the file "/etc/pam.d/common-auth" and set the parameter "pam_faildelay" to a value of 4000000 or greater: -auth required pam_faildelay.so delay=4000000Verify the Ubuntu operating system enforces a delay of at least 4 seconds between logon prompts following a failed logon attempt with the following command: +auth required pam_faildelay.so delay=4000000 + + + + Verify the Ubuntu operating system enforces a delay of at least 4 seconds between logon prompts following a failed logon attempt with the following command: $ grep pam_faildelay /etc/pam.d/common-auth -auth required pam_faildelay.so delay=4000000 +auth required pam_faildelay.so delay=4000000 -If the line is not present or is commented out, this is a finding.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>UBTU-20-010100The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/passwd.<VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. +If the line is not present or is commented out, this is a finding. + + + + + SRG-OS-000004-GPOS-00004 + <GroupDescription></GroupDescription> + + UBTU-20-010100 + The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/passwd. + <VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. To address access requirements, many operating systems may be integrated with enterprise level authentication/access/auditing mechanisms that meet or exceed access control policy requirements. -Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000463-GPOS-00207, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000018CCI-000172CCI-001403CCI-001404CCI-001405CCI-002130Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". +Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000463-GPOS-00207, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000018 + CCI-000172 + CCI-001403 + CCI-001404 + CCI-001405 + CCI-002130 + Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". Add or update the following rule to "/etc/audit/rules.d/stig.rules": @@ -871,7 +3402,11 @@ Add or update the following rule to "/etc/audit/rules.d/stig.rules": To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". Check the currently configured audit rules with the following command: @@ -881,11 +3416,35 @@ $ sudo auditctl -l | grep passwd If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>UBTU-20-010101The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/group.<VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000004-GPOS-00004 + <GroupDescription></GroupDescription> + + UBTU-20-010101 + The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/group. + <VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. To address access requirements, many operating systems may be integrated with enterprise level authentication/access/auditing mechanisms that meet or exceed access control policy requirements. -Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000018CCI-000172CCI-001403CCI-001404CCI-001405CCI-002130Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". +Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000018 + CCI-000172 + CCI-001403 + CCI-001404 + CCI-001405 + CCI-002130 + Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". Add or update the following rule to "/etc/audit/rules.d/stig.rules": @@ -893,7 +3452,11 @@ Add or update the following rule to "/etc/audit/rules.d/stig.rules": To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". Check the currently configured audit rules with the following command: @@ -903,11 +3466,35 @@ $ sudo auditctl -l | grep group If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>UBTU-20-010102The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/shadow.<VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000004-GPOS-00004 + <GroupDescription></GroupDescription> + + UBTU-20-010102 + The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/shadow. + <VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. To address access requirements, many operating systems may be integrated with enterprise level authentication/access/auditing mechanisms that meet or exceed access control policy requirements. -Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000018CCI-000172CCI-001403CCI-001404CCI-001405CCI-002130Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". +Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000018 + CCI-000172 + CCI-001403 + CCI-001404 + CCI-001405 + CCI-002130 + Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". Add or update the following rule to "/etc/audit/rules.d/stig.rules": @@ -915,7 +3502,11 @@ Add or update the following rule to "/etc/audit/rules.d/stig.rules": To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". Check the currently configured audit rules with the following command: @@ -925,11 +3516,34 @@ $ sudo auditctl -l | grep shadow If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>UBTU-20-010103The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/gshadow.<VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000004-GPOS-00004 + <GroupDescription></GroupDescription> + + UBTU-20-010103 + The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/gshadow. + <VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. To address access requirements, many operating systems may be integrated with enterprise level authentication/access/auditing mechanisms that meet or exceed access control policy requirements. -Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172CCI-001403CCI-001404CCI-001405CCI-002130Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". +Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + CCI-001403 + CCI-001404 + CCI-001405 + CCI-002130 + Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". Add or update the following rule to "/etc/audit/rules.d/stig.rules": @@ -937,7 +3551,11 @@ Add or update the following rule to "/etc/audit/rules.d/stig.rules": To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". Check the currently configured audit rules with the following command: @@ -947,11 +3565,35 @@ $ sudo auditctl -l | grep gshadow If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>UBTU-20-010104The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/opasswd.<VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000004-GPOS-00004 + <GroupDescription></GroupDescription> + + UBTU-20-010104 + The Ubuntu operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/opasswd. + <VulnDiscussion>Once an attacker establishes access to a system, the attacker often attempts to create a persistent method of reestablishing access. One way to accomplish this is for the attacker to create an account. Auditing account creation actions provides logging that can be used for forensic purposes. To address access requirements, many operating systems may be integrated with enterprise level authentication/access/auditing mechanisms that meet or exceed access control policy requirements. -Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000018CCI-000172CCI-001403CCI-001404CCI-001405CCI-002130Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". +Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000458-GPOS-00203, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000018 + CCI-000172 + CCI-001403 + CCI-001404 + CCI-001405 + CCI-002130 + Configure the Ubuntu operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". Add or update the following rule to "/etc/audit/rules.d/stig.rules": @@ -959,7 +3601,11 @@ Add or update the following rule to "/etc/audit/rules.d/stig.rules": To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". Check the currently configured audit rules with the following command: @@ -969,11 +3615,30 @@ $ sudo auditctl -l | grep opasswd If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000046-GPOS-00022<GroupDescription></GroupDescription>UBTU-20-010117The Ubuntu operating system must alert the ISSO and SA (at a minimum) in the event of an audit processing failure.<VulnDiscussion>It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without this notification, the security personnel may be unaware of an impending failure of the audit capability, and system operation may be adversely affected. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000046-GPOS-00022 + <GroupDescription></GroupDescription> + + UBTU-20-010117 + The Ubuntu operating system must alert the ISSO and SA (at a minimum) in the event of an audit processing failure. + <VulnDiscussion>It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without this notification, the security personnel may be unaware of an impending failure of the audit capability, and system operation may be adversely affected. Audit processing failures include software/hardware errors, failures in the audit capturing mechanisms, and audit storage capacity being reached or exceeded. -This requirement applies to each audit data storage repository (i.e., distinct information system component where audit records are stored), the centralized audit storage capacity of organizations (i.e., all audit data storage repositories combined), or both.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000139Configure "auditd" service to notify the SA and ISSO in the event of an audit processing failure. +This requirement applies to each audit data storage repository (i.e., distinct information system component where audit records are stored), the centralized audit storage capacity of organizations (i.e., all audit data storage repositories combined), or both.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000139 + Configure "auditd" service to notify the SA and ISSO in the event of an audit processing failure. Edit the following line in "/etc/audit/auditd.conf" to ensure administrators are notified via email for those situations: @@ -983,19 +3648,42 @@ Note: Change "administrator_account" to an account for security personnel. Restart the "auditd" service so the changes take effect: -$ sudo systemctl restart auditd.serviceVerify that the SA and ISSO (at a minimum) are notified in the event of an audit processing failure with the following command: +$ sudo systemctl restart auditd.service + + + + Verify that the SA and ISSO (at a minimum) are notified in the event of an audit processing failure with the following command: $ sudo grep '^action_mail_acct = root' /etc/audit/auditd.conf action_mail_acct = <administrator_account> -If the value of the "action_mail_acct" keyword is not set to an accounts for security personnel, the "action_mail_acct" keyword is missing, or the returned line is commented out, this is a finding.SRG-OS-000047-GPOS-00023<GroupDescription></GroupDescription>UBTU-20-010118The Ubuntu operating system must shut down by default upon audit failure (unless availability is an overriding concern).<VulnDiscussion>It is critical that when the operating system is at risk of failing to process audit logs as required, it takes action to mitigate the failure. Audit processing failures include: software/hardware errors; failures in the audit capturing mechanisms; and audit storage capacity being reached or exceeded. Responses to audit failure depend upon the nature of the failure mode. +If the value of the "action_mail_acct" keyword is not set to an accounts for security personnel, the "action_mail_acct" keyword is missing, or the returned line is commented out, this is a finding. + + + + + SRG-OS-000047-GPOS-00023 + <GroupDescription></GroupDescription> + + UBTU-20-010118 + The Ubuntu operating system must shut down by default upon audit failure (unless availability is an overriding concern). + <VulnDiscussion>It is critical that when the operating system is at risk of failing to process audit logs as required, it takes action to mitigate the failure. Audit processing failures include: software/hardware errors; failures in the audit capturing mechanisms; and audit storage capacity being reached or exceeded. Responses to audit failure depend upon the nature of the failure mode. When availability is an overriding concern, other approved actions in response to an audit failure are as follows: 1) If the failure was caused by the lack of audit record storage capacity, the operating system must continue generating audit records if possible (automatically restarting the audit service if necessary), overwriting the oldest audit records in a first-in-first-out manner. -2) If audit records are sent to a centralized collection server and communication with this server is lost or the server fails, the operating system must queue audit records locally until communication is restored or until the audit records are retrieved manually. Upon restoration of the connection to the centralized collection server, action should be taken to synchronize the local audit data with the collection server.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000140Configure the Ubuntu operating system to shut down by default upon audit failure (unless availability is an overriding concern). +2) If audit records are sent to a centralized collection server and communication with this server is lost or the server fails, the operating system must queue audit records locally until communication is restored or until the audit records are retrieved manually. Upon restoration of the connection to the centralized collection server, action should be taken to synchronize the local audit data with the collection server.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000140 + Configure the Ubuntu operating system to shut down by default upon audit failure (unless availability is an overriding concern). Add or update the following line (depending on configuration, "disk_full_action" can be set to "SYSLOG", "HALT" or "SINGLE") in "/etc/audit/auditd.conf" file: @@ -1003,17 +3691,41 @@ disk_full_action = HALT Restart the "auditd" service so the changes take effect: -$ sudo systemctl restart auditd.serviceVerify the Ubuntu operating system takes the appropriate action when the audit storage volume is full with the following command: +$ sudo systemctl restart auditd.service + + + + Verify the Ubuntu operating system takes the appropriate action when the audit storage volume is full with the following command: $ sudo grep '^disk_full_action' /etc/audit/auditd.conf disk_full_action = HALT -If the value of the "disk_full_action" option is not "SYSLOG", "SINGLE", or "HALT", or the line is commented out, this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>UBTU-20-010122The Ubuntu operating system must be configured so that audit log files are not read or write-accessible by unauthorized users.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. +If the value of the "disk_full_action" option is not "SYSLOG", "SINGLE", or "HALT", or the line is commented out, this is a finding. + + + + + SRG-OS-000057-GPOS-00027 + <GroupDescription></GroupDescription> + + UBTU-20-010122 + The Ubuntu operating system must be configured so that audit log files are not read or write-accessible by unauthorized users. + <VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit operating system activity. -Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000162CCI-000163Configure the audit log files to have a mode of "0600" or less permissive. +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000162 + CCI-000163 + Configure the audit log files to have a mode of "0600" or less permissive. Determine where the audit logs are stored with the following command: @@ -1022,7 +3734,11 @@ log_file = /var/log/audit/audit.log Using the path of the directory containing the audit logs, configure the audit log files to have a mode of "0600" or less permissive by using the following command: -$ sudo chmod 0600 /var/log/audit/*Verify that the audit log files have a mode of "0600" or less permissive. +$ sudo chmod 0600 /var/log/audit/* + + + + Verify that the audit log files have a mode of "0600" or less permissive. Determine where the audit logs are stored with the following command: @@ -1034,11 +3750,30 @@ Using the path of the directory containing the audit logs, determine if the audi $ sudo stat -c "%n %a" /var/log/audit/* /var/log/audit/audit.log 600 -If the audit log files have a mode more permissive than "0600", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>UBTU-20-010123The Ubuntu operating system must be configured to permit only authorized users ownership of the audit log files.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. +If the audit log files have a mode more permissive than "0600", this is a finding. + + + + + SRG-OS-000057-GPOS-00027 + <GroupDescription></GroupDescription> + + UBTU-20-010123 + The Ubuntu operating system must be configured to permit only authorized users ownership of the audit log files. + <VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit operating system activity. -Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000162Configure the audit log directory and its underlying files to be owned by "root" user. +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000162 + Configure the audit log directory and its underlying files to be owned by "root" user. Determine where the audit logs are stored with the following command: @@ -1047,7 +3782,11 @@ log_file = /var/log/audit/audit.log Using the path of the directory containing the audit logs, configure the audit log files to be owned by "root" user by using the following command: -$ sudo chown root /var/log/audit/*Verify the audit log files are owned by "root" account. +$ sudo chown root /var/log/audit/* + + + + Verify the audit log files are owned by "root" account. Determine where the audit logs are stored with the following command: @@ -1059,18 +3798,41 @@ Using the path of the directory containing the audit logs, determine if the audi $ sudo stat -c "%n %U" /var/log/audit/* /var/log/audit/audit.log root -If the audit log files are owned by an user other than "root", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>UBTU-20-010124The Ubuntu operating system must permit only authorized groups ownership of the audit log files.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. +If the audit log files are owned by an user other than "root", this is a finding. + + + + + SRG-OS-000057-GPOS-00027 + <GroupDescription></GroupDescription> + + UBTU-20-010124 + The Ubuntu operating system must permit only authorized groups ownership of the audit log files. + <VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit operating system activity. -Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000162Configure the audit log directory and its underlying files to be owned by "root" group. +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000162 + Configure the audit log directory and its underlying files to be owned by "root" group. Set the "log_group" parameter of the audit configuration file to the "root" value so when a new log file is created, its group owner is properly set: $ sudo sed -i '/^log_group/D' /etc/audit/auditd.conf $ sudo sed -i /^log_file/a'log_group = root' /etc/audit/auditd.conf Last, signal the audit daemon to reload the configuration file to update the group owners of existing files: -$ sudo systemctl kill auditd -s SIGHUPVerify the group owner is set to own newly created audit logs in the audit configuration file with the following command: +$ sudo systemctl kill auditd -s SIGHUP + + + + Verify the group owner is set to own newly created audit logs in the audit configuration file with the following command: $ sudo grep -iw log_group /etc/audit/auditd.conf log_group = root @@ -1084,11 +3846,30 @@ Using the path of the directory containing the audit logs, determine if the audi $ sudo stat -c "%n %G" /var/log/audit/* /var/log/audit/audit.log root -If the audit log files are owned by a group other than "root", this is a finding.SRG-OS-000059-GPOS-00029<GroupDescription></GroupDescription>UBTU-20-010128The Ubuntu operating system must be configured so that the audit log directory is not write-accessible by unauthorized users.<VulnDiscussion>If audit information were to become compromised, then forensic analysis and discovery of the true source of potentially malicious system activity is impossible to achieve. +If the audit log files are owned by a group other than "root", this is a finding. + + + + + SRG-OS-000059-GPOS-00029 + <GroupDescription></GroupDescription> + + UBTU-20-010128 + The Ubuntu operating system must be configured so that the audit log directory is not write-accessible by unauthorized users. + <VulnDiscussion>If audit information were to become compromised, then forensic analysis and discovery of the true source of potentially malicious system activity is impossible to achieve. To ensure the veracity of audit information, the operating system must protect audit information from unauthorized deletion. This requirement can be achieved through multiple methods, which will depend upon system architecture and design. -Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit information system activity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000164Configure the audit log directory to have a mode of "0750" or less permissive. +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit information system activity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000164 + Configure the audit log directory to have a mode of "0750" or less permissive. Determine where the audit logs are stored with the following command: @@ -1098,7 +3879,11 @@ log_file = /var/log/audit/audit.log Using the path of the directory containing the audit logs, configure the audit log directory to have a mode of "0750" or less permissive by using the following command: -$ sudo chmod -R g-w,o-rwx /var/log/auditVerify that the audit log directory has a mode of "0750" or less permissive. +$ sudo chmod -R g-w,o-rwx /var/log/audit + + + + Verify that the audit log directory has a mode of "0750" or less permissive. Determine where the audit logs are stored with the following command: @@ -1111,11 +3896,34 @@ $ sudo stat -c "%n %a" /var/log/audit /var/log/audit/* /var/log/audit 750 /var/log/audit/audit.log 600 -If the audit log directory has a mode more permissive than "0750", this is a finding.SRG-OS-000063-GPOS-00032<GroupDescription></GroupDescription>UBTU-20-010133The Ubuntu operating system must be configured so that audit configuration files are not write-accessible by unauthorized users.<VulnDiscussion>Without the capability to restrict which roles and individuals can select which events are audited, unauthorized personnel may be able to prevent the auditing of critical events. - -Misconfigured audits may degrade the system's performance by overwhelming the audit log. Misconfigured audits may also make it more difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000171Configure "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files to have a mode of "0640" by using the following command: - -$ sudo chmod -R 0640 /etc/audit/audit*.{rules,conf} /etc/audit/rules.d/*Verify that "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files have a mode of "0640" or less permissive by using the following command: +If the audit log directory has a mode more permissive than "0750", this is a finding. + + + + + SRG-OS-000063-GPOS-00032 + <GroupDescription></GroupDescription> + + UBTU-20-010133 + The Ubuntu operating system must be configured so that audit configuration files are not write-accessible by unauthorized users. + <VulnDiscussion>Without the capability to restrict which roles and individuals can select which events are audited, unauthorized personnel may be able to prevent the auditing of critical events. + +Misconfigured audits may degrade the system's performance by overwhelming the audit log. Misconfigured audits may also make it more difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000171 + Configure "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files to have a mode of "0640" by using the following command: + +$ sudo chmod -R 0640 /etc/audit/audit*.{rules,conf} /etc/audit/rules.d/* + + + + Verify that "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files have a mode of "0640" or less permissive by using the following command: $ sudo ls -al /etc/audit/ /etc/audit/rules.d/ @@ -1135,11 +3943,34 @@ drwxr-x--- 2 root root 4096 Dec 27 09:56 rules.d -rw-r----- 1 root root 10357 Dec 27 09:56 stig.rules -If "/etc/audit/audit.rule","/etc/audit/rules.d/*", or "/etc/audit/auditd.conf" file have a mode more permissive than "0640", this is a finding.SRG-OS-000063-GPOS-00032<GroupDescription></GroupDescription>UBTU-20-010134The Ubuntu operating system must permit only authorized accounts to own the audit configuration files.<VulnDiscussion>Without the capability to restrict which roles and individuals can select which events are audited, unauthorized personnel may be able to prevent the auditing of critical events. - -Misconfigured audits may degrade the system's performance by overwhelming the audit log. Misconfigured audits may also make it more difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000171Configure "/etc/audit/audit.rules", "/etc/audit/rules.d/*" and "/etc/audit/auditd.conf" files to be owned by root user by using the following command: - -$ sudo chown root /etc/audit/audit*.{rules,conf} /etc/audit/rules.d/*Verify that "/etc/audit/audit.rules", "/etc/audit/rules.d/*" and "/etc/audit/auditd.conf" files are owned by root account by using the following command: +If "/etc/audit/audit.rule","/etc/audit/rules.d/*", or "/etc/audit/auditd.conf" file have a mode more permissive than "0640", this is a finding. + + + + + SRG-OS-000063-GPOS-00032 + <GroupDescription></GroupDescription> + + UBTU-20-010134 + The Ubuntu operating system must permit only authorized accounts to own the audit configuration files. + <VulnDiscussion>Without the capability to restrict which roles and individuals can select which events are audited, unauthorized personnel may be able to prevent the auditing of critical events. + +Misconfigured audits may degrade the system's performance by overwhelming the audit log. Misconfigured audits may also make it more difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000171 + Configure "/etc/audit/audit.rules", "/etc/audit/rules.d/*" and "/etc/audit/auditd.conf" files to be owned by root user by using the following command: + +$ sudo chown root /etc/audit/audit*.{rules,conf} /etc/audit/rules.d/* + + + + Verify that "/etc/audit/audit.rules", "/etc/audit/rules.d/*" and "/etc/audit/auditd.conf" files are owned by root account by using the following command: $ sudo ls -al /etc/audit/ /etc/audit/rules.d/ @@ -1167,11 +3998,34 @@ drwxr-x--- 3 root root 4096 Nov 25 11:02 .. -rw-r----- 1 root root 10357 Dec 27 09:56 stig.rules -If the "/etc/audit/audit.rules", "/etc/audit/rules.d/*", or "/etc/audit/auditd.conf" file is owned by a user other than "root", this is a finding.SRG-OS-000063-GPOS-00032<GroupDescription></GroupDescription>UBTU-20-010135The Ubuntu operating system must permit only authorized groups to own the audit configuration files.<VulnDiscussion>Without the capability to restrict which roles and individuals can select which events are audited, unauthorized personnel may be able to prevent the auditing of critical events. - -Misconfigured audits may degrade the system's performance by overwhelming the audit log. Misconfigured audits may also make it more difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000171Configure "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files to be owned by root group by using the following command: - -$ sudo chown :root /etc/audit/audit*.{rules,conf} /etc/audit/rules.d/*Verify that "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files are owned by root group by using the following command: +If the "/etc/audit/audit.rules", "/etc/audit/rules.d/*", or "/etc/audit/auditd.conf" file is owned by a user other than "root", this is a finding. + + + + + SRG-OS-000063-GPOS-00032 + <GroupDescription></GroupDescription> + + UBTU-20-010135 + The Ubuntu operating system must permit only authorized groups to own the audit configuration files. + <VulnDiscussion>Without the capability to restrict which roles and individuals can select which events are audited, unauthorized personnel may be able to prevent the auditing of critical events. + +Misconfigured audits may degrade the system's performance by overwhelming the audit log. Misconfigured audits may also make it more difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000171 + Configure "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files to be owned by root group by using the following command: + +$ sudo chown :root /etc/audit/audit*.{rules,conf} /etc/audit/rules.d/* + + + + Verify that "/etc/audit/audit.rules", "/etc/audit/rules.d/*", and "/etc/audit/auditd.conf" files are owned by root group by using the following command: $ sudo ls -al /etc/audit/ /etc/audit/rules.d/ @@ -1191,9 +4045,28 @@ drwxr-x--- 2 root root 4096 Dec 27 09:56 rules.d -rw-r----- 1 root root 10357 Dec 27 09:56 stig.rules -If the "/etc/audit/audit.rules", "/etc/audit/rules.d/*", or "/etc/audit/auditd.conf" file is owned by a group other than "root", this is a finding.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010136The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the su command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the Ubuntu operating system to generate audit records when successful/unsuccessful attempts to use the "su" command occur. +If the "/etc/audit/audit.rules", "/etc/audit/rules.d/*", or "/etc/audit/auditd.conf" file is owned by a group other than "root", this is a finding. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010136 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the su command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the Ubuntu operating system to generate audit records when successful/unsuccessful attempts to use the "su" command occur. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1201,7 +4074,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "su" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "su" command. Check the configured audit rules with the following commands: @@ -1211,9 +4088,28 @@ $ sudo auditctl -l | grep '/bin/su' If the command does not return lines that match the example or the lines are commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010137The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chfn command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "chfn" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010137 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chfn command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "chfn" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1221,7 +4117,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "chfn" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "chfn" command. Check the configured audit rules with the following commands: @@ -1231,9 +4131,28 @@ $ sudo auditctl -l | grep '/usr/bin/chfn' If the command does not return lines that match the example or the lines are commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010138The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the mount command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "mount" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010138 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the mount command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "mount" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1241,7 +4160,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "mount" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "mount" command. Check the configured audit rules with the following commands: @@ -1251,9 +4174,28 @@ $ sudo auditctl -l | grep '/usr/bin/mount' If the command does not return lines that match the example or the lines are commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010139The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the umount command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "umount" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010139 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the umount command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "umount" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1261,7 +4203,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify if the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "umount" command. +$ sudo augenrules --load + + + + Verify if the Ubuntu operating system generates audit records upon successful/unsuccessful attempts to use the "umount" command. Check the configured audit rules with the following commands: @@ -1271,9 +4217,28 @@ $ sudo auditctl -l | grep '/usr/bin/umount' If the command does not return lines that match the example or the lines are commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010140The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the ssh-agent command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-agent" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010140 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the ssh-agent command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-agent" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1281,7 +4246,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "ssh-agent" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "ssh-agent" command. Check the configured audit rules with the following commands: @@ -1291,9 +4260,28 @@ $ sudo auditctl -l | grep '/usr/bin/ssh-agent' If the command does not return lines that match the example or the lines are commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010141The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the ssh-keysign command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-keysign" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010141 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the ssh-keysign command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-keysign" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1301,7 +4289,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "ssh-keysign" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "ssh-keysign" command. Check the configured audit rules with the following commands: @@ -1311,13 +4303,32 @@ $ sudo auditctl -l | grep ssh-keysign If the command does not return lines that match the example or the lines are commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010142The Ubuntu operating system must generate audit records for any use of the setxattr, fsetxattr, lsetxattr, removexattr, fremovexattr, and lremovexattr system calls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010142 + The Ubuntu operating system must generate audit records for any use of the setxattr, fsetxattr, lsetxattr, removexattr, fremovexattr, and lremovexattr system calls. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore, it is very important to only use syscall rules when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance is helped, though, by combining syscalls into one rule whenever possible. -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000462-GPOS-00206</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000462-GPOS-00206</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1330,7 +4341,11 @@ Note: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls. Check the currently configured audit rules with the following command: @@ -1345,13 +4360,32 @@ If the command does not return audit rules for the "setxattr", "fsetxattr", "lse Notes: For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010148The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chown, fchown, fchownat, and lchown system calls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010148 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chown, fchown, fchownat, and lchown system calls. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore, it is very important to only use syscall rules when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance is helped, though, by combining syscalls into one rule whenever possible. -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000462-GPOS-00206</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chown", "fchown", "fchownat", and "lchown" system calls. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000462-GPOS-00206</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chown", "fchown", "fchownat", and "lchown" system calls. Add or update the following rules in the "/etc/audit/rules.d/stig.rules": @@ -1362,7 +4396,11 @@ Note: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chown", "fchown", "fchownat", and "lchown" system calls. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chown", "fchown", "fchownat", and "lchown" system calls. Check the configured audit rules with the following commands: @@ -1375,13 +4413,32 @@ If the command does not return audit rules for the "chown", "fchown", "fchownat" Notes: For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010152The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chmod, fchmod, and fchmodat system calls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010152 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chmod, fchmod, and fchmodat system calls. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore, it is very important to only use syscall rules when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance is helped, though, by combining syscalls into one rule whenever possible. -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000462-GPOS-00206</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chmod", "fchmod", and "fchmodat" system calls. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000462-GPOS-00206</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chmod", "fchmod", and "fchmodat" system calls. Add or update the following rules in the "/etc/audit/rules.d/stig.rules": @@ -1392,7 +4449,11 @@ Notes: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chmod", "fchmod", and "fchmodat" system calls. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chmod", "fchmod", and "fchmodat" system calls. Check the configured audit rules with the following commands: @@ -1405,13 +4466,32 @@ If the command does not return audit rules for the "chmod", "fchmod" and "fchmod Notes: For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010155The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the creat, open, openat, open_by_handle_at, truncate, and ftruncate system calls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010155 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the creat, open, openat, open_by_handle_at, truncate, and ftruncate system calls. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore, it is very important to only use syscall rules when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance is helped, though, by combining syscalls into one rule whenever possible. -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000474-GPOS-00219</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any unsuccessful use of the"creat", "open", "openat", "open_by_handle_at", "truncate", and "ftruncate" system calls. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000474-GPOS-00219</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any unsuccessful use of the"creat", "open", "openat", "open_by_handle_at", "truncate", and "ftruncate" system calls. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1424,7 +4504,11 @@ Notes: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon unsuccessful attempts to use the "creat", "open", "openat", "open_by_handle_at", "truncate", and "ftruncate" system calls. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon unsuccessful attempts to use the "creat", "open", "openat", "open_by_handle_at", "truncate", and "ftruncate" system calls. Check the configured audit rules with the following commands: @@ -1439,9 +4523,28 @@ If the command does not return audit rules for the "creat", "open", "openat", "o Notes: For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010161The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the sudo command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "sudo" command. +The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010161 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the sudo command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "sudo" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1449,7 +4552,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "sudo" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "sudo" command. Check the configured audit rules with the following command: @@ -1459,9 +4566,28 @@ $ sudo auditctl -l | grep /usr/bin/sudo If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010162The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the sudoedit command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "sudoedit" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010162 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the sudoedit command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "sudoedit" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules": @@ -1469,7 +4595,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules": To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "sudoedit" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "sudoedit" command. Check the configured audit rules with the following commands: @@ -1479,9 +4609,28 @@ $ sudo auditctl -l | grep /usr/bin/sudoedit If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010163The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chsh command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chsh" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010163 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chsh command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chsh" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1489,7 +4638,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chsh" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chsh" command. Check the configured audit rules with the following commands: @@ -1499,9 +4652,28 @@ $ sudo auditctl -l | grep chsh If the command does not return a line that matches the example or the line is commented out, this is a finding. -Notes: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010164The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the newgrp command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "newgrp" command. +Notes: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010164 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the newgrp command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "newgrp" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1509,7 +4681,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "newgrp" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "newgrp" command. Check the configured audit rules with the following commands: @@ -1519,9 +4695,28 @@ $ sudo auditctl -l | grep newgrp If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010165The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chcon command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chcon" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010165 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chcon command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chcon" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1529,7 +4724,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chcon" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chcon" command. Check the currently configured audit rules with the following command: @@ -1539,9 +4738,28 @@ $ sudo auditctl -l | grep chcon If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010166The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the apparmor_parser command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "apparmor_parser" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010166 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the apparmor_parser command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "apparmor_parser" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1549,7 +4767,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "apparmor_parser" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "apparmor_parser" command. Check the currently configured audit rules with the following command: @@ -1559,9 +4781,28 @@ $ sudo auditctl -l | grep apparmor_parser If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010167The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the setfacl command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "setfacl" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010167 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the setfacl command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "setfacl" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1569,7 +4810,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "setfacl" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "setfacl" command. Check the currently configured audit rules with the following command: @@ -1579,9 +4824,28 @@ $ sudo auditctl -l | grep setfacl If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010168The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chacl command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chacl" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010168 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chacl command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chacl" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1589,7 +4853,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chacl" command. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful attempts to use the "chacl" command. Check the currently configured audit rules with the following command: @@ -1599,11 +4867,30 @@ $ sudo audtctl -l | grep chacl If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010169The Ubuntu operating system must generate audit records for the use and modification of the tallylog file.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010169 + The Ubuntu operating system must generate audit records for the use and modification of the tallylog file. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "tallylog" file. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "tallylog" file. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1611,7 +4898,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful modifications to the "tallylog" file. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful modifications to the "tallylog" file. Check the currently configured audit rules with the following command: @@ -1621,11 +4912,30 @@ $ sudo auditctl -l | grep tallylog If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010170The Ubuntu operating system must generate audit records for the use and modification of faillog file.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010170 + The Ubuntu operating system must generate audit records for the use and modification of faillog file. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "faillog" file. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "faillog" file. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1633,7 +4943,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record upon successful/unsuccessful modifications to the "faillog" file. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record upon successful/unsuccessful modifications to the "faillog" file. Check the currently configured audit rules with the following command: @@ -1643,11 +4957,30 @@ $ sudo auditctl -l | grep faillog If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010171The Ubuntu operating system must generate audit records for the use and modification of the lastlog file.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010171 + The Ubuntu operating system must generate audit records for the use and modification of the lastlog file. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "lastlog" file. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "lastlog" file. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1655,7 +4988,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record when successful/unsuccessful modifications to the "lastlog" file occur. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record when successful/unsuccessful modifications to the "lastlog" file occur. Check the currently configured audit rules with the following command: @@ -1665,9 +5002,28 @@ $ sudo auditctl -l | grep lastlog If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010172The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the passwd command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "passwd" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010172 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the passwd command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "passwd" command. Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: @@ -1675,7 +5031,11 @@ Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "passwd" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "passwd" command. Check the currently configured audit rules with the following command: @@ -1685,9 +5045,28 @@ $ sudo auditctl -l | grep -w passwd If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "key" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010173The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the unix_update command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "unix_update" command. +Note: The "key" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010173 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the unix_update command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "unix_update" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1695,7 +5074,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "unix_update" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "unix_update" command. Check the currently configured audit rules with the following command: @@ -1705,9 +5088,28 @@ $ sudo auditctl -l | grep -w unix_update If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010174The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the gpasswd command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "gpasswd" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010174 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the gpasswd command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "gpasswd" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1715,7 +5117,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "gpasswd" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "gpasswd" command. Check the currently configured audit rules with the following command: @@ -1725,9 +5131,28 @@ $ sudo auditctl -l | grep -w gpasswd If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010175The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chage command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "chage" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010175 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the chage command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "chage" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1735,7 +5160,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "chage" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "chage" command. Check the currently configured audit rules with the following command: @@ -1745,9 +5174,28 @@ $ sudo auditctl -l | grep -w chage If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010176The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the usermod command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "usermod" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010176 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the usermod command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "usermod" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1755,7 +5203,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "usermod" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "usermod" command. Check the currently configured audit rules with the following command: @@ -1765,9 +5217,28 @@ $ sudo auditctl -l | grep -w usermod If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010177The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the crontab command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "crontab" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010177 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the crontab command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "crontab" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1775,7 +5246,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "crontab" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "crontab" command. Check the currently configured audit rules with the following command: @@ -1785,9 +5260,28 @@ $ sudo auditctl -l | grep -w crontab If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010178The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the pam_timestamp_check command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "pam_timestamp_check" command. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010178 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the pam_timestamp_check command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "pam_timestamp_check" command. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1795,7 +5289,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify that an audit event is generated for any successful/unsuccessful use of the "pam_timestamp_check" command. +$ sudo augenrules --load + + + + Verify that an audit event is generated for any successful/unsuccessful use of the "pam_timestamp_check" command. Check the currently configured audit rules with the following command: @@ -1805,13 +5303,32 @@ $ sudo auditctl -l | grep -w pam_timestamp_check If the command does not return a line that matches the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010179The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the init_module and finit_module syscalls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010179 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the init_module and finit_module syscalls. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore, it is very important to only use syscall rules when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance is helped, though, by combining syscalls into one rule whenever possible. -Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000471-GPOS-00216</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "init_module" and "finit_module" syscalls. +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000471-GPOS-00216</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "init_module" and "finit_module" syscalls. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1822,7 +5339,11 @@ Notes: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record for any successful/unsuccessful attempts to use the "init_module" and "finit_module" syscalls. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record for any successful/unsuccessful attempts to use the "init_module" and "finit_module" syscalls. Check the currently configured audit rules with the following command: @@ -1835,11 +5356,30 @@ If the command does not return audit rules for the "init_module" and "finit_modu Notes: For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>UBTU-20-010181The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the delete_module syscall.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000064-GPOS-00033 + <GroupDescription></GroupDescription> + + UBTU-20-010181 + The Ubuntu operating system must generate audit records for successful/unsuccessful uses of the delete_module syscall. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). -Satisfies: SRG-OS-000477-GPOS-00222</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate an audit event for any successful/unsuccessful use of the "delete_module" syscall. +Satisfies: SRG-OS-000477-GPOS-00222</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate an audit event for any successful/unsuccessful use of the "delete_module" syscall. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -1850,7 +5390,11 @@ Notes: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates an audit record for any successful/unsuccessful attempts to use the "delete_module" syscall. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates an audit record for any successful/unsuccessful attempts to use the "delete_module" syscall. Check the currently configured audit rules with the following command: @@ -1863,7 +5407,17 @@ If the command does not return a line that matches the example or the line is co Notes: - For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -- The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000122-GPOS-00063<GroupDescription></GroupDescription>UBTU-20-010182The Ubuntu operating system must produce audit records and reports containing information to establish when, where, what type, the source, and the outcome for all DoD-defined auditable events and actions in near real time.<VulnDiscussion>Without establishing the when, where, type, source, and outcome of events that occurred, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. +- The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000122-GPOS-00063 + <GroupDescription></GroupDescription> + + UBTU-20-010182 + The Ubuntu operating system must produce audit records and reports containing information to establish when, where, what type, the source, and the outcome for all DoD-defined auditable events and actions in near real time. + <VulnDiscussion>Without establishing the when, where, type, source, and outcome of events that occurred, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. @@ -1875,7 +5429,34 @@ Successful incident response and auditing relies on timely, accurate system info Associating event types with detected events in the Ubuntu operating system audit logs provides a means of investigating an attack; recognizing resource utilization or capacity thresholds; or identifying an improperly configured operating system. -Satisfies: SRG-OS-000122-GPOS-00063, SRG-OS-000037-GPOS-00015, SRG-OS-000038-GPOS-00016, SRG-OS-000039-GPOS-00017, SRG-OS-000040-GPOS-00018, SRG-OS-000041-GPOS-00019, SRG-OS-000042-GPOS-00020, SRG-OS-000042-GPOS-00021, SRG-OS-000051-GPOS-00024, SRG-OS-000054-GPOS-00025, SRG-OS-000062-GPOS-00031, SRG-OS-000337-GPOS-00129, SRG-OS-000348-GPOS-00136, SRG-OS-000349-GPOS-00137, SRG-OS-000350-GPOS-00138, SRG-OS-000351-GPOS-00139, SRG-OS-000352-GPOS-00140, SRG-OS-000353-GPOS-00141, SRG-OS-000354-GPOS-00142, SRG-OS-000475-GPOS-00220</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000130CCI-000131CCI-000132CCI-000133CCI-000134CCI-000135CCI-000154CCI-000158CCI-000169CCI-000172CCI-001875CCI-001876CCI-001877CCI-001878CCI-001879CCI-001880CCI-001881CCI-001882CCI-001914Configure the audit service to produce audit records containing the information needed to establish when (date and time) an event occurred. +Satisfies: SRG-OS-000122-GPOS-00063, SRG-OS-000037-GPOS-00015, SRG-OS-000038-GPOS-00016, SRG-OS-000039-GPOS-00017, SRG-OS-000040-GPOS-00018, SRG-OS-000041-GPOS-00019, SRG-OS-000042-GPOS-00020, SRG-OS-000042-GPOS-00021, SRG-OS-000051-GPOS-00024, SRG-OS-000054-GPOS-00025, SRG-OS-000062-GPOS-00031, SRG-OS-000337-GPOS-00129, SRG-OS-000348-GPOS-00136, SRG-OS-000349-GPOS-00137, SRG-OS-000350-GPOS-00138, SRG-OS-000351-GPOS-00139, SRG-OS-000352-GPOS-00140, SRG-OS-000353-GPOS-00141, SRG-OS-000354-GPOS-00142, SRG-OS-000475-GPOS-00220</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000130 + CCI-000131 + CCI-000132 + CCI-000133 + CCI-000134 + CCI-000135 + CCI-000154 + CCI-000158 + CCI-000169 + CCI-000172 + CCI-001875 + CCI-001876 + CCI-001877 + CCI-001878 + CCI-001879 + CCI-001880 + CCI-001881 + CCI-001882 + CCI-001914 + Configure the audit service to produce audit records containing the information needed to establish when (date and time) an event occurred. Install the audit service (if the audit service is not already installed) with the following command: @@ -1887,7 +5468,11 @@ $ sudo systemctl enable auditd.service To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the audit service is configured to produce audit records with the following command: +$ sudo augenrules --load + + + + Verify the audit service is configured to produce audit records with the following command: $ dpkg -l | grep auditd @@ -1904,32 +5489,79 @@ Verify the audit service is properly running and active on the system with the f $ systemctl is-active auditd.service active -If the command above returns "inactive", this is a finding.SRG-OS-000254-GPOS-00095<GroupDescription></GroupDescription>UBTU-20-010198The Ubuntu operating system must initiate session audits at system start-up.<VulnDiscussion>If auditing is enabled late in the start-up process, the actions of some start-up processes may not be audited. Some audit systems also maintain state information only available if auditing is enabled before a given process is created.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001464Configure the Ubuntu operating system to produce audit records at system startup. +If the command above returns "inactive", this is a finding. + + + + + SRG-OS-000254-GPOS-00095 + <GroupDescription></GroupDescription> + + UBTU-20-010198 + The Ubuntu operating system must initiate session audits at system start-up. + <VulnDiscussion>If auditing is enabled late in the start-up process, the actions of some start-up processes may not be audited. Some audit systems also maintain state information only available if auditing is enabled before a given process is created.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001464 + Configure the Ubuntu operating system to produce audit records at system startup. Edit the "/etc/default/grub" file and add "audit=1" to the "GRUB_CMDLINE_LINUX" option. To update the grub config file, run: -$ sudo update-grubVerify that the Ubuntu operating system enables auditing at system startup. +$ sudo update-grub + + + + Verify that the Ubuntu operating system enables auditing at system startup. Verify that the auditing is enabled in grub with the following command: $ sudo grep "^\s*linux" /boot/grub/grub.cfg -linux /boot/vmlinuz-5.4.0-31-generic root=UUID=74d13bcd-6ebd-4493-b5d2-3ebc37d01702 ro audit=1 +linux /boot/vmlinuz-5.4.0-31-generic root=UUID=74d13bcd-6ebd-4493-b5d2-3ebc37d01702 ro audit=1 linux /boot/vmlinuz-5.4.0-31-generic root=UUID=74d13bcd-6ebd-4493-b5d2-3ebc37d01702 ro recovery nomodeset audit=1 -If any linux lines do not contain "audit=1", this is a finding.SRG-OS-000256-GPOS-00097<GroupDescription></GroupDescription>UBTU-20-010199The Ubuntu operating system must configure audit tools with a mode of 0755 or less permissive.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. +If any linux lines do not contain "audit=1", this is a finding. + + + + + SRG-OS-000256-GPOS-00097 + <GroupDescription></GroupDescription> + + UBTU-20-010199 + The Ubuntu operating system must configure audit tools with a mode of 0755 or less permissive. + <VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. Operating systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools and the corresponding rights the user enjoys in order to make access decisions regarding the access to audit tools. Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators. -Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001493CCI-001494Configure the audit tools on the Ubuntu operating system to be protected from unauthorized access by setting the correct permissive mode using the following command: +Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001493 + CCI-001494 + Configure the audit tools on the Ubuntu operating system to be protected from unauthorized access by setting the correct permissive mode using the following command: $ sudo chmod 0755 [audit_tool] -Replace "[audit_tool]" with the audit tool that does not have the correct permissions.Verify the Ubuntu operating system configures the audit tools to have a file permission of 0755 or less to prevent unauthorized access by running the following command: +Replace "[audit_tool]" with the audit tool that does not have the correct permissions. + + + + Verify the Ubuntu operating system configures the audit tools to have a file permission of 0755 or less to prevent unauthorized access by running the following command: $ stat -c "%n %a" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sbin/auditd /sbin/audispd /sbin/augenrules @@ -1941,17 +5573,41 @@ $ stat -c "%n %a" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sb /sbin/audispd 755 /sbin/augenrules 755 -If any of the audit tools have a mode more permissive than 0755, this is a finding.SRG-OS-000256-GPOS-00097<GroupDescription></GroupDescription>UBTU-20-010200The Ubuntu operating system must configure audit tools to be owned by root.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. +If any of the audit tools have a mode more permissive than 0755, this is a finding. + + + + + SRG-OS-000256-GPOS-00097 + <GroupDescription></GroupDescription> + + UBTU-20-010200 + The Ubuntu operating system must configure audit tools to be owned by root. + <VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. Operating systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools and the corresponding rights the user enjoys in order to make access decisions regarding the access to audit tools. Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators. -Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001493CCI-001494Configure the audit tools on the Ubuntu operating system to be protected from unauthorized access by setting the file owner as root using the following command: +Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001493 + CCI-001494 + Configure the audit tools on the Ubuntu operating system to be protected from unauthorized access by setting the file owner as root using the following command: $ sudo chown root [audit_tool] -Replace "[audit_tool]" with each audit tool not owned by root.Verify the Ubuntu operating system configures the audit tools to be owned by root to prevent any unauthorized access. +Replace "[audit_tool]" with each audit tool not owned by root. + + + + Verify the Ubuntu operating system configures the audit tools to be owned by root to prevent any unauthorized access. Check the ownership by running the following command: @@ -1965,17 +5621,41 @@ $ stat -c "%n %U" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sb /sbin/audispd root /sbin/augenrules root -If any of the audit tools are not owned by root, this is a finding.SRG-OS-000256-GPOS-00097<GroupDescription></GroupDescription>UBTU-20-010201The Ubuntu operating system must configure the audit tools to be group-owned by root.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. +If any of the audit tools are not owned by root, this is a finding. + + + + + SRG-OS-000256-GPOS-00097 + <GroupDescription></GroupDescription> + + UBTU-20-010201 + The Ubuntu operating system must configure the audit tools to be group-owned by root. + <VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. Operating systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools and the corresponding rights the user enjoys in order to make access decisions regarding the access to audit tools. Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators. -Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001493CCI-001494Configure the audit tools on the Ubuntu operating system to be protected from unauthorized access by setting the file group as root using the following command: +Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001493 + CCI-001494 + Configure the audit tools on the Ubuntu operating system to be protected from unauthorized access by setting the file group as root using the following command: $ sudo chown :root [audit_tool] -Replace "[audit_tool]" with each audit tool not group-owned by root.Verify the Ubuntu operating system configures the audit tools to be group-owned by root to prevent any unauthorized access. +Replace "[audit_tool]" with each audit tool not group-owned by root. + + + + Verify the Ubuntu operating system configures the audit tools to be group-owned by root to prevent any unauthorized access. Check the group ownership by running the following command: @@ -1989,13 +5669,32 @@ $ stat -c "%n %G" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sb /sbin/audispd root /sbin/augenrules root -If any of the audit tools are not group-owned by root, this is a finding.SRG-OS-000278-GPOS-00108<GroupDescription></GroupDescription>UBTU-20-010205The Ubuntu operating system must use cryptographic mechanisms to protect the integrity of audit tools.<VulnDiscussion>Protecting the integrity of the tools used for auditing purposes is a critical step toward ensuring the integrity of audit information. Audit information includes all information (e.g., audit records, audit settings, and audit reports) needed to successfully audit information system activity. +If any of the audit tools are not group-owned by root, this is a finding. + + + + + SRG-OS-000278-GPOS-00108 + <GroupDescription></GroupDescription> + + UBTU-20-010205 + The Ubuntu operating system must use cryptographic mechanisms to protect the integrity of audit tools. + <VulnDiscussion>Protecting the integrity of the tools used for auditing purposes is a critical step toward ensuring the integrity of audit information. Audit information includes all information (e.g., audit records, audit settings, and audit reports) needed to successfully audit information system activity. Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators. It is not uncommon for attackers to replace the audit tools or inject code into the existing tools with the purpose of providing the capability to hide or erase system activity from the audit logs. -To address this risk, audit tools must be cryptographically signed in order to provide the capability to identify when the audit tools have been modified, manipulated, or replaced. An example is a checksum hash of the file or files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001496Add or update the following selection lines for "/etc/aide/aide.conf" to protect the integrity of the audit tools: +To address this risk, audit tools must be cryptographically signed in order to provide the capability to identify when the audit tools have been modified, manipulated, or replaced. An example is a checksum hash of the file or files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001496 + Add or update the following selection lines for "/etc/aide/aide.conf" to protect the integrity of the audit tools: # Audit Tools /sbin/auditctl p+i+n+u+g+s+b+acl+xattrs+sha512 @@ -2004,7 +5703,11 @@ To address this risk, audit tools must be cryptographically signed in order to p /sbin/aureport p+i+n+u+g+s+b+acl+xattrs+sha512 /sbin/autrace p+i+n+u+g+s+b+acl+xattrs+sha512 /sbin/audispd p+i+n+u+g+s+b+acl+xattrs+sha512 -/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512Verify that Advanced Intrusion Detection Environment (AIDE) is properly configured to use cryptographic mechanisms to protect the integrity of audit tools. +/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512 + + + + Verify that Advanced Intrusion Detection Environment (AIDE) is properly configured to use cryptographic mechanisms to protect the integrity of audit tools. Check the selection lines that AIDE is configured to add/check with the following command: @@ -2018,11 +5721,31 @@ $ egrep '(\/sbin\/(audit|au))' /etc/aide/aide.conf /sbin/audispd p+i+n+u+g+s+b+acl+xattrs+sha512 /sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512 -If any of the seven audit tools do not have appropriate selection lines, this is a finding.SRG-OS-000326-GPOS-00126<GroupDescription></GroupDescription>UBTU-20-010211The Ubuntu operating system must prevent all software from executing at higher privilege levels than users executing the software and the audit system must be configured to audit the execution of privileged functions.<VulnDiscussion>In certain situations, software applications/programs need to execute with elevated privileges to perform required functions. However, if the privileges required for execution are at a higher level than the privileges assigned to organizational users invoking such applications/programs, those users are indirectly provided with greater privileges than assigned by the organizations. +If any of the seven audit tools do not have appropriate selection lines, this is a finding. + + + + + SRG-OS-000326-GPOS-00126 + <GroupDescription></GroupDescription> + + UBTU-20-010211 + The Ubuntu operating system must prevent all software from executing at higher privilege levels than users executing the software and the audit system must be configured to audit the execution of privileged functions. + <VulnDiscussion>In certain situations, software applications/programs need to execute with elevated privileges to perform required functions. However, if the privileges required for execution are at a higher level than the privileges assigned to organizational users invoking such applications/programs, those users are indirectly provided with greater privileges than assigned by the organizations. Some programs and processes are required to operate at a higher privilege level and therefore should be excluded from the organization-defined software list after review. -Satisfies: SRG-OS-000326-GPOS-00126, SRG-OS-000327-GPOS-00127</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002233CCI-002234Configure the Ubuntu operating system to audit the execution of all privileged functions. +Satisfies: SRG-OS-000326-GPOS-00126, SRG-OS-000327-GPOS-00127</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002233 + CCI-002234 + Configure the Ubuntu operating system to audit the execution of all privileged functions. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -2035,7 +5758,11 @@ Notes: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system audits the execution of privilege functions by auditing the "execve" system call. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system audits the execution of privilege functions by auditing the "execve" system call. Check the currently configured audit rules with the following command: @@ -2050,9 +5777,28 @@ If the command does not return lines that match the example or the lines are com Notes: - For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -- The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000341-GPOS-00132<GroupDescription></GroupDescription>UBTU-20-010215The Ubuntu operating system must allocate audit record storage capacity to store at least one weeks' worth of audit records, when audit records are not immediately sent to a central audit record storage facility.<VulnDiscussion>In order to ensure operating systems have a sufficient storage capacity in which to write the audit logs, operating systems need to be able to allocate audit record storage capacity. - -The task of allocating audit record storage capacity is usually performed during initial installation of the operating system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001849Allocate enough storage capacity for at least one week's worth of audit records when audit records are not immediately sent to a central audit record storage facility. +- The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000341-GPOS-00132 + <GroupDescription></GroupDescription> + + UBTU-20-010215 + The Ubuntu operating system must allocate audit record storage capacity to store at least one weeks' worth of audit records, when audit records are not immediately sent to a central audit record storage facility. + <VulnDiscussion>In order to ensure operating systems have a sufficient storage capacity in which to write the audit logs, operating systems need to be able to allocate audit record storage capacity. + +The task of allocating audit record storage capacity is usually performed during initial installation of the operating system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001849 + Allocate enough storage capacity for at least one week's worth of audit records when audit records are not immediately sent to a central audit record storage facility. If audit records are stored on a partition made specifically for audit records, use the "parted" program to resize the partition with sufficient space to contain one week's worth of audit records. @@ -2062,7 +5808,11 @@ Set the auditd server to point to the mount point where the audit records must b $ sudo sed -i -E 's@^(log_file\s*=\s*).*@\1 <log mountpoint>/audit.log@' /etc/audit/auditd.conf -where <log mountpoint> is the aforementioned mount point.Verify the Ubuntu operating system allocates audit record storage capacity to store at least one week's worth of audit records when audit records are not immediately sent to a central audit record storage facility. +where <log mountpoint> is the aforementioned mount point. + + + + Verify the Ubuntu operating system allocates audit record storage capacity to store at least one week's worth of audit records when audit records are not immediately sent to a central audit record storage facility. Determine which partition the audit records are being written to with the following command: @@ -2081,11 +5831,30 @@ $ sudo du –sh [audit_partition] Note: The partition size needed to capture a week's worth of audit records is based on the activity level of the system and the total storage capacity available. In normal circumstances, 10.0 GB of storage space for audit records will be sufficient. -If the audit record partition is not allocated for sufficient storage capacity, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>UBTU-20-010216The Ubuntu operating system audit event multiplexor must be configured to off-load audit logs onto a different system or storage media from the system being audited.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. +If the audit record partition is not allocated for sufficient storage capacity, this is a finding. + + + + + SRG-OS-000342-GPOS-00133 + <GroupDescription></GroupDescription> + + UBTU-20-010216 + The Ubuntu operating system audit event multiplexor must be configured to off-load audit logs onto a different system or storage media from the system being audited. + <VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. Off-loading is a common process in information systems with limited audit storage capacity. -Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001851Configure the audit event multiplexor to offload audit records to a different system or storage media from the system being audited. +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001851 + Configure the audit event multiplexor to offload audit records to a different system or storage media from the system being audited. Install the audisp-remote plugin: @@ -2103,7 +5872,11 @@ where <remote addr> must be substituted by the address of the remote serve Make the audit service reload its configuration files: -$ sudo systemctl restart auditd.serviceVerify the audit event multiplexor is configured to offload audit records to a different system or storage media from the system being audited. +$ sudo systemctl restart auditd.service + + + + Verify the audit event multiplexor is configured to offload audit records to a different system or storage media from the system being audited. Check that audisp-remote plugin is installed: @@ -2125,13 +5898,36 @@ $ sudo grep -i ^remote_server /etc/audisp/audisp-remote.conf remote_server = 192.168.122.126 -If the "remote_server" parameter is not set, is set with a local address, or is set with an invalid address, this is a finding.SRG-OS-000343-GPOS-00134<GroupDescription></GroupDescription>UBTU-20-010217The Ubuntu operating system must immediately notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75% of the repository maximum audit record storage capacity.<VulnDiscussion>If security personnel are not notified immediately when storage volume reaches 75% utilization, they are unable to plan for audit record storage capacity expansion.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001855Edit "/etc/audit/auditd.conf" and set the "space_left_action" parameter to "exec" or "email". +If the "remote_server" parameter is not set, is set with a local address, or is set with an invalid address, this is a finding. + + + + + SRG-OS-000343-GPOS-00134 + <GroupDescription></GroupDescription> + + UBTU-20-010217 + The Ubuntu operating system must immediately notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75% of the repository maximum audit record storage capacity. + <VulnDiscussion>If security personnel are not notified immediately when storage volume reaches 75% utilization, they are unable to plan for audit record storage capacity expansion.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001855 + Edit "/etc/audit/auditd.conf" and set the "space_left_action" parameter to "exec" or "email". If the "space_left_action" parameter is set to "email", set the "action_mail_acct" parameter to an email address for the SA and ISSO. If the "space_left_action" parameter is set to "exec", ensure the command being executed notifies the SA and ISSO. -Edit "/etc/audit/auditd.conf" and set the "space_left" parameter to be at least 25% of the repository maximum audit record storage capacity.Verify the Ubuntu operating system notifies the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75% of the repository maximum audit record storage capacity with the following command: +Edit "/etc/audit/auditd.conf" and set the "space_left" parameter to be at least 25% of the repository maximum audit record storage capacity. + + + + Verify the Ubuntu operating system notifies the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75% of the repository maximum audit record storage capacity with the following command: $ sudo grep ^space_left_action /etc/audit/auditd.conf @@ -2158,16 +5954,49 @@ action_mail_acct root@localhost The "action_mail_acct" parameter, if missing, defaults to "root". If the "action_mail_acct parameter" is not set to the email address of the SA(s) and/or ISSO, this is a finding. Note: If the email address of the System Administrator - is on a remote system, a mail package must be available.SRG-OS-000359-GPOS-00146<GroupDescription></GroupDescription>UBTU-20-010230The Ubuntu operating system must record time stamps for audit records that can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT).<VulnDiscussion>If time stamps are not consistently applied and there is no common time reference, it is difficult to perform forensic analysis. - -Time stamps generated by the operating system include date and time. Time is commonly expressed in Coordinated Universal Time (UTC), a modern continuation of Greenwich Mean Time (GMT), or local time with an offset from UTC.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001890To configure the system time zone to use UTC or GMT, run the following command, replacing [ZONE] with UTC or GMT: - -$ sudo timedatectl set-timezone [ZONE]To verify the time zone is configured to use UTC or GMT, run the following command. + is on a remote system, a mail package must be available. + + + + + SRG-OS-000359-GPOS-00146 + <GroupDescription></GroupDescription> + + UBTU-20-010230 + The Ubuntu operating system must record time stamps for audit records that can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT). + <VulnDiscussion>If time stamps are not consistently applied and there is no common time reference, it is difficult to perform forensic analysis. + +Time stamps generated by the operating system include date and time. Time is commonly expressed in Coordinated Universal Time (UTC), a modern continuation of Greenwich Mean Time (GMT), or local time with an offset from UTC.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001890 + To configure the system time zone to use UTC or GMT, run the following command, replacing [ZONE] with UTC or GMT: + +$ sudo timedatectl set-timezone [ZONE] + + + + To verify the time zone is configured to use UTC or GMT, run the following command. $ timedatectl status | grep -i "time zone" Timezone: UTC (UTC, +0000) -If "Timezone" is not set to UTC or GMT, this is a finding.SRG-OS-000392-GPOS-00172<GroupDescription></GroupDescription>UBTU-20-010244The Ubuntu operating system must generate audit records for privileged activities, nonlocal maintenance, diagnostic sessions and other system-level access.<VulnDiscussion>If events associated with nonlocal administrative access or diagnostic sessions are not logged, a major tool for assessing and investigating attacks would not be available. +If "Timezone" is not set to UTC or GMT, this is a finding. + + + + + SRG-OS-000392-GPOS-00172 + <GroupDescription></GroupDescription> + + UBTU-20-010244 + The Ubuntu operating system must generate audit records for privileged activities, nonlocal maintenance, diagnostic sessions and other system-level access. + <VulnDiscussion>If events associated with nonlocal administrative access or diagnostic sessions are not logged, a major tool for assessing and investigating attacks would not be available. This requirement addresses auditing-related issues associated with maintenance tools used specifically for diagnostic and repair actions on organizational information systems. @@ -2175,7 +6004,17 @@ Nonlocal maintenance and diagnostic activities are those activities conducted by This requirement applies to hardware/software diagnostic test equipment or tools. This requirement does not cover hardware/software components that may support information system maintenance, yet are a part of the system, for example, the software implementing "ping," "ls," "ipconfig," or the hardware and software implementing the monitoring port of an Ethernet switch. -Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172CCI-002884Configure the Ubuntu operating system to audit activities performed during nonlocal maintenance and diagnostic sessions. +Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + CCI-002884 + Configure the Ubuntu operating system to audit activities performed during nonlocal maintenance and diagnostic sessions. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -2183,7 +6022,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system audits activities performed during nonlocal maintenance and diagnostic sessions. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system audits activities performed during nonlocal maintenance and diagnostic sessions. Check the currently configured audit rules with the following command: @@ -2193,11 +6036,30 @@ $ sudo auditctl -l | grep sudo.log If the command does not return lines that match the example or the lines are commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000468-GPOS-00212<GroupDescription></GroupDescription>UBTU-20-010267The Ubuntu operating system must generate audit records for any successful/unsuccessful use of unlink, unlinkat, rename, renameat, and rmdir system calls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000468-GPOS-00212 + <GroupDescription></GroupDescription> + + UBTU-20-010267 + The Ubuntu operating system must generate audit records for any successful/unsuccessful use of unlink, unlinkat, rename, renameat, and rmdir system calls. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). -The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore, it is very important to only use syscall rules when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance is helped, though, by combining syscalls into one rule whenever possible.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate audit events for any successful/unsuccessful use of "unlink", "unlinkat", "rename", "renameat", and "rmdir" system calls. +The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore, it is very important to only use syscall rules when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance is helped, though, by combining syscalls into one rule whenever possible.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate audit events for any successful/unsuccessful use of "unlink", "unlinkat", "rename", "renameat", and "rmdir" system calls. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -2208,7 +6070,11 @@ Notes: For 32-bit architectures, only the 32-bit specific entries are required. To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records for any successful/unsuccessful use of "unlink", "unlinkat", "rename", "renameat", and "rmdir" system calls. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records for any successful/unsuccessful use of "unlink", "unlinkat", "rename", "renameat", and "rmdir" system calls. Check the currently configured audit rules with the following command: @@ -2221,9 +6087,28 @@ If the command does not return audit rules for the "unlink", "unlinkat", "rename Notes: For 32-bit architectures, only the 32-bit specific output lines from the commands are required. -The "key" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000472-GPOS-00217<GroupDescription></GroupDescription>UBTU-20-010277The Ubuntu operating system must generate audit records for the /var/log/wtmp file.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate audit events showing start and stop times for user access via the "/var/log/wtmp" file. +The "key" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000472-GPOS-00217 + <GroupDescription></GroupDescription> + + UBTU-20-010277 + The Ubuntu operating system must generate audit records for the /var/log/wtmp file. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate audit events showing start and stop times for user access via the "/var/log/wtmp" file. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -2231,7 +6116,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records showing start and stop times for user access to the system via the "/var/log/wtmp" file. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records showing start and stop times for user access to the system via the "/var/log/wtmp" file. Check the currently configured audit rules with the following command: @@ -2241,9 +6130,28 @@ $ sudo auditctl -l | grep '/var/log/wtmp' If the command does not return a line matching the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000472-GPOS-00217<GroupDescription></GroupDescription>UBTU-20-010278The Ubuntu operating system must generate audit records for the /var/run/wtmp file.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate audit events showing start and stop times for user access via the "/var/run/wtmp" file. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000472-GPOS-00217 + <GroupDescription></GroupDescription> + + UBTU-20-010278 + The Ubuntu operating system must generate audit records for the /var/run/wtmp file. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate audit events showing start and stop times for user access via the "/var/run/wtmp" file. Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -2251,7 +6159,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records showing start and stop times for user access to the system via the "/var/run/wtmp" file. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records showing start and stop times for user access to the system via the "/var/run/wtmp" file. Check the currently configured audit rules with the following command: @@ -2261,9 +6173,28 @@ $ sudo auditctl -l | grep '/var/run/wtmp' If the command does not return a line matching the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000472-GPOS-00217<GroupDescription></GroupDescription>UBTU-20-010279The Ubuntu operating system must generate audit records for the /var/log/btmp file.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the audit system to generate audit events showing start and stop times for user access via the "/var/log/btmp file". +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000472-GPOS-00217 + <GroupDescription></GroupDescription> + + UBTU-20-010279 + The Ubuntu operating system must generate audit records for the /var/log/btmp file. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the audit system to generate audit events showing start and stop times for user access via the "/var/log/btmp file". Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: @@ -2271,7 +6202,11 @@ Add or update the following rules in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system generates audit records showing start and stop times for user access to the system via the "/var/log/btmp" file. +$ sudo augenrules --load + + + + Verify the Ubuntu operating system generates audit records showing start and stop times for user access to the system via the "/var/log/btmp" file. Check the currently configured audit rules with the following command: @@ -2281,9 +6216,28 @@ $ sudo auditctl -l | grep '/var/log/btmp' If the command does not return a line matching the example or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000477-GPOS-00222<GroupDescription></GroupDescription>UBTU-20-010296The Ubuntu operating system must generate audit records when successful/unsuccessful attempts to use modprobe command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the Ubuntu operating system to audit the execution of the module management program "modprobe". +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000477-GPOS-00222 + <GroupDescription></GroupDescription> + + UBTU-20-010296 + The Ubuntu operating system must generate audit records when successful/unsuccessful attempts to use modprobe command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the Ubuntu operating system to audit the execution of the module management program "modprobe". Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: @@ -2291,7 +6245,11 @@ Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify if the Ubuntu operating system is configured to audit the execution of the module management program "modprobe" by running the following command: +$ sudo augenrules --load + + + + Verify if the Ubuntu operating system is configured to audit the execution of the module management program "modprobe" by running the following command: $ sudo auditctl -l | grep "/sbin/modprobe" @@ -2299,9 +6257,28 @@ $ sudo auditctl -l | grep "/sbin/modprobe" If the command does not return a line, or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000477-GPOS-00222<GroupDescription></GroupDescription>UBTU-20-010297The Ubuntu operating system must generate audit records when successful/unsuccessful attempts to use the kmod command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the Ubuntu operating system to audit the execution of the module management program "kmod". +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000477-GPOS-00222 + <GroupDescription></GroupDescription> + + UBTU-20-010297 + The Ubuntu operating system must generate audit records when successful/unsuccessful attempts to use the kmod command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the Ubuntu operating system to audit the execution of the module management program "kmod". Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: @@ -2309,7 +6286,11 @@ Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system is configured to audit the execution of the module management program "kmod". +$ sudo augenrules --load + + + + Verify the Ubuntu operating system is configured to audit the execution of the module management program "kmod". Check the currently configured audit rules with the following command: @@ -2319,9 +6300,28 @@ $ sudo auditctl -l | grep kmod If the command does not return a line, or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000477-GPOS-00222<GroupDescription></GroupDescription>UBTU-20-010298The Ubuntu operating system must generate audit records when successful/unsuccessful attempts to use the fdisk command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. - -Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000172Configure the Ubuntu operating system to audit the execution of the partition management program "fdisk". +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000477-GPOS-00222 + <GroupDescription></GroupDescription> + + UBTU-20-010298 + The Ubuntu operating system must generate audit records when successful/unsuccessful attempts to use the fdisk command. + <VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000172 + Configure the Ubuntu operating system to audit the execution of the partition management program "fdisk". Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: @@ -2329,7 +6329,11 @@ Add or update the following rule in the "/etc/audit/rules.d/stig.rules" file: To reload the rules file, issue the following command: -$ sudo augenrules --loadVerify the Ubuntu operating system is configured to audit the execution of the partition management program "fdisk". +$ sudo augenrules --load + + + + Verify the Ubuntu operating system is configured to audit the execution of the partition management program "fdisk". Check the currently configured audit rules with the following command: @@ -2339,11 +6343,34 @@ $ sudo auditctl -l | grep fdisk If the command does not return a line, or the line is commented out, this is a finding. -Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above.SRG-OS-000479-GPOS-00224<GroupDescription></GroupDescription>UBTU-20-010300The Ubuntu operating system must have a crontab script running weekly to offload audit events of standalone systems.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. - -Offloading is a common process in information systems with limited audit storage capacity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001851Create a script that offloads audit logs to external media and runs weekly. - -The script must be located in the "/etc/cron.weekly" directory.Note: If this is an interconnected system, this is Not Applicable. +Note: The "-k" allows for specifying an arbitrary identifier, and the string after it does not need to match the example output above. + + + + + SRG-OS-000479-GPOS-00224 + <GroupDescription></GroupDescription> + + UBTU-20-010300 + The Ubuntu operating system must have a crontab script running weekly to offload audit events of standalone systems. + <VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Offloading is a common process in information systems with limited audit storage capacity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001851 + Create a script that offloads audit logs to external media and runs weekly. + +The script must be located in the "/etc/cron.weekly" directory. + + + + Note: If this is an interconnected system, this is Not Applicable. Verify there is a script that offloads audit data and that script runs weekly. @@ -2355,13 +6382,36 @@ audit-offload Check if the script inside the file does offloading of audit logs to external media. -If the script file does not exist or does not offload audit logs, this is a finding.SRG-OS-000027-GPOS-00008<GroupDescription></GroupDescription>UBTU-20-010400The Ubuntu operating system must limit the number of concurrent sessions to ten for all accounts and/or account types.<VulnDiscussion>The Ubuntu operating system management includes the ability to control the number of users and user sessions that utilize an operating system. Limiting the number of allowed users and sessions per user is helpful in reducing the risks related to DoS attacks. - -This requirement addresses concurrent sessions for information system accounts and does not address concurrent sessions by single users via multiple system accounts. The maximum number of concurrent sessions should be defined based upon mission needs and the operational environment for each system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000054Configure the Ubuntu operating system to limit the number of concurrent sessions to 10 for all accounts and/or account types. +If the script file does not exist or does not offload audit logs, this is a finding. + + + + + SRG-OS-000027-GPOS-00008 + <GroupDescription></GroupDescription> + + UBTU-20-010400 + The Ubuntu operating system must limit the number of concurrent sessions to ten for all accounts and/or account types. + <VulnDiscussion>The Ubuntu operating system management includes the ability to control the number of users and user sessions that utilize an operating system. Limiting the number of allowed users and sessions per user is helpful in reducing the risks related to DoS attacks. + +This requirement addresses concurrent sessions for information system accounts and does not address concurrent sessions by single users via multiple system accounts. The maximum number of concurrent sessions should be defined based upon mission needs and the operational environment for each system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000054 + Configure the Ubuntu operating system to limit the number of concurrent sessions to 10 for all accounts and/or account types. Add the following line to the top of the "/etc/security/limits.conf" file: -* hard maxlogins 10Verify the Ubuntu operating system limits the number of concurrent sessions to 10 for all accounts and/or account types by running the following command: +* hard maxlogins 10 + + + + Verify the Ubuntu operating system limits the number of concurrent sessions to 10 for all accounts and/or account types by running the following command: $ grep maxlogins /etc/security/limits.conf | grep -v '^* hard maxlogins' @@ -2369,18 +6419,41 @@ The result must contain the following line: * hard maxlogins 10 -If the "maxlogins" item is missing or the value is not set to 10 or less or is commented out, this is a finding.SRG-OS-000032-GPOS-00013<GroupDescription></GroupDescription>UBTU-20-010403The Ubuntu operating system must monitor remote access methods.<VulnDiscussion>Remote access services, such as those providing remote access to network devices and information systems, which lack automated monitoring capabilities, increase risk and make remote user access management difficult at best. +If the "maxlogins" item is missing or the value is not set to 10 or less or is commented out, this is a finding. + + + + + SRG-OS-000032-GPOS-00013 + <GroupDescription></GroupDescription> + + UBTU-20-010403 + The Ubuntu operating system must monitor remote access methods. + <VulnDiscussion>Remote access services, such as those providing remote access to network devices and information systems, which lack automated monitoring capabilities, increase risk and make remote user access management difficult at best. Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. -Automated monitoring of remote access sessions allows organizations to detect cyber attacks and also ensure ongoing compliance with remote access policies by auditing connection activities of remote access capabilities, such as Remote Desktop Protocol (RDP), on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000067Configure the Ubuntu operating system to monitor all remote access methods by adding the following lines to the "/etc/rsyslog.d/50-default.conf" file: +Automated monitoring of remote access sessions allows organizations to detect cyber attacks and also ensure ongoing compliance with remote access policies by auditing connection activities of remote access capabilities, such as Remote Desktop Protocol (RDP), on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000067 + Configure the Ubuntu operating system to monitor all remote access methods by adding the following lines to the "/etc/rsyslog.d/50-default.conf" file: auth.*,authpriv.* /var/log/secure daemon.* /var/log/messages For the changes to take effect, restart the "rsyslog" service with the following command: -$ sudo systemctl restart rsyslog.serviceVerify that the Ubuntu operating system monitors all remote access methods. +$ sudo systemctl restart rsyslog.service + + + + Verify that the Ubuntu operating system monitors all remote access methods. Check that remote access methods are being logged by running the following command: @@ -2388,11 +6461,34 @@ $ grep -E -r '^(auth,authpriv\.\*|daemon\.\*)' /etc/rsyslog.* /etc/rsyslog.d/50-default.conf:auth,authpriv.* /var/log/auth.log /etc/rsyslog.d/50-default.conf:daemon.* /var/log/messages -If "auth.*", "authpriv.*", or "daemon.*" are not configured to be logged in at least one of the config files, this is a finding.SRG-OS-000120-GPOS-00061<GroupDescription></GroupDescription>UBTU-20-010404The Ubuntu operating system must encrypt all stored passwords with a FIPS 140-2 approved cryptographic hashing algorithm.<VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000803Configure the Ubuntu operating system to encrypt all stored passwords. +If "auth.*", "authpriv.*", or "daemon.*" are not configured to be logged in at least one of the config files, this is a finding. + + + + + SRG-OS-000120-GPOS-00061 + <GroupDescription></GroupDescription> + + UBTU-20-010404 + The Ubuntu operating system must encrypt all stored passwords with a FIPS 140-2 approved cryptographic hashing algorithm. + <VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000803 + Configure the Ubuntu operating system to encrypt all stored passwords. Edit/modify the following line in the "/etc/login.defs" file and set "ENCRYPT_METHOD" to SHA512: -ENCRYPT_METHOD SHA512Verify that the shadow password suite configuration is set to encrypt passwords with a FIPS 140-2 approved cryptographic hashing algorithm. +ENCRYPT_METHOD SHA512 + + + + Verify that the shadow password suite configuration is set to encrypt passwords with a FIPS 140-2 approved cryptographic hashing algorithm. Check the hashing algorithm that is being used to hash passwords with the following command: @@ -2400,27 +6496,92 @@ $ cat /etc/login.defs | grep -i encrypt_method ENCRYPT_METHOD SHA512 -If "ENCRYPT_METHOD" does not equal SHA512 or greater, this is a finding.SRG-OS-000074-GPOS-00042<GroupDescription></GroupDescription>UBTU-20-010405The Ubuntu operating system must not have the telnet package installed.<VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000197Remove the telnet package from the Ubuntu operating system by running the following command: - -$ sudo apt-get remove telnetdVerify that the telnet package is not installed on the Ubuntu operating system by running the following command: +If "ENCRYPT_METHOD" does not equal SHA512 or greater, this is a finding. + + + + + SRG-OS-000074-GPOS-00042 + <GroupDescription></GroupDescription> + + UBTU-20-010405 + The Ubuntu operating system must not have the telnet package installed. + <VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000197 + Remove the telnet package from the Ubuntu operating system by running the following command: + +$ sudo apt-get remove telnetd + + + + Verify that the telnet package is not installed on the Ubuntu operating system by running the following command: $ dpkg -l | grep telnetd -If the package is installed, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>UBTU-20-010406The Ubuntu operating system must not have the rsh-server package installed.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. +If the package is installed, this is a finding. + + + + + SRG-OS-000095-GPOS-00049 + <GroupDescription></GroupDescription> + + UBTU-20-010406 + The Ubuntu operating system must not have the rsh-server package installed. + <VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). -Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000381Configure the Ubuntu operating system to disable non-essential capabilities by removing the rsh-server package from the system with the following command: - -$ sudo apt-get remove rsh-serverVerify the rsh-server package is installed with the following command: +Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000381 + Configure the Ubuntu operating system to disable non-essential capabilities by removing the rsh-server package from the system with the following command: + +$ sudo apt-get remove rsh-server + + + + Verify the rsh-server package is installed with the following command: $ dpkg -l | grep rsh-server -If the rsh-server package is installed, this is a finding.SRG-OS-000096-GPOS-00050<GroupDescription></GroupDescription>UBTU-20-010407The Ubuntu operating system must be configured to prohibit or restrict the use of functions, ports, protocols, and/or services, as defined in the PPSM CAL and vulnerability assessments.<VulnDiscussion>In order to prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. +If the rsh-server package is installed, this is a finding. + + + + + SRG-OS-000096-GPOS-00050 + <GroupDescription></GroupDescription> + + UBTU-20-010407 + The Ubuntu operating system must be configured to prohibit or restrict the use of functions, ports, protocols, and/or services, as defined in the PPSM CAL and vulnerability assessments. + <VulnDiscussion>In order to prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. -To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality of life issues.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000382Add all ports, protocols, or services allowed by the PPSM CLSA by using the following command: +To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality of life issues.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000382 + Add all ports, protocols, or services allowed by the PPSM CLSA by using the following command: $ sudo ufw allow <direction> <port/protocol/service> @@ -2428,7 +6589,11 @@ where the direction is "in" or "out" and the port is the one corresponding to th To deny access to ports, protocols, or services, use: -$ sudo ufw deny <direction> <port/protocol/service>Verify the Ubuntu operating system is configured to prohibit or restrict the use of functions, ports, protocols, and/or services as defined in the Ports, Protocols, and Services Management (PPSM) Category Assignments List (CAL) and vulnerability assessments. +$ sudo ufw deny <direction> <port/protocol/service> + + + + Verify the Ubuntu operating system is configured to prohibit or restrict the use of functions, ports, protocols, and/or services as defined in the Ports, Protocols, and Services Management (PPSM) Category Assignments List (CAL) and vulnerability assessments. Check the firewall configuration for any unnecessary or prohibited functions, ports, protocols, and/or services by running the following command: @@ -2450,7 +6615,17 @@ Ask the System Administrator If there are any additional ports, protocols, or services that are not included in the PPSM CLSA, this is a finding. -If there are any ports, protocols, or services that are prohibited by the PPSM CAL, this is a finding.SRG-OS-000109-GPOS-00056<GroupDescription></GroupDescription>UBTU-20-010408The Ubuntu operating system must prevent direct login into the root account.<VulnDiscussion>To assure individual accountability and prevent unauthorized access, organizational users must be individually identified and authenticated. +If there are any ports, protocols, or services that are prohibited by the PPSM CAL, this is a finding. + + + + + SRG-OS-000109-GPOS-00056 + <GroupDescription></GroupDescription> + + UBTU-20-010408 + The Ubuntu operating system must prevent direct login into the root account. + <VulnDiscussion>To assure individual accountability and prevent unauthorized access, organizational users must be individually identified and authenticated. A group authenticator is a generic account used by multiple individuals. Use of a group authenticator alone does not uniquely identify individual users. Examples of the group authenticator is the UNIX OS "root" user account, the Windows "Administrator" account, the "sa" account, or a "helpdesk" account. @@ -2458,34 +6633,91 @@ For example, the UNIX and Windows operating systems offer a 'switch user' capabi Users (and any processes acting on behalf of users) need to be uniquely identified and authenticated for all accesses other than those accesses explicitly identified and documented by the organization, which outlines specific user actions that can be performed on the operating system without identification or authentication. -Requiring individuals to be authenticated with an individual authenticator prior to using a group authenticator allows for traceability of actions, as well as adding an additional level of protection of the actions that can be taken with group account knowledge.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000770Configure the Ubuntu operating system to prevent direct logins to the root account by performing the following operations: - -$ sudo passwd -l rootVerify the Ubuntu operating system prevents direct logins to the root account with the following command: +Requiring individuals to be authenticated with an individual authenticator prior to using a group authenticator allows for traceability of actions, as well as adding an additional level of protection of the actions that can be taken with group account knowledge.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000770 + Configure the Ubuntu operating system to prevent direct logins to the root account by performing the following operations: + +$ sudo passwd -l root + + + + Verify the Ubuntu operating system prevents direct logins to the root account with the following command: $ sudo passwd -S root root L 04/23/2020 0 99999 7 -1 -If the output does not contain "L" in the second field to indicate the account is locked, this is a finding.SRG-OS-000118-GPOS-00060<GroupDescription></GroupDescription>UBTU-20-010409The Ubuntu operating system must disable account identifiers (individuals, groups, roles, and devices) after 35 days of inactivity.<VulnDiscussion>Inactive identifiers pose a risk to systems and applications because attackers may exploit an inactive identifier and potentially obtain undetected access to the system. Owners of inactive accounts will not notice if unauthorized access to their user account has been obtained. - -Operating systems need to track periods of inactivity and disable application identifiers after 35 days of inactivity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000795Configure the Ubuntu operating system to disable account identifiers after 35 days of inactivity after the password expiration. +If the output does not contain "L" in the second field to indicate the account is locked, this is a finding. + + + + + SRG-OS-000118-GPOS-00060 + <GroupDescription></GroupDescription> + + UBTU-20-010409 + The Ubuntu operating system must disable account identifiers (individuals, groups, roles, and devices) after 35 days of inactivity. + <VulnDiscussion>Inactive identifiers pose a risk to systems and applications because attackers may exploit an inactive identifier and potentially obtain undetected access to the system. Owners of inactive accounts will not notice if unauthorized access to their user account has been obtained. + +Operating systems need to track periods of inactivity and disable application identifiers after 35 days of inactivity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000795 + Configure the Ubuntu operating system to disable account identifiers after 35 days of inactivity after the password expiration. Run the following command to change the configuration for adduser: $ sudo useradd -D -f 35 -Note: DoD recommendation is 35 days, but a lower value is acceptable. The value "0" will disable the account immediately after the password expires.Verify the account identifiers (individuals, groups, roles, and devices) are disabled after 35 days of inactivity with the following command: +Note: DoD recommendation is 35 days, but a lower value is acceptable. The value "0" will disable the account immediately after the password expires. + + + + Verify the account identifiers (individuals, groups, roles, and devices) are disabled after 35 days of inactivity with the following command: Check the account inactivity value by performing the following command: -$ sudo grep INACTIVE /etc/default/useradd - -INACTIVE=35 - -If "INACTIVE" is not set to a value 0<[VALUE]<=35, or is commented out, this is a finding.SRG-OS-000123-GPOS-00064<GroupDescription></GroupDescription>UBTU-20-010410The Ubuntu operating system must automatically remove or disable emergency accounts after 72 hours.<VulnDiscussion>Emergency accounts are different from infrequently used accounts (i.e., local logon accounts used by the organization's System Administrator -s when network or normal logon/access is not available). Infrequently used accounts are not subject to automatic termination dates. Emergency accounts are accounts created in response to crisis situations, usually for use by maintenance personnel. The automatic expiration or disabling time period may be extended as needed until the crisis is resolved; however, it must not be extended indefinitely. A permanent account should be established for privileged users who need long-term maintenance accounts.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001682If an emergency account must be created, configure the system to terminate the account after a 72-hour time period with the following command to set an expiration date on it. Substitute "account_name" with the account to be created. - -$ sudo chage -E $(date -d "+3 days" +%F) account_nameVerify the Ubuntu operating system expires emergency accounts within 72 hours or less. +$ sudo grep INACTIVE /etc/default/useradd INACTIVE=35 + +If "INACTIVE" is not set to a value 0<[VALUE]<=35, or is commented out, this is a finding. + + + + + SRG-OS-000123-GPOS-00064 + <GroupDescription></GroupDescription> + + UBTU-20-010410 + The Ubuntu operating system must automatically remove or disable emergency accounts after 72 hours. + <VulnDiscussion>Emergency accounts are different from infrequently used accounts (i.e., local logon accounts used by the organization's System Administrator +s when network or normal logon/access is not available). Infrequently used accounts are not subject to automatic termination dates. Emergency accounts are accounts created in response to crisis situations, usually for use by maintenance personnel. The automatic expiration or disabling time period may be extended as needed until the crisis is resolved; however, it must not be extended indefinitely. A permanent account should be established for privileged users who need long-term maintenance accounts.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001682 + If an emergency account must be created, configure the system to terminate the account after a 72-hour time period with the following command to set an expiration date on it. Substitute "account_name" with the account to be created. + +$ sudo chage -E $(date -d "+3 days" +%F) account_name + + + + Verify the Ubuntu operating system expires emergency accounts within 72 hours or less. For every emergency account, run the following command to obtain its account expiration information: @@ -2496,29 +6728,75 @@ Account expires : Aug 07, 2019 Verify each of these accounts has an expiration date set within 72 hours of account creation. -If any of these accounts do not expire within 72 hours of that account's creation, this is a finding.SRG-OS-000138-GPOS-00069<GroupDescription></GroupDescription>UBTU-20-010411The Ubuntu operating system must set a sticky bit on all public directories to prevent unauthorized and unintended information transferred via shared system resources.<VulnDiscussion>Preventing unauthorized information transfers mitigates the risk of information, including encrypted representations of information, produced by the actions of prior users/roles (or the actions of processes acting on behalf of prior users/roles) from being available to any current users/roles (or current processes) that obtain access to shared system resources (e.g., registers, main memory, hard disks) after those resources have been released back to information systems. The control of information in shared resources is also commonly referred to as object reuse and residual information protection. +If any of these accounts do not expire within 72 hours of that account's creation, this is a finding. + + + + + SRG-OS-000138-GPOS-00069 + <GroupDescription></GroupDescription> + + UBTU-20-010411 + The Ubuntu operating system must set a sticky bit on all public directories to prevent unauthorized and unintended information transferred via shared system resources. + <VulnDiscussion>Preventing unauthorized information transfers mitigates the risk of information, including encrypted representations of information, produced by the actions of prior users/roles (or the actions of processes acting on behalf of prior users/roles) from being available to any current users/roles (or current processes) that obtain access to shared system resources (e.g., registers, main memory, hard disks) after those resources have been released back to information systems. The control of information in shared resources is also commonly referred to as object reuse and residual information protection. This requirement generally applies to the design of an information technology product, but it can also apply to the configuration of particular information system components that are, or use, such products. This can be verified by acceptance/validation processes in DoD or other government agencies. -There may be shared resources with configurable protections (e.g., files in storage) that may be assessed on specific information system components.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001090Configure all public directories to have the sticky bit set to prevent unauthorized and unintended information transferred via shared system resources. +There may be shared resources with configurable protections (e.g., files in storage) that may be assessed on specific information system components.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001090 + Configure all public directories to have the sticky bit set to prevent unauthorized and unintended information transferred via shared system resources. Set the sticky bit on all public directories using the following command, replacing "[Public Directory]" with any directory path missing the sticky bit: -$ sudo chmod +t [Public Directory]Verify that all public (world-writeable) directories have the public sticky bit set. +$ sudo chmod +t [Public Directory] + + + + Verify that all public (world-writeable) directories have the public sticky bit set. Find world-writable directories that lack the sticky bit by running the following command: $ sudo find / -type d -perm -002 ! -perm -1000 -If any world-writable directories are found missing the sticky bit, this is a finding.SRG-OS-000142-GPOS-00071<GroupDescription></GroupDescription>UBTU-20-010412The Ubuntu operating system must be configured to use TCP syncookies.<VulnDiscussion>DoS is a condition when a resource is not available for legitimate users. When this occurs, the organization either cannot accomplish its mission or must operate at degraded capacity. - -Managing excess capacity ensures that sufficient capacity is available to counter flooding attacks. Employing increased capacity and service redundancy may reduce the susceptibility to some DoS attacks. Managing excess capacity may include, for example, establishing selected usage priorities, quotas, or partitioning.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001095Configure the Ubuntu operating system to use TCP syncookies by running the following command: +If any world-writable directories are found missing the sticky bit, this is a finding. + + + + + SRG-OS-000142-GPOS-00071 + <GroupDescription></GroupDescription> + + UBTU-20-010412 + The Ubuntu operating system must be configured to use TCP syncookies. + <VulnDiscussion>DoS is a condition when a resource is not available for legitimate users. When this occurs, the organization either cannot accomplish its mission or must operate at degraded capacity. + +Managing excess capacity ensures that sufficient capacity is available to counter flooding attacks. Employing increased capacity and service redundancy may reduce the susceptibility to some DoS attacks. Managing excess capacity may include, for example, establishing selected usage priorities, quotas, or partitioning.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001095 + Configure the Ubuntu operating system to use TCP syncookies by running the following command: $ sudo sysctl -w net.ipv4.tcp_syncookies=1 If "1" is not the system's default value, add or update the following line in "/etc/sysctl.conf": -net.ipv4.tcp_syncookies = 1Verify the Ubuntu operating system is configured to use TCP syncookies. +net.ipv4.tcp_syncookies = 1 + + + + Verify the Ubuntu operating system is configured to use TCP syncookies. Check the value of TCP syncookies with the following command: @@ -2531,11 +6809,34 @@ Check the saved value of TCP syncookies with the following command: $ sudo grep -i net.ipv4.tcp_syncookies /etc/sysctl.conf /etc/sysctl.d/* | grep -v '#' -If no output is returned, this is a finding.SRG-OS-000184-GPOS-00078<GroupDescription></GroupDescription>UBTU-20-010413The Ubuntu operating system must disable kernel core dumps so that it can fail to a secure state if system initialization fails, shutdown fails or aborts fail.<VulnDiscussion>Kernel core dumps may contain the full contents of system memory at the time of the crash. Kernel core dumps may consume a considerable amount of disk space and may result in denial of service by exhausting the available space on the target file system partition.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001190If kernel core dumps are not required, disable the "kdump" service with the following command: +If no output is returned, this is a finding. + + + + + SRG-OS-000184-GPOS-00078 + <GroupDescription></GroupDescription> + + UBTU-20-010413 + The Ubuntu operating system must disable kernel core dumps so that it can fail to a secure state if system initialization fails, shutdown fails or aborts fail. + <VulnDiscussion>Kernel core dumps may contain the full contents of system memory at the time of the crash. Kernel core dumps may consume a considerable amount of disk space and may result in denial of service by exhausting the available space on the target file system partition.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001190 + If kernel core dumps are not required, disable the "kdump" service with the following command: $ sudo systemctl disable kdump.service -If kernel core dumps are required, document the need with the ISSO.Verify that kernel core dumps are disabled unless needed. +If kernel core dumps are required, document the need with the ISSO. + + + + Verify that kernel core dumps are disabled unless needed. Check if "kdump" service is active with the following command: @@ -2544,11 +6845,34 @@ inactive If the "kdump" service is active, ask the SA if the use of the service is required and documented with the ISSO. -If the service is active and is not documented, this is a finding.SRG-OS-000185-GPOS-00079<GroupDescription></GroupDescription>UBTU-20-010414Ubuntu operating systems handling data requiring "data at rest" protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest.<VulnDiscussion>Information at rest refers to the state of information when it is located on a secondary storage device (e.g., disk drive and tape drive, when used for backups) within an operating system. - -This requirement addresses protection of user-generated data, as well as operating system-specific configuration data. Organizations may choose to employ different mechanisms to achieve confidentiality and integrity protections, as appropriate, in accordance with the security category and/or classification of the information.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001199To encrypt an entire partition, dedicate a partition for encryption in the partition layout. - -Note: Encrypting a partition in an already-installed system is more difficult because it will need to be resized and existing partitions changed.If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. +If the service is active and is not documented, this is a finding. + + + + + SRG-OS-000185-GPOS-00079 + <GroupDescription></GroupDescription> + + UBTU-20-010414 + Ubuntu operating systems handling data requiring "data at rest" protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. + <VulnDiscussion>Information at rest refers to the state of information when it is located on a secondary storage device (e.g., disk drive and tape drive, when used for backups) within an operating system. + +This requirement addresses protection of user-generated data, as well as operating system-specific configuration data. Organizations may choose to employ different mechanisms to achieve confidentiality and integrity protections, as appropriate, in accordance with the security category and/or classification of the information.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001199 + To encrypt an entire partition, dedicate a partition for encryption in the partition layout. + +Note: Encrypting a partition in an already-installed system is more difficult because it will need to be resized and existing partitions changed. + + + + If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. Verify the Ubuntu operating system prevents unauthorized disclosure or modification of all information requiring at-rest protection by using disk encryption. @@ -2575,13 +6899,36 @@ Verify the system partitions are all encrypted with the following command: Every persistent disk partition present must have an entry in the file. -If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not listed, this is a finding.SRG-OS-000191-GPOS-00080<GroupDescription></GroupDescription>UBTU-20-010415The Ubuntu operating system must deploy Endpoint Security for Linux Threat Prevention (ENSLTP).<VulnDiscussion>Without the use of automated mechanisms to scan for security flaws on a continuous and/or periodic basis, the operating system or other system components may remain vulnerable to the exploits presented by undetected software flaws. - -To support this requirement, the operating system may have an integrated solution incorporating continuous scanning using HBSS and periodic scanning using other tools, as specified in the requirement.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001233The Ubuntu operating system is not compliant with this requirement; however, the severity level can be mitigated to a CAT III if the ENSLTP module is installed and running. +If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not listed, this is a finding. + + + + + SRG-OS-000191-GPOS-00080 + <GroupDescription></GroupDescription> + + UBTU-20-010415 + The Ubuntu operating system must deploy Endpoint Security for Linux Threat Prevention (ENSLTP). + <VulnDiscussion>Without the use of automated mechanisms to scan for security flaws on a continuous and/or periodic basis, the operating system or other system components may remain vulnerable to the exploits presented by undetected software flaws. + +To support this requirement, the operating system may have an integrated solution incorporating continuous scanning using HBSS and periodic scanning using other tools, as specified in the requirement.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001233 + The Ubuntu operating system is not compliant with this requirement; however, the severity level can be mitigated to a CAT III if the ENSLTP module is installed and running. Configure the Ubuntu operating system to use ENSLTP. -Install the "mcafeetp" package via the ePO server.The Ubuntu operating system is not compliant with this requirement; hence, it is a finding. However, the severity level can be mitigated to a CAT III if the ENSLTP module is installed and running. +Install the "mcafeetp" package via the ePO server. + + + + The Ubuntu operating system is not compliant with this requirement; hence, it is a finding. However, the severity level can be mitigated to a CAT III if the ENSLTP module is installed and running. Check that the "mcafeetp" package has been installed: @@ -2593,77 +6940,261 @@ Check that the daemon is running: # /opt/McAfee/ens/tp/init/mfetpd-control.sh status -If the daemon is not running, this finding will remain as a CAT II.SRG-OS-000205-GPOS-00083<GroupDescription></GroupDescription>UBTU-20-010416The Ubuntu operating system must generate error messages that provide information necessary for corrective actions without revealing information that could be exploited by adversaries.<VulnDiscussion> Any operating system providing too much information in error messages risks compromising the data and security of the structure, and content of error messages needs to be carefully considered by the organization. - -Organizations carefully consider the structure/content of error messages. The extent to which information systems are able to identify and handle error conditions is guided by organizational policy and operational requirements. Information that could be exploited by adversaries includes, for example, erroneous logon attempts with passwords entered by mistake as the username, mission/business information that can be derived from (if not stated explicitly by) information recorded, and personal information, such as account numbers, social security numbers, and credit card numbers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001312Configure the Ubuntu operating system to set permissions of all log files under the "/var/log" directory to 640 or more restricted by using the following command: - -$ sudo find /var/log -perm /137 -type f -exec chmod 640 '{}' \;Verify the Ubuntu operating system has all system log files under the "/var/log" directory with a permission set to 640 or less permissive by using the following command: +If the daemon is not running, this finding will remain as a CAT II. + + + + + SRG-OS-000205-GPOS-00083 + <GroupDescription></GroupDescription> + + UBTU-20-010416 + The Ubuntu operating system must generate error messages that provide information necessary for corrective actions without revealing information that could be exploited by adversaries. + <VulnDiscussion> Any operating system providing too much information in error messages risks compromising the data and security of the structure, and content of error messages needs to be carefully considered by the organization. + +Organizations carefully consider the structure/content of error messages. The extent to which information systems are able to identify and handle error conditions is guided by organizational policy and operational requirements. Information that could be exploited by adversaries includes, for example, erroneous logon attempts with passwords entered by mistake as the username, mission/business information that can be derived from (if not stated explicitly by) information recorded, and personal information, such as account numbers, social security numbers, and credit card numbers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001312 + Configure the Ubuntu operating system to set permissions of all log files under the "/var/log" directory to 640 or more restricted by using the following command: + +$ sudo find /var/log -perm /137 -type f -exec chmod 640 '{}' \; + + + + Verify the Ubuntu operating system has all system log files under the "/var/log" directory with a permission set to 640 or less permissive by using the following command: $ sudo find /var/log -perm /137 -type f -exec stat -c "%n %a" {} \; -If the command displays any output, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>UBTU-20-010417The Ubuntu operating system must configure the /var/log directory to be group-owned by syslog.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. - -The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001314Configure the Ubuntu operating system to have syslog group-own the "/var/log" directory by running the following command: - -$ sudo chgrp syslog /var/logVerify that the Ubuntu operating system configures the "/var/log" directory to be group-owned by syslog with the following command: +If the command displays any output, this is a finding. + + + + + SRG-OS-000206-GPOS-00084 + <GroupDescription></GroupDescription> + + UBTU-20-010417 + The Ubuntu operating system must configure the /var/log directory to be group-owned by syslog. + <VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001314 + Configure the Ubuntu operating system to have syslog group-own the "/var/log" directory by running the following command: + +$ sudo chgrp syslog /var/log + + + + Verify that the Ubuntu operating system configures the "/var/log" directory to be group-owned by syslog with the following command: $ sudo stat -c "%n %G" /var/log /var/log syslog -If the "/var/log" directory is not group-owned by syslog, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>UBTU-20-010418The Ubuntu operating system must configure the /var/log directory to be owned by root.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. - -The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001314Configure the Ubuntu operating system to have root own the "/var/log" directory by running the following command: - -$ sudo chown root /var/logVerify the Ubuntu operating system configures the "/var/log" directory to be owned by root with the following command: +If the "/var/log" directory is not group-owned by syslog, this is a finding. + + + + + SRG-OS-000206-GPOS-00084 + <GroupDescription></GroupDescription> + + UBTU-20-010418 + The Ubuntu operating system must configure the /var/log directory to be owned by root. + <VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001314 + Configure the Ubuntu operating system to have root own the "/var/log" directory by running the following command: + +$ sudo chown root /var/log + + + + Verify the Ubuntu operating system configures the "/var/log" directory to be owned by root with the following command: $ sudo stat -c "%n %U" /var/log /var/log root -If the "/var/log" directory is not owned by root, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>UBTU-20-010419The Ubuntu operating system must configure the /var/log directory to have mode 0750 or less permissive.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. - -The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001314Configure the Ubuntu operating system to have permissions of 0750 for the "/var/log" directory by running the following command: - -$ sudo chmod 0750 /var/logVerify that the Ubuntu operating system configures the "/var/log" directory with a mode of 750 or less permissive with the following command: +If the "/var/log" directory is not owned by root, this is a finding. + + + + + SRG-OS-000206-GPOS-00084 + <GroupDescription></GroupDescription> + + UBTU-20-010419 + The Ubuntu operating system must configure the /var/log directory to have mode 0750 or less permissive. + <VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001314 + Configure the Ubuntu operating system to have permissions of 0750 for the "/var/log" directory by running the following command: + +$ sudo chmod 0750 /var/log + + + + Verify that the Ubuntu operating system configures the "/var/log" directory with a mode of 750 or less permissive with the following command: $ stat -c "%n %a" /var/log /var/log 750 -If a value of "750" or less permissive is not returned, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>UBTU-20-010420The Ubuntu operating system must configure the /var/log/syslog file to be group-owned by adm.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. - -The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001314Configure the Ubuntu operating system to have adm group-own the "/var/log/syslog" file by running the following command: - -$ sudo chgrp adm /var/log/syslogVerify that the Ubuntu operating system configures the "/var/log/syslog" file to be group-owned by adm with the following command: +If a value of "750" or less permissive is not returned, this is a finding. + + + + + SRG-OS-000206-GPOS-00084 + <GroupDescription></GroupDescription> + + UBTU-20-010420 + The Ubuntu operating system must configure the /var/log/syslog file to be group-owned by adm. + <VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001314 + Configure the Ubuntu operating system to have adm group-own the "/var/log/syslog" file by running the following command: + +$ sudo chgrp adm /var/log/syslog + + + + Verify that the Ubuntu operating system configures the "/var/log/syslog" file to be group-owned by adm with the following command: $ sudo stat -c "%n %G" /var/log/syslog /var/log/syslog adm -If the "/var/log/syslog" file is not group-owned by adm, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>UBTU-20-010421The Ubuntu operating system must configure /var/log/syslog file to be owned by syslog.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. - -The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001314Configure the Ubuntu operating system to have syslog own the "/var/log/syslog" file by running the following command: - -$ sudo chown syslog /var/log/syslogVerify that the Ubuntu operating system configures the "/var/log/syslog" file to be owned by syslog with the following command: +If the "/var/log/syslog" file is not group-owned by adm, this is a finding. + + + + + SRG-OS-000206-GPOS-00084 + <GroupDescription></GroupDescription> + + UBTU-20-010421 + The Ubuntu operating system must configure /var/log/syslog file to be owned by syslog. + <VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001314 + Configure the Ubuntu operating system to have syslog own the "/var/log/syslog" file by running the following command: + +$ sudo chown syslog /var/log/syslog + + + + Verify that the Ubuntu operating system configures the "/var/log/syslog" file to be owned by syslog with the following command: $ sudo stat -c "%n %U" /var/log/syslog /var/log/syslog syslog -If the "/var/log/syslog" file is not owned by syslog, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>UBTU-20-010422The Ubuntu operating system must configure /var/log/syslog file with mode 0640 or less permissive.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. - -The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001314Configure the Ubuntu operating system to have permissions of 0640 for the "/var/log/syslog" file by running the following command: - -$ sudo chmod 0640 /var/log/syslogVerify that the Ubuntu operating system configures the "/var/log/syslog" file with mode 0640 or less permissive by running the following command: +If the "/var/log/syslog" file is not owned by syslog, this is a finding. + + + + + SRG-OS-000206-GPOS-00084 + <GroupDescription></GroupDescription> + + UBTU-20-010422 + The Ubuntu operating system must configure /var/log/syslog file with mode 0640 or less permissive. + <VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the operating system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001314 + Configure the Ubuntu operating system to have permissions of 0640 for the "/var/log/syslog" file by running the following command: + +$ sudo chmod 0640 /var/log/syslog + + + + Verify that the Ubuntu operating system configures the "/var/log/syslog" file with mode 0640 or less permissive by running the following command: $ sudo stat -c "%n %a" /var/log/syslog /var/log/syslog 640 -If a value of "640" or less permissive is not returned, this is a finding.SRG-OS-000258-GPOS-00099<GroupDescription></GroupDescription>UBTU-20-010423The Ubuntu operating system must have directories that contain system commands set to a mode of 0755 or less permissive.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. +If a value of "640" or less permissive is not returned, this is a finding. + + + + + SRG-OS-000258-GPOS-00099 + <GroupDescription></GroupDescription> + + UBTU-20-010423 + The Ubuntu operating system must have directories that contain system commands set to a mode of 0755 or less permissive. + <VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. Operating systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools and the corresponding rights the user has in order to make access decisions regarding the deletion of audit tools. -Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001495Configure the system commands directories to be protected from unauthorized access. Run the following command: - -$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -perm /022 -type d -exec chmod -R 755 '{}' \;Verify the system commands directories have mode 0755 or less permissive: +Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001495 + Configure the system commands directories to be protected from unauthorized access. Run the following command: + +$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -perm /022 -type d -exec chmod -R 755 '{}' \; + + + + Verify the system commands directories have mode 0755 or less permissive: /bin /sbin @@ -2676,13 +7207,36 @@ Check that the system command directories have mode 0755 or less permissive with $ find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -perm /022 -type d -exec stat -c "%n %a" '{}' \; -If any directories are found to be group-writable or world-writable, this is a finding.SRG-OS-000258-GPOS-00099<GroupDescription></GroupDescription>UBTU-20-010424The Ubuntu operating system must have directories that contain system commands owned by root.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. +If any directories are found to be group-writable or world-writable, this is a finding. + + + + + SRG-OS-000258-GPOS-00099 + <GroupDescription></GroupDescription> + + UBTU-20-010424 + The Ubuntu operating system must have directories that contain system commands owned by root. + <VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. Operating systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools and the corresponding rights the user has in order to make access decisions regarding the deletion of audit tools. -Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001495Configure the system commands directories to be protected from unauthorized access. Run the following command: - -$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -user root -type d -exec chown root '{}' \;Verify the system commands directories are owned by root: +Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001495 + Configure the system commands directories to be protected from unauthorized access. Run the following command: + +$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -user root -type d -exec chown root '{}' \; + + + + Verify the system commands directories are owned by root: /bin /sbin @@ -2695,13 +7249,36 @@ Use the following command for the check: $ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -user root -type d -exec stat -c "%n %U" '{}' \; -If any system commands directories are returned, this is a finding.SRG-OS-000258-GPOS-00099<GroupDescription></GroupDescription>UBTU-20-010425The Ubuntu operating system must have directories that contain system commands group-owned by root.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. +If any system commands directories are returned, this is a finding. + + + + + SRG-OS-000258-GPOS-00099 + <GroupDescription></GroupDescription> + + UBTU-20-010425 + The Ubuntu operating system must have directories that contain system commands group-owned by root. + <VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. Operating systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools and the corresponding rights the user has in order to make access decisions regarding the deletion of audit tools. -Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001495Configure the system commands directories to be protected from unauthorized access. Run the following command: - -$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -group root -type d -exec chgrp root '{}' \;Verify the system commands directories are group-owned by root: +Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001495 + Configure the system commands directories to be protected from unauthorized access. Run the following command: + +$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -group root -type d -exec chgrp root '{}' \; + + + + Verify the system commands directories are group-owned by root: /bin /sbin @@ -2714,58 +7291,215 @@ Run the check with the following command: $ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -group root -type d -exec stat -c "%n %G" '{}' \; -If any system commands directories are returned that are not Set Group ID up on execution (SGID) files and owned by a privileged account, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010426The Ubuntu operating system library files must have mode 0755 or less permissive.<VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the library files to be protected from unauthorized access. Run the following command: - -$ sudo find /lib /lib64 /usr/lib -perm /022 -type f -exec chmod 755 '{}' \;Verify the system-wide shared library files contained in the directories "/lib", "/lib64", and "/usr/lib" have mode 0755 or less permissive with the following command: +If any system commands directories are returned that are not Set Group ID up on execution (SGID) files and owned by a privileged account, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010426 + The Ubuntu operating system library files must have mode 0755 or less permissive. + <VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the library files to be protected from unauthorized access. Run the following command: + +$ sudo find /lib /lib64 /usr/lib -perm /022 -type f -exec chmod 755 '{}' \; + + + + Verify the system-wide shared library files contained in the directories "/lib", "/lib64", and "/usr/lib" have mode 0755 or less permissive with the following command: $ sudo find /lib /lib64 /usr/lib -perm /022 -type f -exec stat -c "%n %a" '{}' \; /usr/lib64/pkcs11-spy.so -If any files are found to be group-writable or world-writable, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010427The Ubuntu operating system library directories must have mode 0755 or less permissive.<VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the shared library directories to be protected from unauthorized access. Run the following command: - -$ sudo find /lib /lib64 /usr/lib -perm /022 -type d -exec chmod 755 '{}' \;Verify the system-wide shared library directories "/lib", "/lib64", and "/usr/lib have mode 0755 or less permissive with the following command: +If any files are found to be group-writable or world-writable, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010427 + The Ubuntu operating system library directories must have mode 0755 or less permissive. + <VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the shared library directories to be protected from unauthorized access. Run the following command: + +$ sudo find /lib /lib64 /usr/lib -perm /022 -type d -exec chmod 755 '{}' \; + + + + Verify the system-wide shared library directories "/lib", "/lib64", and "/usr/lib have mode 0755 or less permissive with the following command: $ sudo find /lib /lib64 /usr/lib -perm /022 -type d -exec stat -c "%n %a" '{}' \; -If any of the aforementioned directories are found to be group-writable or world-writable, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010428The Ubuntu operating system library files must be owned by root.<VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the system library files to be protected from unauthorized access. Run the following command: - -$ sudo find /lib /usr/lib /lib64 ! -user root -type f -exec chown root '{}' \;Verify the system-wide shared library files contained in the directories "/lib", "/lib64", and "/usr/lib" are owned by root with the following command: +If any of the aforementioned directories are found to be group-writable or world-writable, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010428 + The Ubuntu operating system library files must be owned by root. + <VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the system library files to be protected from unauthorized access. Run the following command: + +$ sudo find /lib /usr/lib /lib64 ! -user root -type f -exec chown root '{}' \; + + + + Verify the system-wide shared library files contained in the directories "/lib", "/lib64", and "/usr/lib" are owned by root with the following command: $ sudo find /lib /usr/lib /lib64 ! -user root -type f -exec stat -c "%n %U" '{}' \; -If any system-wide library file is returned, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010429The Ubuntu operating system library directories must be owned by root.<VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the library files and their respective parent directories to be protected from unauthorized access. Run the following command: - -$ sudo find /lib /usr/lib /lib64 ! -user root -type d -exec chown root '{}' \;Verify the system-wide shared library directories "/lib", "/lib64", and "/usr/lib" are owned by root with the following command: +If any system-wide library file is returned, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010429 + The Ubuntu operating system library directories must be owned by root. + <VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the library files and their respective parent directories to be protected from unauthorized access. Run the following command: + +$ sudo find /lib /usr/lib /lib64 ! -user root -type d -exec chown root '{}' \; + + + + Verify the system-wide shared library directories "/lib", "/lib64", and "/usr/lib" are owned by root with the following command: $ sudo find /lib /usr/lib /lib64 ! -user root -type d -exec stat -c "%n %U" '{}' \; -If any system-wide library directory is returned, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010430The Ubuntu operating system library files must be group-owned by root or a system account.<VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the system library files to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not group-owned by "root" or a required system account: - -$ sudo chgrp root [FILE]Verify the system-wide library files contained in the directories "/lib", "/lib64", and "/usr/lib" are group-owned by root, or a required system account, with the following command: +If any system-wide library directory is returned, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010430 + The Ubuntu operating system library files must be group-owned by root or a system account. + <VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the system library files to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not group-owned by "root" or a required system account: + +$ sudo chgrp root [FILE] + + + + Verify the system-wide library files contained in the directories "/lib", "/lib64", and "/usr/lib" are group-owned by root, or a required system account, with the following command: $ sudo find /lib /usr/lib /lib64 ! -group root -type f -exec stat -c "%n %G" '{}' \; -If any system-wide shared library file is returned and is not group-owned by a required system account, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010431The Ubuntu operating system library directories must be group-owned by root.<VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the system library directories to be protected from unauthorized access. Run the following command: - -$ sudo find /lib /usr/lib /lib64 ! -group root -type d -exec chgrp root '{}' \;Verify the system-wide library directories "/lib", "/lib64", and "/usr/lib" are group-owned by root with the following command: +If any system-wide shared library file is returned and is not group-owned by a required system account, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010431 + The Ubuntu operating system library directories must be group-owned by root. + <VulnDiscussion> If the operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the system library directories to be protected from unauthorized access. Run the following command: + +$ sudo find /lib /usr/lib /lib64 ! -group root -type d -exec chgrp root '{}' \; + + + + Verify the system-wide library directories "/lib", "/lib64", and "/usr/lib" are group-owned by root with the following command: $ sudo find /lib /usr/lib /lib64 ! -group root -type d -exec stat -c "%n %G" '{}' \; -If any system-wide shared library directory is returned, this is a finding.SRG-OS-000269-GPOS-00103<GroupDescription></GroupDescription>UBTU-20-010432The Ubuntu operating system must be configured to preserve log records from failure events.<VulnDiscussion>Failure to a known state can address safety or security in accordance with the mission/business needs of the organization. Failure to a known secure state helps prevent a loss of confidentiality, integrity, or availability in the event of a failure of the information system or a component of the system. - -Preserving operating system state information helps to facilitate operating system restart and return to the operational mode of the organization with least disruption to mission/business processes.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001665Configure the log service to collect failure events. +If any system-wide shared library directory is returned, this is a finding. + + + + + SRG-OS-000269-GPOS-00103 + <GroupDescription></GroupDescription> + + UBTU-20-010432 + The Ubuntu operating system must be configured to preserve log records from failure events. + <VulnDiscussion>Failure to a known state can address safety or security in accordance with the mission/business needs of the organization. Failure to a known secure state helps prevent a loss of confidentiality, integrity, or availability in the event of a failure of the information system or a component of the system. + +Preserving operating system state information helps to facilitate operating system restart and return to the operational mode of the organization with least disruption to mission/business processes.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001665 + Configure the log service to collect failure events. Install the log service (if the log service is not already installed) with the following command: @@ -2773,7 +7507,11 @@ $ sudo apt-get install rsyslog Enable the log service with the following command: -$ sudo systemctl enable --now rsyslogVerify the log service is configured to collect system failure events. +$ sudo systemctl enable --now rsyslog + + + + Verify the log service is configured to collect system failure events. Check that the log service is installed properly with the following command: @@ -2797,13 +7535,36 @@ $ systemctl is-active rsyslog active -If the command above returns "inactive", this is a finding.SRG-OS-000297-GPOS-00115<GroupDescription></GroupDescription>UBTU-20-010433The Ubuntu operating system must have an application firewall installed in order to control remote access methods.<VulnDiscussion>Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best. +If the command above returns "inactive", this is a finding. + + + + + SRG-OS-000297-GPOS-00115 + <GroupDescription></GroupDescription> + + UBTU-20-010433 + The Ubuntu operating system must have an application firewall installed in order to control remote access methods. + <VulnDiscussion>Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best. Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. -Ubuntu operating system functionality (e.g., RDP) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002314Install the Uncomplicated Firewall by using the following command: - -$ sudo apt-get install ufwVerify that the Uncomplicated Firewall is installed with the following command: +Ubuntu operating system functionality (e.g., RDP) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002314 + Install the Uncomplicated Firewall by using the following command: + +$ sudo apt-get install ufw + + + + Verify that the Uncomplicated Firewall is installed with the following command: $ dpkg -l | grep ufw @@ -2811,13 +7572,36 @@ ii ufw 0.36-6 If the "ufw" package is not installed, ask the System Administrator if another application firewall is installed. -If no application firewall is installed, this is a finding.SRG-OS-000297-GPOS-00115<GroupDescription></GroupDescription>UBTU-20-010434The Ubuntu operating system must enable and run the uncomplicated firewall(ufw).<VulnDiscussion>Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best. +If no application firewall is installed, this is a finding. + + + + + SRG-OS-000297-GPOS-00115 + <GroupDescription></GroupDescription> + + UBTU-20-010434 + The Ubuntu operating system must enable and run the uncomplicated firewall(ufw). + <VulnDiscussion>Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best. Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. -Ubuntu operating system functionality (e.g., RDP) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002314Enable the Uncomplicated Firewall by using the following command: - -$ sudo systemctl enable --now ufw.serviceVerify the Uncomplicated Firewall is enabled on the system by running the following command: +Ubuntu operating system functionality (e.g., RDP) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002314 + Enable the Uncomplicated Firewall by using the following command: + +$ sudo systemctl enable --now ufw.service + + + + Verify the Uncomplicated Firewall is enabled on the system by running the following command: $ systemctl is-enabled ufw @@ -2831,11 +7615,30 @@ If the above command returns "inactive" or any kind of error, this is a finding. If the Uncomplicated Firewall is not installed, ask the System Administrator if another application firewall is installed. -If no application firewall is installed, this is a finding.SRG-OS-000355-GPOS-00143<GroupDescription></GroupDescription>UBTU-20-010435The Ubuntu operating system must, for networked systems, compare internal information system clocks at least every 24 hours with a server which is synchronized to one of the redundant United States Naval Observatory (USNO) time servers, or a time server designated for the appropriate DoD network (NIPRNet/SIPRNet), and/or the Global Positioning System (GPS).<VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside the configured acceptable allowance (drift) may be inaccurate. +If no application firewall is installed, this is a finding. + + + + + SRG-OS-000355-GPOS-00143 + <GroupDescription></GroupDescription> + + UBTU-20-010435 + The Ubuntu operating system must, for networked systems, compare internal information system clocks at least every 24 hours with a server which is synchronized to one of the redundant United States Naval Observatory (USNO) time servers, or a time server designated for the appropriate DoD network (NIPRNet/SIPRNet), and/or the Global Positioning System (GPS). + <VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside the configured acceptable allowance (drift) may be inaccurate. Synchronizing internal information system clocks provides uniformity of time stamps for information systems with multiple system clocks and systems connected over a network. -Organizations should consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001891If the system is not networked, this requirement is Not Applicable. +Organizations should consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001891 + If the system is not networked, this requirement is Not Applicable. To configure the system clock to compare the system clock at least every 24 hours to the authoritative time source, edit the "/etc/chrony/chrony.conf" file. Add or correct the following lines, by replacing "[source]" in the following line with an authoritative DoD time source: @@ -2843,7 +7646,11 @@ server [source] iburst maxpoll = 16 If the "chrony" service was running and the value of "maxpoll" or "server" was updated, the service must be restarted using the following command: -$ sudo systemctl restart chrony.serviceIf the system is not networked, this requirement is Not Applicable. +$ sudo systemctl restart chrony.service + + + + If the system is not networked, this requirement is Not Applicable. The system clock must be configured to compare the system clock at least every 24 hours to the authoritative time source. @@ -2861,11 +7668,30 @@ server tick.usno.navy.mil iburst maxpoll 16 server tock.usno.navy.mil iburst maxpoll 16 server ntp2.usno.navy.mil iburst maxpoll 16 -If the parameter "server" is not set, is not set to an authoritative DoD time source, or is commented out, this is a finding.SRG-OS-000356-GPOS-00144<GroupDescription></GroupDescription>UBTU-20-010436The Ubuntu operating system must synchronize internal information system clocks to the authoritative time source when the time difference is greater than one second.<VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. +If the parameter "server" is not set, is not set to an authoritative DoD time source, or is commented out, this is a finding. + + + + + SRG-OS-000356-GPOS-00144 + <GroupDescription></GroupDescription> + + UBTU-20-010436 + The Ubuntu operating system must synchronize internal information system clocks to the authoritative time source when the time difference is greater than one second. + <VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Synchronizing internal information system clocks provides uniformity of time stamps for information systems with multiple system clocks and systems connected over a network. Organizations should consider setting time periods for different types of systems (e.g., financial, legal, or mission-critical systems). -Organizations should also consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints). This requirement is related to the comparison done every 24 hours in SRG-OS-000355 because a comparison must be done in order to determine the time difference.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002046Configure chrony to synchronize the internal system clocks to the authoritative source when the time difference is greater than one second by doing the following: +Organizations should also consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints). This requirement is related to the comparison done every 24 hours in SRG-OS-000355 because a comparison must be done in order to determine the time difference.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002046 + Configure chrony to synchronize the internal system clocks to the authoritative source when the time difference is greater than one second by doing the following: Edit the "/etc/chrony/chrony.conf" file and add: @@ -2873,7 +7699,11 @@ makestep 1 -1 Restart the chrony service: -$ sudo systemctl restart chrony.serviceVerify the operating system synchronizes internal system clocks to the authoritative time source when the time difference is greater than one second. +$ sudo systemctl restart chrony.service + + + + Verify the operating system synchronizes internal system clocks to the authoritative time source when the time difference is greater than one second. Check the value of "makestep" by running the following command: @@ -2881,43 +7711,109 @@ $ sudo grep makestep /etc/chrony/chrony.conf makestep 1 -1 -If the makestep option is commented out or is not set to "1 -1", this is a finding.SRG-OS-000363-GPOS-00150<GroupDescription></GroupDescription>UBTU-20-010437The Ubuntu operating system must notify designated personnel if baseline configurations are changed in an unauthorized manner. The file integrity tool must notify the System Administrator when changes to the baseline configuration or anomalies in the oper<VulnDiscussion>Unauthorized changes to the baseline configuration could make the system vulnerable to various attacks or allow unauthorized access to the operating system. Changes to operating system configurations can have unintended side effects, some of which may be relevant to security. - -Detecting such changes and providing an automated response can help avoid unintended, negative consequences that could ultimately affect the security state of the operating system. The operating system's IMO/ISSO and SAs must be notified via email and/or monitoring system trap when there is an unauthorized modification of a configuration item.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001744Configure the Ubuntu operating system to notify designated personnel if baseline configurations are changed in an unauthorized manner. - -Modify the "SILENTREPORTS" parameter in the "/etc/default/aide" file with a value of "no" if it does not already exist.Verify that Advanced Intrusion Detection Environment (AIDE) notifies the System Administrator +If the makestep option is commented out or is not set to "1 -1", this is a finding. + + + + + SRG-OS-000363-GPOS-00150 + <GroupDescription></GroupDescription> + + UBTU-20-010437 + The Ubuntu operating system must notify designated personnel if baseline configurations are changed in an unauthorized manner. The file integrity tool must notify the System Administrator when changes to the baseline configuration or anomalies in the oper + <VulnDiscussion>Unauthorized changes to the baseline configuration could make the system vulnerable to various attacks or allow unauthorized access to the operating system. Changes to operating system configurations can have unintended side effects, some of which may be relevant to security. + +Detecting such changes and providing an automated response can help avoid unintended, negative consequences that could ultimately affect the security state of the operating system. The operating system's IMO/ISSO and SAs must be notified via email and/or monitoring system trap when there is an unauthorized modification of a configuration item.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001744 + Configure the Ubuntu operating system to notify designated personnel if baseline configurations are changed in an unauthorized manner. + +Modify the "SILENTREPORTS" parameter in the "/etc/default/aide" file with a value of "no" if it does not already exist. + + + + Verify that Advanced Intrusion Detection Environment (AIDE) notifies the System Administrator when anomalies in the operation of any security functions are discovered with the following command: -$ grep SILENTREPORTS /etc/default/aide - -SILENTREPORTS=no +$ grep SILENTREPORTS /etc/default/aide SILENTREPORTS=no If SILENTREPORTS is commented out, this is a finding. If SILENTREPORTS is set to "yes", this is a finding. -If SILENTREPORTS is not set to "no", this is a finding.SRG-OS-000366-GPOS-00153<GroupDescription></GroupDescription>UBTU-20-010438The Ubuntu operating system's Advance Package Tool (APT) must be configured to prevent the installation of patches, service packs, device drivers, or Ubuntu operating system components without verification they have been digitally signed using a certificate that is recognized and approved by the organization.<VulnDiscussion>Changes to any software components can have significant effects on the overall security of the operating system. This requirement ensures the software has not been tampered with and that it has been provided by a trusted vendor. +If SILENTREPORTS is not set to "no", this is a finding. + + + + + SRG-OS-000366-GPOS-00153 + <GroupDescription></GroupDescription> + + UBTU-20-010438 + The Ubuntu operating system's Advance Package Tool (APT) must be configured to prevent the installation of patches, service packs, device drivers, or Ubuntu operating system components without verification they have been digitally signed using a certificate that is recognized and approved by the organization. + <VulnDiscussion>Changes to any software components can have significant effects on the overall security of the operating system. This requirement ensures the software has not been tampered with and that it has been provided by a trusted vendor. Accordingly, patches, service packs, device drivers, or operating system components must be signed with a certificate recognized and approved by the organization. -Verifying the authenticity of the software prior to installation validates the integrity of the patch or upgrade received from a vendor. This ensures the software has not been tampered with and that it has been provided by a trusted vendor. Self-signed certificates are disallowed by this requirement. The operating system should not have to verify the software again. This requirement does not mandate DoD certificates for this purpose; however, the certificate used to verify the software must be from an approved CA.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001749Configure APT to prevent the installation of patches, service packs, device drivers, or Ubuntu operating system components without verification they have been digitally signed using a certificate that is recognized and approved by the organization. +Verifying the authenticity of the software prior to installation validates the integrity of the patch or upgrade received from a vendor. This ensures the software has not been tampered with and that it has been provided by a trusted vendor. Self-signed certificates are disallowed by this requirement. The operating system should not have to verify the software again. This requirement does not mandate DoD certificates for this purpose; however, the certificate used to verify the software must be from an approved CA.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001749 + Configure APT to prevent the installation of patches, service packs, device drivers, or Ubuntu operating system components without verification they have been digitally signed using a certificate that is recognized and approved by the organization. Remove/update any APT configuration files that contain the variable "AllowUnauthenticated" to "false", or remove "AllowUnauthenticated" entirely from each file. Below is an example of setting the "AllowUnauthenticated" variable to "false": -APT::Get::AllowUnauthenticated "false";Verify that APT is configured to prevent the installation of patches, service packs, device drivers, or Ubuntu operating system components without verification they have been digitally signed using a certificate that is recognized and approved by the organization. +APT::Get::AllowUnauthenticated "false"; + + + + Verify that APT is configured to prevent the installation of patches, service packs, device drivers, or Ubuntu operating system components without verification they have been digitally signed using a certificate that is recognized and approved by the organization. Check that the "AllowUnauthenticated" variable is not set at all or is set to "false" with the following command: $ grep AllowUnauthenticated /etc/apt/apt.conf.d/* /etc/apt/apt.conf.d/01-vendor-Ubuntu:APT::Get::AllowUnauthenticated "false"; -If any of the files returned from the command with "AllowUnauthenticated" are set to "true", this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>UBTU-20-010439The Ubuntu operating system must be configured to use AppArmor.<VulnDiscussion>Control of program execution is a mechanism used to prevent execution of unauthorized programs. Some operating systems may provide a capability that runs counter to the mission or provides users with functionality that exceeds mission requirements. This includes functions and services installed at the operating system-level. +If any of the files returned from the command with "AllowUnauthenticated" are set to "true", this is a finding. + + + + + SRG-OS-000368-GPOS-00154 + <GroupDescription></GroupDescription> + + UBTU-20-010439 + The Ubuntu operating system must be configured to use AppArmor. + <VulnDiscussion>Control of program execution is a mechanism used to prevent execution of unauthorized programs. Some operating systems may provide a capability that runs counter to the mission or provides users with functionality that exceeds mission requirements. This includes functions and services installed at the operating system-level. Some of the programs, installed by default, may be harmful or may not be necessary to support essential organizational operations (e.g., key missions, functions). Removal of executable programs is not always possible; therefore, establishing a method of preventing program execution is critical to maintaining a secure system baseline. Methods for complying with this requirement include restricting execution of programs in certain environments, while preventing execution in other environments; or limiting execution of certain program functionality based on organization-defined criteria (e.g., privileges, subnets, sandboxed environments, or roles). -Satisfies: SRG-OS-000368-GPOS-00154, SRG-OS-000312-GPOS-00122, SRG-OS-000312-GPOS-00123, SRG-OS-000312-GPOS-00124, SRG-OS-000324-GPOS-00125, SRG-OS-000370-GPOS-00155</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001764CCI-001774CCI-002165CCI-002235Install "AppArmor" (if it is not installed) with the following command: +Satisfies: SRG-OS-000368-GPOS-00154, SRG-OS-000312-GPOS-00122, SRG-OS-000312-GPOS-00123, SRG-OS-000312-GPOS-00124, SRG-OS-000324-GPOS-00125, SRG-OS-000370-GPOS-00155</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001764 + CCI-001774 + CCI-002165 + CCI-002235 + Install "AppArmor" (if it is not installed) with the following command: $ sudo apt-get install apparmor @@ -2927,7 +7823,11 @@ Start "apparmor" with the following command: $ sudo systemctl start apparmor.service -Note: AppArmor must have properly configured profiles for applications and home directories. All configurations will be based on the actual system setup and organization and normally are on a per role basis. See the AppArmor documentation for more information on configuring profiles.Verify the operating system prevents program execution in accordance with local policies. +Note: AppArmor must have properly configured profiles for applications and home directories. All configurations will be based on the actual system setup and organization and normally are on a per role basis. See the AppArmor documentation for more information on configuring profiles. + + + + Verify the operating system prevents program execution in accordance with local policies. Check that AppArmor is installed and active by running the following command, @@ -2945,9 +7845,28 @@ $ systemctl is-enabled apparmor.service enabled -If "enabled" is not returned, this is a finding.SRG-OS-000380-GPOS-00165<GroupDescription></GroupDescription>UBTU-20-010440The Ubuntu operating system must allow the use of a temporary password for system logons with an immediate change to a permanent password.<VulnDiscussion>Without providing this capability, an account may be created without a password. Non-repudiation cannot be guaranteed once an account is created if a user is not forced to change the temporary password upon initial logon. - -Temporary passwords are typically used to allow access when new accounts are created or passwords are changed. It is common practice for administrators to create temporary passwords for user accounts which allow the users to log on, yet force them to change the password once they have successfully authenticated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002041Create a policy that ensures when a user is created, it is created using a method that forces a user to change their password upon their next login. +If "enabled" is not returned, this is a finding. + + + + + SRG-OS-000380-GPOS-00165 + <GroupDescription></GroupDescription> + + UBTU-20-010440 + The Ubuntu operating system must allow the use of a temporary password for system logons with an immediate change to a permanent password. + <VulnDiscussion>Without providing this capability, an account may be created without a password. Non-repudiation cannot be guaranteed once an account is created if a user is not forced to change the temporary password upon initial logon. + +Temporary passwords are typically used to allow access when new accounts are created or passwords are changed. It is common practice for administrators to create temporary passwords for user accounts which allow the users to log on, yet force them to change the password once they have successfully authenticated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002041 + Create a policy that ensures when a user is created, it is created using a method that forces a user to change their password upon their next login. Below are two examples of how to create a user account that requires the user to change their password upon their next login. @@ -2955,13 +7874,40 @@ $ sudo chage -d 0 [UserName] or -$ sudo passwd -e [UserName]Verify a policy exists that ensures when a user account is created, it is created using a method that forces a user to change their password upon their next login. - -If a policy does not exist, this is a finding.SRG-OS-000383-GPOS-00166<GroupDescription></GroupDescription>UBTU-20-010441The Ubuntu operating system must be configured such that Pluggable Authentication Module (PAM) prohibits the use of cached authentications after one day.<VulnDiscussion>If cached authentication information is out-of-date, the validity of the authentication information may be questionable.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002007Configure PAM to prohibit the use of cached authentications after one day. Add or change the following line in "/etc/sssd/sssd.conf" just below the line "[pam]": +$ sudo passwd -e [UserName] + + + + Verify a policy exists that ensures when a user account is created, it is created using a method that forces a user to change their password upon their next login. + +If a policy does not exist, this is a finding. + + + + + SRG-OS-000383-GPOS-00166 + <GroupDescription></GroupDescription> + + UBTU-20-010441 + The Ubuntu operating system must be configured such that Pluggable Authentication Module (PAM) prohibits the use of cached authentications after one day. + <VulnDiscussion>If cached authentication information is out-of-date, the validity of the authentication information may be questionable.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002007 + Configure PAM to prohibit the use of cached authentications after one day. Add or change the following line in "/etc/sssd/sssd.conf" just below the line "[pam]": offline_credentials_expiration = 1 -Note: It is valid for this configuration to be in a file with a name that ends with ".conf" and does not begin with a "." in the "/etc/sssd/conf.d/" directory instead of the "/etc/sssd/sssd.conf" file.If smart card authentication is not being used on the system, this s Not Applicable. +Note: It is valid for this configuration to be in a file with a name that ends with ".conf" and does not begin with a "." in the "/etc/sssd/conf.d/" directory instead of the "/etc/sssd/sssd.conf" file. + + + + If smart card authentication is not being used on the system, this s Not Applicable. Verify that PAM prohibits the use of cached authentications after one day with the following command: @@ -2969,20 +7915,62 @@ $ sudo grep offline_credentials_expiration /etc/sssd/sssd.conf /etc/sssd/conf.d/ offline_credentials_expiration = 1 -If "offline_credentials_expiration" is not set to a value of "1" in "/etc/sssd/sssd.conf" or in a file with a name ending in .conf in the "/etc/sssd/conf.d/" directory, this is a finding.SRG-OS-000396-GPOS-00176<GroupDescription></GroupDescription>UBTU-20-010442The Ubuntu operating system must implement NIST FIPS-validated cryptography to protect classified information and for the following: to provision digital signatures, to generate cryptographic hashes, and to protect unclassified information requiring confidentiality and cryptographic protection in accordance with applicable federal laws, Executive Orders, directives, policies, regulations, and standards.<VulnDiscussion>Use of weak or untested encryption algorithms undermines the purposes of utilizing encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated. - -Satisfies: SRG-OS-000396-GPOS-00176, SRG-OS-000478-GPOS-00223</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002450Configure the system to run in FIPS mode. Add "fips=1" to the kernel parameter during the Ubuntu operating systems install. +If "offline_credentials_expiration" is not set to a value of "1" in "/etc/sssd/sssd.conf" or in a file with a name ending in .conf in the "/etc/sssd/conf.d/" directory, this is a finding. + + + + + SRG-OS-000396-GPOS-00176 + <GroupDescription></GroupDescription> + + UBTU-20-010442 + The Ubuntu operating system must implement NIST FIPS-validated cryptography to protect classified information and for the following: to provision digital signatures, to generate cryptographic hashes, and to protect unclassified information requiring confidentiality and cryptographic protection in accordance with applicable federal laws, Executive Orders, directives, policies, regulations, and standards. + <VulnDiscussion>Use of weak or untested encryption algorithms undermines the purposes of utilizing encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated. + +Satisfies: SRG-OS-000396-GPOS-00176, SRG-OS-000478-GPOS-00223</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002450 + Configure the system to run in FIPS mode. Add "fips=1" to the kernel parameter during the Ubuntu operating systems install. Enabling a FIPS mode on a pre-existing system involves a number of modifications to the Ubuntu operating system. Refer to the Ubuntu Server 18.04 FIPS 140-2 security policy document for instructions. -A subscription to the "Ubuntu Advantage" plan is required in order to obtain the FIPS Kernel cryptographic modules and enable FIPS.Verify the system is configured to run in FIPS mode with the following command: +A subscription to the "Ubuntu Advantage" plan is required in order to obtain the FIPS Kernel cryptographic modules and enable FIPS. + + + + Verify the system is configured to run in FIPS mode with the following command: $ grep -i 1 /proc/sys/crypto/fips_enabled 1 -If a value of "1" is not returned, this is a finding.SRG-OS-000403-GPOS-00182<GroupDescription></GroupDescription>UBTU-20-010443The Ubuntu operating system must only allow the use of DoD PKI-established certificate authorities for verification of the establishment of protected sessions.<VulnDiscussion>Untrusted Certificate Authorities (CA) can issue certificates, but they may be issued by organizations or individuals that seek to compromise DoD systems or by organizations with insufficient security controls. If the CA used for verifying the certificate is not a DoD-approved CA, trust of this CA has not been established. - -The DoD will only accept PKI-certificates obtained from a DoD-approved internal or external certificate authority. Reliance on CAs for the establishment of secure sessions includes, for example, the use of SSL/TLS certificates.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002470Configure the Ubuntu operating system to only allow the use of DoD PKI-established certificate authorities for verification of the establishment of protected sessions. +If a value of "1" is not returned, this is a finding. + + + + + SRG-OS-000403-GPOS-00182 + <GroupDescription></GroupDescription> + + UBTU-20-010443 + The Ubuntu operating system must only allow the use of DoD PKI-established certificate authorities for verification of the establishment of protected sessions. + <VulnDiscussion>Untrusted Certificate Authorities (CA) can issue certificates, but they may be issued by organizations or individuals that seek to compromise DoD systems or by organizations with insufficient security controls. If the CA used for verifying the certificate is not a DoD-approved CA, trust of this CA has not been established. + +The DoD will only accept PKI-certificates obtained from a DoD-approved internal or external certificate authority. Reliance on CAs for the establishment of secure sessions includes, for example, the use of SSL/TLS certificates.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002470 + Configure the Ubuntu operating system to only allow the use of DoD PKI-established certificate authorities for verification of the establishment of protected sessions. Edit the "/etc/ca-certificates.conf" file, adding the character "!" to the beginning of all uncommented lines that do not start with the "!" character with the following command: @@ -2992,17 +7980,44 @@ Add at least one DoD certificate authority to the "/usr/local/share/ca-certifica Update the "/etc/ssl/certs" directory with the following command: -$ sudo update-ca-certificatesVerify the directory containing the root certificates for the Ubuntu operating system (/etc/ssl/certs) only contains certificate files for DoD PKI-established certificate authorities. +$ sudo update-ca-certificates + + + + Verify the directory containing the root certificates for the Ubuntu operating system (/etc/ssl/certs) only contains certificate files for DoD PKI-established certificate authorities. Determine if "/etc/ssl/certs" only contains certificate files whose sha256 fingerprint match the fingerprint of DoD PKI-established certificate authorities with the following command: $ for f in $(realpath /etc/ssl/certs/*); do openssl x509 -sha256 -in $f -noout -fingerprint | cut -d= -f2 | tr -d ':' | egrep -vw '(9676F287356C89A12683D65234098CB77C4F1C18F23C0E541DE0E196725B7EBE|B107B33F453E5510F68E513110C6F6944BACC263DF0137F821C1B3C2F8F863D2|559A5189452B13F8233F0022363C06F26E3C517C1D4B77445035959DF3244F74|1F4EDE9DC2A241F6521BF518424ACD49EBE84420E69DAF5BAC57AF1F8EE294A9)'; done -If any entry is found, this is a finding.SRG-OS-000404-GPOS-00183<GroupDescription></GroupDescription>UBTU-20-010444Ubuntu operating system must implement cryptographic mechanisms to prevent unauthorized modification of all information at rest.<VulnDiscussion>Operating systems handling data requiring "data at rest" protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. - -Selection of a cryptographic mechanism is based on the need to protect the integrity of organizational information. The strength of the mechanism is commensurate with the security category and/or classification of the information. Organizations have the flexibility to either encrypt all information on storage devices (i.e., full disk encryption) or encrypt specific data structures (e.g., files, records, or fields).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002475To encrypt an entire partition, dedicate a partition for encryption in the partition layout. - -Note: Encrypting a partition in an already-installed system is more difficult because it will need to be resized and existing partitions changed.If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. +If any entry is found, this is a finding. + + + + + SRG-OS-000404-GPOS-00183 + <GroupDescription></GroupDescription> + + UBTU-20-010444 + Ubuntu operating system must implement cryptographic mechanisms to prevent unauthorized modification of all information at rest. + <VulnDiscussion>Operating systems handling data requiring "data at rest" protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. + +Selection of a cryptographic mechanism is based on the need to protect the integrity of organizational information. The strength of the mechanism is commensurate with the security category and/or classification of the information. Organizations have the flexibility to either encrypt all information on storage devices (i.e., full disk encryption) or encrypt specific data structures (e.g., files, records, or fields).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002475 + To encrypt an entire partition, dedicate a partition for encryption in the partition layout. + +Note: Encrypting a partition in an already-installed system is more difficult because it will need to be resized and existing partitions changed. + + + + If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. Verify the Ubuntu operating system prevents unauthorized disclosure or modification of all information requiring at-rest protection by using disk encryption. @@ -3029,11 +8044,34 @@ $ more /etc/crypttab Every persistent disk partition present must have an entry in the file. -If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not listed, this is a finding.SRG-OS-000405-GPOS-00184<GroupDescription></GroupDescription>UBTU-20-010445Ubuntu operating system must implement cryptographic mechanisms to prevent unauthorized disclosure of all information at rest.<VulnDiscussion>Operating systems handling data requiring "data at rest" protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. - -Selection of a cryptographic mechanism is based on the need to protect the integrity of organizational information. The strength of the mechanism is commensurate with the security category and/or classification of the information. Organizations have the flexibility to either encrypt all information on storage devices (i.e., full disk encryption) or encrypt specific data structures (e.g., files, records, or fields).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002476To encrypt an entire partition, dedicate a partition for encryption in the partition layout. - -Note: Encrypting a partition in an already-installed system is more difficult because it will need to be resized and existing partitions changed.If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. +If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not listed, this is a finding. + + + + + SRG-OS-000405-GPOS-00184 + <GroupDescription></GroupDescription> + + UBTU-20-010445 + Ubuntu operating system must implement cryptographic mechanisms to prevent unauthorized disclosure of all information at rest. + <VulnDiscussion>Operating systems handling data requiring "data at rest" protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. + +Selection of a cryptographic mechanism is based on the need to protect the integrity of organizational information. The strength of the mechanism is commensurate with the security category and/or classification of the information. Organizations have the flexibility to either encrypt all information on storage devices (i.e., full disk encryption) or encrypt specific data structures (e.g., files, records, or fields).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002476 + To encrypt an entire partition, dedicate a partition for encryption in the partition layout. + +Note: Encrypting a partition in an already-installed system is more difficult because it will need to be resized and existing partitions changed. + + + + If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. Verify the Ubuntu operating system prevents unauthorized disclosure or modification of all information requiring at-rest protection by using disk encryption. @@ -3060,9 +8098,28 @@ $ more /etc/crypttab Every persistent disk partition present must have an entry in the file. -If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not listed, this is a finding.SRG-OS-000420-GPOS-00186<GroupDescription></GroupDescription>UBTU-20-010446The Ubuntu operating system must configure the uncomplicated firewall to rate-limit impacted network interfaces.<VulnDiscussion>Denial of service (DoS) is a condition when a resource is not available for legitimate users. When this occurs, the organization either cannot accomplish its mission or must operate at degraded capacity. - -This requirement addresses the configuration of the operating system to mitigate the impact of DoS attacks that have occurred or are ongoing on system availability. For each system, known and potential DoS attacks must be identified and solutions for each type implemented. A variety of technologies exist to limit or, in some cases, eliminate the effects of DoS attacks (e.g., limiting processes or establishing memory partitions). Employing increased capacity and bandwidth, combined with service redundancy, may reduce the susceptibility to some DoS attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002385Configure the application firewall to protect against or limit the effects of DoS attacks by ensuring the Ubuntu operating system is implementing rate-limiting measures on impacted network interfaces. +If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not listed, this is a finding. + + + + + SRG-OS-000420-GPOS-00186 + <GroupDescription></GroupDescription> + + UBTU-20-010446 + The Ubuntu operating system must configure the uncomplicated firewall to rate-limit impacted network interfaces. + <VulnDiscussion>Denial of service (DoS) is a condition when a resource is not available for legitimate users. When this occurs, the organization either cannot accomplish its mission or must operate at degraded capacity. + +This requirement addresses the configuration of the operating system to mitigate the impact of DoS attacks that have occurred or are ongoing on system availability. For each system, known and potential DoS attacks must be identified and solutions for each type implemented. A variety of technologies exist to limit or, in some cases, eliminate the effects of DoS attacks (e.g., limiting processes or establishing memory partitions). Employing increased capacity and bandwidth, combined with service redundancy, may reduce the susceptibility to some DoS attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002385 + Configure the application firewall to protect against or limit the effects of DoS attacks by ensuring the Ubuntu operating system is implementing rate-limiting measures on impacted network interfaces. Check all the services listening to the ports with the following command: @@ -3077,7 +8134,11 @@ $ sudo ufw limit [service] Rate-limiting can also be done on an interface. An example of adding a rate-limit on the eth0 interface follows: -$ sudo ufw limit in on eth0Verify an application firewall is configured to rate limit any connection to the system. +$ sudo ufw limit in on eth0 + + + + Verify an application firewall is configured to rate limit any connection to the system. Check all the services listening to the ports with the following command: @@ -3097,11 +8158,34 @@ To Action From 22/tcp LIMIT Anywhere 22/tcp (v6) LIMIT Anywhere (v6) -If any port with a state of "LISTEN" is not marked with the "LIMIT" action, this is a finding.SRG-OS-000433-GPOS-00192<GroupDescription></GroupDescription>UBTU-20-010447The Ubuntu operating system must implement non-executable data to protect its memory from unauthorized code execution.<VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can either be hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. - -Examples of attacks are buffer overflow attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002824Configure the Ubuntu operating system to enable NX. - -If "nx" is not showing up in "/proc/cpuinfo", and the system's BIOS setup configuration permits toggling the No Execution bit, set it to "enable".Verify the NX (no-execution) bit flag is set on the system with the following commands: +If any port with a state of "LISTEN" is not marked with the "LIMIT" action, this is a finding. + + + + + SRG-OS-000433-GPOS-00192 + <GroupDescription></GroupDescription> + + UBTU-20-010447 + The Ubuntu operating system must implement non-executable data to protect its memory from unauthorized code execution. + <VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can either be hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. + +Examples of attacks are buffer overflow attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002824 + Configure the Ubuntu operating system to enable NX. + +If "nx" is not showing up in "/proc/cpuinfo", and the system's BIOS setup configuration permits toggling the No Execution bit, set it to "enable". + + + + Verify the NX (no-execution) bit flag is set on the system with the following commands: $ dmesg | grep -i "execute disable" [ 0.000000] NX (Execute Disable) protection: active @@ -3111,13 +8195,36 @@ If "dmesg" does not show "NX (Execute Disable) protection: active", check the cp $ grep flags /proc/cpuinfo | grep -w nx | sort -u flags : fpu vme de pse tsc ms nx rdtscp lm constant_tsc -If "flags" does not contain the "nx" flag, this is a finding.SRG-OS-000433-GPOS-00193<GroupDescription></GroupDescription>UBTU-20-010448The Ubuntu operating system must implement address space layout randomization to protect its memory from unauthorized code execution.<VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can either be hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. - -Examples of attacks are buffer overflow attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002824Remove the "kernel.randomize_va_space" entry found in the "/etc/sysctl.conf" file or any file located in the "/etc/sysctl.d/" directory. +If "flags" does not contain the "nx" flag, this is a finding. + + + + + SRG-OS-000433-GPOS-00193 + <GroupDescription></GroupDescription> + + UBTU-20-010448 + The Ubuntu operating system must implement address space layout randomization to protect its memory from unauthorized code execution. + <VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can either be hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. + +Examples of attacks are buffer overflow attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002824 + Remove the "kernel.randomize_va_space" entry found in the "/etc/sysctl.conf" file or any file located in the "/etc/sysctl.d/" directory. After the line has been removed, the kernel settings from all system configuration files must be reloaded before any of the changes will take effect. Run the following command to reload all of the kernel system configuration files: -$ sudo sysctl --systemVerify the Ubuntu operating system implements address space layout randomization (ASLR) with the following command: +$ sudo sysctl --system + + + + Verify the Ubuntu operating system implements address space layout randomization (ASLR) with the following command: $ sudo sysctl kernel.randomize_va_space @@ -3135,22 +8242,68 @@ Verify that a saved value of the "kernel.randomize_va_space" variable is not def $ sudo egrep -R "^kernel.randomize_va_space=[^2]" /etc/sysctl.conf /etc/sysctl.d -If this returns a result, this is a finding.SRG-OS-000437-GPOS-00194<GroupDescription></GroupDescription>UBTU-20-010449The Ubuntu operating system must be configured so that Advance Package Tool (APT) removes all software components after updated versions have been installed.<VulnDiscussion>Previous versions of software components that are not removed from the information system after updates have been installed may be exploited by adversaries. Some information technology products may remove older versions of software automatically from the information system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002617Configure APT to remove all software components after updated versions have been installed. +If this returns a result, this is a finding. + + + + + SRG-OS-000437-GPOS-00194 + <GroupDescription></GroupDescription> + + UBTU-20-010449 + The Ubuntu operating system must be configured so that Advance Package Tool (APT) removes all software components after updated versions have been installed. + <VulnDiscussion>Previous versions of software components that are not removed from the information system after updates have been installed may be exploited by adversaries. Some information technology products may remove older versions of software automatically from the information system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002617 + Configure APT to remove all software components after updated versions have been installed. Add or updated the following options to the "/etc/apt/apt.conf.d/50unattended-upgrades" file: Unattended-Upgrade::Remove-Unused-Dependencies "true"; -Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";Verify is configured to remove all software components after updated versions have been installed with the following command: +Unattended-Upgrade::Remove-Unused-Kernel-Packages "true"; + + + + Verify is configured to remove all software components after updated versions have been installed with the following command: $ grep -i remove-unused /etc/apt/apt.conf.d/50unattended-upgrades Unattended-Upgrade::Remove-Unused-Dependencies "true"; Unattended-Upgrade::Remove-Unused-Kernel-Packages "true"; -If the "::Remove-Unused-Dependencies" and "::Remove-Unused-Kernel-Packages" parameters are not set to "true" or are missing or commented out, this is a finding.SRG-OS-000445-GPOS-00199<GroupDescription></GroupDescription>UBTU-20-010450The Ubuntu operating system must use a file integrity tool to verify correct operation of all security functions.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. - -This requirement applies to the Ubuntu operating system performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002696Install the AIDE package by running the following command: - -$ sudo apt-get install aideVerify that Advanced Intrusion Detection Environment (AIDE) is installed and verifies the correct operation of all security functions. +If the "::Remove-Unused-Dependencies" and "::Remove-Unused-Kernel-Packages" parameters are not set to "true" or are missing or commented out, this is a finding. + + + + + SRG-OS-000445-GPOS-00199 + <GroupDescription></GroupDescription> + + UBTU-20-010450 + The Ubuntu operating system must use a file integrity tool to verify correct operation of all security functions. + <VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +This requirement applies to the Ubuntu operating system performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002696 + Install the AIDE package by running the following command: + +$ sudo apt-get install aide + + + + Verify that Advanced Intrusion Detection Environment (AIDE) is installed and verifies the correct operation of all security functions. Check that the AIDE package is installed with the following command: @@ -3159,22 +8312,66 @@ ii aide 0.16.1-1build2 amd64 Advanced Intrusion Detection Environment - s If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. -If no application is installed to perform integrity checks, this is a finding.SRG-OS-000447-GPOS-00201<GroupDescription></GroupDescription>UBTU-20-010451The Ubuntu operating system must notify designated personnel if baseline configurations are changed in an unauthorized manner. The file integrity tool must notify the System Administrator when changes to the baseline configuration or anomalies in the operation of any security functions are discovered.<VulnDiscussion>Unauthorized changes to the baseline configuration could make the system vulnerable to various attacks or allow unauthorized access to the Ubuntu operating system. Changes to Ubuntu operating system configurations can have unintended side effects, some of which may be relevant to security. - -Detecting such changes and providing an automated response can help avoid unintended, negative consequences that could ultimately affect the security state of the Ubuntu operating system. The Ubuntu operating system's IMO/ISSO and SAs must be notified via email and/or monitoring system trap when there is an unauthorized modification of a configuration item.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002702Configure the Ubuntu operating system to notify designated personnel if baseline configurations are changed in an unauthorized manner. - -Modify the "SILENTREPORTS" parameter in the "/etc/default/aide" file with a value of "no" if it does not already exist.Verify that Advanced Intrusion Detection Environment (AIDE) notifies the System Administrator +If no application is installed to perform integrity checks, this is a finding. + + + + + SRG-OS-000447-GPOS-00201 + <GroupDescription></GroupDescription> + + UBTU-20-010451 + The Ubuntu operating system must notify designated personnel if baseline configurations are changed in an unauthorized manner. The file integrity tool must notify the System Administrator when changes to the baseline configuration or anomalies in the operation of any security functions are discovered. + <VulnDiscussion>Unauthorized changes to the baseline configuration could make the system vulnerable to various attacks or allow unauthorized access to the Ubuntu operating system. Changes to Ubuntu operating system configurations can have unintended side effects, some of which may be relevant to security. + +Detecting such changes and providing an automated response can help avoid unintended, negative consequences that could ultimately affect the security state of the Ubuntu operating system. The Ubuntu operating system's IMO/ISSO and SAs must be notified via email and/or monitoring system trap when there is an unauthorized modification of a configuration item.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002702 + Configure the Ubuntu operating system to notify designated personnel if baseline configurations are changed in an unauthorized manner. + +Modify the "SILENTREPORTS" parameter in the "/etc/default/aide" file with a value of "no" if it does not already exist. + + + + Verify that Advanced Intrusion Detection Environment (AIDE) notifies the System Administrator when anomalies in the operation of any security functions are discovered with the following command: -$ sudo grep SILENTREPORTS /etc/default/aide - -SILENTREPORTS=no - -If SILENTREPORTS is uncommented and set to "yes", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>UBTU-20-010453The Ubuntu operating system must display the date and time of the last successful account logon upon logon.<VulnDiscussion>Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000052Configure the Ubuntu operating system to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/login". +$ sudo grep SILENTREPORTS /etc/default/aide SILENTREPORTS=no + +If SILENTREPORTS is uncommented and set to "yes", this is a finding. + + + + + SRG-OS-000480-GPOS-00227 + <GroupDescription></GroupDescription> + + UBTU-20-010453 + The Ubuntu operating system must display the date and time of the last successful account logon upon logon. + <VulnDiscussion>Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000052 + Configure the Ubuntu operating system to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/login". Add the following line to the top of "/etc/pam.d/login": -session required pam_lastlog.so showfailedVerify users are provided with feedback on when account accesses last occurred. +session required pam_lastlog.so showfailed + + + + Verify users are provided with feedback on when account accesses last occurred. Check that "pam_lastlog" is used and not silent with the following command: @@ -3182,13 +8379,36 @@ $ grep pam_lastlog /etc/pam.d/login session required pam_lastlog.so showfailed -If "pam_lastlog" is missing from "/etc/pam.d/login" file, is not "required", or the "silent" option is present, this is a finding.SRG-OS-000480-GPOS-00232<GroupDescription></GroupDescription>UBTU-20-010454The Ubuntu operating system must have an application firewall enabled.<VulnDiscussion>Firewalls protect computers from network attacks by blocking or limiting access to open network ports. Application firewalls limit which applications are allowed to communicate over the network.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Enable the Uncomplicated Firewall by using the following command: +If "pam_lastlog" is missing from "/etc/pam.d/login" file, is not "required", or the "silent" option is present, this is a finding. + + + + + SRG-OS-000480-GPOS-00232 + <GroupDescription></GroupDescription> + + UBTU-20-010454 + The Ubuntu operating system must have an application firewall enabled. + <VulnDiscussion>Firewalls protect computers from network attacks by blocking or limiting access to open network ports. Application firewalls limit which applications are allowed to communicate over the network.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Enable the Uncomplicated Firewall by using the following command: $ sudo systemctl enable ufw.service If the Uncomplicated Firewall is not currently running on the system, start it with the following command: -$ sudo systemctl start ufw.serviceVerify the Uncomplicated Firewall is enabled on the system by running the following command: +$ sudo systemctl start ufw.service + + + + Verify the Uncomplicated Firewall is enabled on the system by running the following command: $ systemctl status ufw.service | grep -i "active:" @@ -3196,11 +8416,34 @@ Active: active (exited) since Mon 2016-10-17 12:30:29 CDT; 1s ago If the above command returns the status as "inactive", this is a finding. -If the Uncomplicated Firewall is not installed, ask the System Administrator if another application firewall is installed. If no application firewall is installed, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010456The Ubuntu operating system must have system commands set to a mode of 0755 or less permissive.<VulnDiscussion>If the Ubuntu operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to Ubuntu operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the system commands to be protected from unauthorized access. Run the following command: - -$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -perm /022 -type f -exec chmod 755 '{}' \;Verify the system commands contained in the following directories have mode 0755 or less permissive: +If the Uncomplicated Firewall is not installed, ask the System Administrator if another application firewall is installed. If no application firewall is installed, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010456 + The Ubuntu operating system must have system commands set to a mode of 0755 or less permissive. + <VulnDiscussion>If the Ubuntu operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to Ubuntu operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the system commands to be protected from unauthorized access. Run the following command: + +$ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -perm /022 -type f -exec chmod 755 '{}' \; + + + + Verify the system commands contained in the following directories have mode 0755 or less permissive: /bin /sbin @@ -3213,11 +8456,34 @@ Check that the system command files have mode 0755 or less permissive with the f $ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -perm /022 -type f -exec stat -c "%n %a" '{}' \; -If any files are found to be group-writable or world-writable, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010457The Ubuntu operating system must have system commands owned by root or a system account.<VulnDiscussion>If the Ubuntu operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to Ubuntu operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the system commands and their respective parent directories to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not owned by "root" or a required system account: - -$ sudo chown root [FILE]Verify the system commands contained in the following directories are owned by root, or a required system account: +If any files are found to be group-writable or world-writable, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010457 + The Ubuntu operating system must have system commands owned by root or a system account. + <VulnDiscussion>If the Ubuntu operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to Ubuntu operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the system commands and their respective parent directories to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not owned by "root" or a required system account: + +$ sudo chown root [FILE] + + + + Verify the system commands contained in the following directories are owned by root, or a required system account: /bin /sbin @@ -3230,11 +8496,34 @@ Use the following command for the check: $ sudo find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -user root -type f -exec stat -c "%n %U" '{}' \; -If any system commands are returned and are not owned by a required system account, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>UBTU-20-010458The Ubuntu operating system must have system commands group-owned by root or a system account.<VulnDiscussion>If the Ubuntu operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. - -This requirement applies to Ubuntu operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001499Configure the system commands to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not group-owned by "root" or a required system account: - -$ sudo chgrp root [FILE]Verify the system commands contained in the following directories are group-owned by root or a required system account: +If any system commands are returned and are not owned by a required system account, this is a finding. + + + + + SRG-OS-000259-GPOS-00100 + <GroupDescription></GroupDescription> + + UBTU-20-010458 + The Ubuntu operating system must have system commands group-owned by root or a system account. + <VulnDiscussion>If the Ubuntu operating system were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to Ubuntu operating systems with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs which execute with escalated privileges. Only qualified and authorized individuals must be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001499 + Configure the system commands to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not group-owned by "root" or a required system account: + +$ sudo chgrp root [FILE] + + + + Verify the system commands contained in the following directories are group-owned by root or a required system account: /bin /sbin @@ -3247,24 +8536,61 @@ Run the check with the following command: $ sudo find -L /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -group root -type f ! -perm /2000 -exec stat -c "%n %G" '{}' \; -If any system commands are returned that are not Set Group ID upon execution (SGID) files and group-owned by a required system account, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>UBTU-20-010459The Ubuntu operating system must disable the x86 Ctrl-Alt-Delete key sequence if a graphical user interface is installed.<VulnDiscussion>A locally logged-on user who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot. In the graphical environment, risk of unintentional reboot from the Ctrl-Alt-Delete sequence is reduced because the user will be prompted before any action is taken.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the system to disable the Ctrl-Alt-Delete sequence when using a graphical user interface by creating or editing the /etc/dconf/db/local.d/00-disable-CAD file. - -Add the setting to disable the Ctrl-Alt-Delete sequence for the graphical user interface: - -[org/gnome/settings-daemon/plugins/media-keys] -logout='' +If any system commands are returned that are not Set Group ID upon execution (SGID) files and group-owned by a required system account, this is a finding. + + + + + SRG-OS-000480-GPOS-00227 + <GroupDescription></GroupDescription> + + UBTU-20-010459 + The Ubuntu operating system must disable the x86 Ctrl-Alt-Delete key sequence if a graphical user interface is installed. + <VulnDiscussion>A locally logged-on user who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot. In the graphical environment, risk of unintentional reboot from the Ctrl-Alt-Delete sequence is reduced because the user will be prompted before any action is taken.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the system to disable the Ctrl-Alt-Delete sequence when using a graphical user interface by creating or editing the /etc/dconf/db/local.d/00-disable-CAD file. + +Add the setting to disable the Ctrl-Alt-Delete sequence for the graphical user interface: [org/gnome/settings-daemon/plugins/media-keys] logout='' Update the dconf settings: -# dconf updateVerify the Ubuntu operating system is not configured to reboot the system when Ctrl-Alt-Delete is pressed when using a graphical user interface. +# dconf update + + + + Verify the Ubuntu operating system is not configured to reboot the system when Ctrl-Alt-Delete is pressed when using a graphical user interface. Check that the "logout" target is not bound to an action with the following command: -# grep logout /etc/dconf/db/local.d/* - -logout='' - -If the "logout" key is bound to an action, is commented out, or is missing, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>UBTU-20-010460The Ubuntu operating system must disable the x86 Ctrl-Alt-Delete key sequence.<VulnDiscussion>A locally logged-on user who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure the system to disable the Ctrl-Alt-Delete sequence for the command line with the following commands: +# grep logout /etc/dconf/db/local.d/* logout='' + +If the "logout" key is bound to an action, is commented out, or is missing, this is a finding. + + + + + SRG-OS-000480-GPOS-00227 + <GroupDescription></GroupDescription> + + UBTU-20-010460 + The Ubuntu operating system must disable the x86 Ctrl-Alt-Delete key sequence. + <VulnDiscussion>A locally logged-on user who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure the system to disable the Ctrl-Alt-Delete sequence for the command line with the following commands: $ sudo systemctl disable ctrl-alt-del.target @@ -3272,7 +8598,11 @@ $ sudo systemctl mask ctrl-alt-del.target Reload the daemon to take effect: -$ sudo systemctl daemon-reloadVerify the Ubuntu operating system is not configured to reboot the system when Ctrl-Alt-Delete is pressed. +$ sudo systemctl daemon-reload + + + + Verify the Ubuntu operating system is not configured to reboot the system when Ctrl-Alt-Delete is pressed. Check that the "ctrl-alt-del.target" (otherwise also known as reboot.target) is not active with the following command: @@ -3281,26 +8611,91 @@ ctrl-alt-del.target Loaded: masked (Reason: Unit ctrl-alt-del.target is masked.) Active: inactive (dead) -If the "ctrl-alt-del.target" is not masked, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>UBTU-20-010462The Ubuntu operating system must not have accounts configured with blank or null passwords.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366Configure all accounts on the system to have a password or lock the account with the following commands: +If the "ctrl-alt-del.target" is not masked, this is a finding. + + + + + SRG-OS-000480-GPOS-00227 + <GroupDescription></GroupDescription> + + UBTU-20-010462 + The Ubuntu operating system must not have accounts configured with blank or null passwords. + <VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + Configure all accounts on the system to have a password or lock the account with the following commands: Perform a password reset: $ sudo passwd [username] Lock an account: -$ sudo passwd -l [username]Check the "/etc/shadow" file for blank passwords with the following command: +$ sudo passwd -l [username] + + + + Check the "/etc/shadow" file for blank passwords with the following command: $ sudo awk -F: '!$2 {print $1}' /etc/shadow -If the command returns any results, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>UBTU-20-010463The Ubuntu operating system must not allow accounts configured with blank or null passwords.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-000366If an account is configured for password authentication but does not have an assigned password, it may be possible to log on to the account without authenticating. - -Remove any instances of the "nullok" option in "/etc/pam.d/common-password" to prevent logons with empty passwords.To verify that null passwords cannot be used, run the following command: +If the command returns any results, this is a finding. + + + + + SRG-OS-000480-GPOS-00227 + <GroupDescription></GroupDescription> + + UBTU-20-010463 + The Ubuntu operating system must not allow accounts configured with blank or null passwords. + <VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-000366 + If an account is configured for password authentication but does not have an assigned password, it may be possible to log on to the account without authenticating. + +Remove any instances of the "nullok" option in "/etc/pam.d/common-password" to prevent logons with empty passwords. + + + + To verify that null passwords cannot be used, run the following command: $ grep nullok /etc/pam.d/common-password If this produces any output, it may be possible to log on with accounts with empty passwords. -If null passwords can be used, this is a finding.SRG-OS-000378-GPOS-00163<GroupDescription></GroupDescription>UBTU-20-010461The Ubuntu operating system must disable automatic mounting of Universal Serial Bus (USB) mass storage driver.<VulnDiscussion>Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. - -Peripherals include, but are not limited to, such devices as flash drives, external storage, and printers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-001958Configure the Ubuntu operating system to disable using the USB storage kernel module. +If null passwords can be used, this is a finding. + + + + + SRG-OS-000378-GPOS-00163 + <GroupDescription></GroupDescription> + + UBTU-20-010461 + The Ubuntu operating system must disable automatic mounting of Universal Serial Bus (USB) mass storage driver. + <VulnDiscussion>Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. + +Peripherals include, but are not limited to, such devices as flash drives, external storage, and printers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-001958 + Configure the Ubuntu operating system to disable using the USB storage kernel module. Create a file under "/etc/modprobe.d" to contain the following: @@ -3308,7 +8703,11 @@ Create a file under "/etc/modprobe.d" to contain the following: Configure the operating system to disable the ability to use USB mass storage devices. -# sudo su -c "echo blacklist usb-storage >> /etc/modprobe.d/DISASTIG.conf"Verify that Ubuntu operating system disables ability to load the USB storage kernel module. +# sudo su -c "echo blacklist usb-storage >> /etc/modprobe.d/DISASTIG.conf" + + + + Verify that Ubuntu operating system disables ability to load the USB storage kernel module. # grep usb-storage /etc/modprobe.d/* | grep "/bin/true" @@ -3322,11 +8721,30 @@ Verify the operating system disables the ability to use USB mass storage device. blacklist usb-storage -If the command does not return any output, or the line is commented out, this is a finding.SRG-OS-000481-GPOS-00481<GroupDescription></GroupDescription>UBTU-20-010455The Ubuntu operating system must disable all wireless network adapters.<VulnDiscussion>Without protection of communications with wireless peripherals, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read, altered, or used to compromise the operating system. +If the command does not return any output, or the line is commented out, this is a finding. + + + + + SRG-OS-000481-GPOS-00481 + <GroupDescription></GroupDescription> + + UBTU-20-010455 + The Ubuntu operating system must disable all wireless network adapters. + <VulnDiscussion>Without protection of communications with wireless peripherals, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read, altered, or used to compromise the operating system. This requirement applies to wireless peripheral technologies (e.g., wireless mice, keyboards, displays, etc.) used with an operating system. Wireless peripherals (e.g., Wi-Fi/Bluetooth/IR Keyboards, Mice, and Pointing Devices and Near Field Communications [NFC]) present a unique challenge by creating an open, unsecured port on a computer. Wireless peripherals must meet DoD requirements for wireless data transmission and be approved for use by the AO. Even though some wireless peripherals, such as mice and pointing devices, do not ordinarily carry information that need to be protected, modification of communications with these wireless peripherals may be used to compromise the operating system. Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. -Protecting the confidentiality and integrity of communications with wireless peripherals can be accomplished by physical means (e.g., employing physical barriers to wireless radio frequencies) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. If the wireless peripheral is only passing telemetry data, encryption of the data may not be required.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Canonical Ubuntu 20.04 LTSDISADPMS TargetCanonical Ubuntu 20.04 LTS5318CCI-002418List all the wireless interfaces with the following command: +Protecting the confidentiality and integrity of communications with wireless peripherals can be accomplished by physical means (e.g., employing physical barriers to wireless radio frequencies) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. If the wireless peripheral is only passing telemetry data, encryption of the data may not be required.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls> + + DPMS Target Canonical Ubuntu 20.04 LTS + DISA + DPMS Target + Canonical Ubuntu 20.04 LTS + 5318 + + CCI-002418 + List all the wireless interfaces with the following command: $ ls -L -d /sys/class/net/*/wireless | xargs dirname | xargs basename @@ -3346,10 +8764,18 @@ install <module name> /bin/true For each module from the system, execute the following command to remove it: -$ sudo modprobe -r <module name>Note: This requirement is Not Applicable for systems that do not have physical wireless network radios. +$ sudo modprobe -r <module name> + + + + Note: This requirement is Not Applicable for systems that do not have physical wireless network radios. Verify that there are no wireless interfaces configured on the system with the following command: $ ls -L -d /sys/class/net/*/wireless | xargs dirname | xargs basename -If a wireless interface is configured and has not been documented and approved by the ISSO, this is a finding. \ No newline at end of file +If a wireless interface is configured and has not been documented and approved by the ISSO, this is a finding. + + + + \ No newline at end of file diff --git a/database/guidancedb.dbml b/database/guidancedb.dbml new file mode 100644 index 000000000..8bf9de373 --- /dev/null +++ b/database/guidancedb.dbml @@ -0,0 +1,16 @@ +// Use DBML to define your database structure +// Docs: https://dbml.dbdiagram.io/docs + +Table Benchmarks { + id integer [pk, increment] + title varchar[256] + vendor text + relesae int + version int + release_date date +} + +Table Test { + id int [pk, increment] +} + diff --git a/index2.html b/index2.html new file mode 100644 index 000000000..ad8c39a3e --- /dev/null +++ b/index2.html @@ -0,0 +1,10046 @@ + + + + + + + +

    +
    +
    +

    MITRE SAF STIG Data

    +

    A collection of STIG data from DOD Cyber Exchange

    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    STIG IDAction + Download +
    + 4e1e5be3-2e0e-466b-bf5e-77b97ed29301 + + A10 Networks ADC ALG - Ver 2, Rel 1 + + Download + + 523.3 KB + + Download Action +
    + 0207e16e-046a-4f38-a3b1-a87c1c5b8e8a + + A10 Networks Application Delivery Controller (ADC) NDM STIG Ver 1 + + Download + + 269.56 KB + + Download Action +
    + 85816b07-989c-4652-b4aa-5cfae7c56723 + + A10 Networks Application Delivery Controller (ADC) Overview, Ver 1 + + Download + + 86.24 KB + + Download Action +
    + e6c0ff53-4618-4b9b-875b-4368626ec33f + + AAA SRG - Ver 1, Rel 2 + + Download + + 665.83 KB + + Download Action +
    + d74d7563-e821-4771-b37b-eca4ec5377bc + + Active Directory Domain STIG - Ver 3, Rel 2 + + Download + + 668.75 KB + + Download Action +
    + e2e884eb-ec6d-4363-9d39-9d8a8bdb6c1e + + Active Directory Forest STIG - Ver 2, Rel 8 + + Download + + 433.92 KB + + Download Action +
    + 920ba3e9-82f9-4db0-9f43-00259a02b732 + + Adobe Acrobat Professional DC Continuous Track STIG - Ver 2, Rel 1 + + Download + + 1.33 MB + + Download Action +
    + d94a4b36-b8c8-4a70-9cd7-91aabbe2b35c + + Adobe Acrobat Reader DC Continuous Track STIG - Ver 2, Rel 1 + + Download + + 818.02 KB + + Download Action +
    + d020164d-4bb1-43a6-9f33-14d3dfee668d + + Adobe Acrobat Reader DC Continuous Track STIG Benchmark - Ver 2, Rel 2 + + Download + + 10.86 KB + + Download Action +
    + 3b69de7f-225c-4ce6-9a41-5c754e0cad57 + + Akamai KSD Service IL2 ALG STIG Version 1 + + Download + + 314.77 KB + + Download Action +
    + 84b9d098-af1e-450f-8121-110824945c45 + + Akamai KSD Service IL2 NDM STIG Version 1 + + Download + + 309.02 KB + + Download Action +
    + 299f3008-2092-4db1-b5bb-0c55313cb536 + + Akamai KSD Service IL2 STIG Overview + + Download + + 136.95 KB + + Download Action +
    + 27df0561-f1a8-4f2e-8df0-a53ec8085179 + + Apache 2.2 STIG UNIX - Ver 1, Rel 11 + + Download + + 839.22 KB + + Download Action +
    + 23333287-72cf-428b-aaa0-e4bbb3dbc0a9 + + Apache 2.2 STIG Windows - Ver 1, Rel 13 + + Download + + 827.34 KB + + Download Action +
    + f6ed69b9-98be-4330-a694-8539d924037b + + Apache Tomcat Application Server 9 STIG - Ver 2, Rel 4 + + Download + + 1.61 MB + + Download Action +
    + f79fdead-ac9e-412e-80a3-81cc021d65ef + + Sunset - Apple iOS 12 STIG - Ver 2, Rel 1 + + Download + + 1.34 MB + + Download Action +
    + 3987fd28-1763-44b8-8991-a409a09d2c60 + + Sunset - Apple iOS/iPadOS 14 STIG - Ver 1, Rel 3 + + Download + + 1.61 MB + + Download Action +
    + c3da423c-64a1-4fb7-bb67-bd64b52ccdfd + + Apple iOS/iPadOS 15 STIG - Ver 1, Rel 3 + + Download + + 1.05 MB + + Download Action +
    + 234dd4bf-49ca-446b-b5dd-657a7ee6cc27 + + Apple OS X 10.15 STIG - Ver 1, Rel 9 + + Download + + 1.54 MB + + Download Action +
    + 518c2a1b-923a-41c3-b656-ed4fa497981d + + Apple macOS 11 (Big Sur) STIG - Ver 1, Rel 6 + + Download + + 1.03 MB + + Download Action +
    + 0e97a122-3cff-4608-a1cd-53311dce600a + + Apple macOS 12 (Monterey) STIG - Ver 1, Rel 4 + + Download + + 949.59 KB + + Download Action +
    + e99d5ed1-f483-4755-a7fa-added014f9d5 + + Application Layer Gateway (ALG) SRG - Ver 1, Rel 2 + + Download + + 579.7 KB + + Download Action +
    + 0da6441c-a8ea-4c34-a1c2-9064166cc63f + + Application Security and Development STIG - Ver 5, Rel 2 + + Download + + 870.45 KB + + Download Action +
    + 7c44937e-4e54-4c56-968e-d4ab1717e6c7 + + Application Server SRG - Ver 3, Rel 3 + + Download + + 807.73 KB + + Download Action +
    + 4c011694-b966-468f-a99b-465b43acb91c + + BIND 9.x STIG - Ver 2, Rel 2 + + Download + + 702.63 KB + + Download Action +
    + 53d2e9f0-3440-48df-8613-de340c993c3c + + BlackBerry Enterprise Mobility Server (BEMS) 2.x STIG - Ver 1, Rel 3 + + Download + + 1.29 MB + + Download Action +
    + 163b5f29-92be-448a-ac6a-8cfccbf5504f + + Blackberry UEM STIG - Ver 2, Rel 1 + + Download + + 1.54 MB + + Download Action +
    + ff0a6820-bfce-48a8-a9a8-9072a0816bdd + + CA API Gateway ALG STIG - Ver 1, Rel 2 + + Download + + 540.17 KB + + Download Action +
    + 46f2c37f-ae70-41b1-96ea-3157aa459d9a + + CA API Gateway NDM STIG Ver 1 + + Download + + 279.81 KB + + Download Action +
    + a4c38dd1-1668-4212-b1b0-7f61237d250b + + CA API Gateway STIG Ver 1 Overview + + Download + + 89.21 KB + + Download Action +
    + c22a797e-0992-475a-9dc4-eb2b64b0a54b + + CA IDMS STIG - Ver 1, Rel 2 + + Download + + 1.54 MB + + Download Action +
    + 0ca21645-9ede-48a2-b45d-23d6bbd4ef37 + + Canonical Ubuntu 18.04 LTS STIG - Ver 2, Rel 9 + + Download + + 851.8 KB + + Download Action +
    + 10227570-52a5-4bda-bd58-07aa648740eb + + Canonical Ubuntu 18.04 LTS STIG Benchmark - Ver 2, Rel 7 + + Download + + 56.85 KB + + Download Action +
    + 44cf5338-0825-4997-a7ee-51117dd6dade + + Canonical Ubuntu 18.04 LTS STIG for Ansible - Ver 2 Rel 9 + + Download + + 319.25 KB + + Download Action +
    + 6482ad37-7938-4786-beb0-8a7eae7a90c8 + + Canonical Ubuntu 20.04 LTS STIG - Ver 1, Rel 6 + + Download + + 1.44 MB + + Download Action +
    + a0686056-29ba-4fcb-9d52-688d07a87bd1 + + Canonical Ubuntu 20.04 LTS STIG Benchmark - Ver 1, Rel 4 + + Download + + 59.4 KB + + Download Action +
    + 39c204e5-054c-4384-baad-63622829aa3b + + Canonical Ubuntu 20.04 LTS STIG for Ansible - Ver 1, Rel 6 + + Download + + 318.15 KB + + Download Action +
    + c6877daf-5a53-47a2-aeb4-1844aaf795e3 + + Central Log Server SRG - Ver 2, Rel 2 + + Download + + 772.14 KB + + Download Action +
    + 9467f309-9c4a-4ad8-a393-dd0596be4f65 + + Cisco IOS XE Router NDM RTR STIG for Ansible - Ver 2, Rel 3 + + Download + + 402.99 KB + + Download Action +
    + f1e97c1f-51b9-4f2f-8d7f-780827402da3 + + Cisco IOS-XE Router NDM STIG Benchmark - Ver 1, Rel 5 + + Download + + 15.62 KB + + Download Action +
    + fd58cdb4-80a0-4bf9-a3d1-fe65fb9d1f36 + + Cisco IOS XE Router STIG for Ansible - Ver 2, Rel 1 + + Download + + 713.94 KB + + Download Action +
    + 9d6fe94c-a4d9-42b2-8a20-b1e001634643 + + Cisco IOS-XE Router RTR STIG Benchmark - Ver 1, Rel 2 + + Download + + 6.95 KB + + Download Action +
    + a8a659d8-cacc-4db2-80df-6eae3db1d178 + + Container Platform SRG - Ver 1, Rel 3 + + Download + + 785.1 KB + + Download Action +
    + 12451344-ed69-44d9-8e09-eb703d4ded45 + + Crunchy Data PostgreSQL STIG - Ver 2, Rel 1 + + Download + + 2.75 MB + + Download Action +
    + 7b253766-0f71-41eb-964d-258f9c0b9757 + + Database SRG - Ver 3, Rel 3 + + Download + + 645.23 KB + + Download Action +
    + 47f81e17-1761-4cbf-9c7d-fa54a34eea72 + + DBN-6300 IDPS STIG Ver 1 + + Download + + 309.65 KB + + Download Action +
    + 8fb56fa7-a9e7-4b65-aa02-599c03976c13 + + DBN-6300 NDM STIG Ver 1 + + Download + + 320.44 KB + + Download Action +
    + 94a71952-abab-46f9-85d3-30154808600c + + DBN-6300 Overview - Ver 1, Rel 2 + + Download + + 409.24 KB + + Download Action +
    + 297942f8-c2ca-496c-9b29-3f3f860c2820 + + DNS SRG - Ver 2, Rel 4 + + Download + + 601.26 KB + + Download Action +
    + fd19a7d5-c2b9-46b4-86d5-72d6be467b9d + + Docker Enterprise 2.x Linux/Unix - Ver 2, Rel 1 + + Download + + 1.02 MB + + Download Action +
    + e600d9f9-7a36-4970-a613-ddfc118752ef + + Docker Enterprise 2.x Linux/Unix STIG for Ansible - Ver 1, Rel 1 + + Download + + 489.84 KB + + Download Action +
    + 094e2264-9f8b-4a5f-9f29-ab47138436fb + + EDB Postgres Advanced Server STIG - Ver 2, Rel 2 + + Download + + 1.17 MB + + Download Action +
    + b3338ba7-ccb9-4370-926a-f6f41fd56794 + + EDB Postgres Advanced Server v11 for Windows STIG - Ver 2, Rel 2 + + Download + + 882.31 KB + + Download Action +
    + 8012d167-08e8-4dcc-99ad-3c438ca503b5 + + Esri ArcGIS Server 10.3 STIG - Ver 1, Rel 3 + + Download + + 399.4 KB + + Download Action +
    + d283510b-b23f-401f-a492-b325a03cd867 + + Firewall SRG - Ver 2, Rel 3 + + Download + + 515.57 KB + + Download Action +
    + 2b1527fd-de76-483b-9d2f-9062e146059f + + ForeScout CounterACT ALG STIG - Ver 1, Rel 2 + + Download + + 438.53 KB + + Download Action +
    + 5ad497eb-ff0a-401f-b434-16696e601ac0 + + ForeScout CounterACT NDM STIG Ver 1 + + Download + + 355.31 KB + + Download Action +
    + 06775e40-3939-40cd-8a0b-577aa2d3c7dc + + ForeScout CounterACT Ver 1 Overview + + Download + + 134.09 KB + + Download Action +
    + c1f43cf0-4262-4e17-85e5-277823e12b8b + + General Purpose Operating System SRG - Ver 2, Rel 4 + + Download + + 602.49 KB + + Download Action +
    + 19be99e6-39a4-49a8-b88d-623bb5b1c57c + + Google Android 10.x STIG - Ver 1, Rel 2 + + Download + + 1.64 MB + + Download Action +
    + ac1500fc-2999-442b-a078-3ce9b1859d53 + + Sunset - Google Android 9 STIG - Ver 2, Rel 1 + + Download + + 3.52 MB + + Download Action +
    + c8538ad7-d952-4bff-86bd-5f0d5bdef859 + + Google Chrome STIG - Ver 2, Rel 7 + + Download + + 835.21 KB + + Download Action +
    + 26cee806-d9e8-45ae-901a-2b572d4538dc + + Google Chrome STIG Benchmark - Ver 2, Rel 7 + + Download + + 24.23 KB + + Download Action +
    + 8302426b-b2a0-4b50-b39a-d5536542b56b + + HPE 3PAR StoreServ 3.2.x STIG - Ver 2, Rel 1 + + Download + + 745.74 KB + + Download Action +
    + a12a1e08-1440-430d-9f50-06f87bfdb66c + + HPE Nimble Storage Array STIG - Ver 1, Rel 1 + + Download + + 1.49 MB + + Download Action +
    + 21e37782-cf47-4fe4-8505-bad97fe22aff + + HYCU for Nutanix STIG - Ver 1 Rel 1 + + Download + + 1.33 MB + + Download Action +
    + c60df65d-436b-447c-8967-f55ddd207c9d + + IBM AIX 7.x STIG - Ver 2, Rel 6 + + Download + + 2.98 MB + + Download Action +
    + 2678d09a-7d7d-446a-b101-5f161557040d + + IBM Aspera Platform 4.2 STIG - Ver 1, Rel 1 + + Download + + 857.94 KB + + Download Action +
    + c8662465-67ea-4f84-b4a2-c77243a74340 + + IBM DataPower NDM STIG - Ver 1, Rel 2 + + Download + + 452.3 KB + + Download Action +
    + f6f4d8f4-f713-47d8-940b-6a7daacac0dd + + IBM DataPower STIG ALG STIG Ver 1 + + Download + + 288.27 KB + + Download Action +
    + fd7bb956-bc0a-43f9-8cab-6d9a5125cb92 + + IBM DataPower STIG Overview, Ver 1 + + Download + + 84.73 KB + + Download Action +
    + 40ac956d-b768-4f38-ac91-4bb13fe77dde + + IBM DB2 V10.5 STIG - Ver 1, Rel 4 + + Download + + 825.06 KB + + Download Action +
    + 7f421832-f46f-491c-b27c-43651428d6a2 + + IBM Hardware Management Console (HMC) STIG - Ver 1, Rel 5 + + Download + + 706.74 KB + + Download Action +
    + a65f53a1-e067-4aa5-9e21-fdd98cdb0192 + + IBM MaaS360 with Watson v10-x MDM STIG - Ver1, Rel 2 + + Download + + 969.3 KB + + Download Action +
    + 4af6be54-e464-4540-868e-52d3abcc773d + + IBM MQ Appliance v9-0 AS STIG V1 + + Download + + 342.73 KB + + Download Action +
    + 8c680498-77e9-49d3-b33b-ea272b7cd4c6 + + IBM MQ Appliance v9-0 NDM STIG V1 + + Download + + 322.58 KB + + Download Action +
    + 96464574-3611-4175-8271-ca05d901dd10 + + IBM MQ Appliance v9-0 STIG Overview + + Download + + 216.17 KB + + Download Action +
    + 0efc0113-9bf8-49a3-9b85-9b55274a0eda + + IBM WebSphere Liberty Server STIG - Ver 1, Rel 2 + + Download + + 1.62 MB + + Download Action +
    + 894e33b2-4968-45c5-8bf5-1ae54c0909ff + + IBM WebSphere Traditional V9.x STIG Version 1 + + Download + + 464.6 KB + + Download Action +
    + 4ca227e7-eb24-48ec-95e8-d4c0ab1620fa + + IBM zVM Using CA VMSecure STIG - Ver 2, Rel 2 + + Download + + 730.63 KB + + Download Action +
    + 02f8a822-38ec-4577-8efb-7550bced2da1 + + Infoblox 7.x DNS STIG - Ver 2, Rel 1 + + Download + + 981.51 KB + + Download Action +
    + d3577e86-3d41-4d3f-9114-16b668976633 + + Infoblox 8.x DNS STIG - Ver 1, Rel 1 + + Download + + 1.66 MB + + Download Action +
    + c03f7c72-bb80-426c-9e9f-62bde5e003b7 + + Intrusion Detection and Prevention System SRG - Ver 2, Rel 6 + + Download + + 850.55 KB + + Download Action +
    + 9b2261ee-384b-4fbb-9c89-f5fd5076cb02 + + ISEC7 EMM Suite v6.x STIG - Ver 1, Rel 1 + + Download + + 1.67 MB + + Download Action +
    + 8c1ffb56-ee32-4631-8d2f-e15b5336c5c0 + + ISEC7 Sphere STIG - Ver 2, Rel 1 + + Download + + 2.16 MB + + Download Action +
    + e9acc0f6-a1e7-4d0b-9c0d-7c63028b8647 + + Ivanti MobileIron Core MDM Server STIG - Ver 1, Rel 1 + + Download + + 1.82 MB + + Download Action +
    + aac33ef0-b4ea-4148-9067-5fe0c7fa7667 + + Jamf Pro v10.x EMM STIG - Ver 1, Rel 1 + + Download + + 1.69 MB + + Download Action +
    + e945ae32-60c3-4acd-8de0-2538f3a30c7a + + Juniper SRX SG STIG for Ansible - Ver 1, Rel 1 + + Download + + 368.27 KB + + Download Action +
    + 3394416b-2142-425b-b99b-6b9983a6ea3d + + Kubernetes STIG - Ver 1, Rel 7 + + Download + + 2.47 MB + + Download Action +
    + 57328aed-c982-460d-b28c-9aaa9dca726b + + Layer 2 Switch SRG - Ver 2, Rel 1 + + Download + + 679.55 KB + + Download Action +
    + 9dbc42de-893d-4e6c-9969-c32392eb7791 + + Mainframe Product SRG - Ver 2, Rel 1 + + Download + + 814.87 KB + + Download Action +
    + fcd19dfd-9ae9-475b-965b-9712d5662a92 + + MarkLogic Server v9 STIG - Ver 2, Rel 1 + + Download + + 977.38 KB + + Download Action +
    + 12e9b282-dabf-4de8-8678-68b954ab7226 + + McAfee Application Control 8.x STIG - Ver 2, Rel 1 + + Download + + 910.13 KB + + Download Action +
    + dee61fbe-4041-43d0-86cc-c30cadd8ded5 + + McAfee Application Control 7.x STIG - Ver 1, Rel 3 + + Download + + 380.54 KB + + Download Action +
    + a7a088d6-d0d5-4cc8-a360-487c6fccb1ab + + McAfee Virus Scan Enterprise for Linux 1.9x/2.0x Managed Client STIG - Ver 1, Rel 3 + + Download + + 449.32 KB + + Download Action +
    + df96c1a8-4fcc-49da-a6b5-38c3f06c6d9b + + Microsoft .Net Framework 4 STIG Benchmark - Ver 2, Rel 1 + + Download + + 8.44 KB + + Download Action +
    + 77fbad7e-899a-4cf1-a86f-4959c5dac3ec + + Microsoft .Net Framework 4.0 STIG - Ver 2, Rel 2 + + Download + + 765.15 KB + + Download Action +
    + 292bd8db-b00f-4b4b-b2ba-0b6afbd89880 + + Microsoft Access 2010 STIG - Ver 1, Rel 10 + + Download + + 451.37 KB + + Download Action +
    + b75d850a-a867-40f5-a0f2-91c485266cb5 + + Microsoft Access 2013 STIG - Ver 1, Rel 6 + + Download + + 436.33 KB + + Download Action +
    + 00a093e9-6903-4251-9505-3f79e0b35aba + + Microsoft Access 2016 STIG - Ver 1, Rel 1 + + Download + + 356.81 KB + + Download Action +
    + 4cbf78f1-9737-46ce-99e8-052c2b3720e8 + + Microsoft Defender Antivirus STIG - Ver 2, Rel 4 + + Download + + 733.35 KB + + Download Action +
    + 8f339765-729d-40de-8833-ac00c374f260 + + Microsoft Defender Antivirus STIG Benchmark - Ver 2, Rel 3 + + Download + + 23.2 KB + + Download Action +
    + e36d7f35-74a6-4cc7-83a9-cc87aa20368d + + Microsoft Edge STIG - Ver 1, Rel 6 + + Download + + 1.53 MB + + Download Action +
    + 2460db5c-039e-4e61-a981-d3dd6343844c + + Microsoft Edge STIG Benchmark - Ver 1, Rel 2 + + Download + + 1.53 MB + + Download Action +
    + 4f5cd45c-3c88-4937-a011-43faf9336aaa + + Microsoft Excel 2010 STIG - Ver 1, Rel 11 + + Download + + 443.24 KB + + Download Action +
    + 01847f17-d702-45f8-8348-0507776b8dce + + Microsoft Excel 2013 STIG - Ver 1, Rel 7 + + Download + + 440.15 KB + + Download Action +
    + b5b7d542-3cdd-4a54-8ade-90758cfde5db + + Microsoft Excel 2016 STIG - Ver 1, Rel 2 + + Download + + 406.81 KB + + Download Action +
    + 75dfe011-acca-47db-a7c0-e389603971a6 + + Microsoft Exchange 2010 Client Access STIG - Ver 1, Rel 9 + + Download + + 682.87 KB + + Download Action +
    + 0622e9ff-5eb7-42af-aff1-5465325dc1aa + + Microsoft Exchange 2010 Edge Transport Server STIG - Ver 1, Rel 15 + + Download + + 642.96 KB + + Download Action +
    + 6a87dd60-d0ed-462e-a4f0-e01f89cd9f67 + + Microsoft Exchange 2010 Hub STIG - Ver 1, Rel 12 + + Download + + 689.63 KB + + Download Action +
    + 6b6e81d7-99dd-4b2d-ba58-e19120b04c72 + + Microsoft Exchange 2010 Mailbox STIG - Ver 1, Rel 10 + + Download + + 445.45 KB + + Download Action +
    + ab2844c5-aac3-40a1-97f2-ef3a816f2fb9 + + Microsoft Exchange 2010 Overview - Ver 1, Rel 6 + + Download + + 985.59 KB + + Download Action +
    + 1254c3b3-ef14-4d44-bb26-6214f8f58288 + + Microsoft Groove 2013 STIG - Ver 1, Rel 3 + + Download + + 439.24 KB + + Download Action +
    + b8cde87b-c02c-4b47-926d-660e9a3b197e + + Microsoft InfoPath 2010 STIG - Ver 1, Rel 11 + + Download + + 460.93 KB + + Download Action +
    + d73ce1c5-8f61-4ea2-ad30-700da92a2c16 + + Microsoft InfoPath 2013 STIG - Ver 1, Rel 5 + + Download + + 431.7 KB + + Download Action +
    + a1f30e24-867f-4378-98d9-012375b3d49a + + Microsoft Internet Explorer 11 STIG - Ver 2, Rel 3 + + Download + + 706.39 KB + + Download Action +
    + 691c2c7d-a266-457d-b07f-a45b45408228 + + Microsoft Lync 2013 STIG - Ver 1, Rel 4 + + Download + + 439.13 KB + + Download Action +
    + db8380d2-4a40-4e8f-a304-411b3145f8b9 + + Microsoft Office 2010 Overview - Ver 1, Rel 12 + + Download + + 159.11 KB + + Download Action +
    + b6864455-b1a8-4997-a757-ccf477592624 + + Microsoft Office 2013 Overview - Ver 1, Rel 5 + + Download + + 531.32 KB + + Download Action +
    + a6d1f0a2-1f52-40ff-b41e-7ec8282bb497 + + Microsoft Office 365 ProPlus STIG - Ver 2, Rel 7 + + Download + + 824.28 KB + + Download Action +
    + a87f81b9-10cc-4256-ac60-c90b9c5ed324 + + Microsoft Office System 2010 STIG - Ver 1, Rel 12 + + Download + + 445.38 KB + + Download Action +
    + 690c9402-2846-4b58-9dfc-40e14d736f03 + + Microsoft Office System 2013 STIG - Ver 2, Rel 1 + + Download + + 885.34 KB + + Download Action +
    + dd119d0c-772b-49b9-9bab-d99b5d5e59a3 + + Microsoft Office System 2016 STIG - Ver 2, Rel 2 + + Download + + 715.87 KB + + Download Action +
    + ad1245bd-5338-4cdb-9e15-e68f8bac5664 + + Microsoft OneDrive for Business 2016 STIG - Ver 1, Rel 3 + + Download + + 594.98 KB + + Download Action +
    + 71a0e3ba-286a-401a-9f01-a8ab2b632a6e + + Microsoft OneDrive STIG - Ver 2, Rel 2 + + Download + + 667.58 KB + + Download Action +
    + 8275af7a-eef4-4242-a2eb-1b2e40da4264 + + Microsoft OneNote 2010 STIG - Ver 1, Rel 9 + + Download + + 435.61 KB + + Download Action +
    + f807ac56-981e-491b-816c-03ac056ce669 + + Microsoft OneNote 2013 STIG - Ver 1, Rel 3 + + Download + + 426.92 KB + + Download Action +
    + f304b867-70e3-45ee-b759-218e4c19448e + + Microsoft OneNote 2016 STIG - Ver 1, Rel 2 + + Download + + 339.07 KB + + Download Action +
    + 8940c077-4612-4207-ab49-1269da8f3f81 + + Microsoft Outlook 2010 STIG - Ver 1, Rel 13 + + Download + + 458.93 KB + + Download Action +
    + 1ccbbe6a-558b-408d-b56c-adecd6dca184 + + Microsoft Outlook 2013 STIG - Ver 1, Rel 13 + + Download + + 423.68 KB + + Download Action +
    + 356f8b76-e222-4c94-a584-36548153f579 + + Microsoft Outlook 2016 STIG - Ver 2, Rel 3 + + Download + + 660.23 KB + + Download Action +
    + 8a6d9a9b-da90-4720-93bb-cdd80943741f + + Microsoft PowerPoint 2010 STIG - Ver 1, Rel 10 + + Download + + 414.21 KB + + Download Action +
    + 42a8104e-acc7-4316-b493-007698ef5f11 + + Microsoft PowerPoint 2013 STIG - Ver 1, Rel 6 + + Download + + 440.97 KB + + Download Action +
    + a3e496d1-e0b3-46b2-811e-d44831705ef8 + + Microsoft PowerPoint 2016 STIG - Ver 1, Rel 1 + + Download + + 363.05 KB + + Download Action +
    + 5fd452ce-fe7f-416a-abbf-60b0d2a331f5 + + Microsoft Project 2010 STIG - Ver 1, Rel 9 + + Download + + 435.29 KB + + Download Action +
    + 0ebcfef6-9b75-410f-9a2e-9fc759d19a81 + + Microsoft Project 2013 STIG - Ver 1, Rel 4 + + Download + + 428.58 KB + + Download Action +
    + dc17bf23-a310-4ac4-a555-6285f14a0f31 + + Microsoft Project 2016 STIG - Ver 1, Rel 1 + + Download + + 356.08 KB + + Download Action +
    + 5c06cbdf-739d-4c1b-beea-011299e7cd1e + + Microsoft Publisher 2010 STIG - Ver 1, Rel 11 + + Download + + 409.49 KB + + Download Action +
    + 02390da9-a893-4ef7-ad3c-312c1f1a8198 + + Microsoft Publisher 2013 STIG - Ver 1, Rel 5 + + Download + + 429.2 KB + + Download Action +
    + c6bf29e5-e708-4897-933e-cfe83f0c1a7f + + Microsoft Publisher 2016 STIG - Ver 1, Rel 3 + + Download + + 379.19 KB + + Download Action +
    + 407676ab-e403-4b58-bdcb-027a70cf94fc + + Microsoft SCOM STIG - Ver 1, Rel 1 + + Download + + 1.5 MB + + Download Action +
    + 5d9bd57b-995f-47ed-b05b-050ed7c44eac + + Microsoft SharePoint 2013 STIG - Ver 2, Rel 3 + + Download + + 692.2 KB + + Download Action +
    + 906af73d-7e44-4c65-b815-d207ce00c987 + + Microsoft Sharepoint Designer 2013 STIG - Ver 1, Rel 3 + + Download + + 442.79 KB + + Download Action +
    + 322a6857-ea64-4c78-893c-3a84cc1d991f + + Microsoft Skype for Business 2016 STIG - Ver 1, Rel 1 + + Download + + 352.2 KB + + Download Action +
    + 031d5eaf-86f0-4ba7-a4b0-99a607606b93 + + Microsoft Visio 2013 STIG - Ver 1, Rel 4 + + Download + + 427.91 KB + + Download Action +
    + 99fa788e-a83b-4cf2-bb4f-1da627ef9396 + + Microsoft Visio 2016 STIG - Ver 1, Rel 1 + + Download + + 355.78 KB + + Download Action +
    + ae35da45-3476-426f-820f-74093cd277f3 + + Microsoft Windows 10 STIG - Ver 2, Rel 5 + + Download + + 966.35 KB + + Download Action +
    + 004c1096-80f8-49d0-913e-8f98744b685b + + Microsoft Windows 10 STIG Benchmark - Ver 2, Rel 6 + + Download + + 99.71 KB + + Download Action +
    + 1ae6abfc-a7d8-4e7f-a738-2f9d0c9001a5 + + Microsoft Windows 2012 and 2012 R2 DC STIG- Ver 3, Rel 5 + + Download + + 905.58 KB + + Download Action +
    + de5ffd8d-7341-485c-8c85-63e72ccb5b9b + + Microsoft Windows 2012 and 2012 R2 MS STIG - Ver 3, Rel 5 + + Download + + 852.32 KB + + Download Action +
    + 894646d0-6965-4e18-8d18-a42862285979 + + Microsoft Windows 2012 Server Domain Name System STIG - Ver 2, Rel 5 + + Download + + 770.26 KB + + Download Action +
    + 3be7fef2-abd7-4b8b-8eef-9e8cc8f00d0a + + Microsoft Windows Firewall STIG and Advanced Security STIG - Ver 2, Rel 1 + + Download + + 716.43 KB + + Download Action +
    + c8ffa39b-89f2-454d-99a0-b17de1aed87e + + Microsoft Windows Firewall STIG Benchmark - Ver 2, Rel 1 + + Download + + 13.53 KB + + Download Action +
    + dfb16402-d384-49a3-bf57-9bafaf59ee09 + + Microsoft Windows Operating Systems Overview - Ver 1, Rel 5 + + Download + + 349.97 KB + + Download Action +
    + 3a3f8056-ca9c-45a6-b166-a79de2f3ac56 + + Microsoft Windows Privileged Access Workstation (PAW) STIG - Ver 2, Rel 2 + + Download + + 731.43 KB + + Download Action +
    + 3713eab8-40ed-493b-8776-2a54e74bae15 + + Microsoft Windows Server 2012 and 2012 R2 DC STIG Benchmark - Ver 3, Rel 4 + + Download + + 123.35 KB + + Download Action +
    + d920b983-be46-4daf-aa06-66d1260b5626 + + Microsoft Windows Server 2012 and 2012 R2 MS STIG Benchmark - Ver 3, Rel 4 + + Download + + 118.5 KB + + Download Action +
    + c73d1745-8a33-4266-ba64-a0025af87429 + + Microsoft Windows Server 2016 STIG - Ver 2, Rel 5 + + Download + + 827.92 KB + + Download Action +
    + 48500464-6c80-42d3-9f73-7da28fbe24d7 + + Microsoft Windows Server 2019 STIG Benchmark - Ver 2, Rel 3 + + Download + + 99.36 KB + + Download Action +
    + 8424ae69-5688-473e-bca9-4e98e541b3bb + + Microsoft Windows Server 2016 STIG for Chef - Ver 1, Rel 3 + + Download + + 688.81 KB + + Download Action +
    + b5b36896-d8a8-4630-9eb6-153867a4a34b + + Microsoft Windows Server 2016 STIG for PowerShell DSC - Ver 1, Rel 3 + + Download + + 617.57 KB + + Download Action +
    + 21543d04-830e-47ad-9277-d61ea17da260 + + Microsoft Windows Server 2019 STIG - Ver 2, Rel 5 + + Download + + 793.5 KB + + Download Action +
    + 751d828a-fc8c-45c0-9bc3-f3175e3442e1 + + Microsoft Windows Server 2019 STIG for Chef - Ver 1, Rel 2 + + Download + + 717.29 KB + + Download Action +
    + bf7899c3-9b8b-4e59-ab5e-c2af4a52a576 + + Microsoft Word 2010 STIG - Ver 1, Rel 11 + + Download + + 662.17 KB + + Download Action +
    + bb1ccac1-da6b-49fc-9d12-5d6f056b9a6e + + Microsoft Word 2013 STIG - Ver 1, Rel 6 + + Download + + 462.31 KB + + Download Action +
    + 2628de40-984d-4d85-b016-ef3cec65c520 + + Microsoft Word 2016 STIG - Ver 1, Rel 1 + + Download + + 361.84 KB + + Download Action +
    + 88b7cf24-556f-4238-911c-32a38ba0224d + + MobileIron Core v10.x MDM STIG Ver 1 Rel 1 + + Download + + 1 MB + + Download Action +
    + c31f572f-17c5-4d56-a35c-a74e53dccbb1 + + MongoDB Enterprise Advanced 3.x STIG - Ver 2, Rel 1 + + Download + + 609.61 KB + + Download Action +
    + dd3a1fe8-f2be-4326-b5e5-20a62ad043c0 + + MongoDB Enterprise Advanced 4.x STIG - Ver 1, Rel 2 + + Download + + 1.56 MB + + Download Action +
    + 0e0e9b73-e2a1-495e-9b16-e9b7d37fed1d + + Motorola Solutions Android 11 - Ver 1, Rel 2 + + Download + + 1.68 MB + + Download Action +
    + df63a2a7-2ba7-4d2f-9eed-d785b42ec35c + + Mozilla Firefox for Linux STIG Benchmark - Ver 6, Rel 3 + + Download + + 17.52 KB + + Download Action +
    + 2f68eeb8-d228-45c3-83ae-ee0b894060d3 + + Mozilla Firefox for Windows STIG Benchmark - Ver 6, Rel 3 + + Download + + 14.8 KB + + Download Action +
    + c39c9fbd-4ae7-4e11-a2a0-705760c1a212 + + Mozilla Firefox STIG - Ver 6, Rel 4 + + Download + + 886.06 KB + + Download Action +
    + 94019a9f-4868-4aba-86f1-c40a18dd4cca + + Microsoft Internet Explorer 11 STIG Benchmark - Ver 2, Rel 3 + + Download + + 64.58 KB + + Download Action +
    + a2264826-1f90-483b-9495-b129ae2b36c7 + + Multifunction Device and Network Printers STIG - Ver 2, Rel 14 + + Download + + 596.06 KB + + Download Action +
    + 3cb5dd33-27f7-42f7-b54b-f9836d13c8b0 + + NetApp ONTAP DSC 9.X STIG - Ver 1, Rel 2 + + Download + + 1.43 MB + + Download Action +
    + 852d1641-dbb3-4224-98ec-473d1093dbc9 + + Network Device Management SRG - Ver 4, Rel 1 + + Download + + 1017.22 KB + + Download Action +
    + 2ab92045-2d9a-42f3-924f-56af73a7ce7f + + Network Infrastructure Policy STIG - Ver 10, Rel 3 + + Download + + 625.96 KB + + Download Action +
    + 76da4756-c86c-45c0-b825-b24f17e48a71 + + Oracle Database 11.2g STIG - Ver 2, Rel 3 + + Download + + 1.38 MB + + Download Action +
    + a81ef52f-6667-4a3c-9356-a1f6dba60433 + + Oracle Database 12c STIG - Ver 2, Rel 5 + + Download + + 1.18 MB + + Download Action +
    + 7ebb6e4a-3775-4af0-aa85-9cc0b3a9b9fe + + Oracle HTTP Server 12.1.3 STIG - Ver 2, Rel 1 + + Download + + 764.64 KB + + Download Action +
    + aa6ea48a-c036-4acf-93da-1fbc31142985 + + Oracle Linux 6 STIG - Ver 2, Rel 6 + + Download + + 882.99 KB + + Download Action +
    + c8b90298-bb3f-4b84-99ed-202724edc430 + + Oracle Linux 7 STIG - Ver 2, Rel 9 + + Download + + 743.02 KB + + Download Action +
    + e7bda7c2-b807-443c-bb85-465a7066c88e + + Oracle Linux 7 STIG Benchmark - Ver 2, Rel 9 + + Download + + 88.69 KB + + Download Action +
    + 01a29b52-ba96-40f9-8d73-9d363466d421 + + Oracle Linux 8 STIG - Ver 1, Rel 4 + + Download + + 1.67 MB + + Download Action +
    + 6d3454fa-91f9-4d5b-b92b-12f1d813f2cf + + Oracle Linux 8 STIG Benchmark - Ver 1, Rel 3 + + Download + + 124.4 KB + + Download Action +
    + 1096e864-7d3e-4a2a-a5c0-237e89fc0597 + + Oracle MySQL 8.0 STIG - Ver 1, Rel 3 + + Download + + 1.58 MB + + Download Action +
    + 29180784-67fe-4a76-95b8-a41b585520d8 + + Oracle WebLogic Server 12c - Ver 2, Rel 1 + + Download + + 1.16 MB + + Download Action +
    + 536d7bd0-5c7a-4e2b-8c03-6e6413154368 + + Palo Alto Networks STIG for Ansible - Ver 1, Rel 4 + + Download + + 338.55 KB + + Download Action +
    + ced2645a-25b7-4e07-9bab-16cfc32a0c06 + + PostgreSQL 9.x STIG - Ver 2, Rel 3 + + Download + + 751.18 KB + + Download Action +
    + a5892b22-2327-497e-b75c-e9365bd32396 + + Rancher Government Solutions Multi-Cluster Manager STIG - Ver 1, Rel 2 + + Download + + 832.58 KB + + Download Action +
    + b0fe6bbb-8d7b-49e2-8775-057c9eb07a77 + + Red Hat Enterprise Linux 7 STIG - Ver 3, Rel 9 + + Download + + 883 KB + + Download Action +
    + 07ed5a15-4487-4f8d-b96e-1a0fa8a43295 + + Red Hat Enterprise Linux 7 STIG for Ansible - Ver 3 Rel 9 + + Download + + 358.44 KB + + Download Action +
    + cf737780-7413-41a0-ad4c-353e57031021 + + Red Hat Enterprise Linux 7 STIG for Chef - Ver 3, Rel 8 + + Download + + 362.5 KB + + Download Action +
    + 97ebd686-ba07-482a-a980-6ba16a89e1dd + + Red Hat Enterprise Linux 8 STIG - Ver 1, Rel 8 + + Download + + 1.19 MB + + Download Action +
    + 9f3e7da1-db87-4a54-8554-b1cf89b9c726 + + Red Hat Enterprise Linux 8 STIG for Ansible - Ver 1 Rel 8 + + Download + + 403.74 KB + + Download Action +
    + 9ebbe295-652c-4311-9c53-055ab6fd81c3 + + Red Hat JBoss Enterprise Application Platform (EAP) 6.3 STIG - Ver 2, Rel 3 + + Download + + 1008.98 KB + + Download Action +
    + 1ab618a5-6b7a-4e72-8dbb-c517b9b54b99 + + Redis Enterprise 6.x STIG - Ver 1, Rel 2 + + Download + + 1.61 MB + + Download Action +
    + 353ca44e-716c-4707-a51a-94d53e3e37b0 + + Red Hat Enterprise Linux 7 STIG Benchmark - Ver 3, Rel 9 + + Download + + 94.16 KB + + Download Action +
    + e066e0e0-54d8-4b86-a2bc-1db4863c6802 + + Red Hat Enterprise Linux 8 STIG Benchmark - Ver 1, Rel 7 + + Download + + 120.6 KB + + Download Action +
    + 1f436578-dae6-47a4-8369-0b1e4682d64b + + Router SRG - Ver 4, Rel 2 + + Download + + 842.54 KB + + Download Action +
    + ed5cee51-aab1-4f32-8a58-37dee8068093 + + Samsung Android 12 with Knox 3.x - Ver 1 Rel 1 + + Download + + 1.57 MB + + Download Action +
    + 73deb3ac-26d7-4275-83aa-3372920db43a + + Samsung Android OS 10 with Knox 3.x STIG - Ver 1, Rel 1 + + Download + + 1.97 MB + + Download Action +
    + 2d9d4276-5aa5-43d7-8b18-aa46ae09458d + + Samsung SDS EMM STIG - Ver 1, Rel 3 + + Download + + 1.67 MB + + Download Action +
    + 512b0dde-6739-4bdb-874f-7332dcaa4da9 + + SDN Controller SRG - Ver 1, Rel 2 + + Download + + 780.17 KB + + Download Action +
    + 5856fcd5-e8c0-40f9-98fe-92e8c1014a38 + + SEL-2740S STIG Ver 1 Rel 1 + + Download + + 1.5 MB + + Download Action +
    + b85eee35-9d6d-4a9f-9390-4eb8fd365fc2 + + SUSE Linux Enterprise Server 12 STIG Benchmark - Ver 2, Rel 7 + + Download + + 55.73 KB + + Download Action +
    + 926c2106-3c5c-4b52-bdd9-64d2d44e0265 + + SUSE Linux Enterprise Server 15 STIG Benchmark - Ver 1, Rel 2 + + Download + + 55.9 KB + + Download Action +
    + 2b073b02-2b56-4816-b308-116d49d4aa31 + + SLES V11 for System z STIG - Ver 1, Rel 12 + + Download + + 568.64 KB + + Download Action +
    + 37861e70-8b29-427d-b1fc-59424c599494 + + Software-Defined Networking (SDN) Using Network Virtualization (NV) STIG Ver 1 + + Download + + 496.15 KB + + Download Action +
    + 6055321b-f5e6-4198-b0b3-56fe44784fbf + + Solaris 10 SPARC STIG - Ver 2, Rel 3 + + Download + + 800.41 KB + + Download Action +
    + 20ec2511-cb53-4c22-ba6e-c359aec03aee + + Solaris 10 SPARC STIG Benchmark - Ver 2, Rel 3 + + Download + + 75.88 KB + + Download Action +
    + b10b45ec-d6ae-4adc-bc1b-eaddbf9f4266 + + Solaris 10 x86 STIG - Ver 2, Rel 3 + + Download + + 817.09 KB + + Download Action +
    + e7f0c1d8-af1d-4cfb-b36e-60faf1597273 + + Solaris 10 x86 STIG Benchmark - Ver 2, Rel 3 + + Download + + 77.55 KB + + Download Action +
    + afc293ac-5298-4be8-afad-e39060958e27 + + Solaris 11 SPARC STIG - Ver 2, Rel 6 + + Download + + 894.25 KB + + Download Action +
    + 908c99ed-6dd8-41c2-b2ba-624413b631fe + + Solaris 11 SPARC STIG Benchmark - Ver 2, Rel 3 + + Download + + 38.94 KB + + Download Action +
    + a438b369-bba4-4427-af57-ffe596f1c7b6 + + Solaris 11 x86 STIG - Ver 2, Rel 6 + + Download + + 895.22 KB + + Download Action +
    + 8be7072b-a660-495d-ac05-c8ed087f4bab + + Solaris 11 X86 STIG Benchmark - Ver 2, Rel 3 + + Download + + 39.94 KB + + Download Action +
    + 7e532771-9168-434e-9035-94b576318a0b + + Splunk Enterprise 7.x for Windows STIG - Ver 2, Rel 3 + + Download + + 3.25 MB + + Download Action +
    + dd03be71-cd6e-4a17-bdea-08995141b717 + + Splunk Enterprise 8.0 for Linux STIG - Ver 1, Rel 2 + + Download + + 3.45 MB + + Download Action +
    + 1c52ddf5-356f-48fd-8982-3c1ebe63ebca + + Storage Area Network STIG - Ver 2, Rel 4 + + Download + + 1.1 MB + + Download Action +
    + 8b1e15c0-5495-458e-8e93-169658330f34 + + Sunset - Adobe Acrobat Pro DC Classic Track STIG - Ver 2, Rel 1 + + Download + + 664.84 KB + + Download Action +
    + ed47cb56-780a-4083-93e7-32182916358a + + Sunset - Adobe Acrobat Pro XI STIG Ver 1, Rel 2 + + Download + + 382.41 KB + + Download Action +
    + 0cb32189-501f-41da-b2de-a30c5ebdbcc4 + + Sunset - Adobe Acrobat Reader DC Classic Track STIG - Ver 2, Rel 1 + + Download + + 714.32 KB + + Download Action +
    + 09d6d5e5-a450-4275-b4cb-b941a8aa24b6 + + Sunset - Adobe Acrobat Reader DC Classic Track STIG Benchmark - Ver 2, Rel 1 + + Download + + 10.95 KB + + Download Action +
    + ed66544b-0c16-4c6d-85bf-7f6ccbf55fe7 + + Sunset - Adobe ColdFusion 11 STIG - Ver 2, Rel 1 + + Download + + 889.89 KB + + Download Action +
    + c95b85bc-074f-4f35-b184-bd8554c3fa9f + + Sunset - AirWatch MDM STIG - Ver 1, Rel 3 + + Download + + 677.55 KB + + Download Action +
    + 025622b2-6061-45e3-b6de-480e9feffe48 + + Sunset - AIX 6.1 STIG - Ver 1, Rel 14 + + Download + + 451.33 KB + + Download Action +
    + 417c73e4-aafe-41e7-8d33-b439dfd000e9 + + Sunset - AIX 6.1 STIG-Benchmark - Ver 1, Rel 9 + + Download + + 70.83 KB + + Download Action +
    + 4d42bbe6-99d0-4165-8d2f-1b6f6c4d4cbb + + Sunset - Apple iOS 11 STIG - Ver 1, Rel 4 + + Download + + 875.23 KB + + Download Action +
    + 799553ce-1b85-4084-917b-e62b75af19bd + + Sunset - Apple iOS/iPad OS 13 STIG - Ver 2, Rel 1 + + Download + + 2.6 MB + + Download Action +
    + c143159c-2257-4bf3-8d0d-665e1f930761 + + Sunset - Apple macOS 10.13 STIG - Ver 2, Rel 5 + + Download + + 783.5 KB + + Download Action +
    + 7434631a-73b8-41b3-a54b-5d12b5321dea + + Sunset - Apple macOS 10.14 STIG - Ver 2, Rel 6 + + Download + + 1.79 MB + + Download Action +
    + 60aa409b-dbfe-4109-b929-c328de549ef3 + + Sunset - Apple OS X 10.12 STIG - Ver 1, Rel 6 + + Download + + 734.39 KB + + Download Action +
    + baad3d98-def6-4e58-8d2f-64d1c9ae4b9c + + Sunset - BlackBerry OS 10.3x STIG - Ver 1, Rel 4 + + Download + + 1.92 MB + + Download Action +
    + 3a869939-abef-469c-8813-c5bfae2247fb + + Sunset - BlackBerry UEM 12.10 STIG - Ver 1, Rel 1 + + Download + + 1.12 MB + + Download Action +
    + 5eb4cd8d-cfba-42a3-9e76-30e1914cd104 + + Sunset - BlackBerry UEM 12.11 STIG - Ver 1, Rel 1 + + Download + + 1.18 MB + + Download Action +
    + 06f4bd1d-408c-4c26-82bb-011a122a962c + + Sunset - BlackBerry UEM 12.8 STIG - Ver 1, Rel 2 + + Download + + 1.38 MB + + Download Action +
    + 1b8af826-0bcf-4b88-ad1f-015ccab9d371 + + Sunset - Canonical Ubuntu 16.04 LTS STIG - Ver 2, Rel 3 + + Download + + 677.91 KB + + Download Action +
    + fe33663b-1df9-4880-bdc1-01f02d1dfd8a + + Sunset - Canonical Ubuntu 16.04 LTS STIG Benchmark - Ver 2, Rel 3 + + Download + + 55.78 KB + + Download Action +
    + 962b5eef-55db-4b7d-b370-c55bce7da903 + + Sunset - CISCO CSS DNS STIG - Ver 4, Rel 1.18 + + Download + + 442.95 KB + + Download Action +
    + 81858e29-f743-4e06-bd17-d5cf3afba810 + + Sunset - Cisco IOS XE Release 3 NDM STIG - Ver 1, Rel 5 + + Download + + 626.59 KB + + Download Action +
    + 63fb1ba6-2c70-4453-adfd-cb6545fd6bce + + Sunset - Cisco IOS XE Release 3 Router Overview - Ver 1, Rel 4 + + Download + + 236.14 KB + + Download Action +
    + 4c6b44f1-3aef-4584-bd03-c06c48bbfbf7 + + Sunset - Cisco IOS XE Release 3 RTR STIG - Ver 1, Rel 3 + + Download + + 416.86 KB + + Download Action +
    + 4755e183-410d-4f60-97c0-79ef3c8d03a4 + + Sunset - CSfC Campus WLAN Policy STIG - Ver 1, Rel 3 + + Download + + 313.78 KB + + Download Action +
    + 96d959cc-c045-44cb-8489-e6984c9f46db + + Sunset - Desktop Applications General STIG - Ver 4, Rel 5 + + Download + + 533.68 KB + + Download Action +
    + 9aff773f-f014-4bbf-9458-6b1b7a3d9fa2 + + Sunset - DNS Policy STIG - Ver 4, Rel 1.22 + + Download + + 721.21 KB + + Download Action +
    + 14fb6eaa-986a-4c4e-80e8-3b684bda0014 + + Sunset - Email Services Policy STIG - Ver 2, Rel 6 + + Download + + 535.35 KB + + Download Action +
    + 407f4a4a-2a71-4f3a-bbdd-789bd19f8a05 + + Sunset - Enclave Test and Development STIG - Ver 1, Rel 6 + + Download + + 703.24 KB + + Download Action +
    + a145d07e-58e1-49f3-87a4-e58fd7f08eb5 + + Sunset - Google Search Appliance STIG + + Download + + 258.63 KB + + Download Action +
    + 7f23a503-ea29-45c7-821d-d61719f6e3ca + + Sunset - Harris SecNet 11/54 STIG - Ver 6, Rel 10 + + Download + + 310.42 KB + + Download Action +
    + 87274342-6a64-4fd9-bc7e-1dd806703417 + + Sunset - HP-UX 11.23 Manual STIG - Ver 1, Rel 8 + + Download + + 469.17 KB + + Download Action +
    + 6fbac36c-4261-4f94-80e4-fa338cbf6c5d + + Sunset - HP-UX 11.23 STIG-Benchmark - Ver 1, Rel 9 + + Download + + 101.2 KB + + Download Action +
    + 0d682f96-3f65-4317-8dab-4578292f165e + + Sunset - HP-UX 11.31 STIG - Ver 1, Rel 19 + + Download + + 785.63 KB + + Download Action +
    + fe988760-0ac5-46b3-bbf6-dc7af960a5ed + + Sunset - IBM MaaS360 V2.3.x MDM STIG - Ver 1, Rel 2 + + Download + + 700.4 KB + + Download Action +
    + def06fd4-1021-4847-9616-37a1c62d5746 + + Sunset - L3 KOV-26 Talon (Wireless Role) STIG - Ver 6, Rel 8 + + Download + + 233.34 KB + + Download Action +
    + d0a0e8aa-e930-47f2-b4b8-fbe0750eefe3 + + Sunset - McAfee VirusScan 8.8 Local Client STIG - Ver 6, Rel 1 + + Download + + 873.79 KB + + Download Action +
    + 23b0abe8-56ad-4118-b22a-6a7aa2f9b466 + + Sunset - McAfee VirusScan 8.8 Local Client STIG Benchmark - Version 1, Release 4 + + Download + + 37.07 KB + + Download Action +
    + f6c48aff-7e1f-4210-9c3e-db3e6c445d60 + + Sunset - McAfee VirusScan 8.8 Managed Client STIG - Ver 6, Rel 1 + + Download + + 842.16 KB + + Download Action +
    + 85c69298-5f80-40dc-a7ea-4b5e2c7ecf00 + + Sunset - Microsoft InfoPath 2007 STIG - Ver 4, Rel 13 + + Download + + 430.67 KB + + Download Action +
    + d25c2f2e-c4cf-4626-a66b-347ce53969ae + + Sunset - Microsoft Internet Explorer 10 STIG - Ver 1, Rel 16 + + Download + + 934.99 KB + + Download Action +
    + b89d7b6d-69dd-40f0-96a2-f981d7ac16bf + + Sunset - Microsoft Internet Explorer 10 STIG Benchmark - Ver 1, Rel 10 + + Download + + 66.9 KB + + Download Action +
    + b16c114e-ece1-4d94-9a65-2231d61e77d9 + + Sunset - Microsoft Internet Explorer 9 STIG - Ver 1, Rel 15 + + Download + + 345.95 KB + + Download Action +
    + b09264fe-ccb5-41a7-af23-e48d43f41c99 + + Sunset - Microsoft SQL Server 2012 STIG - Ver 1, Rel 20 + + Download + + 1019.87 KB + + Download Action +
    + 28026698-4eb9-4904-962a-ba77487888ea + + Sunset - Microsoft Windows 10 Mobile STIG - Ver 1, Rel 4 + + Download + + 1.9 MB + + Download Action +
    + f73b47da-6db0-4588-878e-6a9e96ee552f + + Sunset - Microsoft Windows 2008 DC STIG - Ver 6, Rel 47 + + Download + + 886.99 KB + + Download Action +
    + 463114c4-7c50-4301-9f72-c03c0fa41ce9 + + Sunset - Microsoft Windows 2008 MS STIG - Ver 6, Rel 46 + + Download + + 881.7 KB + + Download Action +
    + a3a8ff64-1b48-4f82-852b-23c0ac38de03 + + Sunset - Microsoft Windows 2008 R2 DC STIG - Ver 1, Rel 34 + + Download + + 904.34 KB + + Download Action +
    + 2a3461f7-d935-4f92-9154-06ec2526aade + + Sunset - Microsoft Windows 2008 R2 DC STIG Benchmark - Ver 1, Rel 33 + + Download + + 112.44 KB + + Download Action +
    + 5ff53042-1e70-4ab8-bbe0-b07bb99f02d8 + + Sunset - Microsoft Windows 2008 R2 MS STIG - Ver 1, Rel 33 + + Download + + 877.75 KB + + Download Action +
    + 3c3da85f-7c67-40d7-a8e6-8660c914a1a2 + + Sunset - Microsoft Windows 2008 R2 MS STIG Benchmark - Ver 1, Rel 34 + + Download + + 107.88 KB + + Download Action +
    + 902ed223-1492-43b0-8f3e-db4bfe706a1e + + Sunset - Microsoft Windows 2008 Server DNS STIG - Ver 1, Rel 8 + + Download + + 621.78 KB + + Download Action +
    + e055c73a-d662-4536-9d42-76a2df4ad1bd + + Sunset - Microsoft Windows 7 STIG - Ver 1, Rel 32 + + Download + + 895.09 KB + + Download Action +
    + e9c437b9-4d0b-4ca9-afa5-0a0f08100697 + + Sunset - Microsoft Windows 8/8.1 STIG - Ver 1, Rel 23 + + Download + + 913.02 KB + + Download Action +
    + 17c61428-f23e-4d63-8236-88093b96c84a + + Sunset - Microsoft Windows DNS STIG - Ver 4, Rel 1.19 + + Download + + 454.72 KB + + Download Action +
    + 01ad411b-4b03-4c14-920d-38200b6d60a0 + + Sunset - Microsoft Windows Vista STIG - Ver 6, Rel 42 + + Download + + 615.5 KB + + Download Action +
    + ef282613-8e2d-4b47-a477-6b7bb34b6423 + + Sunset - Microsoft Windows Vista STIG Benchmark - Ver 6, Rel 44 + + Download + + 105.83 KB + + Download Action +
    + c9c3567f-a2dc-470d-9a93-99b4425f92db + + Sunset - Microsoft Windows XP STIG - Version 6, Release 1.32 + + Download + + 535.29 KB + + Download Action +
    + 4f66aa3d-2d89-4135-b264-623deb72f40e + + Sunset - Oracle JRE 8 UNIX STIG - Ver 1, Rel 3 + + Download + + 442.57 KB + + Download Action +
    + f67ef64d-da16-44ff-b762-56e6b61794e1 + + Sunset - Oracle JRE 8 Windows STIG - Ver 2, Rel 1 + + Download + + 905.36 KB + + Download Action +
    + b4d0eb0f-a34e-411a-a435-498d30a5e47d + + Sunset - Oracle Linux 5 STIG - Ver 2, Rel 1 + + Download + + 814.81 KB + + Download Action +
    + 75e7cb7b-f181-48a4-a8d3-d0210f593388 + + Sunset - Red Hat 5 Manual STIG - Ver 1, Rel 18 + + Download + + 598.58 KB + + Download Action +
    + 778b53f5-a8f4-48de-85d9-913dd8bd0d6d + + Sunset - Red Hat 5 STIG Benchmark - Ver 1, Rel 19 + + Download + + 165.72 KB + + Download Action +
    + d22e1cb5-4118-4f1c-a75f-d6571b43ece9 + + Sunset - Red Hat Enterprise Linux 6 STIG - Ver 2, Rel 2 + + Download + + 971.12 KB + + Download Action +
    + 488f3200-21e0-42f5-89ef-5aa263d48343 + + Sunset - Red Hat Enterprise Linux 6 STIG Benchmark - Ver 2, Rel 2 + + Download + + 93.91 KB + + Download Action +
    + dc4635e3-1f46-4764-b1fe-8c830162c474 + + Sunset - Removable Storage STIG - Ver 1, Rel 7 + + Download + + 463.5 KB + + Download Action +
    + 7e02f2f5-fd75-4f8f-a9fb-653ed3ad0e71 + + Sunset - Samsung Android OS 7 with Knox 2.x STIG - Ver 1, Rel 7 + + Download + + 1.57 MB + + Download Action +
    + 31afa755-2547-4d61-bf25-9ec90c52fc34 + + Sunset - Symantec Endpoint Protection 12.1 Local Client STIG - Ver 1, Rel 3 + + Download + + 311.85 KB + + Download Action +
    + 1962711b-498a-4ded-b38b-235b98e3fd09 + + Sunset - Symantec Endpoint Protection 12.1 Managed Client STIG - Ver 1, Rel 4 + + Download + + 312.81 KB + + Download Action +
    + d33b645b-aadc-4fb0-b854-9225b590c31e + + Sunset - Symantec Endpoint Protection 12.1 Overview - Ver 1, Rel 1 + + Download + + 224.25 KB + + Download Action +
    + 0609f8e7-ba51-4e34-9d81-3967fd3c1e60 + + Sunset - VMware AirWatch v9.x MDM STIG - Ver 1, Rel 2 + + Download + + 888.85 KB + + Download Action +
    + 4b4ddf65-e853-4efa-9b11-0f642dba6d6a + + Sunset - VMWare ESX 3 Policy STIG - Ver 1, Rel 2 + + Download + + 302.4 KB + + Download Action +
    + 887250a0-2646-4dc3-9ca7-71da97c207a0 + + Sunset - VMware ESX 3 Server STIG - Ver 1, Rel 2 + + Download + + 441.18 KB + + Download Action +
    + a9a280c6-671e-41ae-854e-72d1650a495e + + Sunset - VMware ESX 3 Virtual Center STIG - Ver 1, Rel 2 + + Download + + 326.67 KB + + Download Action +
    + 58f93157-cd2d-4cc9-b3cb-e4422669d6ad + + Sunset - VMware ESX 3 Virtual Machine STIG - Ver 1, Rel 2 + + Download + + 310.92 KB + + Download Action +
    + d2a14ab6-e250-4726-9b00-ea1e9699a0cb + + Sunset - VMware ESXi 5 Server STIG - Version 2, Release 1 + + Download + + 883.35 KB + + Download Action +
    + e94bdc1b-f0a1-454b-ac75-0258317636e3 + + Sunset - VMware ESXi 5 vCenter Server STIG - Version 2, Release 1 + + Download + + 889.34 KB + + Download Action +
    + e9e48224-e3ce-4e83-bfb6-5a77861ce264 + + Sunset - VMware ESXi 5 Virtual Machine STIG - Version 2, Release 1 + + Download + + 812.4 KB + + Download Action +
    + 034ef28c-162b-40ae-9ece-0c7056483b22 + + Sunset - VMware vSphere 6.0 ESXi STIG - Ver 1, Rel 5 + + Download + + 699.63 KB + + Download Action +
    + 01c31b41-ffcc-4a61-a4e5-41a69620562e + + Sunset - VMware vSphere 6.0 vCenter Server for Windows STIG - Ver 1, Rel 4 + + Download + + 459.52 KB + + Download Action +
    + df8bfd19-68dd-41d6-b5d4-478ecf67f4cd + + Sunset - VMware vSphere 6.0 Virtual Machine STIG - Ver 1, Rel 1 + + Download + + 260.33 KB + + Download Action +
    + cba2a34d-15a7-449f-a817-4a53607d9dfa + + Sunset - Apache 2.0 UNIX STIG - Ver 1, Rel 5 + + Download + + 494.16 KB + + Download Action +
    + 4e47dfed-cc86-401e-b513-9690332061f1 + + Sunset Tanium 6.5 STIG - Ver 1, Rel 3 + + Download + + 652.25 KB + + Download Action +
    + acf85d6e-2a92-42c3-b483-7e165aefc22c + + Sunset-CMD Policy STIG - Ver 2, Rel 5 + + Download + + 278.93 KB + + Download Action +
    + dce6bab9-f2c8-4a37-935c-a0e6e46b7910 + + Sunset-McAfee VirusScan 8.8 Managed Client STIG Benchmark - Ver 1, Rel 3 + + Download + + 25.45 KB + + Download Action +
    + 4b4c21fc-b72b-485c-aed5-2f485b7dc88f + + Sunset-MDM Server Policy STIG - Ver 2, Rel 5 + + Download + + 639.29 KB + + Download Action +
    + 3cfd80b7-b4fa-4d95-9e98-4181d85a8eaa + + Sunset-Mobile Device Policy STIG - Ver 2, Rel 6 + + Download + + 590.68 KB + + Download Action +
    + 6d7da529-21b6-442f-bd49-47062d44f400 + + SUSE Linux Enterprise Server 12 STIG - Ver 2, Rel 8 + + Download + + 741.32 KB + + Download Action +
    + 172da517-f526-4e6f-8ff2-14eded302a55 + + SUSE Linux Enterprise Server 15 STIG - Ver 1, Rel 8 + + Download + + 924.42 KB + + Download Action +
    + 1d8048bc-100d-4e5c-8036-12a9ec10573f + + SUSE Linux Enterprise Server (SLES) 15 STIG for Ansible - Ver 1 Rel 8 + + Download + + 346.16 KB + + Download Action +
    + c51ae7fe-22a1-4210-bdc7-3166ebb7904e + + Tanium 7.0 STIG Ver 1, Rel 2 + + Download + + 694.53 KB + + Download Action +
    + caaf4944-4b04-48e9-a8d6-4e1e1f5087ba + + Tanium 7.3 STIG - Ver 2, Rel 2 + + Download + + 1.81 MB + + Download Action +
    + dbe63c18-c7a3-4514-8365-fe4328e1312a + + Traditional Security Checklist - Ver 2, Rel 2 + + Download + + 521.64 KB + + Download Action +
    + 07b992c1-bac5-41bc-9341-566a078e8c1c + + Trend Micro Deep Security 9.x STIG Ver 1, Rel 1 + + Download + + 286.13 KB + + Download Action +
    + 6d0448ba-00c1-455c-8915-d1045fb9dbb4 + + Sunset - Video Services Policy STIG - Ver 1, Rel 12 + + Download + + 1.44 MB + + Download Action +
    + b12e9e1f-b76d-4657-9619-28217f482ee0 + + Virtual Private Network SRG - Version 2, Release 4 + + Download + + 747.39 KB + + Download Action +
    + 1e309614-ca49-459d-8286-d99d171b5c2d + + VMware Horizon 7.13 STIG - Ver 1, Rel 1 + + Download + + 850.6 KB + + Download Action +
    + a54944ea-c446-4e67-b9eb-ab47bcbc3f47 + + VMware NSX Distributed Logical Router STIG, Ver 1 + + Download + + 250.55 KB + + Download Action +
    + 0a1f367b-96d2-4d8f-a10b-5af67dfb1bf6 + + VMware NSX Manager STIG, Ver 1 + + Download + + 261.53 KB + + Download Action +
    + 4a6276fb-7ed6-4fb5-86c8-05139f307338 + + VMware NSX STIG Overview, Ver 1 + + Download + + 90.18 KB + + Download Action +
    + 42cbdb3d-f82d-4d5e-9246-0881db536be5 + + VMware NSX-T Data Center STIG + + Download + + 5.29 MB + + Download Action +
    + ffcd0545-df4a-48a5-8e94-b25b82afa197 + + VMWare vRealize Operations Manager Cassandra STIG - Ver 1, Rel 1 + + Download + + 357.2 KB + + Download Action +
    + ac280cec-34ac-4901-a67d-9374b5f7d80b + + VMware vSphere 6.5 STIG for Ansible - Ver 1, Rel 2 + + Download + + 490.76 KB + + Download Action +
    + 2b43ee91-a488-4f82-9260-3dbfa6fd867b + + VMware Workspace ONE UEM STIG- Ver 2, Rel 1 + + Download + + 1.01 MB + + Download Action +
    + b111a292-bd0d-4cfc-b535-5fd6ccbccd57 + + Sunset - Voice Video Endpoint SRG - Ver 2, Rel 2 + + Download + + 644.96 KB + + Download Action +
    + 2898f6b6-ff1b-4ca1-935b-c97decbd6e89 + + Sunset - Voice/Video over Internet Protocol (VVoIP) STIG - Ver 3, Rel 15 + + Download + + 7.12 MB + + Download Action +
    + 2ac9f8db-2746-46fb-82c3-1f6c2f1ce454 + + Sunset - Voice Video Services Policy Security STIG - Ver 3, Rel 18 + + Download + + 7.13 MB + + Download Action +
    + 247bf02e-aacc-48b7-957a-aae9ffa173fb + + Sunset - Voice Video Session Management SRG - Ver 2, Rel 2 + + Download + + 823.34 KB + + Download Action +
    + 5d582f2a-92bd-4ce1-8afe-ad12c2827a2f + + Web Server SRG - Ver 3, Rel 1 + + Download + + 768.04 KB + + Download Action +
    + 827be6bc-064d-4c5e-b32f-84f668da1ab0 + + zOS RACF Products - Ver 6, Rel 55 + + Download + + 8.14 MB + + Download Action +
    + 8f83ef04-084b-4f44-b0d7-ce2afb20d305 + + Zebra Android 11 COBO STIG - Ver 1, Rel 2 + + Download + + 587.48 KB + + Download Action +
    + 29a075d4-87d5-4309-bc9e-f8473b1c47eb + + Sunset - Apache 2.0 Windows STIG - Ver 1, Rel 5 + + Download + + 494.44 KB + + Download Action +
    + 53bb6d2d-7cd0-4ad9-8918-71f6adc49550 + + Sunset - Solaris 9 SPARC STIG Benchmark - Ver 1, Rel 12 + + Download + + 56.53 KB + + Download Action +
    + 344ab208-3f77-4e81-902b-553319daba47 + + Apple iOS/iPadOS 16 STIG - Ver 1, Rel 1 + + Download + + 2.13 MB + + Download Action +
    + 66c232cd-46f2-49a4-9e21-8d4e97e8b926 + + AvePoint DocAve 6 STIG - Ver 1, Rel 2 + + Download + + 841.07 KB + + Download Action +
    + 1f3fd01d-4f76-4720-bea5-eda492a4b04b + + BlackBerry Enterprise Mobility Server (BEMS) 3.x STIG - Ver 1, Rel 1 + + Download + + 1.79 MB + + Download Action +
    + 1815c8ef-fdf1-455e-b240-9ba594700454 + + Cloud Computing Mission Owner Draft SRG - Ver 1, Rel 0.1 + + Download + + 550.89 KB + + Download Action +
    + dd0fa2b0-9296-4ef5-99bb-79f84735e39f + + Google Android 13 STIG - Ver 1, Rel 1 + + Download + + 3.89 MB + + Download Action +
    + 17652044-9449-434e-9f40-258ddc8268ca + + MariaDB Enterprise 10.x STIG - Ver 1, Rel 2 + + Download + + 1.55 MB + + Download Action +
    + bdebd64f-7df1-43df-9521-d28246a0c928 + + McAfee Virus Scan 8.8 Overview - Ver 5, Rel 7 + + Download + + 450.86 KB + + Download Action +
    + 3fb21c64-3e8e-42ad-819e-45f06e0e861d + + Microsoft Azure SQL Database STIG - Ver 1, Rel 1 + + Download + + 869.22 KB + + Download Action +
    + 6ded8db8-9a2d-47e4-a902-0601b9e3e1fc + + Microsoft Windows 11 STIG - Ver 1 Rel 2 + + Download + + 948.64 KB + + Download Action +
    + 72a2cd10-80dc-4f53-8d4f-586e63755535 + + Microsoft Windows 11 STIG Benchmark - Ver 1, Rel 1 + + Download + + 94.76 KB + + Download Action +
    + fbca8263-c28a-4d76-bfb4-0119a550903c + + Microsoft Windows Server 2022 - Ver 1, Rel 1 + + Download + + 1.57 MB + + Download Action +
    + 6a288f4c-999e-4dc8-8803-db2189f0fd43 + + Microsoft Windows Server 2022 SCAP Draft STIG Benchmark - Ver 1, Rel 0.1 + + Download + + 71.26 KB + + Download Action +
    + a852b9a8-f3cc-44d2-878b-c69dcbda6eaf + + Oracle Linux 8 STIG for Ansible - Ver 1, Rel 4 + + Download + + 398.84 KB + + Download Action +
    + 7df98089-a01c-4bd2-a281-246d0b44f11c + + Palo Alto Networks Prisma Cloud Compute STIG - Ver 1, Rel 2 + + Download + + 1.5 MB + + Download Action +
    + 09c4d5aa-820b-4827-9f4b-bcc998a78b8a + + Rancher Government Solutions RKE2 STIG - Ver 1, Rel 1 + + Download + + 909.72 KB + + Download Action +
    + a55e8328-31e7-4c7b-8641-8763c6b6bece + + Red Hat Enterprise Linux 8 STIG for Chef - Ver 1, Rel 7 + + Download + + 453.2 KB + + Download Action +
    + 535dd983-0961-4fd0-b7d8-edb11075f540 + + Samsung Android 13 with Knox 3.x STIG - Ver 1, Rel 1 + + Download + + 1.15 MB + + Download Action +
    + 3ff26216-81a7-44d6-8485-a10ec9722e08 + + SPEC Innovations Innoslate 4.x STIG - Ver 1, Rel 1 + + Download + + 848.83 KB + + Download Action +
    + d97af952-97f6-4e06-b62e-7b96c3384676 + + Splunk Enterprise 8.x For Linux STIG - Ver 1, Rel 3 + + Download + + 3.44 MB + + Download Action +
    + c5521bd2-84d7-4baa-b2dd-3eac93c2f8db + + Sunset - HP-UX 11.31 STIG Benchmark - Ver 1, Rel 17 + + Download + + 109.21 KB + + Download Action +
    + 7a0dda60-1dd4-4ebe-baf0-3a5de700fde8 + + Sunset - Microsoft Windows 2008 DC STIG Benchmark - Ver 6, Rel 45 + + Download + + 99.29 KB + + Download Action +
    + 69bc9388-16f1-4cb0-841b-eb4a4a488e1b + + Sunset - Microsoft Windows 2008 MS STIG Benchmark - Ver 6, Rel 45 + + Download + + 96.55 KB + + Download Action +
    + 36161e28-70bc-40be-82ac-aea159ec399e + + Sunset - Microsoft Windows 7 STIG Benchmark - Ver 1, Rel 36 + + Download + + 130.68 KB + + Download Action +
    + 56e5caf7-bcc2-4458-bf43-46db098dabaa + + Sunset - Microsoft Windows 8/8.1 STIG Benchmark - Ver 1, Rel 22 + + Download + + 143.43 KB + + Download Action +
    + c99f4a6c-f0cd-4617-9063-6cae80ed34d9 + + Tanium 7.x on TanOS STIG - Ver 1, Rel 1 + + Download + + 1.72 MB + + Download Action +
    + bfeabb0e-42e7-4042-bb1a-4eff351785f0 + + Tanium 7.x STIG - Ver 1, Rel 2 + + Download + + 1.65 MB + + Download Action +
    + 1ef7d99c-7d20-447c-9e82-9352c1af369b + + Traditional Security Checklist - Ver 2, Rel 3 + + Download + + 754.97 KB + + Download Action +
    + 48bc9106-f18d-4610-baa4-681adfa6ccb6 + + z/OS SRR Scripts - Ver 6, Rel 55 + + Download + + 1.85 MB + + Download Action +
    + 214552bb-c351-4631-9820-800c2c2c2218 + + zOS ACF2 Products - Ver 6, Rel 55 + + Download + + 8.87 MB + + Download Action +
    + bd058009-9c71-4e14-b8f9-38318b35eefb + + zOS TSS Products - Ver 6, Rel 55 + + Download + + 8.06 MB + + Download Action +
    + 54b44609-b6ee-4d03-9aa4-aeb0f79bf3a5 + + Apache Server 2.4 UNIX STIG + + Download + + 1.64 MB + + Download Action +
    + 3a4ae492-3613-4d03-89ca-b341098db701 + + Apache Server 2.4 Windows STIG + + Download + + 1.63 MB + + Download Action +
    + 871463e1-6dbf-43fe-b084-920ce140fa63 + + Arista MLS DCS-7000 Series STIG + + Download + + 943.56 KB + + Download Action +
    + d15383f7-01a5-4508-8f3d-3fa6c3364d36 + + CCI List + + Download + + 415.78 KB + + Download Action +
    + f641358c-ffb5-4ee7-9020-7b88bba2dc9a + + CCI Specification + + Download + + 112.14 KB + + Download Action +
    + dbb5db7a-5d0b-4765-ad44-f922951be150 + + Cisco ASA STIG + + Download + + 924.99 KB + + Download Action +
    + 9c15a771-80b4-4f33-bab3-3837e82c7e8c + + Cisco IOS Router STIG + + Download + + 1.66 MB + + Download Action +
    + c4f4cf31-41cd-419b-b3c5-8a1fb89a31d1 + + Cisco IOS Switch STIG + + Download + + 1.72 MB + + Download Action +
    + c838d855-eeb2-4d06-add7-84b02aa668cd + + Cisco IOS-XE Router STIG + + Download + + 1.67 MB + + Download Action +
    + 27fb5440-d241-43b7-b79e-9b10fe1a812a + + Cisco IOS-XE Switch STIG + + Download + + 1.73 MB + + Download Action +
    + 8c75c08c-9f2f-4f5c-961c-96993fa20ee5 + + Cisco IOS-XR Router STIG + + Download + + 1.61 MB + + Download Action +
    + 10b23e1e-7075-476c-a84b-0d8c023b2043 + + Cisco ISE STIG + + Download + + 2.29 MB + + Download Action +
    + 5ed7ebee-003f-49c6-8df9-40b400ceb855 + + Cisco NX-OS Switch STIG + + Download + + 1.68 MB + + Download Action +
    + dd640ab1-9b0a-435a-803c-cb226c5b258b + + Citrix Virtual Apps and Desktops (VAD) 7.x STIG + + Download + + 1.23 MB + + Download Action +
    + 59f1efcd-fa58-4e86-8728-b4f467939f9d + + Citrix XenDesktop 7.x STIG + + Download + + 1014.39 KB + + Download Action +
    + ae1aea1f-a88a-4720-a87b-95aaba651612 + + Compilation - SRG-STIG Library + + Download + + 260.23 MB + + Download Action +
    + 824374a9-503c-4994-bdee-586318b7a9ce + + F5 BIG-IP 11.x STIG + + Download + + 1.3 MB + + Download Action +
    + 63130a1a-0888-4257-a71a-c67e89dfb696 + + Forescout STIG + + Download + + 93.37 KB + + Download Action +
    + 13947dd2-2075-4b49-adaa-325585b2ca32 + + Fortinet FortiGate Firewall STIG + + Download + + 1005.36 KB + + Download Action +
    + c4598f98-0efe-4d4f-9217-df75f6b8e6ef + + Google Android 11 STIG + + Download + + 3.15 MB + + Download Action +
    + ecdc9230-adab-4339-89fb-d732daf6497a + + Google Android 12 STIG - Ver 1, Rel 1 + + Download + + 1.61 MB + + Download Action +
    + fbafb2ec-1359-4551-a7bc-bb03cd080845 + + Group Policy Objects (GPOs) - October 2022 + + Download + + 6.72 MB + + Download Action +
    + 891730ec-35f5-46f5-a8c4-a16a2cab5362 + + Honeywell Android 9.x STIG + + Download + + 948 KB + + Download Action +
    + d194f807-e99d-4922-acae-a21864218d40 + + HP FlexFabric Switch STIG + + Download + + 906.13 KB + + Download Action +
    + 84509f17-d404-4f0f-98d7-dbb8200d6178 + + HPE 3PAR StoreServ OS STIG - Ver 1, Rel 1 + + Download + + 882.73 KB + + Download Action +
    + e73d6150-fa73-4e98-9a81-64759831a6c3 + + IBM z/OS STIG + + Download + + 2.07 MB + + Download Action +
    + 579eb02e-8bcc-4959-88f0-9ac2177d824d + + Ivanti MobileIron Sentry 9.x STIG - Ver 1 Rel 1 + + Download + + 1.52 MB + + Download Action +
    + ee5fec36-6871-4297-b533-7b2ab477f8fe + + Juniper EX Series Switches STIG + + Download + + 990.08 KB + + Download Action +
    + 72657804-a3b8-41eb-aea2-1d53ee61b507 + + Juniper Router STIG + + Download + + 1 MB + + Download Action +
    + 1f7d8b58-9f43-4d31-8324-3a00bd47a9b3 + + Juniper SRX Services Gateway STIG + + Download + + 1.05 MB + + Download Action +
    + 29a32fce-2455-40fa-b4fb-0ec04acb167e + + Microsoft Android 11 STIG + + Download + + 1.71 MB + + Download Action +
    + 5c326280-0b6a-44d7-b111-22ba9f0b1905 + + Microsoft Exchange 2013 STIG + + Download + + 1.79 MB + + Download Action +
    + 314d7178-c20c-454c-86db-5c2321282d65 + + Microsoft Exchange 2016 STIG + + Download + + 685.44 KB + + Download Action +
    + f6e38a84-2313-4b54-a190-0d3d7eac930c + + Microsoft IIS 10.0 STIG + + Download + + 1.11 MB + + Download Action +
    + dac8a428-4e15-4b05-adbf-2cd8909d2924 + + Microsoft IIS 8.5 STIG + + Download + + 799.95 KB + + Download Action +
    + c9a9d328-089d-468e-9ce4-9dca211785d8 + + Motorola Android 9.x STIG + + Download + + 2.95 MB + + Download Action +
    + a1f6480f-cf97-4817-9144-4fc7b5694cce + + MS SQL Server 2014 STIG + + Download + + 1 MB + + Download Action +
    + e9297957-df3b-429e-878a-f50565f7d4ea + + MS SQL Server 2016 STIG + + Download + + 915.01 KB + + Download Action +
    + c7bd3803-2b82-4273-bcad-1d5ec9888971 + + Network WLAN STIG + + Download + + 894.74 KB + + Download Action +
    + 965f2e4b-7150-4fc9-b612-cd987d8b4670 + + Palo Alto Networks STIG + + Download + + 906.54 KB + + Download Action +
    + 73e4f9b8-1175-426d-b97d-81d3056b2c58 + + Riverbed SteelHead CX v8 STIG + + Download + + 699.84 KB + + Download Action +
    + 68242a42-d18f-4a2d-b6ad-e77bda61ae92 + + Samsung Android 11 Knox 3.x + + Download + + 3.39 MB + + Download Action +
    + 4d531447-580f-4e5c-ac0f-41c75a18ebc9 + + Samsung Android 12 with Knox 3.x STIG + + Download + + 1.45 MB + + Download Action +
    + 95d27d65-3fe1-4b8f-8250-4afd85df7338 + + SCC 5.6 Mac OS X x86 64 + + Download + + 41.1 MB + + Download Action +
    + f6742777-44ec-4318-9ea7-0ba1f393a27b + + SCC 5.6 Raspbian 11 ARMv7 + + Download + + 78.41 MB + + Download Action +
    + fe95cadf-c35e-4696-9045-19845eb81ed0 + + SCC 5.6 Raspbian 8 ARMv7 + + Download + + 74.93 MB + + Download Action +
    + aa7c8587-54e8-4f9f-ba6f-a405c9b47e4c + + SCC 5.6 RHEL 6 i686 + + Download + + 82.26 MB + + Download Action +
    + 8454181f-bf78-4739-a4a9-c6d34c6774e9 + + SCC 5.6 RHEL 6 x86 64 + + Download + + 83.34 MB + + Download Action +
    + 649d2262-7120-42cd-8f37-d3b266ee2a79 + + SCC 5.6 RHEL 7/Oracle Linux 7/SLES12 x86 64 + + Download + + 81.84 MB + + Download Action +
    + aca5160a-be14-418e-92f4-65f5afdaf7cf + + SCC 5.6 RHEL 8/Oracle Linux 8 Aarch64 + + Download + + 81.77 MB + + Download Action +
    + 24cdb0d1-43dd-4a4f-b0d5-6e1b89dd8961 + + SCC 5.6 RHEL 8/Oracle Linux 8 x86 64 + + Download + + 76.96 MB + + Download Action +
    + fd4effc8-2fb1-44dc-93ce-cf15b3b794fa + + SCC 5.6 RHEL 9/Oracle Linux 9 x86 64 + + Download + + 90.54 MB + + Download Action +
    + a793f58b-d9a2-4b67-b3f6-7fedd15aad7c + + SCC 5.6 RPM GPG key + + Download + + 1.48 KB + + Download Action +
    + 6fc9f154-cf82-4e61-bac1-34a9d659f268 + + SCC 5.6 Solaris 10 i386 + + Download + + 85.44 MB + + Download Action +
    + 51968e30-c82b-4727-a36b-5335ba7c2145 + + SCC 5.6 Solaris 10 SPARC + + Download + + 71.09 MB + + Download Action +
    + 3b54e85e-ecd6-4035-b05e-0bde1e195bb6 + + SCC 5.6 Solaris 11 i386 + + Download + + 71.81 MB + + Download Action +
    + b5bb6de7-a5f8-44cf-8bb2-139cb05d1240 + + SCC 5.6 Solaris 11 SPARC + + Download + + 69.87 MB + + Download Action +
    + bee81b44-8a61-43df-ac44-71c71072684c + + SCC 5.6 Ubuntu 16 AMD64 + + Download + + 87.58 MB + + Download Action +
    + 05dc6020-63e6-48eb-94f2-e128c27680c7 + + SCC 5.6 Ubuntu 16 i686 + + Download + + 77.26 MB + + Download Action +
    + b52b24b3-e3f5-4724-8124-25453e34c66e + + SCC 5.6 Ubuntu 18/Ubuntu 20 AMD64 + + Download + + 90.43 MB + + Download Action +
    + 218a92cc-4e09-4f69-8ec2-91cf42ac6cb4 + + SCC 5.6 Ubuntu 20/Raspios-bulleye Aarch64 + + Download + + 76.97 MB + + Download Action +
    + 5057f760-6c4b-488a-a284-c71d0f243a17 + + SCC 5.6 UNIX Remote Scanning Plugin + + Download + + 369.48 MB + + Download Action +
    + 78381739-a36c-4ac2-b12f-927b9b9a563b + + SCC 5.6 Windows + + Download + + 152.38 MB + + Download Action +
    + 73b9669b-76d6-4e17-8cc6-274c6ace8a30 + + STIG Applicability Guide (BETA) - Linux v2.3.0 + + Download + + 88.11 MB + + Download Action +
    + 916c6b66-0faf-4448-bc61-0b71c118284c + + STIG Applicability Guide (BETA) - Windows MSI v2.3.0 + + Download + + 91.83 MB + + Download Action +
    + 3778695e-8900-4d41-9e19-df10ba7a84ae + + STIG Applicability Guide (BETA) - Windows v2.3.0 + + Download + + 92.24 MB + + Download Action +
    + f4f8707a-4879-43bc-b839-6776031cfb92 + + STIG Applicability Guide - Linux v1.9 + + Download + + 38.61 MB + + Download Action +
    + 9e24419f-f432-4a2e-9a97-68d280d2e302 + + STIG Applicability Guide - Windows v1.9 + + Download + + 36.88 MB + + Download Action +
    + b7d8d49f-66ca-423d-a688-d7c4ac57896d + + Sunset - Citrix XenApp STIG - Ver 1, Rel 1.4 + + Download + + 1.54 MB + + Download Action +
    + 4f640da9-a7fe-4966-a363-3e60caff592a + + Sunset - Enclave STIG - Ver 4, Rel 5 + + Download + + 637.07 KB + + Download Action +
    + e25da17f-8b80-4316-9e83-3a12b2be9adc + + Sunset - Microsoft IIS 7.0 STIG + + Download + + 1.17 MB + + Download Action +
    + 6ce7b292-e406-442f-b36f-39b8a7686b21 + + Sunset - Microsoft Windows 2008 Audit Benchmark + + Download + + 97.13 KB + + Download Action +
    + b730ee36-a81f-4d89-bc8f-4dce4561d4ad + + Sunset - Microsoft Windows 2008 R2 Audit Benchmark + + Download + + 108.77 KB + + Download Action +
    + 8cdd3b53-e490-4cfc-b5dc-7d737802f147 + + Sunset - Microsoft Windows 7 Audit Benchmark + + Download + + 111.06 KB + + Download Action +
    + c21786b3-5eac-4d03-87f6-2abb20ed9da6 + + Sunset - Microsoft Windows XP STIG Benchmark - Ver 6, Rel 1.34 + + Download + + 83.23 KB + + Download Action +
    + 83a70aa8-606a-4694-b306-cc90199496fe + + Sunset - Motorola Android 9 STIG + + Download + + 3.15 MB + + Download Action +
    + 812fc67b-776e-49ca-a855-ed54ce103dea + + Sunset - Oracle 10g Database STIG - Ver 8, Rel 1.11 + + Download + + 1.07 MB + + Download Action +
    + 62d06ecb-7d59-45f3-9b21-62594f4a0617 + + Sunset - Oracle 9 Database STIG - Ver 8, Rel 1.8 + + Download + + 1.24 MB + + Download Action +
    + 4d51e205-b159-4579-886b-028e494d3367 + + Sunset - Oracle Database 11g STIG - Version 9, Release 1 + + Download + + 1.14 MB + + Download Action +
    + 965d92a4-98a7-48e3-a39c-1361c08273e8 + + Sunset - Samsung Android OS 8 with Knox 3.x STIG + + Download + + 2.12 MB + + Download Action +
    + e97b551b-b1d2-4003-931f-8e13ad962b78 + + Sunset - Samsung Android OS9 Knox 3.x STIG + + Download + + 2.86 MB + + Download Action +
    + 2c56bf9c-be9d-4b7f-ac36-4f395f2f6400 + + Sunset - Wireless STIG - Ver 6, Rel 9 + + Download + + 1.09 MB + + Download Action +
    + 9a54e1a3-f822-4916-a397-3bb737f56abb + + Sunset - Zebra Android 10 STIG + + Download + + 1.76 MB + + Download Action +
    + 16c9eab2-69c5-434b-acc6-b2b92b2fc861 + + Sunset-McAfee VSEL 1.9/2.0 STIG + + Download + + 801.48 KB + + Download Action +
    + 4e27a452-e1f0-4923-abac-66c4189b1e8d + + Symantec ProxySG STIG + + Download + + 1.56 MB + + Download Action +
    + a23ebc2f-c2cf-46dc-b6b0-b55361d832ec + + Trend Micro TippingPoint STIG + + Download + + 1.69 MB + + Download Action +
    + 7ac5cf61-a55c-42ae-bc76-90011817a160 + + Unified Endpoint Manager (UEM) SRG + + Download + + 989.07 KB + + Download Action +
    + 8f245c97-ff49-40d5-a2d8-d128a6c7ed87 + + VMware vRealize Automation 7.x STIG + + Download + + 1.34 MB + + Download Action +
    + e086ed9f-80bb-43dd-8fec-11a7f54c36a6 + + VMware vRealize Ops 6.x STIG + + Download + + 970.78 KB + + Download Action +
    + e42a92a4-805d-4261-beb4-8aa468a9ffe3 + + VMware vSphere 6.5 STIG + + Download + + 1.09 MB + + Download Action +
    + 262ffc2e-56ce-414f-be1b-fe81ecf166b8 + + VMware vSphere 6.7 STIG + + Download + + 2.56 MB + + Download Action +
    +
    + + + \ No newline at end of file diff --git a/local.db b/local.db new file mode 100644 index 0000000000000000000000000000000000000000..c98879a588a3a6e490cd773c8fb502bec369665f GIT binary patch literal 8192 zcmeI#!AiqG5C-7cv_%jkMGv{oQBia81rlYEVp=t>V2_)2m4yw_B!yo4D!!Bt;Y)N= z=s|n%T>O7_W|?J9-))~BGus+|t?E*@d__YNf)ZvT621ao+jMh(JNUbs|B9fv{yg$q zB3zO`2m~Mi0SG_<0uX=z1Rwwb2teRp39JUvx= E4FjJyp#T5? literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt index d779dbe0d..f8f3cde11 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,6 @@ bs4 -requests \ No newline at end of file +requests +wheel +ipdb +stig_parser +libsql_client diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 000000000..e69de29bb diff --git a/test.py b/test.py new file mode 100644 index 000000000..5ceb63b60 --- /dev/null +++ b/test.py @@ -0,0 +1,26 @@ +# https://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed +# https://stackoverflow.com/questions/49515975/how-to-keep-track-of-the-files-i-read-into-a-database-in-python +# https://dunlapww.medium.com/setup-pythons-equivalent-or-ruby-s-pry-ipdb-33e98f4f847b +# https://wundergraph.com/blog/wunderbase_serverless_graphql_database_on_top_of_sqlite_firecracker_and_prisma + +import os +from stig_parser import convert_stig + +## PARSE STIG ZIP FILE +file = "U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip" +json_results = convert_stig(file) + +#import ipdb; ipdb.set_trace() + +print("Processing STIG: " + file ) +print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release']) +print("\n") + +path = "/tmp" + +obj = os.scandir(path) + +print("Files and Directories in '% s':" % path) +for entry in obj : + if entry.is_dir() or entry.is_file(): + print(entry.name) \ No newline at end of file diff --git a/test2.py b/test2.py new file mode 100644 index 000000000..f58ca2779 --- /dev/null +++ b/test2.py @@ -0,0 +1,32 @@ +import asyncio +import os + +import libsql_client + + +async def main(): + url = os.getenv("URL", "file:local.db") + async with libsql_client.create_client(url) as client: + await client.batch( + [ + """ + CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY, + email TEXT NOT NULL + ) + """, + """ + INSERT INTO users (email) VALUES + ('alice@libsql.org'), + ('bob@example.com') + """, + ] + ) + + result_set = await client.execute("SELECT * from users") + print(len(result_set.rows), "rows") + for row in result_set.rows: + print(row) + + +asyncio.run(main()) \ No newline at end of file diff --git a/tmp/extract.sh b/tmp/extract.sh index 4bb1e9df5..b356f7dd9 100644 --- a/tmp/extract.sh +++ b/tmp/extract.sh @@ -1,9 +1,7 @@ mkdir tmp -for i in {1..5} -do - find . -name "*.zip" -print0 | while read -d $'\0' file - do +for i in {1..5}; do + find . -name "*.zip" -print0 | while read -d $'\0' file; do echo $file unzip -d tmp -o "$file" rm -f "$file" @@ -11,12 +9,11 @@ do done mkdir stigs -find . -name 'U*xccdf.xml' -print0 | while read -d $'\0' file -do +find . -name 'U*xccdf.xml' -print0 | while read -d $'\0' file; do cp "$file" ./stigs/ done rm -rf tmp mv ./stigs/U*xccdf.xml ../benchmarks/DISA/ -rm -rf stigs \ No newline at end of file +rm -rf stigs From ac69ddbee9602c51fa2b10e9154ce8c8b12b26cd Mon Sep 17 00:00:00 2001 From: Mo Shark Date: Thu, 14 Dec 2023 11:10:12 -0500 Subject: [PATCH 02/29] Update guidancedb.dbml typo --- database/guidancedb.dbml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/guidancedb.dbml b/database/guidancedb.dbml index 8bf9de373..f9a2a4303 100644 --- a/database/guidancedb.dbml +++ b/database/guidancedb.dbml @@ -5,7 +5,7 @@ Table Benchmarks { id integer [pk, increment] title varchar[256] vendor text - relesae int + release int version int release_date date } From 90d08599a9a482e527189de8d42bd3a1a068d668 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 14:52:55 -0500 Subject: [PATCH 03/29] first start at the db design Signed-off-by: Aaron Lippold --- .gitignore | 3 +- database/Benchmarks.sql | 76 ++ database/Security Guidance.dmm | 1495 ++++++++++++++++++++++++++++++++ test.db | 0 test.py | 2 +- 5 files changed, 1574 insertions(+), 2 deletions(-) create mode 100644 database/Benchmarks.sql create mode 100644 database/Security Guidance.dmm create mode 100644 test.db diff --git a/.gitignore b/.gitignore index b512c09d4..47c39617e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +venv** diff --git a/database/Benchmarks.sql b/database/Benchmarks.sql new file mode 100644 index 000000000..98a5060ed --- /dev/null +++ b/database/Benchmarks.sql @@ -0,0 +1,76 @@ +CREATE TABLE "Organization"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL, + uri VARCHAR, + email VARCHAR, + CONSTRAINT "Authors_ak_1" UNIQUE(name) +); + +CREATE INDEX organization_index ON "Organization"(id); + +CREATE TABLE artifact_types(type VARCHAR NOT NULL, PRIMARY KEY(type)); + +CREATE TABLE benchmark_type( + type VARCHAR NOT NULL, + description TEXT NOT NULL, + organization_name VARCHAR NOT NULL, + PRIMARY KEY(type), + CONSTRAINT name_benchmark_type FOREIGN KEY (organization_name) REFERENCES "Organization" (name) +); + +CREATE TABLE "Artifact"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL, + location VARCHAR NOT NULL, + type INTEGER NOT NULL, + created_at DATE NOT NULL, + secondary_location VARCHAR, + raw_data BLOB, + type VARCHAR NOT NULL, + author_name VARCHAR NOT NULL, + CONSTRAINT "type_Artifact" FOREIGN KEY (type) REFERENCES artifact_types (type), + CONSTRAINT "name_Artifact" FOREIGN KEY (author_name) REFERENCES "Organization" (name) +); + +CREATE TABLE "Products"( + name VARCHAR NOT NULL, + version REAL NOT NULL, + author_id INT NOT NULL, + "release" INT, + PRIMARY KEY(name, version), + CONSTRAINT "id_Products" FOREIGN KEY (author_id) REFERENCES "Organization" (id) +); + +CREATE TABLE "Statuses"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL, + CONSTRAINT "Statuses_ak_1" UNIQUE(id), + CONSTRAINT "Statuses_ak_2" UNIQUE(name) +); + +CREATE TABLE "Benchmarks"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + version SMALLINT NOT NULL, + "release" SMALLINT NOT NULL, + release_date DATE NOT NULL, + type VARCHAR NOT NULL, + product_name VARCHAR NOT NULL, + product_version REAL NOT NULL, + status VARCHAR NOT NULL, + organization_name VARCHAR NOT NULL, + sponsor_name VARCHAR, + CONSTRAINT type_type FOREIGN KEY (type) REFERENCES benchmark_type (type), + CONSTRAINT "Products_Benchmarks" FOREIGN KEY (product_name, product_version) REFERENCES "Products" (name, version), + CONSTRAINT "name_Benchmarks" FOREIGN KEY (status) REFERENCES "Statuses" (name), + CONSTRAINT "name_Benchmarks" FOREIGN KEY (organization_name) REFERENCES "Organization" (name), + CONSTRAINT "name_Benchmarks" FOREIGN KEY (sponsor_name) REFERENCES "Organization" (name) +); + +CREATE TABLE benchmark_artifacts( + benchmark_id INTEGER NOT NULL, + artifact_id INTEGER NOT NULL, + "default" INT2, + PRIMARY KEY(benchmark_id, artifact_id), + CONSTRAINT id_benchmark_references FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (id), + CONSTRAINT id_benchmark_reference FOREIGN KEY (artifact_id) REFERENCES "Artifact" (id) +); diff --git a/database/Security Guidance.dmm b/database/Security Guidance.dmm new file mode 100644 index 000000000..170d91658 --- /dev/null +++ b/database/Security Guidance.dmm @@ -0,0 +1,1495 @@ +{ + "tables": { + "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40": { + "id": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "visible": true, + "name": "Benchmarks", + "desc": "A collection of Security Benchmarks that are publied by Autors", + "estimatedSize": "", + "cols": [ + { + "id": "1d76151a-b0c8-4b0a-8400-f244d48a92d6", + "name": "id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "[autogenerated] Autogenerated primary key of the vendor published security guidance document", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "", + "fk": false + }, + { + "id": "f428635d-6ccc-4a7f-8649-0c02987ec283", + "name": "version", + "datatype": "SMALLINT", + "param": "", + "pk": false, + "nn": true, + "comment": "The benchmark version number ", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "b00c4bcd-d3ba-4d03-bdcd-cd72c2e48b07", + "name": "release", + "datatype": "SMALLINT", + "param": "", + "pk": false, + "nn": true, + "comment": "The benchmark release number", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "8f7d58d8-8560-4bb5-946a-6784a261d0d3", + "name": "release_date", + "datatype": "DATE", + "param": "", + "pk": false, + "nn": true, + "comment": "The date that the benchmark was published by the Autor", + "defaultvalue": "", + "data": "01/02/2023", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "bf7b3d03-626d-4886-9a32-ca9972d86f4b", + "name": "type", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "FK: [benchmark_type.id]", + "defaultvalue": "", + "data": "'stig', 'cis','srg','vendor'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "5af93689-e4b0-4b4e-a4eb-a2482b960353", + "name": "product_name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "f583317f-0d69-437c-92ce-ac01937d387c", + "name": "product_version", + "datatype": "REAL", + "param": "", + "pk": false, + "nn": true, + "comment": "", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "82d55b13-5bc6-487c-9d06-17c9bb3508e7", + "name": "status", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "Text based name for the status", + "defaultvalue": "", + "data": "'final', 'draft', 'in-review', 'sunset'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "066852bf-14e2-4489-8448-bb61d57eeec1", + "name": "organization_name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The full text name of the author, vendor or agency that created the Benchmark", + "defaultvalue": "", + "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "4a30d437-0207-4479-9f55-a9f8980d8189", + "name": "sponsor_name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": false, + "comment": "The full text name of the author, vendor or agency that sponsored the creation of the benchmark.", + "defaultvalue": "", + "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + } + ], + "relations": [ + "b408fbf5-544d-4f16-8324-441a198d8a7f", + "f74fb015-dbf2-4079-819c-c0b7b2a2a523", + "57450471-c472-4b73-b00b-78ea52310429", + "c6dc322d-7473-4310-84da-22412bbbadb2", + "b14de6cd-af4a-4d85-be8f-365d524292c3", + "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d" + ], + "lines": [], + "keys": [ + { + "id": "fa60d456-7fef-4426-9a1d-b938566b8d9b", + "name": "Primary key", + "isPk": true, + "cols": [ + { + "id": "57007081-1108-49b6-bc9f-182034e7f0cf", + "colid": "1d76151a-b0c8-4b0a-8400-f244d48a92d6" + } + ] + } + ], + "indexes": [], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + }, + "ae252854-db26-47df-9077-04e929b84447": { + "id": "ae252854-db26-47df-9077-04e929b84447", + "visible": true, + "name": "benchmark_type", + "desc": "Describes the kind of benchmark to include:\n - Security Technical Implementation Gudie (stig)\n - Security Requirements Guide (srg)\n - Center for Internet Security Benchmark (cis)\n - Vendor Guidance (vendor)", + "estimatedSize": "", + "cols": [ + { + "id": "6684e545-9261-4248-8a02-b11526e64fd8", + "name": "type", + "datatype": "VARCHAR", + "param": "", + "pk": true, + "nn": true, + "comment": "The varchar (text) name of the benchmark type", + "defaultvalue": "", + "data": "\"stig\", \"cis\", \"srg\", \"vendor\"", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "e2f74eb2-b3b5-4c54-87ab-e131faee5c35", + "name": "description", + "datatype": "TEXT", + "param": "", + "pk": false, + "nn": true, + "comment": "The full text description of the guidane type", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "61bf3d33-120f-42a2-9aa1-f6baebbc3175", + "name": "organization_name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The full text name of the author, vendor or agency", + "defaultvalue": "", + "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + } + ], + "relations": [ + "b408fbf5-544d-4f16-8324-441a198d8a7f", + "2ebc720a-0bad-4e24-ae4f-f66470ba133d" + ], + "lines": [], + "keys": [ + { + "id": "28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098", + "name": "Primary key", + "isPk": true, + "cols": [ + { + "id": "0dc93f91-7de3-4184-b02e-78cdaa46401f", + "colid": "6684e545-9261-4248-8a02-b11526e64fd8" + } + ] + }, + { + "id": "657768c5-09c1-4fe2-8d99-b93af72faadd", + "isPk": false, + "name": "benchmark_type_ak_1", + "cols": [] + } + ], + "indexes": [], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + }, + "510cb49c-1f0e-4203-bd5d-80c96e661f5e": { + "id": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "visible": true, + "name": "Organization", + "desc": "List of organizations or gorups that author or manage security guidance", + "estimatedSize": "", + "cols": [ + { + "id": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", + "name": "id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "Integer id of the author of the benchmark", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "" + }, + { + "id": "cee2c943-546c-4f5c-a4c3-9483a4e03410", + "name": "name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The full text name of the author, vendor or agency", + "defaultvalue": "", + "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "3c4f5e5d-568e-4714-8c21-9390758cfbbd", + "name": "uri", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": false, + "comment": "The primary uri of the author, vendor or agency", + "defaultvalue": "", + "data": "'https://www.mitre.org','https://www.disa.mil','https://www.vmware.com'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "016880f0-a877-42fa-af4d-f3bc012d36a2", + "name": "email", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": false, + "comment": "[optional] The email of the autor", + "defaultvalue": "", + "data": "'me@you.com'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + } + ], + "relations": [ + "89f391d5-ea53-4c40-b2c5-f627bb9022ae", + "b14de6cd-af4a-4d85-be8f-365d524292c3", + "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a", + "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d", + "2ebc720a-0bad-4e24-ae4f-f66470ba133d" + ], + "lines": [], + "keys": [ + { + "id": "b056d86c-a62c-465f-ac96-9374f6e41b3f", + "name": "Primary key", + "isPk": true, + "cols": [ + { + "id": "c53bc39a-2a2d-4167-860f-1cbbad8238a7", + "colid": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9" + } + ] + }, + { + "id": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", + "isPk": false, + "name": "Authors_ak_1", + "cols": [ + { + "id": "7f7b4d69-b983-4b51-9237-ad318734c6fe", + "colid": "cee2c943-546c-4f5c-a4c3-9483a4e03410" + } + ] + } + ], + "indexes": [ + { + "id": "0027308a-0f9c-415f-9c4c-d328397820ba", + "name": "organization_index", + "unique": false, + "fulltext": false, + "using": "na", + "algorithm": "", + "lockoption": "na", + "sqlite": {}, + "cols": [ + { + "id": "1141b23e-163c-4892-95b6-a4f2df9f7902", + "colid": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", + "sqlite": { + "desc": false + } + } + ] + } + ], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + }, + "6e2bb99e-5664-4222-b085-611dca238bf8": { + "id": "6e2bb99e-5664-4222-b085-611dca238bf8", + "visible": true, + "name": "Artifact", + "desc": "Collection of file artifacts related to the Benchmark, their data and where they are stored.", + "estimatedSize": "", + "cols": [ + { + "id": "2d7700a1-2d99-49fe-b90c-4fd176eb8951", + "name": "id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "[autogenerated] The id of the artifact.", + "defaultvalue": "", + "data": "", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "" + }, + { + "id": "4491f4ac-a271-44c9-96b8-91373e4deab9", + "name": "name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "Filename that the artifact is stored as on the target location", + "defaultvalue": "", + "data": "'U_A10_Networks_ADC_ALG_V2R1_STIG.zip', 'rhel-9-profile.json', 'U_Red_Hat_Enterprise_Linux_7_STIG_V3R7_Manual-xccdf.xml'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "e81132e3-e87c-4733-a5c4-1b7572f801d8", + "name": "location", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The URI path of the artifact", + "defaultvalue": "", + "data": "https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "7415a191-aa67-4b3c-9197-9cee4448fdc2", + "name": "type", + "datatype": "INTEGER", + "param": "", + "pk": false, + "nn": true, + "comment": "", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": false + }, + { + "id": "ecaa1880-06fc-4554-b8f4-2e3fdc71c029", + "name": "created_at", + "datatype": "DATE", + "param": "", + "pk": false, + "nn": true, + "comment": "", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "568f380a-7d3b-4363-80a1-8459c0de6473", + "name": "secondary_location", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": false, + "comment": "[optional] A file path, uri or other location you can find the reference besides the default location.", + "defaultvalue": "", + "data": "'my_other/place/file.zip'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "59dbe73d-c74b-4b4a-b3a0-e5e566a9cd23", + "name": "raw_data", + "datatype": "BLOB", + "param": "", + "pk": false, + "nn": false, + "comment": "[optional] The raw data of the Artifact", + "defaultvalue": "", + "data": "XCCDF_File, Profile JSON, ", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "5673834f-a2cd-4c7e-90ad-046b4418bb99", + "name": "type", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The simple name of the artifact", + "defaultvalue": "", + "data": "XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "b6ccd991-7ff6-444c-a626-f4030db8e18e", + "name": "author_name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The full text name of the author, vendor or agency", + "defaultvalue": "", + "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + } + ], + "relations": [ + "ab7e56b9-8aa7-429c-97ac-d4e117244aec", + "ea99ab57-cf4b-49c5-94e9-986c4686c7e6", + "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a" + ], + "lines": [], + "keys": [ + { + "id": "3f97f355-6d9f-4714-8099-5b17c5f57130", + "name": "Primary key", + "isPk": true, + "cols": [ + { + "id": "ad95d426-57d4-4e67-b616-24582987192c", + "colid": "2d7700a1-2d99-49fe-b90c-4fd176eb8951" + } + ] + } + ], + "indexes": [], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + }, + "e4cfe7e8-661f-462c-b51e-401688f089aa": { + "id": "e4cfe7e8-661f-462c-b51e-401688f089aa", + "visible": true, + "name": "benchmark_artifacts", + "desc": "", + "estimatedSize": "", + "cols": [ + { + "id": "abe8e1ab-9250-48c2-93fd-9645f9587769", + "name": "benchmark_id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "[int, fk] Bechmarks.id", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "aac75266-c7ae-4420-9ff6-5fa89fecbdd3", + "name": "artifact_id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "[autogenerated] The id of the artifact.", + "defaultvalue": "", + "data": "", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "16db22ec-71fe-45af-a622-ff81a5c8500a", + "name": "default", + "datatype": "INT2", + "param": "", + "pk": false, + "nn": false, + "comment": "[optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.", + "defaultvalue": "", + "data": "0.1,NULL", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + } + ], + "relations": [ + "f74fb015-dbf2-4079-819c-c0b7b2a2a523", + "ea99ab57-cf4b-49c5-94e9-986c4686c7e6" + ], + "lines": [], + "keys": [ + { + "id": "39423998-e8c5-4fb5-92ac-845c28a6d1de", + "name": "Primary key", + "isPk": true, + "cols": [ + { + "id": "86d3ded4-37ec-4f0d-ab01-eddb7555540a", + "colid": "abe8e1ab-9250-48c2-93fd-9645f9587769" + }, + { + "id": "b1f7220b-1ce6-4a90-9b9a-bf4463561deb", + "colid": "aac75266-c7ae-4420-9ff6-5fa89fecbdd3" + } + ] + } + ], + "indexes": [], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + }, + "6aecb762-1a99-493f-987c-133569ac56d9": { + "id": "6aecb762-1a99-493f-987c-133569ac56d9", + "visible": true, + "name": "artifact_types", + "desc": "A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies", + "estimatedSize": "", + "cols": [ + { + "id": "77f4d932-64bb-4cb8-a6d4-6511cac8493a", + "name": "type", + "datatype": "VARCHAR", + "param": "", + "pk": true, + "nn": true, + "comment": "The simple name of the artifact", + "defaultvalue": "", + "data": "XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + } + ], + "relations": [ + "ab7e56b9-8aa7-429c-97ac-d4e117244aec" + ], + "lines": [], + "keys": [ + { + "id": "db251232-ef40-4eb6-92ff-67f608e7f6f6", + "name": "Primary key", + "isPk": true, + "cols": [ + { + "id": "ae764350-fd50-407a-b65d-e69606659c29", + "colid": "77f4d932-64bb-4cb8-a6d4-6511cac8493a" + } + ] + } + ], + "indexes": [], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + }, + "52cf2433-451e-4ba0-8b3d-8624bd967ffb": { + "id": "52cf2433-451e-4ba0-8b3d-8624bd967ffb", + "visible": true, + "name": "Products", + "desc": "A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level.\n\nFor example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'", + "estimatedSize": "", + "cols": [ + { + "id": "058e47d0-7551-4777-95d1-738dc4381129", + "name": "name", + "datatype": "VARCHAR", + "param": "", + "pk": true, + "nn": true, + "comment": "The name of the product or service", + "defaultvalue": "", + "data": "'Enterprise Linux', 'MSSQL Server', 'VSphere'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "48f5eb1d-79c8-4914-bfff-53c5d057be39", + "name": "version", + "datatype": "REAL", + "param": "", + "pk": true, + "nn": true, + "comment": "The version of the project", + "defaultvalue": "", + "data": "1, 7, 10.7", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "0750946d-1961-48f7-a05f-ad3ca3c6619f", + "name": "author_id", + "datatype": "INT", + "param": "", + "pk": false, + "nn": true, + "comment": "Integer id of the author of the benchmark", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true + }, + { + "id": "db0e76c4-1a99-4c6f-a92d-ae2e44a085c0", + "name": "release", + "datatype": "INT", + "param": "", + "pk": false, + "nn": false, + "comment": "", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + } + ], + "relations": [ + "89f391d5-ea53-4c40-b2c5-f627bb9022ae", + "57450471-c472-4b73-b00b-78ea52310429" + ], + "lines": [], + "keys": [ + { + "id": "91648061-8fe5-45d6-a841-129186f7cdc0", + "name": "Primary key", + "isPk": true, + "cols": [ + { + "id": "5e3196f9-1efd-4917-b892-00be36f802ed", + "colid": "058e47d0-7551-4777-95d1-738dc4381129" + }, + { + "id": "540dd502-ed00-444b-8264-5522d3b18c5c", + "colid": "48f5eb1d-79c8-4914-bfff-53c5d057be39" + } + ] + } + ], + "indexes": [], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + }, + "3042578a-ef8c-490f-86e5-4cebe82acc7d": { + "id": "3042578a-ef8c-490f-86e5-4cebe82acc7d", + "visible": true, + "name": "Statuses", + "desc": "Collection of statuses that can applly to a Benckmark or Artifact", + "estimatedSize": "", + "cols": [ + { + "id": "4bc8e5d6-ec2c-44a7-940c-d75199f981af", + "name": "id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "[autogenerated] id of the status type", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "", + "fk": false + }, + { + "id": "2bbc6494-a884-4eca-8769-d8aedfc02637", + "name": "name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "Text based name for the status", + "defaultvalue": "", + "data": "'final', 'draft', 'in-review', 'sunset'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + } + ], + "relations": [ + "c6dc322d-7473-4310-84da-22412bbbadb2" + ], + "lines": [], + "keys": [ + { + "id": "83c53cd8-165d-4d51-b67e-8c74146d2572", + "name": "Primary key", + "isPk": true, + "cols": [] + }, + { + "id": "00d5af0a-9e98-4586-8d9f-997346e51d7c", + "isPk": false, + "name": "Statuses_ak_1", + "cols": [ + { + "id": "a1947528-cf54-4fa6-b247-a4a5846e6c49", + "colid": "4bc8e5d6-ec2c-44a7-940c-d75199f981af" + } + ] + }, + { + "id": "a9b880d3-c9ed-4ba0-9c05-d30d067f6943", + "isPk": false, + "name": "Statuses_ak_2", + "cols": [ + { + "id": "158b1625-2e10-4a67-9bc8-0daa8ccc40ef", + "colid": "2bbc6494-a884-4eca-8769-d8aedfc02637" + } + ] + } + ], + "indexes": [], + "embeddable": false, + "generate": true, + "generateCustomCode": true, + "customCode": "", + "beforeScript": "", + "afterScript": "", + "sqlite": { + "withoutrowid": false, + "strict": false + } + } + }, + "relations": { + "b408fbf5-544d-4f16-8324-441a198d8a7f": { + "id": "b408fbf5-544d-4f16-8324-441a198d8a7f", + "visible": true, + "name": "type_type", + "desc": "", + "type": "identifying", + "parent_key": "28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098", + "parent": "ae252854-db26-47df-9077-04e929b84447", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "5caf6f0a-3c61-4206-8b36-60fb514fec53", + "parentcol": "6684e545-9261-4248-8a02-b11526e64fd8", + "childcol": "bf7b3d03-626d-4886-9a32-ca9972d86f4b" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "f74fb015-dbf2-4079-819c-c0b7b2a2a523": { + "id": "f74fb015-dbf2-4079-819c-c0b7b2a2a523", + "visible": true, + "name": "id_benchmark_references", + "desc": "", + "type": "identifying", + "parent_key": "fa60d456-7fef-4426-9a1d-b938566b8d9b", + "parent": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "child": "e4cfe7e8-661f-462c-b51e-401688f089aa", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "832a13af-a0ee-4572-94bd-81911d54067b", + "parentcol": "1d76151a-b0c8-4b0a-8400-f244d48a92d6", + "childcol": "abe8e1ab-9250-48c2-93fd-9645f9587769" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "89f391d5-ea53-4c40-b2c5-f627bb9022ae": { + "id": "89f391d5-ea53-4c40-b2c5-f627bb9022ae", + "visible": true, + "name": "id_Products", + "desc": "", + "type": "identifying", + "parent_key": "b056d86c-a62c-465f-ac96-9374f6e41b3f", + "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "child": "52cf2433-451e-4ba0-8b3d-8624bd967ffb", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "ff007db6-bcfa-4737-8f1f-63e1057f1755", + "parentcol": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", + "childcol": "0750946d-1961-48f7-a05f-ad3ca3c6619f" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "57450471-c472-4b73-b00b-78ea52310429": { + "id": "57450471-c472-4b73-b00b-78ea52310429", + "visible": true, + "name": "Products_Benchmarks", + "desc": "", + "type": "identifying", + "parent_key": "91648061-8fe5-45d6-a841-129186f7cdc0", + "parent": "52cf2433-451e-4ba0-8b3d-8624bd967ffb", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "one", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "491c9dc5-1b09-4bd1-8110-46913d1005d4", + "parentcol": "058e47d0-7551-4777-95d1-738dc4381129", + "childcol": "5af93689-e4b0-4b4e-a4eb-a2482b960353" + }, + { + "id": "e4baf84f-98e1-494b-a34e-514c65934732", + "parentcol": "48f5eb1d-79c8-4914-bfff-53c5d057be39", + "childcol": "f583317f-0d69-437c-92ce-ac01937d387c" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "ab7e56b9-8aa7-429c-97ac-d4e117244aec": { + "id": "ab7e56b9-8aa7-429c-97ac-d4e117244aec", + "visible": true, + "name": "type_Artifact", + "desc": "", + "type": "identifying", + "parent_key": "db251232-ef40-4eb6-92ff-67f608e7f6f6", + "parent": "6aecb762-1a99-493f-987c-133569ac56d9", + "child": "6e2bb99e-5664-4222-b085-611dca238bf8", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "3ae2e09c-3f4b-423c-b488-a676ac1c1ee7", + "parentcol": "77f4d932-64bb-4cb8-a6d4-6511cac8493a", + "childcol": "5673834f-a2cd-4c7e-90ad-046b4418bb99" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "ea99ab57-cf4b-49c5-94e9-986c4686c7e6": { + "id": "ea99ab57-cf4b-49c5-94e9-986c4686c7e6", + "visible": true, + "name": "id_benchmark_reference", + "desc": "", + "type": "identifying", + "parent_key": "3f97f355-6d9f-4714-8099-5b17c5f57130", + "parent": "6e2bb99e-5664-4222-b085-611dca238bf8", + "child": "e4cfe7e8-661f-462c-b51e-401688f089aa", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "84968788-ddbd-42c0-a2f3-b01709d80508", + "parentcol": "2d7700a1-2d99-49fe-b90c-4fd176eb8951", + "childcol": "aac75266-c7ae-4420-9ff6-5fa89fecbdd3" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "c6dc322d-7473-4310-84da-22412bbbadb2": { + "id": "c6dc322d-7473-4310-84da-22412bbbadb2", + "visible": true, + "name": "name_Benchmarks", + "desc": "", + "type": "identifying", + "parent_key": "a9b880d3-c9ed-4ba0-9c05-d30d067f6943", + "parent": "3042578a-ef8c-490f-86e5-4cebe82acc7d", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "c273194e-29ff-447a-b563-e8be07115bbe", + "parentcol": "2bbc6494-a884-4eca-8769-d8aedfc02637", + "childcol": "82d55b13-5bc6-487c-9d06-17c9bb3508e7" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "b14de6cd-af4a-4d85-be8f-365d524292c3": { + "id": "b14de6cd-af4a-4d85-be8f-365d524292c3", + "visible": true, + "name": "name_Benchmarks", + "desc": "", + "type": "identifying", + "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", + "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "e17e91d5-a7f1-419a-8ebc-a97d2d9112b7", + "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", + "childcol": "066852bf-14e2-4489-8448-bb61d57eeec1" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a": { + "id": "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a", + "visible": true, + "name": "name_Artifact", + "desc": "", + "type": "identifying", + "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", + "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "child": "6e2bb99e-5664-4222-b085-611dca238bf8", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "6944ee95-7a19-4302-a98b-818d32d89d6a", + "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", + "childcol": "b6ccd991-7ff6-444c-a626-f4030db8e18e" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d": { + "id": "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d", + "visible": true, + "name": "name_Benchmarks", + "desc": "", + "type": "identifying", + "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", + "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "be28af0f-8cf1-4b9b-8cbc-223f3f4960f0", + "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", + "childcol": "4a30d437-0207-4479-9f55-a9f8980d8189" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + }, + "2ebc720a-0bad-4e24-ae4f-f66470ba133d": { + "id": "2ebc720a-0bad-4e24-ae4f-f66470ba133d", + "visible": true, + "name": "name_benchmark_type", + "desc": "", + "type": "identifying", + "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", + "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "child": "ae252854-db26-47df-9077-04e929b84447", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "b697fc6c-78f1-4ed7-b8eb-fa2eca019790", + "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", + "childcol": "61bf3d33-120f-42a2-9aa1-f6baebbc3175" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" + } + }, + "notes": {}, + "lines": {}, + "model": { + "name": "Benchmarks", + "id": "5c30763e-cd89-4cee-8ae6-ff0aee49e72e", + "activeDiagram": "1bdbbea3-d7c8-4cfb-a10a-8e33bd65a392", + "desc": "", + "path": "", + "type": "SQLITE", + "version": 1, + "parentTableInFkCols": true, + "caseConvention": "under", + "replaceSpace": "_", + "color": "transparent", + "sideSelections": true, + "isDirty": true, + "storedin": { + "major": 7, + "minor": 5, + "extra": 0 + }, + "laststoredin": { + "major": 7, + "minor": 5, + "extra": 0 + }, + "writeFileParam": false, + "authorName": "", + "companyDetails": "", + "companyUrl": "", + "def_coltopk": true, + "sqlSettings": { + "wrapLines": true, + "wrapOffset": "120", + "indent": true, + "indentationString": "spaces", + "indentationSize": 2, + "limitItemsOnLine": true, + "maxListItemsOnLine": 3, + "statementDelimiter": ";", + "routineDelimiter": ";", + "keywordCase": "upper", + "identiferCase": "original" + }, + "lastSaved": 1702581929592 + }, + "otherObjects": {}, + "diagrams": { + "1bdbbea3-d7c8-4cfb-a10a-8e33bd65a392": { + "name": "Security Guidance", + "description": "", + "id": "1bdbbea3-d7c8-4cfb-a10a-8e33bd65a392", + "keysgraphics": true, + "linegraphics": "detailed", + "zoom": 1, + "background": "transparent", + "lineColor": "transparent", + "isOpen": true, + "main": true, + "diagramItems": { + "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40": { + "referencedItemId": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "x": 361, + "y": 30, + "gHeight": 240, + "gWidth": 307, + "color": "#ffffff", + "background": "#03a9f4", + "resized": true, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + }, + "ae252854-db26-47df-9077-04e929b84447": { + "referencedItemId": "ae252854-db26-47df-9077-04e929b84447", + "x": 901, + "y": 160, + "gHeight": 81, + "gWidth": 258, + "color": "#ffffff", + "background": "#03a9f4", + "resized": false, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + }, + "510cb49c-1f0e-4203-bd5d-80c96e661f5e": { + "referencedItemId": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "x": 900, + "y": 414, + "gHeight": 128, + "gWidth": 183, + "color": "#ffffff", + "background": "#03a9f4", + "resized": false, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + }, + "6e2bb99e-5664-4222-b085-611dca238bf8": { + "referencedItemId": "6e2bb99e-5664-4222-b085-611dca238bf8", + "x": 357, + "y": 425, + "gHeight": 189, + "gWidth": 258, + "color": "#ffffff", + "background": "#03a9f4", + "resized": false, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + }, + "e4cfe7e8-661f-462c-b51e-401688f089aa": { + "referencedItemId": "e4cfe7e8-661f-462c-b51e-401688f089aa", + "x": 355, + "y": 318, + "gHeight": 81, + "gWidth": 225, + "color": "#ffffff", + "background": "#03a9f4", + "resized": false, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + }, + "6aecb762-1a99-493f-987c-133569ac56d9": { + "referencedItemId": "6aecb762-1a99-493f-987c-133569ac56d9", + "x": 359, + "y": 639, + "gHeight": 45, + "gWidth": 175, + "color": "#ffffff", + "background": "#03a9f4", + "resized": false, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + }, + "52cf2433-451e-4ba0-8b3d-8624bd967ffb": { + "referencedItemId": "52cf2433-451e-4ba0-8b3d-8624bd967ffb", + "x": 901, + "y": 277, + "gHeight": 99, + "gWidth": 183, + "color": "#ffffff", + "background": "#03a9f4", + "resized": false, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + }, + "3042578a-ef8c-490f-86e5-4cebe82acc7d": { + "referencedItemId": "3042578a-ef8c-490f-86e5-4cebe82acc7d", + "x": 45, + "y": 137, + "gHeight": 63, + "gWidth": 183, + "color": "#ffffff", + "background": "#03a9f4", + "resized": false, + "autoExpand": true, + "backgroundOpacity": "10", + "collapsed": false + } + }, + "scroll": { + "x": 0, + "y": 0 + }, + "type": "erd", + "showHorizontal": true, + "showDescriptions": true, + "showIndicators": true, + "showProgress": true, + "lineWidth": "2", + "boxSize": "0", + "showIndicatorCaptions": true, + "showEstimatedSize": false, + "showSchemaContainer": true, + "showEmbeddedInParents": true, + "showCardinalityCaptions": true, + "showColumns": true, + "showColumnDataTypes": true, + "showSampleData": false, + "showTableIndexes": true, + "showTableDescriptions": false, + "showRelations": true, + "backgroundImage": "na", + "descriptionsColor": "transparent", + "embeddedSpacing": "2", + "showMainIcon": true, + "showLabels": true + } + }, + "order": [ + "510cb49c-1f0e-4203-bd5d-80c96e661f5e", + "6aecb762-1a99-493f-987c-133569ac56d9", + "ae252854-db26-47df-9077-04e929b84447", + "6e2bb99e-5664-4222-b085-611dca238bf8", + "52cf2433-451e-4ba0-8b3d-8624bd967ffb", + "3042578a-ef8c-490f-86e5-4cebe82acc7d", + "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "e4cfe7e8-661f-462c-b51e-401688f089aa", + "b408fbf5-544d-4f16-8324-441a198d8a7f", + "f74fb015-dbf2-4079-819c-c0b7b2a2a523", + "89f391d5-ea53-4c40-b2c5-f627bb9022ae", + "57450471-c472-4b73-b00b-78ea52310429", + "ab7e56b9-8aa7-429c-97ac-d4e117244aec", + "ea99ab57-cf4b-49c5-94e9-986c4686c7e6", + "c6dc322d-7473-4310-84da-22412bbbadb2", + "b14de6cd-af4a-4d85-be8f-365d524292c3", + "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a", + "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d", + "2ebc720a-0bad-4e24-ae4f-f66470ba133d" + ], + "collapsedTreeItems": [], + "reverseStats": {} +} \ No newline at end of file diff --git a/test.db b/test.db new file mode 100644 index 000000000..e69de29bb diff --git a/test.py b/test.py index 5ceb63b60..adc7b3bd9 100644 --- a/test.py +++ b/test.py @@ -10,7 +10,7 @@ file = "U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip" json_results = convert_stig(file) -#import ipdb; ipdb.set_trace() +# import ipdb; ipdb.set_trace() print("Processing STIG: " + file ) print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release']) From f33be0411763b20dc2b2fd6994be2aa31e7f2d25 Mon Sep 17 00:00:00 2001 From: Mo Shark Date: Thu, 14 Dec 2023 20:29:45 +0000 Subject: [PATCH 04/29] removed duplicate item in benchmarks, updated test2.py to include the newest schema. ran the script to update the sqlite db with the new schema Signed-off-by: Mo Shark --- database/Benchmarks.sql | 1 - local.db | Bin 8192 -> 86016 bytes test2.py | 96 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 88 insertions(+), 9 deletions(-) diff --git a/database/Benchmarks.sql b/database/Benchmarks.sql index 98a5060ed..cb22f633b 100644 --- a/database/Benchmarks.sql +++ b/database/Benchmarks.sql @@ -22,7 +22,6 @@ CREATE TABLE "Artifact"( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR NOT NULL, location VARCHAR NOT NULL, - type INTEGER NOT NULL, created_at DATE NOT NULL, secondary_location VARCHAR, raw_data BLOB, diff --git a/local.db b/local.db index c98879a588a3a6e490cd773c8fb502bec369665f..2f37ff4c3d1488306a2eafad78c7829e61ec34bc 100644 GIT binary patch literal 86016 zcmeI&%}?8A9KdlKN|N%HzRIUcPa~lb!P=!9I;oS^K-~^CO=y6roGg==)@n$=Hfy_E zq1txaVb@*vKlHdm&)ad@pD^uD*bcLu82p5ofYu%AeIr5q^7wiA{2sqNkF)x?Vtba@ z>Nwk`Cl-_oimEDig-{e_#Q(eM|3#m1f8kuT;(x2L<)pPZ{BKJBPyZhu1Q0*~0R#|0009ILKmY** z5crS;E{%*TbDN#byVgr{d#7dHXmqwOtE0-tX3K6^cU$(RyW6_aah?X_fB&UF9|RCU z009ILKmY**5I_I{1Q1BEK=7k}#{Ve}Fik@M0R#|0009ILKmY**5J12e;Qc?{009IL zKmY**5I_I{1Q0*~f%FUT{y+UOriBO~fB*srAb#n1$h6T{ut9j1Q0*~0R#|0009ILKmY**c>hlyKmY**5I_I{1Q0*~0R#|0 zApHWo|4)C6X(0j#AbrHLfB*srAb_y6<(1Q0*~0R#|0009ILKmY**(l5aHKm9SLg$N*k00IagfB*srAbpAkx2JxY+MfJ*>XV7t$%EV< zSv&W3?Cag?^NN`Y>xwtr0)~f&YQPeq|!7UAv~fdG48;Eo;T; zH1`^w8+}hM)%Eh4F4oG66hd-WfbhDao8krzgE|mA5?=3#Oz^Zihh;v>vg@lq_2uX&3S6J?XOMGZ%aYU z+RdWW%3^*;DV?d;y!mWA^#AT*=wEg`d&_Ki(f5SxA8qdQ?~>^c^ty;Ci1PYcZMo{_ z@JLStJw@nRokrN+ArWpkmg!kd!}P?xpvw#npldZc?WXCxGWxTXqvV(`jHcq&hxNV^4fW+E6Mxh(>Z9$kYG10x8c}3!D%4Y^e0KD zYbSQP7^jFvtoIH94L#*X$N@W6^jT@|oX=>rqN>>KruEX@ZP}h>_>t;_>xNvkQIglk z+nF#dueI>3mivmlmX*RH?+Xo%Mp5dAqm^dV7h%gJw{T1R znwRO-cDZ^_e)rwi&<@9LH(vXWFK(cfK8XA=cfS)b|+Qjy2YM^2bUuk6R)sTO1U>=A2f0EZTmu2yMA5${-f~0_ozZg zOBbaO7LInjzuA~*mTdJ=xl%dJEZC5Qz1gy0CdE2wR^}8V{+;g3;AuwjQPQY2C(QY| zp6Ttm(Euo6&Zu+7Sp;{d({}xt#Q20mVvh=%9?q7?ohY2niT9q(sEc+J51F1goGCS8 z-9#=SQVME0FQT<*&N5!~VP<~E?WT@WCAO*%&W|LP-DQ{0!PPJnR&WLe2PdEFL-IZr zExDNZu=C#*6%X|AQsfcl&3r~%x|Vb^h%k&>(b9#R)2BM16djP?&rO9>y9bT%k`ir? zzNh8ONwoR>T}*-~4mq=8SJpyQ0eO7 diff --git a/test2.py b/test2.py index f58ca2779..2cf605ea2 100644 --- a/test2.py +++ b/test2.py @@ -10,15 +10,95 @@ async def main(): await client.batch( [ """ - CREATE TABLE IF NOT EXISTS users ( - id INTEGER PRIMARY KEY, - email TEXT NOT NULL - ) + CREATE TABLE "Organization"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL, + uri VARCHAR, + email VARCHAR, + CONSTRAINT "Authors_ak_1" UNIQUE(name) + ); """, - """ - INSERT INTO users (email) VALUES - ('alice@libsql.org'), - ('bob@example.com') + """ + CREATE INDEX organization_index ON "Organization"(id); + """, + """ + CREATE TABLE artifact_types(type VARCHAR NOT NULL, PRIMARY KEY(type)); + """, + """ + CREATE TABLE benchmark_type( + type VARCHAR NOT NULL, + description TEXT NOT NULL, + organization_name VARCHAR NOT NULL, + PRIMARY KEY(type), + CONSTRAINT name_benchmark_type FOREIGN KEY (organization_name) REFERENCES "Organization" (name) + ); + """, + + """ + CREATE TABLE "Artifact"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL, + location VARCHAR NOT NULL, + created_at DATE NOT NULL, + secondary_location VARCHAR, + raw_data BLOB, + type VARCHAR NOT NULL, + author_name VARCHAR NOT NULL, + CONSTRAINT "type_Artifact" FOREIGN KEY (type) REFERENCES artifact_types (type), + CONSTRAINT "name_Artifact" FOREIGN KEY (author_name) REFERENCES "Organization" (name) + ); + """, + + """ + CREATE TABLE "Products"( + name VARCHAR NOT NULL, + version REAL NOT NULL, + author_id INT NOT NULL, + "release" INT, + PRIMARY KEY(name, version), + CONSTRAINT "id_Products" FOREIGN KEY (author_id) REFERENCES "Organization" (id) + ); + """, + + """ + CREATE TABLE "Statuses"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL, + CONSTRAINT "Statuses_ak_1" UNIQUE(id), + CONSTRAINT "Statuses_ak_2" UNIQUE(name) + ); + """, + + """ + CREATE TABLE "Benchmarks"( + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + version SMALLINT NOT NULL, + "release" SMALLINT NOT NULL, + release_date DATE NOT NULL, + type VARCHAR NOT NULL, + product_name VARCHAR NOT NULL, + product_version REAL NOT NULL, + status VARCHAR NOT NULL, + organization_name VARCHAR NOT NULL, + sponsor_name VARCHAR, + CONSTRAINT type_type FOREIGN KEY (type) REFERENCES benchmark_type (type), + CONSTRAINT "Products_Benchmarks" FOREIGN KEY (product_name, product_version) REFERENCES "Products" (name, version), + CONSTRAINT "name_Benchmarks" FOREIGN KEY (status) REFERENCES "Statuses" (name), + CONSTRAINT "name_Benchmarks" FOREIGN KEY (organization_name) REFERENCES "Organization" (name), + CONSTRAINT "name_Benchmarks" FOREIGN KEY (sponsor_name) REFERENCES "Organization" (name) + ); + """, + + """ + CREATE TABLE benchmark_artifacts( + benchmark_id INTEGER NOT NULL, + artifact_id INTEGER NOT NULL, + "default" INT2, + PRIMARY KEY(benchmark_id, artifact_id), + CONSTRAINT id_benchmark_references FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (id), + CONSTRAINT id_benchmark_reference FOREIGN KEY (artifact_id) REFERENCES "Artifact" (id) + ); + """, ] ) From 143147951397df7bff37de2e4bb2ab04f8c5c0da Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 15:30:50 -0500 Subject: [PATCH 05/29] adding database report, html and pdf Signed-off-by: Aaron Lippold --- database/.DS_Store | Bin 0 -> 6148 bytes database/Security Guidance.dmm | 45 +- database/database-report.pdf | Bin 0 -> 39025 bytes database/web/allOf-dark.svg | 46 + database/web/allOf-light.svg | 43 + database/web/anyOf-dark.svg | 43 + database/web/anyOf-light.svg | 40 + database/web/assets/ak.svg | 73 + database/web/assets/fk.svg | 85 + database/web/assets/ik.svg | 12 + database/web/assets/im-line-icons.eot | Bin 0 -> 48168 bytes database/web/assets/im-line-icons.svg | 158 ++ database/web/assets/im-line-icons.ttf | Bin 0 -> 47980 bytes database/web/assets/im-line-icons.woff | Bin 0 -> 48056 bytes database/web/assets/index.svg | 14 + database/web/assets/inter.svg | 12 + database/web/assets/linked.svg | 29 + .../open-sans-v17-latin-ext_latin-600.eot | Bin 0 -> 21806 bytes .../open-sans-v17-latin-ext_latin-600.svg | 336 +++ .../open-sans-v17-latin-ext_latin-600.ttf | Bin 0 -> 40548 bytes .../open-sans-v17-latin-ext_latin-600.woff | Bin 0 -> 25196 bytes .../open-sans-v17-latin-ext_latin-600.woff2 | Bin 0 -> 20108 bytes .../open-sans-v17-latin-ext_latin-700.eot | Bin 0 -> 21716 bytes .../open-sans-v17-latin-ext_latin-700.svg | 334 +++ .../open-sans-v17-latin-ext_latin-700.ttf | Bin 0 -> 41412 bytes .../open-sans-v17-latin-ext_latin-700.woff | Bin 0 -> 25196 bytes .../open-sans-v17-latin-ext_latin-700.woff2 | Bin 0 -> 20108 bytes .../open-sans-v17-latin-ext_latin-regular.eot | Bin 0 -> 21049 bytes .../open-sans-v17-latin-ext_latin-regular.svg | 336 +++ .../open-sans-v17-latin-ext_latin-regular.ttf | Bin 0 -> 39364 bytes ...open-sans-v17-latin-ext_latin-regular.woff | Bin 0 -> 24364 bytes ...pen-sans-v17-latin-ext_latin-regular.woff2 | Bin 0 -> 19396 bytes database/web/assets/pfk.svg | 85 + database/web/assets/pk.svg | 76 + database/web/assets/union.svg | 19 + database/web/assets/watermark-meteor.svg | 48 + database/web/assets/watermark-moon.svg | 44 + database/web/assets/watermark-perseid.svg | 49 + database/web/backgroundImageBricks.svg | 23 + database/web/backgroundImageGrid.svg | 14 + database/web/backgroundImageLines.svg | 404 ++++ database/web/backgroundImageSquares.svg | 77 + database/web/backgroundImageTriangles.svg | 134 ++ database/web/compare.css | 186 ++ database/web/datensen-moon-modeler-report.css | 471 +++++ database/web/else-dark.svg | 30 + database/web/else-light.svg | 30 + database/{ => web}/guidancedb.dbml | 0 database/web/if-dark.svg | 27 + database/web/if-light.svg | 27 + database/web/im.css | 536 +++++ database/web/index.html | 344 ++++ database/web/lists.css | 94 + database/web/modals.css | 208 ++ database/web/not-dark.svg | 37 + database/web/not-light.svg | 31 + database/web/oneOf-dark.svg | 38 + database/web/oneOf-light.svg | 35 + database/web/scrollbars.css | 29 + database/web/searchbar.css | 66 + database/web/style.css | 1826 +++++++++++++++++ database/web/then-dark.svg | 24 + database/web/then-light.svg | 24 + 63 files changed, 6601 insertions(+), 41 deletions(-) create mode 100644 database/.DS_Store create mode 100644 database/database-report.pdf create mode 100644 database/web/allOf-dark.svg create mode 100644 database/web/allOf-light.svg create mode 100644 database/web/anyOf-dark.svg create mode 100644 database/web/anyOf-light.svg create mode 100644 database/web/assets/ak.svg create mode 100644 database/web/assets/fk.svg create mode 100644 database/web/assets/ik.svg create mode 100644 database/web/assets/im-line-icons.eot create mode 100644 database/web/assets/im-line-icons.svg create mode 100644 database/web/assets/im-line-icons.ttf create mode 100644 database/web/assets/im-line-icons.woff create mode 100644 database/web/assets/index.svg create mode 100644 database/web/assets/inter.svg create mode 100644 database/web/assets/linked.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.eot create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.ttf create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.woff create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.eot create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.ttf create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.woff create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.woff2 create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.eot create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.woff create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 create mode 100644 database/web/assets/pfk.svg create mode 100644 database/web/assets/pk.svg create mode 100644 database/web/assets/union.svg create mode 100644 database/web/assets/watermark-meteor.svg create mode 100644 database/web/assets/watermark-moon.svg create mode 100644 database/web/assets/watermark-perseid.svg create mode 100644 database/web/backgroundImageBricks.svg create mode 100644 database/web/backgroundImageGrid.svg create mode 100644 database/web/backgroundImageLines.svg create mode 100644 database/web/backgroundImageSquares.svg create mode 100644 database/web/backgroundImageTriangles.svg create mode 100644 database/web/compare.css create mode 100644 database/web/datensen-moon-modeler-report.css create mode 100644 database/web/else-dark.svg create mode 100644 database/web/else-light.svg rename database/{ => web}/guidancedb.dbml (100%) create mode 100644 database/web/if-dark.svg create mode 100644 database/web/if-light.svg create mode 100644 database/web/im.css create mode 100644 database/web/index.html create mode 100644 database/web/lists.css create mode 100644 database/web/modals.css create mode 100644 database/web/not-dark.svg create mode 100644 database/web/not-light.svg create mode 100644 database/web/oneOf-dark.svg create mode 100644 database/web/oneOf-light.svg create mode 100644 database/web/scrollbars.css create mode 100644 database/web/searchbar.css create mode 100644 database/web/style.css create mode 100644 database/web/then-dark.svg create mode 100644 database/web/then-light.svg diff --git a/database/.DS_Store b/database/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..edc74b0b58e1323e79dd60115ef7c5d565f266b8 GIT binary patch literal 6148 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
    {5Nu5ZU-p$wf6d#;%CfA>ref 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 z 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 CSMvV= literal 0 HcmV?d00001 diff --git a/database/web/allOf-dark.svg b/database/web/allOf-dark.svg new file mode 100644 index 000000000..1912cb22d --- /dev/null +++ b/database/web/allOf-dark.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/allOf-light.svg b/database/web/allOf-light.svg new file mode 100644 index 000000000..0b219d0ce --- /dev/null +++ b/database/web/allOf-light.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/anyOf-dark.svg b/database/web/anyOf-dark.svg new file mode 100644 index 000000000..d2c7f93eb --- /dev/null +++ b/database/web/anyOf-dark.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/anyOf-light.svg b/database/web/anyOf-light.svg new file mode 100644 index 000000000..e9996ad3e --- /dev/null +++ b/database/web/anyOf-light.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/ak.svg b/database/web/assets/ak.svg new file mode 100644 index 000000000..578f8dba8 --- /dev/null +++ b/database/web/assets/ak.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/fk.svg b/database/web/assets/fk.svg new file mode 100644 index 000000000..85f8ef275 --- /dev/null +++ b/database/web/assets/fk.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/ik.svg b/database/web/assets/ik.svg new file mode 100644 index 000000000..a9d01acdf --- /dev/null +++ b/database/web/assets/ik.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/database/web/assets/im-line-icons.eot b/database/web/assets/im-line-icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..b92244bdd62e8c63366b380f347ee71b1e8df21a GIT binary patch literal 48168 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 + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/database/web/assets/im-line-icons.ttf b/database/web/assets/im-line-icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c683fc93e60cb4aa360c99f47becfe98cbd68d2e GIT binary patch literal 47980 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 + + + + + + + + + + + diff --git a/database/web/assets/inter.svg b/database/web/assets/inter.svg new file mode 100644 index 000000000..2178f71ce --- /dev/null +++ b/database/web/assets/inter.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/database/web/assets/linked.svg b/database/web/assets/linked.svg new file mode 100644 index 000000000..272b4da60 --- /dev/null +++ b/database/web/assets/linked.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.eot b/database/web/assets/open-sans-v17-latin-ext_latin-600.eot new file mode 100644 index 0000000000000000000000000000000000000000..078e134c6ade0a728d8d65d080e9b3964df7784a GIT binary patch literal 21806 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 z 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.svg b/database/web/assets/open-sans-v17-latin-ext_latin-600.svg new file mode 100644 index 000000000..410561e78 --- /dev/null +++ b/database/web/assets/open-sans-v17-latin-ext_latin-600.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-600.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c416212a08b30a3385269bb9f140898092a77029 GIT binary patch literal 40548 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.woff b/database/web/assets/open-sans-v17-latin-ext_latin-600.woff new file mode 100644 index 0000000000000000000000000000000000000000..adaf3a1e506cb74dcf61dc44ab100edd96de0a5b GIT binary patch literal 25196 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%0D+;P~dyjvK_N{VrBp&BbqP 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 L0ET5o`Tzg`D4n?k literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 b/database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..24449199fa85ae96c377812694f376c41cace82c GIT binary patch literal 20108 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.eot b/database/web/assets/open-sans-v17-latin-ext_latin-700.eot new file mode 100644 index 0000000000000000000000000000000000000000..cd63ec4f24b903c58e01595890b249763b02550f GIT binary patch literal 21716 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 Ye`*fA;BKRbh61o3=7dAFwrLKD+=OoGH2?qr literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.svg b/database/web/assets/open-sans-v17-latin-ext_latin-700.svg new file mode 100644 index 000000000..8e6b61ade --- /dev/null +++ b/database/web/assets/open-sans-v17-latin-ext_latin-700.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..885fb68ed4eb23c15408465651a89b9e20874723 GIT binary patch literal 41412 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.woff b/database/web/assets/open-sans-v17-latin-ext_latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..46bbd7588bec59b97337227afab2f7d528a0bcc2 GIT binary patch literal 25196 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%0D2Awa4onyJO*9~ABX=TxsVaaGc+eU z1$~N9*cj{{F5=bk0r(>PEa4G5iSJ}Xaz1&D!l)wDOzIT%p3Xs6r{~gF7@DcctY&_& zjo1z+qP}nwr$(qVKz=Pj(cy3k=vj~ zU{p358=Z|I#!-+5m>>?SfTo};I1e6xx8Mg%4Rb>X1uP9~!#1!F91G{c^>9DD0Pnyj zs3K~FI-$X6GFpPRqJ!uxx`$q&Z#V_ci7{5V60V2a;r@6MeoQziNotYSq#GGaW|CE8 zH#tr&(G0X8b!kK^(Z;kr?M;W%WAv|?!7ON6X3VT$HZa?m`>mu_HVat3RnBT)b+jJX zE$p85NPDWi(B5PpvM<|@?GN^EC#93s0gmUCa4I`ZoUYCmmV)JEm?>6~HDaCE5H^)9 zXFJ(Zc9A_|@7Zsjmgnb;7w0v2OWuo*;#>HyqT>V=p{OF7imqaS7%ldQSK^OL-Lmdr zceVRM=8=}vvYKozd&<#rj$A7b$?Niqm%($q*4`ZNjGxLUeqVp6Ki1#vKZ_-ZRf-)i z78ERB3kLP zx~6WWd+RZJj$Wa+=mYwUeyHE+Us2j9f5f5^QO&4H)HNFT4+$*xYybcO0004)0Ez$> z09XJ800ICI051Ss000310Sf>F00DT~bj^WALva*<@!#6Yf)Gf;{{hrB*AQ8yb3PCXp(o=2kL^LS<=aEjO1nh0NB_om*4a?#=wp6%;B!)dm1ba6yOw z004N}WWfWLLID5(!0E4T+j?u;RyH3xQ@5=HG$R1&RaMP|YJ>uT7OmQ}>(Hr7w;sLv z^cyf}$gmNk#*CXVY09)2v*yfOuxQD$6|2^)+puZNwjI0n>^pGi$gvZr&YZh&>B_Ym zx9;3~@aW027q8yD`|#<@w;#X${0obSiit}|N=eJe%E>DzDk-aI5CjjvVE_OC1CyI= z+qP}nwr$(CZM2DeZTzoc8N(UDUS{%~kxXP93kYDj!5C|BhB1wgd}0E#7|mhs z@_~f}@`cZQWhrYp$#K@vlx9q(Ij3pC2~P2XmR#Zj7gX`dBq#X(3Uo| zqXX^f$YMIth0b)P8$IYwPkQl^-t?sp{TM)hcCds&3}i4vc+FdO8N!f;GPGd~%OCz4 z&hSPsBLBolMmCBX)o4aHhB1w0Y~vW$c*ZvY-}zxe6Pef~CN-JKO<_t?nc6g5Gp*@N zZw51($;@UktJ%zM4s)7|hdeU3dCY4*^IO1z7P7EKENU@}Tf&lTV56lhZ5hj2&hl2U zqLr-7FMjiwCswhl)vRs}Yg)_N*0HYjtZxGw+Q`N>v8l~$ZVOwo+g7%=jcs|#GuyG! z_I9wNo$PEEyV{NGJm4m`xXm5zbAx+!w}(CLWpDe~*M4kbGuznC5w@_EqYPyfLH2h5 z``FJOzB$lA4t5CRdFN1vIouJBbd;kV<5`lFMlhS+7 z9l>LX1cN^iX-~frLt=6>|52IY3@wsYh}cS=ro%~FJ%ct(X^4k&%CwR(MUvrzhG!tu zAs(tiNqCAWG8r?jnVruBye4d^qw!Q#5vv24Fxr%vA|^~LTE&?k1dt@dLBOGt)p?XL zkW~jhWt{n;0ZB5f2oA|kV5A6)>@-G-I&^oKn$IZ~>lVR7vK!=C#97I)pjnZ ztyWd|M9$HJMi1wq2OWAiM-Litfmy~Oxd^7w1k-pKR;$8lmsqB9h%TEItLi|m+=>zF z5MTMOERtMdSJt6*rMWCxwu!4(UplnmQ+(xjphYG(f!mir-v#<@smVR|`tH!VU+(hv zPuUVm7N#?7yx?#2Q^vy#Nx?BWF@l;BwOZ=#ML1g~oUNNe)4J~$#0~m+acJL6IcPB4 zv|m0Hxx*jd5OXfwS^-mX+NLwk)2;2b9$A2aibk2$%Dvs_^|!X0t0f<$Ja9&Xt^zg73}uG#Z<&EEchG`zK2004N}6ic;X15pf>auhZ*V;Fzx zFq=Wf_Ud3CX5Qrfb)F$OK!)%JCb1r@J`aR;gA_!80=okFg?1pDvL|B--%tLl& zBNH0P$PAh&)$U>R>2_GJo}Ny1s~4RW#}$`=Xb^z_5^(_R JOh5?$001b+BU<4oqgF*+A3k-pH z8w!s#;_ZV1oCgHL-*;(Il#$kYj*4L806_FVf$aZ3BRLtvfj?|&mDwLMW|aCUm@%6V zQMHQ?dMdg?x~_1fz%t4phkV;oB#%>f=0Yl>c<0E8bu@m z(f>ui{kJ;+b90g-rA9=^HY(R_Y-7O~(Hjidh!Uw1k;su2ks>1C0I_Hh3!~5`T5QD2 z{eNiA{=Tsc__9+;v4LX2LeRFUgh|qbv`yJGO^rI1iqX_qG1jSSD$a_{&*!k>!dAp* zj`pkiA~GT~66gUHaQ6(?5>FpZFVw&Xdm!8w@{f^c#7TL|F9={~rOqgfVND-{dS0Kd zvqlCdu8_e2Pyhk2o8tdBmnPYRK~I2GkgIwMlaxZF0eNSh7Y5&xl6`%4aI%bEAQexy zelJdX>UH^WtGKli&Ts zkqDuRM!XX8vE596B@t@iQY~GE43GdA05D%7FX*2CN2QYk>7Ke_Gu3Qou{*j|vdKHW^PMB*NI8X`bO^a~=c1bZGqZzDK-K{uc>=);Ab5eq zB?!8(vyl8iN(ITvDFgzSs0@NSKc3{E;2gUYDp_`}QmS(0zOh@EAs1a?w=V5}PL-rt*({SLt<5yw>rSscbB7V`xiAKvbtR^0ZY%bdkH?_nr0}a>wa_ zgROy5DYgRJ?*IOmv;Mz17~87d^SD>WW0;GrYvWVlWjtFuPgImfND)wkmb^;F3^r#hy156$>s%GYw%)T9`I zh(yeYk$6q?e&j*WMCK+#-%b`Rh+CXIZ+=#g6#|g?)ngePKu#K*ITYf6fV_qxHjW2J z&&LbVBjk}ir!kbnIb3ij`v{e9^WzZR^Vjd53Gm>5xDd5&SYFqi?u0C@md9#RninSB1u^ey4ZOYLK< z4B7zzH;GpPG8O=VjX)b1rko>}$pd7E=0eRqa+lnfA)AqznWX9N z9SCGKJi@-jw`3R=5lZ#6I>PaCT%_AfZ{s(Mw0mifrhQAhdW{=$Z#m_NQn|mfyVu1Q z^do`PKb;Bh>oc0p7-u(AE@UQQKbCYUat)Op9nXXAxp;3?j*PgAt;(XX$ z_~cL80n|%HG(Lvw1S;?YUJGV3@*ooM?l`O)28}`@ z;4moR>uakk%S($3^K-M8FI~JaHF@?-);Y~i*(b+_GFE?IZ+BNZ^7?^tNd&-LuEo#1H+X3#dXHigz-Kqd$0SV=PP{4-YO#V$O6a25)5(2VpRVJ*k=#!cW{6bq=U~YFp7Zd(ym7nm$|;yF+*MLib3Zn{F=>MOh-LE z`X%90KvfC2ww=2_0`7GMmfyxpYT7fnbq@w>n-UDn(soc7{;ccFULbbn^d?ou$`B-r zkU%$K+Yk(2>u@w}cN~N@d4*^b@-^ZYa|#T9aM8Ub!>vW3kj?na_7z@3YKS=%*IXO` zzZO8a1vGeOR$|PG=l4IcnI6c{#fwU;lY$vO7z*($Bow5xa}dk&q^{q{n^oBdYdI}u z2IwMt*%wV5FPQMz=r`J95N^@3AIiBT7;Z}7rFWVK(Ha!drHkr#;P=Uc(oCKQF0z+k zh!r9WJ`IV3hCH9koDqhKfc))(pd;2)jtWh(hsZoCA^IrRUNUWYtR@f9^wBYzq2!xs zG=o%0>!^{U1T$;*Oz!N#NuTTh_4lYGHgE+vP)zPBIESQu?hmLPMX3vEO0U7Z+J;>4 z7&z1Q@M4b8LC7VnF~l86IVma)VyZt`)*(*acZL;KI#NeTB1T0^K!TH*D38PhW#HT& zuj8rMEr~!=)@aAmE?q1ef|Issf)stkR-wawU>R2)wQ8vC6!?*HKQf6m%EJw($S}9Z z5Urq+?J~vMTaH)dWdSra8XO238y?f~&4vI9SP78rH46b`7Tg^Ax%!wWl(NK7g|Tv~ zQ_O2<%^oYu5g1MdP^u5{g$&sU?5cZwi`{W%r zqX&?Oy=LK485yV$G5lq%A%nkc;2aJugy@$|`L%(KqF+$a={l((s`8Kl1$+xpFk;mq zl*%h|$p5B>POL?Xq3sSv4~tSdfo8at6*Wt$3Zum$Tu|Y(lp4}H5h1v?#Jl1=#nZgU z=ru@$+t$}K<6VqU8qqgBxEG(HP_5@XIE-{IIjMvxu7a&=+0C>zMz|n8MDQ#u}o%oT6^&mGH>{3j1TO?&IQi7MB&+E47(?u z+bl@t5LYpR;Xa;OR`Kg#O?7s168$>nWQK~o3)Q>w)OK+fowsa--Qv46c36gSjs562 zyTX?N8jvQnsS}O6 ze4CrRVA#QqG=&Aiq4zT~%Bt$S zkIIbLMqDIq&V|#Hw$+Tu<6Er@12E?Peyh(oq)5ZWC1g*uQx*A39K4+u1J*&#< z8`zt*E~C!n=h&#rjYRC0i-Uf|Y($_8CE4{^2=IZs+))H0Ql~=6hVM+cC8H-LPy8CH z8DYW9kEdE0L?|a+Mn3e1&D6f}Xw>m{pqt6I41!GWB44(!)4qYkP6{7)jwrI8^Sk%JP!*md*B_S<;?~D^l&7 zMiSDtm0+)^0ZLdC>4&U@28tc!gc`P$OklnB$6!rjc4`9=IVCP-Ks2NODK%W`B96JZC&za8}@v!SnLJ{TS#R3a!j9H_0Vra=! zb^}u@R1HCu%7}~-y3Gqrg7Anj3YOTT9#_5J`OXKrF|eSgylcB%^vu<1QIn_Nh|R5} zx@!OtUGwC;xUQMsE{oPnx41P1G`Uu0#yRW^h8K#P z*)N|qAEK9MgzRL$$k`@h*GM;#fl$$LqB?`llst%eALSGJneEQQJ@P_m^BS_FocP&x z^EA5l)O^#GqZ>hAgvHN<_d`bHtRMu%NU?h@K>Rb2kVi2Xkcttc=#Qr2Z#&V9nZDUp zgj|M>i5smJ5!IP&8JyX6k1hx2ST6nKwuyVoX0mOTwo9ui;}W1RC-}uI&w6=%0#^j< zSPHtCkv%p;>u1g;&%x#`4jA~zu)~QEfwM+w_g_9|Q!7N0@~aJiT&Jv71p+Ar-j?e{-O!C`mG;aM1HqFm^&nbx*(i^Y_c)sQEo0yy0aWe}s#_W@Xw(j4J$hXN z3rW-S{>N{COdxe)9b7tX07TPO+;nOBGq*3GZvUnJ*Q`VzOFfHeRB*HDcXmP6=ACXh zzhD>VUUN#m*7zEe(j>LWqfxV_^Sss|*3|Z#=DFw=Y_w+ZPG*@{l0$LYd8}ilhUTr; zPr({Z;m0Ho#KIY{YR=sl{Z#H^6w6@X=iGK#)+0VHToi^L3}i@2lA~WcOpoonJ9Kns z5IavKUz|9;-?1nI6dBK)f><&*mkfkwiOr+w zC9Mr{^blYqo&(Ju)|R9zdY0b+x{`CZLt=dNS)Yv#qG$AZW;$5M4yR~+@Lb$|w>Xon z=ig8zT|2=IlymCzKDK9Vs5k3obmgaK*tLQN4KUD{NrG>v&0&uV?YRvEXqK=Bz~Q;? zm~!Ce;w0 z8D~i;bmDavX^mc4=NOZMW!I0sYssD3$b^$rSQ^zRB=voUufSRH&MEt-%zY5^r zSb<9Uw?joJbZX2ohV?vk3TZK`xJ;hTjgcj$cyii{4ZIA?$_G7fw{7+dL&X^JdwatItTFCE@pQ%ZRAK|IUMFa&#@Z@IRPg|w^$UcE%%6!@9mxr$@0M?)Sh9) z>p*MM!SC})(L!3t+U}Izqbgwlba0A7kE%S`<_h_awyKN(XYC^NF+bfvZfW7|Tc;1> z6u~m^3IU;Dk1H&gg}ZT#)g6uq>vdJGL1f6kceBakN9=T^zgvBWdP-{_&*QTQX#@NYnkQO9!R5EAIdJS$(Hy zbicZ%aYmB?7H*oU>e@d!Qgi3mk2<;A8wb_>jSnf{J!QRh z{EZ=5N&gRrHLh*-nvuVhe{$($Jmhkh^zS~mm`|5`<0_)Fr3iBDI#4>0PAVU#wd5^P zJZ%sUB>!()6`8k`eGn`74{2ilpBRCEM)uu!3IFvNPSBR9MDQj%I$+a~Xhq~ZEl`ig zzvwzyJNEqep)u+3MNC3#CnLus+QB=RMy8!7cwxF`*?wj2U4{|Gi;Tpfq%ibA?b!Im z@d3$9CsDGmm>=C_A85Kk#nfS!7Eas7tmWh}EL?8J$lLb{_sT6IS}c zC5jP^7A*r+*5B$`Wy__f!K~MnghZ9q_3wLOID;`=F_~z|-%^%-{!S2M9M~rj+Vgt) z?ax=6!cv>9d)z#Yqc<6m1?lY2G-hByDmf*i4fa{vb6`g@|y|6O0QSt&X+KP&`_+Sqam$7f6_p5680+ncDssVaq;M4DRxfRm4&BcPsEPA^m?EP zmzQ5J!MnO&t8Xd%^)2_zU89b3w)f@q^%bN39ZNI4{mfS|qq~Cn`(<_Ivfvw^p>cQD zBVJGXd;_vX%EjLpyJntl_OXfd14a4~HBr~oHN&nS395dno1Und-Mo(wE9A}DC=N{I zr*(x%iJn$Z>nXdV`F>wVmXSD|6-V&(Omi!2bI81#lNu7n6Yzq1&R@PIw6zi2^cpWP zgnQ>g&Wl>^@UrGDK6@U{_)FIBu!GPk8<9=f1?K>9bs@YY73TZmLdR&~Z9_gBfLC#c za*l%p7jQyrOIRNt`Go&I?{R7VtHko| zfaGpav34h@Jy1ygM_}jHiqj--oFx{4W=oY!*w$US}8IZ#t2KQ9v@b)4orB;T2_Zoap1M?6UFsZT&w|g}{ysKM|E%wtV`T#>ev?AO)Q&6T>JV zK=9^f%$kyr$cS=!U0@O9>i2W6vD(YGxn*~9ZL!;o3U7Zf5f)!JtNQtHbBL~41G{HM z3+E6BCgyN|r*cH0b77)KBWqIV?Rvrkt2i)YFUhgTdz%*+7& z7_l~W2$~iQm_{|U?`8b**O@6VdkISk;@zi6gYW)eAEG)n)6UXdomxb)j(43md9u?B zn7CsywfoQ^0kI4aZvXS-1AzB`P?rIz^}06~I8p~ULNqdH>0 z$Foi!Ij=Pw)tnR<)7Q}v+YS$t6?IZmF%_9?bobf9sHW>W?^4`$y}8G55JBv*IvwL9 zvNInbM`f3x^G{;hMCCI=!=V5{+O)5fV6{hnOXd^_v}z5uW_x4Y_pZwiS{ z6OQXU5*MGw&*+ylH&G|&K7egUZJ7t$Q zAb}8F)K)T8aStVfC7@}Zy^t4!_iqaevrEjwd^)J0$Cm0nzWn?|Fl;(6!XM=b@94kE z;`@P;Eryh(l1|W*BQMTKLIO7o%cV{6JzgJ)yeKit+3m{q%LU;i!fz2TVV^cR$FWsHB9|Jwyi$t+vUMV<9QEm3u<%&*LRc;S-d6A)W0>~B;2r?*mp5apb52~pR?PTJP zu=rH6o9uERIA>SAKx0FQ-(9`^sAsVPDNn&ligq+u++R!xh%q~8F5ESd(+$KG*t4{K zUou`ZeA(I=_I{gLTUoyNK;q*hWwJ=DkZ8Du?}H?aTJ4T&|K6n*4|l0=92ogTs1`#W z-IT%7;TCO$5h3Yl&}YUlB1uVo?mf zPd_FynygiiOD+Kn|18M~o5qpjuUmF~3O#~DU`)iklA{uM{Xj+>yd2nOHBt{ax5 zgcxU0&opY`m&`nJh&AlIO$MB{7S3tJ=4jwFa;!tGGF`man4D&Kijt3Ro{ddczz=?l zhrXZ{Jxk-`9(uXW{y^}N%47A;!E+tJ0#~0+jB2`$b82GeMa&K*U!7rknB`auygrCD znOT^cB>S(NaY-any{Qu^ODPq-b%X~3iu>Uv_;_a3;L_mK{PIih@yFp-fjL>#)md4- zmQj(u)>%2+@|+w??-;hFUq(h%WmZNYG%S${%}A@<7H;MLfJNZMkjOF7L{eO|2Qenr zQ8(XT*vBqwb87I{>0i?Qt;XBmgTGIgZl2h5jHgr9d?^<`hIE8$^gJ+ma|Kjx{=2ih z-rH324TMH1lt{*!fgz#Tc+*yw#_s4V8I%{!5xCmj{`rL};zN?*j4gUH*}%gG>Y>HM z7N2={8j;ING$YvhAejLLV1gx)CY_uK!=YT^IINSSyBo~a%v|k^Cb>Go@E8{-0;VJI zzM^UK{aZ+6O}^rSUA|iBtrXjWd+-0eee>qW9JiT(?TWLrg(%#a3kaCMdnaISKH%=m zgipZ3M-KxYO!}0~w6`g%w6?Y@x3!M`=xquI|5cCfNq4~|XCy^Mw{u2;q5R3&#zuD*VXuUqn$@(Y&=XE=XY z@-&w|E?M8e7InXW9mcTrhU)(|B!|+|>Z@~Z6rU|frUh_wk|F|w4UO7AR`gg)1jw?Y zJyI{9zE+Wox>@6sUct7aTN2|g_)|$1cKXs5=2X2RX6d^+CsuY#wzJ&yE0v3L&P*?m z#lbx^MD@|5RQid)toXiZNl4(DG54sEXNsq{Gt2C+fTzG2R|VMs;^OvIpaqbq?UXNB ztHq+{%e#O63cUKa?r)y-SYX~)KrMfA>f+B45pvy~z7k4q&eRS?LgPdqR)Nm6#9()C z^2G`Sw*4VEa`jQxFJ#o4gWElv z;IrisfhbF?lY;@RvvD+V*-cTA1QHbL5Fx>7#O&A~OMKt! z#Z2eeq1wvx@ho;G!M`$iD7G^`#jGleNMmQQPGwjVZ^-G@_6{=UhA=)9X-RVZ($PQSeOiajevMVYQ1;$%Dc^q@hA~BP4 zBZ4C!iSxRj_)ad?{h7a*ExsAj%WTv>v1j(f^ay>Ms6S$GQz?!=oj={nFSj%-B{fX@%PXm^{v)xG z>4ip zJVYuOWAh*mLDMX@DV*6Dfnd}(%ee(_ih@K7YjQo?j#}0PCJP42U>sj}x}>q&?{$*L zE$;_fr$u#7K$V*8eF&+=Gt!|v)~OLqQLu~ zUB3r!FKO^8&xn8EbW<%oMCJ3sEF9(>TA(e>bIpDGE|ub}cK2^F5o!Ef)d6NsVJxM% zhs)pw1Mk-n^J4xOn;SD*Tq*3T?W)$O3^6P^CR~(WsIC>-pRDl>3m*-Vu6y7x>69pqTLJ zHqtO|>T1kwYk_il(iH#MZZg2BUek&)PMW?J+W>isHjbMfi8X_`_vawG$!TpHhVUE z!Z|zpg#4_0EzHd+psFRh(475$5A+1hvWwdx1GmO6-#?df4E^3uReSx!mGOxI(hNCd z_QuZ!ew+J7|CPzQ*khRYWL1~wV)XLLGS*>*N88Z|)4@k#71&t321=)g9#fPZ7hRFV zFZ(1+leQv(ltCk=VqFEMOQc>!rUZJ4NAeQc){?qr6l3F1Gk+StELkRHSv4R_GjD8{ zF>MjqhzItZvi!KXqU;#X$(;C@iu|(?$ji+5!N$}q9DngzAzz*G$5RNTy1)gM>(}A2 zVV@fYF(?&d*e@*=Dz&upW7q?B-tjb*g=&8?h3duiHkQ8H*ZHJV)+O9TtZ`|iv;V31^&{rEhGwc1uWeanVp z20DF*$0iw0BoZA%9$NKZm5!O@+W_}1;!B)(2J&UfSjH{EM71}Rl)`w=Ak&#jOGpFt zdkTKc$5vFIdQs|O6hD9pC+aDqF4PGt)y2OliaHHU`Y0bY(6(n>a986`yeTgkYqhV` zVSPcK91mq;$W~KLYe_M;t+Ao5M7c#IX4{fp@Lx#MVCgdUmIC? zFr9rBJRPD$RcRg_@0)46aj9j!k9GnTs@XSkN!IcJA< zDPjJY*0#mp=l}Km+gt2z;6EXBNh%1cHYUAz-UTht^4bUe@oZ%|kIS^YL6v}>!n(LF z-;zOP<8Yzmck3WR5B=1j>dz0E^}F@iO*yXH7MbjJFTs#vOZIBkO}NXdoc&a<{Zx;A zTaWX=UvsF5t1CF1?3U?Wbgi+&W6TC^M80y~!`J1NxfK|Pv7#dEV{s13P4T25LosN$ zo13!@5A&5q2Y_+Gi|@A#A1Pdcx(-${cE+^!5f4~`W)eZO}z zzVed%P>cJ-fkxJv?iC$VZVQ|#i;7Sxdk|dPq=&z3)-u1k(N@$htdf%(W%iTCrWu`A z!;58|yf+mo2Z#gkj|m{1zc@`t)3kT$}hmw8G1ZPwj26@D;k3c&K`1_yi+3`Pk2|x z;5X^eOGY4uT7%d9DH(-55}pw{s07)xFWV9HwN=S7dSFlaF{SeMp2oId5X&_#jUdKU z%iu)Xr^dhn8!hk9gb$&+s09DbOx3MmY^Ki#B|2!@5oou^3d{^;TLJbo(}A3(QnYs# z+<3|fvf+?HwhMg@`mM=Qga8U!5WGk_~lxJ(LW{@wLBC00%GiciJcFg`?pM&l;y*&{Nf%{q1 z3ldsqk4Hff3d6$}6;W)-$i*-f?Q7V>V%SRvG&BR4t_>JIJl{}g>r}D5i1OU0S9HNF;gDvM+h_|9%)~bW3mlC3VjiX)6uIb! z66=uzwS7T{P*NY=tgS_fjl}u9M=z_r0OW4&Hdp-Tvf&mf+?hhjgQguH)!I!rDXs2S zlvn0fLHhd;np`El@!qcr$`@3o{A-&S6}iZ(MsHj}f^7O`AK7;E5Tt1s?TMm1p}xAc z`bA%6{rgs($sG_4}gzKeKB1HRjZt=WhYt~_We*c?;L_4d#nZ#of)IlX;uN@ed9 zT^8K0&P~x6y6OAtqiH_I!6B@y8WJY-Z~ko*K}qiis;}zyZUUCk3#nItYB5-?f6bby zp4KDmchgRMmw{-V9YH9X{t;@ zIT@Cn&j5DO2gm=T89 z5%8q47iIrUoGl|CEZ_$Qj)U67=np559FIx{Krb!F|y}JzUFrEuxF(wz6 zBt8F=__8JGgwNgW+bM@MXlvXM#it(HW~6wvbtys9B*k~oGQ&g5g#uiIBz;Rduj)H5 z%2_~Y3$3*bj3sEI(ZHFw0EZ(<-`3^5z-mN|O#8$-)S^|GU#FygYUPUVIF}p0KTQ;D ziQZ2+Yg%sDXv&?4?PH^2dS;$r)^c>)R-VMGBn@%D1WAHBBxixSYUr3-%(GoBmIKm6`$;VuE-cQLDTZBYaBIZy)!PGr(GcbZ*O!gZ@L&87h6 zlu=5=n$+ScSYo0+KQyUtDcK7>f%@b*F!|skXEov{*`^U#7`r^aZQYJ#n*HMoY_J`PMQP-A&p?u)IhIz1JtVc$(5 z9q2T*q_T06F(;zE=L*6PE4jss4N5=m9q4tEVr2zL(ZzU53X0HtoCd5^x+ayz*S$SH zo>Co;y4}^Wf&^Vyt~2o#ha_E}UCbD){Ry4a^$Uwx9{pQ|IlKb;)s>eGQ^2k~I5mCi zZwSvZA5@G0uj&B0X=p@b`}i1M-TudeFlj}~Iwk?Q?z)~b<@@hxPy3_8Q6%pbb8Qq! z@^@0F2;K}E3K0U!n!Zt)1&FLsLRZ867gRZof9Bqv54+jNdheWPghijVHf_m)eb+@v zSy*hQNr=ewd^p-1!Uppmg0c+E4|zXz8su9TdKk_2`>vxs8Q#2F$&~4PTC;c?9vzO) z%cO0$5jM}CPgZ3MtzFK|WFmpW_F!GK0O`_9XuC<`*>$*%^0 zH+B=`%cO}U8JIUJ^qFHtzmmIM2M#niKxV(jBj<+p6^MvqDOa;{MrH?Hy~!IX%xTt= zv;uGX*M{MRn;Im~vBBhElxXi%AgR%hHlBrb(K(mrK`?G}UWe zU!gJ|Z*Yh0jO9QKVdwUu(?#!{{Vc(eK}LZ0F>7T{lf){X&X>xt&1=DXVg`{CE`#b| zcz$JoF&k)Q&BPbBd%6oj6D1U>g}oQSl#I;)Z(f58oHAO$m*I^Eb7@%P93enV!GU3d z>kZ(H6gWU}zR%P^YatESx9(yuomfxySq9Xa-tVAf0HUM6<2o2N1MvzrmMdUQq=1s> zUzDS1p`mM*&hQ~4RAN6ZfTbkTlH?e`B8F&1kl7iWY0c2n=|BNhYwpHJfl(QERbq+q zt$$CO^0>hbg9M8adu3{Dok4lv$0v@v&Z5l*K$1LpIw|MnHE5m$zfPPn(LB2sN!8a6 z_yv~gI$~h^?#};z>Vp=)<3|?K0SJqbQz{T?fFU$=Z#vYS{)p>3t%#w?5K45tyf1ZJ z<{LAx*ZOlDb8YD(-)6G3*+!w$#R}va3xF90ah1WCI3gpZq}?+E#5JcVMRoy!X=6N{ zAZNf9O|bt+DFY45H6*54H_ZbZs!zt{mg9J$z-)c5Z8YpE- zkpm05I}qU^O(j4QX;XXO27rzL&a>h+=PvLcC_EjOu5gfmWa_cL43{>F!V@R(kKHoF zbX+D|30oMiqy6?<-Tz!&#}Ll*yg1S?&!Gbio^n*?wO}yFnyN$=!RQbOl-mx8IVW`^ zB?_8=Opx0VQq%^zX6DZzZmGQzLd_{D)onuCu5%65 z#9<{n1s!-Ejq!%k9SptVif%9@qnQF_X0sh4K(fqQM@#PFZWgW8-Vo}^l6%ZStU_6v zNrN8a;2`=MHC%4ii%R(r5FlI9I_(jiYRFpMXp}JztK;n$%-uKMfQ0}I5)g9|@*Y5! zTkOFJ&XUeKrBR!qRh=?Hk1|9wVMyz~;8nP6-|*njqy*4t+8C*UBwIqM!eW{VFee23 zfST?TGG=t$QI4tHA?li&?A!o;E~QVv_xVz*ogT?bWi00$8q&;)Ec*dqO#T5AEAfkDw+T~#+{pXmzkIx)&gwAG1@mUlV|`4(K;bLA&+@E$nKp*XcX*& zwO#9w&VTVVQdt%+fketV4TwoIM__V##79Ctt@|MKuJoOOFbktl+-!=XLLuxnp%G{< z1-*fGjn%9v_(IqRueTqxvR0fJ=Z!~zL>z-vTC+2R%p_1=@D|0K#f-zMtcXUXK&Bcx zPsRXf6w<)zaf`;F=nl)qj%6efK=45x*{pj;6k4=uM7C;p>d|BeRfA|5oK|G;LK>J- zYMoI#bTwimk#^=98skXBf?UY@GCqmBC@a+3FcVn=0L-G50T*V9@`VxydslCyr#7Qf z8RQ|2|LOH7a83WiIG29Jvu~yr*{Dt@A?Af`&vE&K7k10@=C6bq{5T&^TZYYP}^!Dy_!YUPLYP($Iprely2RYk!BNU5DSFYn90x%>QaW zUvqwHHv7d)kT99_mHhAr?!Y8+|J6$UooCOQX1K(CjkXu**LFr?19PHe$KB$AJOBUb z)zL*@OT~qI|tsUQ2e0eHx!)QoFB0a zwav4#cB=6ODmcYBp~uMD%$trLOZ14_v5LrOU9(TgTJKAMZ_aCTCgTSxvTBH!MAji8 zA63s1$O@3+CeIJG`Y?p_-P>%kY=NEg{?g&p9E?UkGBw028}zsuY|aL_&`EX`!)XWs z#`=XJ=_Z4i#e!5)I=gIQTtgV9iSx)<1B&AcBMY-L`)nHVM6#_`JxnwYo!&n_w`z;5 zAv^FBNGgX{Z#x*ZEv;5kPMuPYtBeP`5w)!~o-qV*lcFeynMt3ZTD)>iD7e{LPzQE& zUy2WZL7rK91n{Jaq6SdEM|;1WinB~r^Kn`l;Yd0Gh)N65meO^uRgG;%?zW}nQ7M+9 zf&29c+4vXBIw9?sNLNi0MTuwa&^krwtn;H*GWD@^DxiHSfYxe26-gmRhlQ0v0xXXu zv&Wi!EwlyBHBYi$yBR9WnBC-h(l};q3g`jg2;^GNXzsDmfR0G9Le{8*6-hpXXkIn| z+AuH{!zKDFu^a7ulV<39k|a8#geK-HuEw!~>El2cZpTtuTPVX}QsrY^zj*NI{9O_j z1PB(;En&xn5Wxp7IR=g zzlRM<87Cbipk$^VMU$O(@M3F z^JxQlzFhH;q-u29$}m*c9d!L$90=9f?3kIipW01sdluuS0Y{To-WY&UL8ay~j=9-( z>?S}+UGcf(zaphX983(3Bm`*~%!w>9f>|Z~QC?TZkcbx+jxgmwFNw~3tLK}E8v6AK z+C1+$@ckL>n{PsSbhHlF{@s3YiT!BjIITrR;&*T9Kc8CITD6T}0A?8w4Gvg=6M_bB z=jc&(UGDA=n&hBN%9E#z0F4)(`)WN6cd71~73c$)XfL?4h0|0LD}+^n!~@&G*-(oN zqW8hn5LnewSFL9IYvy>N{_@_g5n(!#x~{oiF#E z*x|vcdWS)J44S-$@I8~*gAknaVp%ByjW$}F8P{Qk?L(azc*72)V=+bA^ikDzhT+7C zhmzdL)mPsm$M}@z8GuON`%m*T$VjF-TCW$2>Na2)?yGjgryJ2@qUx(h(>ZU^sl+YjAQRl! z&=6DuK>7l(?cPtwM=VEeN)-2s_t%3%AVpHX}5V;$0;XF^uiNuSiWLi3g zC1lM3eb6$IM`~=uHcW`ByDGQ{(xsb5<-o2IJHY#sOgT|GNdU*zkrO`0LgdTwD|@v}cjX*6SVma)Pt z9tFl+$$`z7{3Gil>c-iely#V{-$AGG+{`1Z&Z?i2VkyXXK$MMzw+!Ov+8(4jO}Swy zkW$Si_rkLirArAy)s~!_XLTH_D5}oV_rA(^Z^+ zZX+cY+I3!|IJ&+v1JM?88Das19>dis>pMYwi|^1Qs_5~SAD0%5$kCKV%bzz(t7f6$ z-ZbX{)m0djTBj69h6YD&`-mH995;mmA-?4J$0{!orls=97%RBAjA}V0p5qxVae;F! zTWY*-#%ZR#pB94R&~d(QG(Ed>lqQ zFX%I_0*g2_BNInF(U!}5)hiG9cRbb3KWzUHG-@TYvkUO%|G4c=PYtbrd6|f9Q*dsc ztQ(_Mk_9w{7r?cdv|G3L`7XrZC_tXGwGm*KI323|c9eQ(^hg(C_?;S;kapR-5=<@L zpfC@NR-WDW@m9{l96gGxQW^6(UPuLEr^$|}q1>^hK$hN7qvZMYT7jafl+ z#YqTE09n`)d34HIWkC~!bpj#E^jV@94ZfY9Q34K8l(nPKz-b+m6@?NC+JhdNY?IS^ z{03QmWDxy+)XL3TQ`q|W@~f1cCz{j%%AJ&>VrRK zYing9t5wO?70R})JC1Hhhw$`e@NWf&f|w>=CN(ZZ(bQv%x8a?O{iPdMO&nu99IUPY z+@+RWn&>jI!9>kkk?M^^e&VA%^Y%n;ad1M!Q_XF!`rZ?{@ZI&$SHsXW_Gh0JQFOev z?U$QacJW27S0LnABHf{>W)9)mBcXyk3oxG_VQ|{SeXvx5q@}f9j`WJ6mMrHGAK(+X z$6LHnap55nnRC7oWpRQo0%*kAcw*&7*#NO)Acbv$@Z~K$1+y0HQ7AS}-wQiGC#=d? zl2fA__q9Lu{48sEzW6yt(>76H;1LtLlA4rPWW*crE9O|@WaFZkery8oaKobL-Ie+T zs3E8lfMU@c?N}+yFvHZNMI5NXj>m@2#GC?Hc*Fv)2l!S4!!a))N&#}z-tYEkyDH9- zS1YEq(>bC})+K*+n!IKZiSA7C!S%aw-xxfZUN&1X5yAsFEywcHr;c)}?=5Dct62Mb zGH*al}AikewP z0B4oTMY&HJ;JQn{oIhmxytWE{j?R0{F_!A!)10hUsk1)?fHe>-x#RW2!&wBt@{kkB z#rz|Iw6ts9BA}Y_2JQM-C21rzAtU{D zhm8O93gq#FG`z6q2)Qk;9xcgEzDFMOpkwG-Yr{gS~MK8fRSbb2{wC`y8S^SUFR z;tk7dYXFQdp?*>5!;(C~hId|+<>7|}N@VPeZd%p{$oQt`SqT&>#oMhSU{>8%T&owl z>~wsqMC+Es%3lF%8=af?@dj@JRu7w}6bnGcdF!}w@H_f!nG__X4ASQ^q+KZfkxU0%&) zk~y(y=APE}a+%)JMPaYkOEgW+Y__}NCbTQNf4VBryc1?8JO1(worSUThZO{u)L7fk&Jw=mWwnMA7+HmUU?$p>C zWhwJVE&U!UaGc9V}wwmnd zAn*d97=c)7?kLlIhJIcA&1VX|WFLN_YX6nmwxty{n@=xI;1#sy>`O|^0yo7?4Zz*%c7w9r0-R$!Ci4F9NO>q#T6qOF7)9&Wz*uQA;yQ$_M=TqD zkf_YJAJGTee_N^NKa;WTX0Z0K@Mx4()0AZu6_@CH;M<&cC~N!eZZfldfMkwj8_!Np zAvB8N`r!mM8ydZ8U@{=___!HjVDZcRTwe>@Qn;@Lrn&h29-aCg!SQzjhZ|@-1J#5 z;!Dc|)>6SE^D*{ElEK(%5alPeG)O7Wdf{uU4??bM%Ei)5nZ` zC!%Xh)D~OMLwr7FtVudgaL9eBsu`1N7t<8SOI-$rF5m+IrvbIKEu+(l^dc7KURH33 ztVjQ^{s=txlRzg5SE{vn2$A5&@=1$L_lAEkeZ=YuXctzF}w@n zc{^p7!d!2@x!OVajZ_yzPYu}PI$UKs@K5o>qXFq&0{AmFKt4YfCcdJ z8iXVZEao0Rc?}lDUbqH_6rI=L(c9105YWf@M)B~62#261Q5LScOoMuI=Tr;NPd43L z^DMPsp)_Y@2VrHY5*DxMiny_bWG-{VaFbaYCdHmxVBUe|vVx!CIf{*(tOgjCjWRW5 zTPW4+EcM1I&S+V|s=l%8A08<_M2k=(M^yf31*+Bp!^%bFtm~HvWEpOFo&n53U2GLA zta)Nhzp)xJ5Mec;HEVLF=dfDL)?1hjSHsT9YZRvGoG znQ|2>Rq3a{0jvfZWUwJ@swwOoHvtNbal_)=@dTm=iAw-TDURZCM4?22Bqfo^6e^9*V6xbp_T8$^;|qi$v8I-`j&3g+>l+vv8Jn1znOj&| zS@+53wzhWm4vtRFE)*(_&R{m+N(`IB_d zuWq{Ky5F;WeC1Z^%RKoC6gsKMDaB4JQL0S23YDrp(6x=uirkbJBxM{SI8oaE< zD7_|neqN0dVA&jcoNQSa(UXTPg|D`)XY0vMG}-1iCR=t|PcgkOFzHc|Z`B8c^j?8W{70CJ$2` zAg-58b6`GCKJa@k>n~H!b&p#LHZs-wBy(f%!|pMywuN*wl{(mMqVT$(D~4MN>FKR# zs&LFEwPU*X%6d)Xm#_LpKf&ebE}>qY)>x99UJ-=V#$}a)^{w0+vnPb(!sDWu(SR(^ zH@0?`5TR}^kU;iGoM|9)foG-#}am3XD7PsA`ghe?LjR=bw58L{Snb$bM8d z=HvW<6X`oJci1ijzry?VeiO2vxWWd41|JTEBd)YXS)erZaxmD1#H7&{7i!YFmVzJA z4vp4*P(etB8710M41Jn6EJGT7aQKK%_>3>S;_brV3S)YXDbA}3_4#`WoQJFCkUbkS z*jcFKUVrZYqe;^|qVlgBKltJQ|9-?TH9QFMnuwPf^ev@mdKS7gCD~d`80bdb>^uBQ zgNc`Y)A^MwWN2d@f2PN#_sU5V_nYhH9n(yB?$2&^`)vAD>)14DjZ6=>GPu8GO~X6p zPXF)4OZ^y6qt=V)5%e;8v73ayhS)JW4%CS2qEF2~Oi**=b-Mk48{Iz4~hI1s@8pUVZg7qI*G!v8w<8me~ya literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.eot b/database/web/assets/open-sans-v17-latin-ext_latin-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b411f2e5139ba3d4bc535469fcfd9bd3178c662e GIT binary patch literal 21049 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

    -z=N^~oy%*9O3P6E6;ZMA^U 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg b/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg new file mode 100644 index 000000000..78eb653a7 --- /dev/null +++ b/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0a0d4838b9037918f76e8188ef179b34db353ce5 GIT binary patch literal 39364 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff b/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..efb8f0d315246d381774a7f96cfe3c55455d9f18 GIT binary patch literal 24364 zcmYg%V{j);AMHQ3ZQHh;jcwbuvm4vCHnwfswry;ZoAscHnkn2a6vO08oPc;ec#*7zzy!#vlngbjemTqqCXne514yy^CD~wJ$~xdF!+CE2|<{Eq3sN9O@Fk2 zAMNU=AM51YLdy>J&MrS)`0;{{0{~Dkp8p6p9h^*mxE}A1@Ak(BCDM{o$JjyjcU{~xG4}wFh2-LFbASFBOox}xRxat zB)I>($L9W96jO`SE1eh>6Z0haP=i;a1&9g^+ze0|0N?Y!{w7a>MCmG`g3Wf>N9R3H z{l!{r##wGgTVxN$cC_7S#wqoC`Hm^5GvCHy$wG4mB9smUP#3b=1E+=XQ-bs%!VZD^ z^mDMA^T?gZ*c}4p?7E68%JMC&@v_@b$v%P{19&IjI!v>o7IIHgn#P+X-%<$xz! z0snIg5cWXK=l#uyFU}cD7$mV4*`*ok+LqbC3_z~*9{%6B8KW2?n%^34fs_8yY^lpJ z6$GNihb4wZ!NUCN0lGsx6hK0RS|s~tKK|YEt@YjW-hxa?d}ogUq8R`p?8?H*ylI-& zH#;*s!kCyJoF5;bn-2q!xGthr`y~>}<==n<)wA!MTBD zK{*lSz}P-|*&f2LO3QPh!}VeK$y&Wer`zSOKYgK8F6Ea*Y!oWO0M7Nrzz59pFYo&` z8E!UK&eXV85`vG20>r^x5gmrq-vXOu$-nqPks>q*`Q9b+^f(X)DTxC~m=t6C zki1OVo|B4KnjgJVHqlqsT(f~eztlkH_9Iym4hgIfp*Pv?f2WKMPz8Cp*1}(76*Kk$i zr2Hyug|G@SQbj?AsNggaj&RlG-awT)%V}SzUsG}+ZULsb<3au~x>xn>R@yPz1H})< z#{am?HROJyPRTnyfWmXNX-+l2RFsYZ5ySc2K6A=h`>~TKxhVu5`RrRF)>uAjUR^BTZGt;cv>6{dM?zXUm1L6{P@=?RBZv`O&})_GPM*ZjKtf z00~7nS9@2_ZBuy0>|Kntuz5G{y7uCn-KLqhSrnSx+(aA0W^B!9`!5QSR=nA@YdQ!_ zhNWA2jyEWMlbIa#B|}VgfIQw#R9&0s##10Z>}usn`o zFUe^b^AB8}nf?rRevM)}oV#Ql&4CpXb1<<+@}h$RjQQUpaTP@PEO^|{p~fjBtR2h@ zBgY0dW{P_3e_WuTCHS6mp+V*?L-WA~RhY<%jvoJ*SfCIBBj-6~`#F}S71Trr+a}40 z{*K!;)U~DtiG}iSTCOAc9Lp zUsk7G<%ro)>a;ociXQv$$T7{4l2M&B@V}1q!GoPCx^cWrrn{}q&H7f=Xlg^JG|n~> z%m-L2%Ot@<$f{GxhN7aVu7(4qWmcOWps4Q6{Yitr^uudT6IRAF1hi#r=r8}3sQ9pG${oKjg*j%|2G9yX;$t(SZ0wq@pX7Md** z{$MoI=y@c087kVHV78^}ORLN=Xr=Cf!)XWI4n^oCG4zK-2>Y(B3SqNB}ed4gm4}4M6Z%|E&$-lO(q8pOfBVV}FxkBRp;dA{(N)4wVJS}OPC^1ukl4`7uCy$e8 z<+|6%o6z9Ix*!+aqC>EI<4EP-S^BE4%I+ftf-5BydJD~vX~MVkK12tk ziMPtYVjfl*wW3t1dYJUveqiF8k#4txiSBtR|CfPOq~aPWg||s_C(S>&x^Rg~G(eo+ zzBQQ;btUxkQZc);lw8-A$vjUbdZEcIYbg(xSTbtt@7-i%6HP~Ia01!KSx^z-40($5 z$&wA>so5-O_KvIOxE0eI+u?0D){QB*wL-;U*tWogfWlTzj+g3=);2CTNKm62*>bN} zZ&BmW(lmiN`L{ROn||orNbP*F9AN!JsM*m2;V+4IJ#`r)iVExUwRHZ6@>Mh$I#Yck zx!gBj#u_gI;$BY&d^jgUebZ4~OkvIsVx% zrToe9k>2e#*&Nml#_GYFwrUb29dzHY#_jJ9n2JBy$Vprbt?l(=j819ru1|KAJ z>ftPzr-uro{^)=!&gB-1Hovvs_e{2)Z2RTcS$FHsctzo@TETgH`ibmJPsMh&I^J|P zwHAC<VyRq5P!$qGmw;hj98k1b(bGNs; zJvdK{Ty{qC`Aj$utd`2x$GS)1ztRJshkFwsjXB*xiW6i&m9wI5V-@(s5oI?CyXQi$ zNcg|tSXf~)R2U@*H7kc{saI)Y^jI?sDf1kD;oa`_L`FOecVd01@- zrF;)?RNf|g`N&qTr`K3TR8eESwj0!8mnFF#lv|LL_slBJ#+ZO@!W(HdxD5QGNad|l zq@D0H#bdu2K-u{hPzv8YdJo7aNT=6CrO?Q;WegujE;kF_E^ApQ1<42>Ghui5n%4wK z#~h9j4;Ql`{R)v-R*`OKj3Q1?AmeJKjGuZpy?BP(=rMLqbhL}vH%T11mNxZ<*t1aM zf$S)~#*TdW!$z_flthOIPSOZzMJVN^$)5hVT)9HnU@0Ho=_bPF%_HN4*X(73%YO~T zgouAAWX7Dt;mPORGwW&KeZ-N5FsWAm)~^+oyY?nYXa)+^iKK2H+T0^4%s#>)j?K}c zud#^!cp_)-@&t;6$)Au=$Oco^hphm7!7K$dUe&Jwgwwbei5nQ9%V)ug|>Jk`F! zvt@v^Nw0ODB6sJs5eG%o0lLuh@#!JFb{9JMP44$)yDht``7Tk9UMRt7F^A$Sa>B7B zWC_}&O^rtqE)0Hsia6A@5KwWQ4{0mBwLkdRY^5MF(3IPtT@@0NHA>d8h)?WS4OuvM zyYdunnIv&Hy`%EphxSFw`rnUB@~Qr<|C|pfnljH*7-}|De({?%tQ~OTQS26S2J(%k z)CXT0PxiE{PH1z8&h91CUQD};(C7OAT)(xd@`CO91>hMdp%d%ASv3(7Px z2`Sjmb*{FrVjIvUW6~3KY@6kJaRo8q2~8cIAMdknqy$w#rh=4=5~gNJOq7}O%^^{Y z%!V|A87^shwIxxE%QR)H$*J3Yl*EmprdRo^KMN#oe9Sz)Ip}lWUzBeeKn^p9IITy< zDX!CW7XH4xPTgFl&2)Q4c2%RqV-9|146=;|X$Maw3M#ASUAr{Q6K8sD;=9MjjTn!P zN}eH&E5JSD6AidBL<*DMqc6~=#BJ)}jbX@2Te@Y==o3ovlvK~A>gjz9K6^dOKOYnY zyKjH?8Dx!v^VPXb)S1S@SNHUI^`^4yd`M$A8c0M;Z`D3dQhcdhI6W}pz(uN0Vm(N9 zTpx_v3BU>xLI`5h-9UhF<|#7{5nVtrm7|u)uu+V|x0y@YtKz|zQ$M!64pJ-#Mg@Jw zcm4T?z>m+;Q&7PAe);aewAS=Vn`u7VWIGm78(}+APWE^(Y}47=YUm*KD%2OZ=|6^x z5u_LI(?R})IhpB4XmI;k1vv1kmmI}DN`5Yq}gZe2-Ls*Hq9Y)c5NhY}m`*0o zvT6KC(N)Bm67C)4N<0@qux?=zHgPUtlg6Y`BWv;O49UssZ;U$WIb1v1$Q$MG%I?HV zs|O?$oG8+XJOmfI`kxcp7n95Aql1n|?B^o}@&%C8SiRS$EtpG+e@=7j#lOH8L&{U) z?_P=R=Fq*@xSrRSC+z)(tBrPyzaRc3w2!B6-E1)_?IH<|?|rFw{IL?z1n&=zPskxE z4+t}ywDrLtG#9}zV#ZqZ2+V<9nHZ}u)8~RyStM0*8+>=M0O<-^!?!MJK$Bg*_-o{@ zmAu&;!N)_#Qzb#kvjJK%s7I8D@vlob?+br(h{OD%#AlKTpH6_8SQR50jht7&xP3q3 z$VJKTa>qI4s?3z&y94Qg!2fiDYNkpiSFeYZLLV7bSs={lba1|O@wfVMSc`(ySt(Enon>@M&{2B{8jstP4*FA(+=Sw_CT z6bBZ79BZ3G_D5pbvJSD7B`{Qt%&G>l4aqHLKMled^$exqO7? zJFIKPDwj=%`2xy}8vnBIVhj@Eg=5iPK>{+a-N6QM?^T^emk7ExZMdjQ^n}k{+u$@# zc4qx}u=0U3%;(2u+dnu-QjF>2dY9b*ml)Cp&E<>ijJahVlSVOQ^gq*i?`0;@ILU*iu!|J5I^cwcs5GhewkfNpOhRWV#)KkzCyg zgeVcgWBk*m&y7vehMYN7!Y{8D!&We(C&H|oAe zA}7gH8S5Qxk|XMJUGH{kGZHsv^#?6qO%C@F=i!O(QJ9(W9PX>#bZEw*e6#lbTl~*L zjep5*Z=0^i@!No)^M1SIpMA0aNr@?Efg;?nv?PJ(AZ@f~a9v)D{+FDXA;Mua>_L{q#M}qI?yl1mDj@!^?ivZs(i1zewcPtDdfA4lj&6mq- zo74b_P0TmgNwAc1yNES&11t_BoT?gZN^!7#AY$ z+4;CR0AfCmIPI_07mas#W|JnZ-u)_AP2AnTut1*(Pok*j-K|*`6W31<5=M&ymBR_r809$Y+stp-Rkow?Ajd5@6ekkSO9z389UC2O#WYB>F<#G=rD z1_i(YDxr%8ol=Mx_o2xDn4mc8_?vn4d3`L!Se=~A`;_~kOQ(N@kx5ao{R%0HKn$>9 zUZW8vmwHzDZE`h3!;q`nMijH}Y~t=*;kDnA*sVE&y;`uf`W@-tGxyZAbt&;o|ITQ5 zg#65GxVIlAlNCE4Fwk>(sjfW*Ul(~P;x--|nqiZwOri%5+T|rWE0q9SzgAR;MwBhb zPKj!2=k+^gfAq8c&JADhi-oXsnWO&QOZt55*#YgQDK!BCaJz26jwd1BzJHjvR<@v7 z=>@%69Jg&^Ux`;pJOJ~)Kf#5zkk?Mt9+eul`(xvE1P~{o ztUC_bIg!0@(JSsc!-4$E#(0&iNRu_!j0`AseTA=RIZcyluJUVfjO)CxDjw{RYqvf4 zqS+BUpfn?7w?J_@L#u9Df~H=@6ED|tMP2f!*~IKGGoWWrM7`ro!L|A)YOd`aKzcg( zijf4am#fk1#*P2mTgS~n=Zv75PQKmhas5yI_$ zDZlX!0a20^b9YITO+zWs(ujV{Vv?cX+6W%6H1Ph-IvV>+L!55Fu*0I)9fQXltrn`mqY~g<8166PraoiA^ zX&N1wtJ(Wt$C2PH=J>GHq>+2VNrlr#iY-&D!l6FNCL!-7kq?pBBv3&!*R_+Y#X`>k z-_K25R#xD(Z`8|kH2j6rZ*-+V%bO3-(#}L|1YWVZw0#LI3{q!jmS~Qw&rGG?Zmn9BK7WiHJJmMt+G6X?GqS(#tAA!MVK0_RmV)!=g+CVY- zEk&-lS9zG~y=2N^Dnbx2ln|eSDg{a$*K6?{@_`xPyK*evF;h*gk~U_1!xjN4c` zV&!61QBM}hSXwg-GkVuavm=xfhTIKd%+5h*%pYIj&FC|Ou8?xxMVum<-Wz;p7tG2; zSnT7~#W%1{~;K&7xVF&LP()&{-=NL9c;Lv<^eK0LSHXpYa_B#X*N)(Cy(%EtxXH)O%OHUP6 z*2O@Vv>!1&+ZS8r`THi$B|8n4UwaJQ9-sfxUv|(f(nk4s^|4nMmo%tc&n$x^n4G6< zc6T${?60j3E!0Wm;634JJrrFyO$JTf(4GXI^;WnQSXpwfJj_I~)C!hl?3cUE-W4Fbdu8GdSSY8Ir znElAuyIw%+>tA<1Na}1bWQARt{Ps@>d_Jc>PD;~M|Ju=OtM^#Re$KO1r1FKPTO8G> z;dsCFfA;vX9UUou{i@OD{CxgUq{G|fz$O(QF|Z2iGcHPMuxlWVt>YnZ4=&&&iK&N_ z_%u9040BH(IJ$4k+$>h$zqq|?mHp1~4ZIhS^F?8wV6gW)`}1X;`@W$CbJp1#PNyKo z*KEG?<-FKuoGfqletM#+?WRZ~Al`DAcWU{HyQlsjqm1yonax z?SkicVCCJ__<0@7JVv1Q{^>3jK8@?_BbQu&IyqMQHkQHrJ)qimXPK)h(!HzQ@a(oY zTuW7`6o~FK^TwLt54;b9I#=`(;Z%N+Ad+%UE5tPXFj^Yb@uA$F)0KlezJEs&W7V1V#fmh4~RsD|z)d+DM`1%s48Jh*;_h1c(2=_LX2F&9)*@KUY*( zTkO<}g~HQmHK&d8kr0hki}8br`p3+gG&G$8&W#XZwB=v*|U}`JU@C?aA`X9`iQ|5!JlVfd|i( zDU)hatl^OZGG$8(%jd+ZWYI+EQ+4J+^Y_cNnUs*iGX%~xDyPq4MPlofc-^yPGn*|F zV-8*MLzFcxZhZF-2d z@^(yHcsyP|y+U)@XDp80+Hm#8E{|j~&zmgO_&7n~IS~s+5U6#>m$(PcU<}PRQs4O+X>*^>LZj`;c3wLSTjHmL zD)Ed?C_h)i&X6=xBP{i1*H3VCT1igxJ4jNq#IzK>elAJGT zZ^PHE{R)izy4je>v>rQu7n2vby4*5%5Lninl9Iouvndo>I4O1$gn;lCx7iMOotp9P5 z`MQ03J;SyaX6DFe>%)D>dhrAfvd4m0fdxw+SEJ4ovyWqEGMJz+>1m=Y1|e_Ru~xIV zWYIpYT^v}lw2Y7o&mnn4F)U+su5%_zU(9t9XeOIoQTe&t=7!K_3%&FmlDjEzuFG|& zbEDg^9=Fp{?XquP%I{V5GJT#7GtA#*B|awcq3_jw(BO>kQ}%Q#7HZ9CuBzLzM7O>< z$Ki28H{^SB!DKG`wmCmeUu9>hukZ{?Sfuw6VUyAk%)^}N!2KlN6)X*fA8fWTE}W7# zRemq{_nJ~QCyGYR_|7r>Z=o*fc|pK07Zf=T$Hw!-IM#A9o<=v@mp%^|9#)Hb&1}17 zWBdBN@{OLgsM|%uLLfx;yDe4P z^5rKd!NGDfp6A0%FJE2RApTnC`MQEKg?MJ z<_WJx;Ue5{S1kUyoO?;0M!-HeyT^#SDtfl#eJ0PULHB8JZZf(7!~FAkPKln>-NRDG zoz1}_1zD-bCOS*+76hr!w9K@BWGcR2z023LAj(gvgW9mblXUiTRS>c zDMIZ_b2NU%0@efW2u@6+`#I@%h4va2bHzbA#tpoD>i8O?+ESs1IZ!%oPLHe8gVsGl zH7cPAkYsyU^qEixHBCT$>wXY-;Vu)k|68F{%VT4 z`7CHJq~El*2AjHne{|*~ixq2Ab2~#Y_@OX|*uy)lzH8ix!ix4TY^i@;rAHP>5_`@Z?xAu*!iS(aQzO`x3YRHN@ub`F znzn#N)HYL_!ZUx5iL~I^8ZLhxcs>exEP>6x%2JMbJZoN0otw^fnzco|kdPl-{<)D^ zx!8SI}wwK=N&?e+@np_7eE=V$%EaO~IG!{2#ffN!#VUqmGYDUsOX ze6l3Ec+=AJ&ZdqAVTar0dl7Uh{?ijFjXWg3o8W3@Z&ATFUadI?$1ZE4rnpC%~RoOLVEf@bpg99(C%* zUEB2OtT1>PfeMqm<)lbTS^cK!O1bTP=f>}G)i(5fQgijWJ3R8(MfbhsTbRy(VgNa~+G*s47)h*1==&WgRggS+vehq_ZM=h53jrt=ARk)WTm z#HBDqHoNWhqvmHxQ&;Ineha_fQym1)=1S{6CcKvjZ|Lf9i(Er=sD$mnvUZE%1V&38 zLbJW`O%LT;OVxH~-IIRyRQKoYqO>MM2uBoei_ApRQSMRo`A&!}Ste@=V z!}X%n@I;MshjKpU>SQ4)7UEVxwd?~M3ns1}hXM}S;-%zKNw@b3(%j8(WmF$Kjg>A^ z&Errd3-`GT_&rI3+`bHE>+W@3MQ--L!`pZ+6tkI1L)C*A1Uz?!CshP2cB4T`vGEK% z%uT<=fy#yMJvh$<(qngD1LmsI4G@|UIZ_}kfOZsyx$Sj zzf_6R1??_5ncQgA2u)X5@e6ZqTR1-)Tixi~tkWqCKmcbPGG_&4?KGG_3*|R+WPB1S zn)Xf}Nd?d3nQ*-Ynz-Ck=aR07yRJNr7VuZ{NaVnXub-pT?0*v8@R$EBGPq2-e{_#z**v#HN~tGC9}xPyATq^q;B{gEBcx53NiPQ?4P4;Zjk zM=dR)ocMC7W}s5{kCTaT=0;4DgGiXz^e?b~0i!dU9XxX`m~!Zq{iBV%6IBYJYrX=* zJZPAH%w{paK5uCBI-U+sw6DqF?4H3xDK=$szsgeWYHc@E%Y{0)DZ>{K8nh?PYlV_$ z?gIu;Z^IzwpmI%>k-~U(%OSGRt3D8FvBtdu`clsO8YO+~S_c&sTpoNa#8iDv3_TXq z^ZC2W6Wl~PT(g_*?I(mMn)mRPxbBU5i1=WBb(kK%5b!wbEJcjuf`JlH#f(0RI5KWg zPYB{sffsv*9ME6+ML#aimXTSCF1Unut29hwfI)?h>aN66GUZH?7?17j_>!Z1B-!mW zcpep*D(}1*-6wg6s&1{j>U`Ld!GKR`)A%a7)=;<~7)Nf%(`~hy$lT0N7ju09Rl$^Q zx*QjrEOk7l@qbN<{R@Jm;9H7ivmGhvnzPb&sC?X_+vsR*zqE(IOb<FbFUtI}2xX2^iHD3I;Y{SM{6h}h z22`%=XR$g*6!t2iQeS4&E{Xtqt=&MDNg*u#NjLL03dK5o=wmFV<2iI=$Pewp3#PD%8q zsqV&Rl=N6N` zW`7IPq+CkRI6?_M6vD2Dva}R+PvtLW8aZl~vvD!UT84W#{+i?D%f~}O@t7mi3BVZk zkO{9Z23b~b^_%|}<0$pr;B$U_e18%v@Fu6$>S*%I)Lr83RT4|r35}tr%5bdcL4wX^ z0;{{^Y>tnuDtZChT=!`Naa>R|)@SrsW7k;QhV5t+?SRPIw?#71eXhPKy&}(jQIt}pliVp zx4+`3Fn4G?e%4sFqP)uI3edl@TctpAHqiS$C! zX)f03*+8b*i>Q;~dz;#n8wrgVLY`lCxRGvUyXa6SwSs%yEStn@7V%ZajX|MD)Z$pY z>Odky0V*S}Qb1`~_PbU`q)JGpO8VK-f9mx;MYxJ3)r1s98`fO)3N;Z? zI6oFOQlo_zfm~GDPfe3lq8l``=$Dw3&LgU{=Y$?1T(0s@VF(J*tX2|R(-)NP)~8sf`}@z1;+uQohj($WTy@Y{wHMobgY&J@5l&C=x`s#rjep zq(o+_8-mz%lqTnPyn|p#xWq!i$;MA4g{JSIMBLA!9i(&~k<#YW-WR67BR=ARih`PO z!vs~Qzh^72EcisCXsne%0-gJWMh>E~6*Xoa#^&ufoeQ73@utgXw zV1OY7LOeBM*PLlO9JA<6G$2$v9Ygy43*!SS0q-~ATWq2CbC#&o=+4K6op8L*n`+-v zO^r(Z$~uI-sK7?8^8z- zf&Pkk!(;xtyNE zT6xL&y3}5#+F$+4_uaykZz8`IGfP=jaj)&uea{W;Yp+@_YrDNYDU1~v?Ky?IBA3U@ z`M(SD+3B?SysxWn2`5o#q~>wFHNb+*qF_D8Xk2-I`0Yy zHNM2tpGvVYJMZ!abY8G5r~bmJF$$k7Etr#Zf_do7d|lYUWD4*P14EvSqkLI5IN<{l z6yzZx+Ctbo^rjluwHd=j#C2uOj*EFZEtK5M&Y#8Pp?^!}P8@`y*88U0*!uR@@EHCo z)ajCeY=xIibCL`tBJr4xFQuAeBSAYRjBn~M7OK;IJamzrbj|t<_=-pqbY7mx7pRi6 z9`|3tv9LFlm8yO1z2V&Wn(PcUuwQTAoyzTn$7EJ%wBe&|f7XU87lkBEXK_?WeclyD zEL#Mdjf)e%sZB{ptAIRm8}HX5R~(V~ zg(XW;PfT;}T|LqI%yRWBzM7-+40co4Du`3QAQz}c^ z`FW>{wSup1G7oJVMRGVo$8~7zwEwCP*vArZ8vj)UlBEvX8#Bpkvv##iS{wo0bfYs3(WgZHMaVxvppU`J}^-*i`Hl=6+vckQzw{Uv0Cj?`%&S;knc4+FiDD>WMq6 zPCM7vw&!1;FPA+y7$|0snWJAb-=T-_clPq1M+wz;Vpk{>RUIB{;7`&|iP|q^+Sda2 z$aLDn+y+&))b_UUDHMHyrVEo!R|uV#J4U9dKGnC+ShTzkxO}B^{3kB^bBJt-Vd!u=wL$c&KY5@BmFsN8r8p!q=mRCdkN5&PaP zFwC=zVtfcNpvQ>4B*)TXDeLJl(?4U>=(osynq0O8%n%P^82!}AqYy&pk5F?bj#9RQ>v?zO>fWY;xFj{A{D=hCa{~|G zc;HDQ=EP1@q6A|CLl(+BRsBKT^cw*BM)wVZ? zHNpJIc#5aHC$Xjr-U?yUNsmzgd&BLs6y>ZUQTfayGP!`X5_S3&dqLBQy+;r5%Ed+! z%9^@1UbzEz%Rakbg{76q9LbD&;GA|eE!LR&cu*?j3J$e0#)DDO13ze_X*6;98= zH7D)RE^;m0Vt~GB*MNcP&yjfNt~`BwqqHB}Eh?pkKzx$}Q z#OUR<(roJ(-i0A^dCu$A_#opZ(8AG7ozn5->I}-u+mfANC^uU)xiroMyG@+}oGUd| zx@qc1(a{Yl?Dz~rZCnR0d6Gt>n!_|*ot}|EbZA+1q#P56A!2Z85W*PWl9Eal#JCiu zP(q?Yvib*Snj_KdhDm!! z!K*iy7C9z=$*juOW$kp#I$!pdV#8+4ukSJpDPxSaAP)a%L^la@ZOTPCY&g{iOLO|e zEl#`(22YvBNaqCax6r%Wqw(FRYAk>Ic^kO2yB`a8=w#M6Y(Pys|KiDV)48nqRQFEd zgY#d_masDKwm--X9?2R}333$d zwHgwP*NVRVWb;(Jn9wrA%vJ6xg^}7CUD)MS@G+R$V5YhURE=f@WEn$Syndg25n6Jt zZJ@@OH4C-qtGJmu^2VQEZ?xN~ha<1uR7P;C`HWd6Ez}WGf*QMej9lo!if z@v}>M%Twb8=uo@!*$YSXl z$3+GU^cp0^IU4QL}y{<4-9|#tfbfLLK*D`@NC+ z%)o_QxF;hlkm79m4`E1wDnEtImSa91n$xT^#&9zat=$9*){mE|i39PJinl{L6zt!U z>4X`z8fpq9@H&#I>i`b);gQMrAgtd8t9JE3>@eh-;?Qpiw1jixWdbmDx`C^W4YY!h z@qEZr8rtqgE2eB)9luN3)GK4vc0<~mO@+Bnd8!*hL#-QVacfo*S&S|?EpBGb59;m< z&n-fFFOIFfwn!_T-3Vw_upDzjsSQ)NvG@5AR70X3s6_jz{D1zXtT9A~%dJJ0Gi3uH zhR;!#tjGl^?y011T{FJ<1OnV3$EfflN&2Wbc|pYP!TCC-iRa*-6;de3caQfy_ll3> zn=l&b&wRBO9C@yJhg}{g7%=n|{nzGx$>mKi+P`-&Ubkq@beHFLOb4F&S_#CY{#7GtiA&U|We9yH!eHH4J@iOI!NmW~BTdp|MY z$N*C6+WE3?g($b#KWBz;zv}kF45R_G{3aa{_09Na+YD4jS5`0HJKtFEtzZ>rT8%iuHN3&Y>v zgKLPtc`1X=_6&&+Om|KMin2wol$Vl9v4mHqGSd}TP+^SwQ_JK{KF z*3+O~M_F9|qh}<@UMMVMf_RZk5qcF%j5K(HfAIOb6KVX>w?q}=$a}H7M zmnm6Xg{&3V5@l`2YwI0bz@4X7PomRu_%vL|2~uQtMIfJI&6AAs45M@tr@ZO^34R`d z;TWhOhQYK83}ZTv^Jl=q<07zAz0Wv8@i`Ds_;z67I)dt>x_*wpc2aWz_;sq9VE3`> z@HT+)iCU`u&7U~@Tu-dL16X+Mi5`;Avspfm9GvS0Jlf@yY1s#5`zqT>iVztyZ2CP=u9rik9U@~7#;Sr00F&0egp-DX$FIbm* zaLzCeOdp%RBu{;D{rZ^X0}WGq+I_1WE;L8&M8ISpebD*ChyCYch5Ff6EnIFq{nGZn zKGgTdYJWD4)(k=J))6AGks~A+5t?;`ND@OxG$1HtIzkoP%n>|Bgwr}gl?T`pj0h)n zglgEPoxkx&=ooUBj!~Tj%z{TF-Z@_#{6j{QL%HVz!H9|c{FciL?&H$iy zsu8h8tmAjG>p!sT%x438>S*4AQ3Fr?;8^OJriDGTkz2qq){ki0amKSntrz&aajky# z{v-J*;{sWKZtA}!Kds27bG$dmh;0U zZb?j(eTpb3rYsmjwiC>mJ`8Dsd3a%tV<H#-IJDTw)dM;ZgkD^T9KB6xLLp|?cWUyKwMFUG!o2ckQ6?Zdt$%NHzM znQ}0x&@tTne_M(c1zt(t9l5+GQd}GvJGwM1ZSER%CKqi~FBeai+|+Vqd+$heV9dth zYZBE4v8#Mjo~z*QVd{^g$BrFcHf|h9d?%Tt-VB4F5XzwzE((_o^F&6D9X=!>!8&M= zJRC-*d6c?|X0uo^y1LkHwIvLxZL|@O5$WmV2qfL*%%&?{G%2kUe$DN7NO8mRlJr&i#YT@5(zxbjS1o8> zx@_*KapOjjAJRi{#uRIDYk0fIla0H@{EV8lxO=$;>f(E7)v;E~*d+{OlV*{`Foa<- z40ayHFb?Ubb2Pkvo>H#QQ`r1K27XnarLe1yFsBfN*Sb&600;G4qJYaun5_;fH%MlB z1D)LJC%UUF>H#N<=sgw%cKI(|xolR~O@vzf%}v)2$?LiyP`3KUlHVc91W`iQ3sxgy zu|Gg-wnE^D+ydE_UfFuXh07v;F4z@Vv`Wr6Z|M!?NfU0HIpn&VDB>`J*d;Y{4mA=b z5OnX@%r!R}hG#{0OU-MEZ8ovpD4pg{w+SpgCi)(T;43Q;2sGxRlb$*ewn*%fn?5W@p!HG#8mcDTfeFw zT~6XNOzw(lIy|zCvqa4aG!X_u_qi&xFpSjGYdRLTTzg4`*V9VrVDqx}<^h$DF=!*G z4FH@}9SUaAZWdf_tUzHuK|0{$o)a@mOIX?u&dn>U9Q($Mx@#s>e>K;Bsps*UHKmbD zX`Y)%yuXn?WcoM~*~BC_NH!o}35@vsYV5@UdY%?w+D@}*JJs`6@a0dNGBI;Rv7_0( z^umG}^>yh*!<`H4ZQ}dc!?MSY>sU+vl#lON3xMHc^2EcOVNJCN4#{g4eF=8)daqs` zxg=BX6tneD9}l`L^l0{jW9FllqLyU(sY(29_@mVc70(S%n(%*P=-)Uq2#BD7K8K4p zgODMz)HsJb8=)N?;0Rf95tu~^FpL}{Mz)U8iWX`!h(ZRUqewkEN-Mkpz-&gi&&899 z^xekeVu?GKVHWdwTmrEXei|aJRr5R#Sd`B8JU>mC!#vM3OXWXWDly9>;TW30d@6Yk zBgte2QG0CxGtC`IUp}B@+x*R=Rz$LeWB%F5M%Jrv)}0bEnI(nXc|2Cfn3rHr87if& zftS~$ONaf`CooEThnB78e;>=>1OQC2a5uwpLUPz9BD-01xxpmZ^w+I0zFjU6_Y&X? zEnaA|bJX$`!E$@_WPc1#BGXdBC)Z+XM0ZhivmHsI+hdnp3PnGzq3dzZhUy8~wJVl&uBPcF{;8#X@EzoU8vt^_jXi8N?H03vhHG!b zz%p3q|MmCj$RGjNS-0a5W5*|lEg}|VESnSwLE%8kr}uX{se#%kK$K&T(_$zBh#2tM zC_1qor^RQ{10b~n0B_Jdk%5H8m?tu%0c0V(p|@j$utsx5hM*Zh%wm4@CWQw(*v7Nf zg(XGucKno2a8GU|L^X$GvDha!T4agpJ9YOy@s_}BeB`G=x;xjSs6>5r*MS3q zJGu!^h(3;P?o@w5mQFFBId?@c0YI#iUV?16A{@4x-R{g_velV@oyn=`^xZbD)U?$4 zMthnqJtLiHcQc$Bp^S=*DH)%bFrc#1Tl| zq{g6}mMFvd`r8D!+LWfNkTXorp44W?wBl@$QpOJteg1yeoc?|pTYcsX>)6XK?cBb7 zeDjANmZ%%m&()v8_aPa98oj&Z#YY}GGOgVqt_5o{enIQbAVUYsoq*2in3FX@QX6pKQg7l03*QT9N~D?qF*mF;L%VN+hXDt8c_X zXD}2j3<_o;F_;+iW@f_V#!SWQAad-a|F-z_S$w)cic3idWN^P+EcGCea?33(BfmYs z9X6+^$EF}P`UA%34Ye}+l|9?;_}>S=R8JM`+Jf}H_xCR+{t=n8%b*_41#gtP*!rX)12lP{AQb&os;FXCs`z$ z7t_~xg}fj$g$zIFHJrZjqADxq%Z^g2^)HL@#jrvO%v-`X{|Dif`#keZcl>GdT}@5( zS8iU@zUKA))Ap^Z8js-ew|5;p^uYI7{~5dW>$S^Bkdl%EezV2mb~r>u5JYlF?6V_Lpzpw83MlQ1 ze#cQn(srJakcEV-06nMhdZ~)3EK5LbD^B2051#dsNnZBYbFXx-l1)AMG`?ublIR_{ zuv49ePef1P!e}Adxi;Fv{UfYrx=?}ovBw~ZI@zvw8|%9$g5aTR6vW z2_FW~uGICV^6>74bitH*8m>fa#YHBbkVnk*9P$Dmct8d4%!}l8<+O2K6~|-AUMtc?dlJgt|Y6! zYg$^ayDYY;qwbr34O#uQUp=4h+mO{CZ)tLm9D-b^!z3O3Em67@Kns61PIx^H*G}^m z%0BiUIZ_k-veWHO1@KvAF*D0&70l)kIngsy6^rh<__%@7TKqe2*a0F7E)I|;;5Rsc zew>I`jx*=a^HCM5et5)~l*5j+)r*_XwEy3`LwDr!)1(yZ3?ax{FNYDH4_q_Se zJKS5cOnqc9PP3#a$m(-j-D#;7`I`V__DP4yCwJcKUg7kqY8nlnixstLbOcWiZ>iTV2dU;f^|Rl>-TJg&cYbT#d~ zgU<8=>xsXsl0%oj@}gK1Eoc6&#&=k+-x_%IDM#-^w@#Z*{9e5RfTAYxsJc|%0B+ib zuq4^-CIGM1B~o25n^9}q(1=7lD_84`sK1_cb?Gikt8GSo)x`1XIn@ZHlec8H9dL}u z&mST$v=Hoa^)40ntpqDs)ye>T(W1@Lr2%V}Xn8r`-YNfX^vIE;%gV}t@oMj)-j(?Z z929hexQ(?o&C3*9ceCr#j=reAV*iJJ`p_xv(bS2?75fHuC%0Gv#L(br>jp5a8ISRK%0DIHud_a&61ro3g!CNmBiJ}CLmj*BA$a;JBs=%40DcbX z)6XHa+Kevz))Nc@c#jAB)U8R0RR910U6tcaf}UL4?Oh%2?ziH0002VH8G0- z0002hE6mmVn*G%Yq6lID000R90ssI20001Z+GAj3VBqNeyMlp%bItEr|Ef6`0Yy*% z;|u_&YzIVm+KrR}WRzhT$N%5^J>PdHLvqZTlgXK+W@gCDND_sdjL4apoH27|X6B@3 z7^oRD!>}e*a2iR?$jlr~W+oyboJdj$vv&Rex;yK$sgIxk_rBlvdf(^&JkM(zcm)8K z0Gv39S-%|K1-vP}9& zhMXo7WVkZUl79V9x+>!lsXvIuSSv<@qd?GtVo-;Cu#KV(ktU9}I4+^+PL_M@6X%*y zjGaRokGPEiHpLhg@POy7r?y!)TK$>wuFZRs z+$&=x6#O?BvJ%N-$UQ^SdeO{13ogWh3(Hg1rgs!#ITSQ++xnl%HU0&z-(-wiIKgj= z=78`V>a7*c7Kig!koM#BFzbDxUQ+B;-}$~my2uzgp??_r7|+%oK183}#zlVzX|0j( znlqGl`~loD&8?%AG?`-gfkM!UoV@lnk>dOnA2`qTSHn(RCTGcU`ranb4yumZ*$hYVsrhZ&mH8h7MKMwc??InqZ9g6f=3vxZ6p=>ad{N zSN*B}RfCoy>;rzkU(xFo{WCvKZ9&r2mv@yf?Ge>r2wrWDd6RchjrAfQn?z2%rTVUD zPet#j-&FI5Dtl4=5LMNMa`V5cK2|TOmXyb8KdYyr>h7Xo^H>cMfO4x^R((}ts-11w zs}uIrJ3~#W$JsxF-ZWAi$88>^>b_B}odZb6iFX4HLieKEK!fl*(O`x#-(fMlh*{mE zehL$A5NUGNJF+**n(ZYQ!bZ&5b9C7$jD+pnU$wl9q)^@s-XzJ9+wA9r0r2Kfd*Z+~ z{iieNZq)r$t!?)h!?9r`1^Yg4ADG`1dozti;8&b<)Z&S%YJLF8YTjH2iXB4CNC|6;&0xsiOT?Z+AP5{02na<0Km6xC#lw2OKsb>ZQHhO+qP}nw%t1n z!@&Qgv5weJyes~UXhQTQRuGp-o6JqtB-@b_$d%-4Dxj)To2jpK0eUXIpUK3GW)3o6 z*^tf0)?>GFxw&54Ro>^z^F#Pe0w-h_Y73);6~Z$yrPx?pAbyq#NRy@Q(rek1tI5OU zwen4cR3as(QcLNej8|T(1=QZ^ISpyGwfA~Py|zA6zplSCiWvipgJxv5GUuA_t;|*% zYqE9Ew(R0|XM3xC*72M&zxQ=cxX^9k?r|S_b-YQw<=6J7`CI%wL9w7tFeO+J+zQi$ zCBqTnj__7wMA@S@(UNFabUu0-7m6##P2#Tcuy{tiB>t38iJhcLvL=O-*~yw@Z*nfV zpL_ru$O2}AHDE6|2OfZrFgu(DSHWHI6ubprBLWRalhIb;Ai^Z&%RmkdYjj(1~ zORNpnLF=M**LrCqyN2D;?r9ITC)f+^jrJiYg;U9C>~wa9I8&Tu&UTW8Od(6jR&s!x zA$Q3;8jq%(QlB%B?r{<~Ou}ZPou{S!44s}soQ8&_^^$000000RR92m;j0Z764WN1pop7 z5CAU#TmS$84gmN70{{Vd+J%s{QA7b002g+1c5c8SKpA zI?wj$7od|cEi|=u0eN`gCWgtsa5MefHCR8-{R_7;%Hs>SF~ZXew-Yq+!u^~z1*{Px zq7}6|A#Mq@EAuPqh74J1QzD3zNJ>e|$jZqpC@LwdXb=Psz+nIY00WboZQHhO+qP}n zwr#YXZQHxqwr%{cVHv|2!Cq$aoRLgq9193wxxpA~aE39Bk9=YRvlz``?(%_!1oDN? zd}S$XImvO>(UfLPra7l+!3j?Bf|gw30vB0NE8a7Ot6b&^t$D>8#?Y2Fw4(#<>BwR_ z(S^=*r5ioyPEUIAlHT;C5B(TGe|E5hK@4OtLwL8qV-WFe3lN zNJch_8r5hT{Tr;idOm7A=n#s&& zF{|0kZVq#ri-$Ziw|UHKKJ#0^f)=u{MJ#GDi(A5yY+$3MENvOfTF&xTu%eZ$%rAcP zm?u`Ts@1G+4QpD<+SakI^{j6L8`{XmHnFMAY;Fr%vfEa+wvBCh$}`)s()M<+qn+$* z7rWYx>pb8lx46w6?sJ2CcDIK;?PYKK*w=n+Vl&&=&Jnh-m7@%06hZcP0Q=a_9=(t|UF@Im21bxyscB7|2h9{#Q|6>y3jz6y74E*mAbKiR?|ibCc40&mF;Ii3Ec` z5NS`p5<_BgGyhSU;S4R3R*2Y2o~FY|TRnp|OlgRRbIP=mF-4N$gNA1y)FB?KLP>av zDKZ%|u9=mO<|B1JzMk2f`~ZrVw*)m*Zq` zbn=5gCi_8&$EEHbgo8ePc_=i16jV+*BZrjP3W#v%9)|yk;DH=s&%z-(Yq(FD_Y8CI*pYL{51a)>UQ6|3q%uH1?d>kwc0t}K#V zVOQ3nb)~s1TDFO+S6@1`;ZuC&cc4WkH-X!iK;H%WZK=sU_WJJ7xnJ(`_fOdpN*1Ow zY`oxa^i#&e3`xN;IWdBo617_D?nO9TCY-ICLeskM7sL(vd2wjpOgU&U+_Yal6uHA6 z-w<;y-C6-ta@wXd&eN^!wH{f3fr>_%)yloy==Ha@o2w-sr9IF7O5LLXV;=vwr3%kq zp#KJ1tBTg$%#_u}Ej+_0DZ%RF;rntJx| zzxA+cTL1uf+H#o5sR&?LtPL0jVkl}^hVm#3CkGc$ zdRJkp{+u2qgJcIo``}igq6oP$B$A1BY$Cs(M|nL}o|l6hPZkH=V;(vwvrY=`4o5^s^4fFLfm;Z%!y2VPDnCKXe46GU$^EIiMpGl4BOj@LrfHXnBe1>|4 z^$hPBSOgdt8^jn{8Fw&F*ccM5t?j*o{eO`62F`%!4U8QdRD(gJLtxYfwvG)9p;6Hh z8yOk!H)dqnQ?cx$`Bmm(` K!~p7Ibs~ literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 b/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9b582203f24b1d0369d49197f4e5b25bb8199da7 GIT binary patch literal 19396 zcmV({K+?Z=Pew8T0RR91087LG5dZ)H0GnU{083y10RR9100000000000000000000 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 P#7S=ha@*g%9{>OVX?CUy literal 0 HcmV?d00001 diff --git a/database/web/assets/pfk.svg b/database/web/assets/pfk.svg new file mode 100644 index 000000000..b1ad81b3c --- /dev/null +++ b/database/web/assets/pfk.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/pk.svg b/database/web/assets/pk.svg new file mode 100644 index 000000000..427f25ef2 --- /dev/null +++ b/database/web/assets/pk.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/union.svg b/database/web/assets/union.svg new file mode 100644 index 000000000..dbf0f679a --- /dev/null +++ b/database/web/assets/union.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/watermark-meteor.svg b/database/web/assets/watermark-meteor.svg new file mode 100644 index 000000000..d54133766 --- /dev/null +++ b/database/web/assets/watermark-meteor.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/watermark-moon.svg b/database/web/assets/watermark-moon.svg new file mode 100644 index 000000000..5895b0422 --- /dev/null +++ b/database/web/assets/watermark-moon.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/watermark-perseid.svg b/database/web/assets/watermark-perseid.svg new file mode 100644 index 000000000..45767fdf4 --- /dev/null +++ b/database/web/assets/watermark-perseid.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageBricks.svg b/database/web/backgroundImageBricks.svg new file mode 100644 index 000000000..a48f8ae4c --- /dev/null +++ b/database/web/backgroundImageBricks.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageGrid.svg b/database/web/backgroundImageGrid.svg new file mode 100644 index 000000000..a745d2bd0 --- /dev/null +++ b/database/web/backgroundImageGrid.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageLines.svg b/database/web/backgroundImageLines.svg new file mode 100644 index 000000000..089664d53 --- /dev/null +++ b/database/web/backgroundImageLines.svg @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageSquares.svg b/database/web/backgroundImageSquares.svg new file mode 100644 index 000000000..f60a26a7d --- /dev/null +++ b/database/web/backgroundImageSquares.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageTriangles.svg b/database/web/backgroundImageTriangles.svg new file mode 100644 index 000000000..9279ebca4 --- /dev/null +++ b/database/web/backgroundImageTriangles.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/compare.css b/database/web/compare.css new file mode 100644 index 000000000..4d7450178 --- /dev/null +++ b/database/web/compare.css @@ -0,0 +1,186 @@ +.im-code-split { + display: grid; + grid-template-columns: 50% 50%; + grid-gap: 10px; + margin: 10px; +} + +.im-code-fullwidth { + display: block; + margin: 10px; +} + +.im-align-center { + text-align: center; +} + +.im-code-split > div { + display: inline-block; + display: flex; + flex-direction: column; +} + +.im-code-split pre { + flex-grow: 1; + overflow: auto; + color: #ddd; + font-size: 14px; + line-height: 150%; + white-space: pre-wrap; +} + +.im-content-spacer-lg { + height: 25px; + display: block; +} + +.im-content-spacer-md { + height: 15px; + display: block; +} + +.im-content-spacer-sm { + height: 10px; + display: block; +} + +.mm-d-c-c-i { + font-size: 12px; + text-transform: uppercase; + color: #888; + padding: 3px 10px; + background: rgba(0,0,0,0.25); + display: inline-block; + margin: 1px 1px 0 1px; +} + +.mm-d-g-3 .mm-d-c-c-i { + padding: 4px 7px; + font-size: 10px; +} + +.mm-d-g-3 .mm-d-v-s { + background: rgba(0,0,0,0.25); +} + +.mm-title-section { + margin-top: 30px; + font-size: 20px; + color: #ddd; + margin-left: 10px; +} + +.mm-left { + border-bottom: 2px solid darkorange; + color: darkorange !important; +} + +.mm-left-text { + color: darkorange !important; +} + +.mm-right { + border-bottom: 2px solid lightgreen; + color: lightgreen !important; +} + +.mm-right-text { + color: lightgreen !important; +} + +.mm-modified-text { + color: rgb(3, 169, 244) !important; +} + +.mm-side-icon { + margin-right: 4px; +} + +.mm-subtitle { + margin-top: 20px; +} + +.mm-subtitle-col { + text-transform: uppercase; + margin-top: 21px; + font-size: 11px; + padding-left: 10px; +} + +.mm-compare-message { + margin: 10px 0 20px 10px; + padding: 10px; + color: #ccc; + background: rgba(255,255,255,0.05); + font-size: 14px; + font-style: italic; + border: 1px solid rgba(0,0,0,0.2); + box-shadow: 0 3px 6px -6px #000; +} + +.mm-compare-text { + padding: 0 10px; + color: #ccc; + font-size: 14px; + white-space: pre-wrap; +} + +.mm-author { + color: #fff; + margin: 10px 0; +} + +.mm-nav-a { + text-transform: capitalize; +} + +.mm-section-group { + display: none; +} + +@media screen and (max-width: 992px) { + .mm-section { + display: block !important; + } + + #mm-main-navs { + display: none !important; + } + + .mm-main-report-area { + grid-template-rows: 1fr; + } + + .mm-fullpage-wrapper { + max-width: unset; + min-width: unset; + width: unset; + margin: unset; + } + + html, + body { + overflow: unset; + } + + .mm-section-group, + .mm-statistics-group { + border-bottom: 2px solid white; + font-size: 18px; + text-transform: uppercase; + letter-spacing: 1px; + padding: 5px; + text-align: center; + font-weight: 700; + margin: 10px 10px 5px 10px; + color: white; + } + + .mm-section-active { + height: auto; + } + + .mm-section-group { + display: block; + } +} \ No newline at end of file diff --git a/database/web/datensen-moon-modeler-report.css b/database/web/datensen-moon-modeler-report.css new file mode 100644 index 000000000..83313d6e1 --- /dev/null +++ b/database/web/datensen-moon-modeler-report.css @@ -0,0 +1,471 @@ +.mm-main-report-area { + display: grid; + grid-template-rows: 42px 1fr; +} + +#mm-main-navs { + background: #333; + z-index: 6; +} + +#mm-nav-expander { + display: none; + background: #222; +} + +#mm-nav-expander i { + color: white; + cursor: pointer; +} + +.mm-main-hamburger { + padding: 10px; + display: inline-block; + margin-right: auto; +} + +.mm-nav-tabs { + display: flex; + flex-direction: row; + box-shadow: 0px 0px 5px -2px #000; + border-bottom: 1px solid rgba(0,0,0,0.2); + background: linear-gradient(180deg, #222, #222); +} + +.mm-nav-a { + display: inline-block; + padding: 10px 20px; + text-decoration: none; + color: white; + cursor: pointer; +} + +.mm-nav-active { + background: rgb(3, 169, 244); + color: white; +} + +.mm-tab-content { + display: none; +} + +.mm-tab-content-active { + display: block; +} + +.mm-ml-auto { + margin-left: auto; +} + +.mm-mr-auto { + margin-right: auto; +} + +.mm-display-none, .tob { + display: none; +} + +.tob { + color: white; + padding-top: 20px; + padding-left: 20px; +} + +.mm-display-block { + display: block; +} + +.mm-side-hidden { + width: 1px; +} + +#placeholder { + max-width: 60vw; + max-height: 90%; + position: absolute; + top: 100px; + left: 0; + right: 0; + margin: auto; + background: #333; + box-shadow: 0 0 20px -10px #000; + border-radius: 4px; + overflow: hidden; +} + +#mm-content { + overflow: auto; +} + +#mm-side-wrapper { + display: grid; + grid-template-rows: auto 1fr; + height: 100%; + width: 100%; + overflow: hidden; +} + +#mm-report-content { + overflow: hidden; + height: 100%; + width: 100%; + display: grid; + grid-template-columns: minmax(250px, max-content) 1fr; +} + +#mm-report-content.mm-report-content-cols-1 { + grid-template-columns: 1fr; + grid-template-rows: 1fr; +} + + +#mm-content { + height: 100%; + width: 100%; + background: #333; +} + +#mm-side { + background: #404040; + overflow: hidden; +} + +#mm-side-content > div { + display: none; +} + +.mm-section { + display: none; +} + +.mm-section-active { + display: block; + height: 100%; +} + +#mm-side-content { + overflow: auto; +} + +#mm-side-content .mm-sidenav-active { + display: block; +} + + +.mm-sidenav-item-active > div { + background: #222; + color: #fff; + cursor: pointer; +} + +.mm-detail:not(.mm-display-none) { + /*display: grid;*/ +} + +.mm-detail { + padding: 20px 30px 20px 30px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.mm-subsection { + + + padding: 10px; +} + +.mm-props{ + background: rgba(0,0,0,0.1); + padding: 15px; +} + +.mm-subtitle { + color:darkorange; + margin: 2px 8px; + font-size: 12px; + text-transform: uppercase; + +} + +.mm-d-g-3 { + display: grid; + grid-template-columns: minmax(200px, auto) 1fr 1fr; +} + +.mm-d-g-c-m-3 { + grid-column: span 3; +} + +.mm-d-g-4 { + display: grid; + grid-template-columns: repeat(4, auto); +} + +.mm-d-g-c-m-4 { + grid-column: span 4; +} + +.mm-d-g-5 { + display: grid; + grid-template-columns: repeat(5, auto); +} + +.mm-d-g-c-m-5 { + grid-column: span 5; +} + +.mm-d-g-6 { + display: grid; + grid-template-columns: repeat(6, auto); +} + +.mm-d-g-c-m-6 { + grid-column: span 6; +} + + +.mm-d-hor { + display: grid; + grid-template-columns: auto 1fr; +} + +.mm-d-ver { + display: grid; + grid-template-rows: auto auto; + align-self: flex-start; +} + +.mm-d-c { + color: #999; + display: inline-block; + font-size: 12px; + font-weight: 300; + padding: 5px 8px 1px 8px; + text-transform: uppercase; +} + +.mm-d-v { + color: #fff; + display: inline-block; + font-size: 14px; + font-weight: 300; + padding: 1px 8px; + align-self: end; + background: rgba(0,0,0,0.15); + height: auto; + margin: 1px 1px 0 1px; + min-height: 20px; +} + +.mm-d-c-i { + color: #999; + display: block; + font-size: 10px; + font-weight: 300; + padding: 1px 8px 1px 8px; + position: relative; + top: 3px; + text-transform: uppercase; + align-self: end; +} + +.mm-d-v-i { + color: #fff; + display: inline-block; + font-size: 24px; + font-weight: 300; + padding: 1px 8px 1px 8px; + align-self: end; +} + +.mm-d-v-i:after { + content: ""; + width: auto; + height: 2px; + background: rgb(3, 169, 244); + margin-top: 2px; + display: block; + +} + +.mm-d-c-l { + color: #999; + display: block; + font-size: 10px; + font-weight: 300; + padding: 4px 8px 6px 8px; + position: relative; + top: 3px; + text-transform: uppercase; + align-self: end; +} + +.mm-d-v-l { + color: #fff; + display: inline-block; + font-size: 14px; + font-weight: 300; + padding: 1px 8px 15px 8px; + align-self: end; + white-space: pre-wrap; +} + +.mm-d-v-s { + + position: relative; + padding-left: 20px; + width: -webkit-fill-available; + width: -moz-available; +} + +.mm-d-v-s:before { + content: " "; + width: 4px; + height: 4px; + background: darkorange; + position: absolute; + left: 8px; + top: 10px; + display: inline-block; +} + +.mm-g-s-2 { + grid-column: span 2; +} + + +.mm-spacer-xs { + height: 0; + background: #333; + display: none; +} + +.mm-d-i { + padding: 10px; +} + +.mm-modal-fix { + display: grid; + grid-template-rows: 52px 1fr 56px; + border-radius: 5px; + user-select: none; + max-height: 85vh; + max-width: 60vw; +} + +.mm-no { + color: rgba(255,255,255,0.6); + font-style: italic; +} + +.mm-yes { + color: rgba(255,255,255,1); +} + +.mm-props .mm-d-v { + background: transparent; +} + + +.im-btn-default { + padding: 8px 16px; + border: 1px solid transparent; + + font-size: 12px; + border-radius: 20px; + text-transform: uppercase; + color: white; + background-color: #2196f3; + transition: background-color 0.3s; + cursor: pointer; + } + + +a, a.active, a.visited { + color:rgb(3, 169, 244); + text-decoration: none; +} + +.mm-fullpage-wrapper { + max-width: 85vw; + min-width: 50vh; + width: 80vw; + margin: 50px auto; + color: #eee; +} + +.mm-header-1 { + font-size: 26px; + font-family: "Open Sans", "Exo"; +} + +.mm-header-1::after { + content: " "; + display: block; + height: 1px; + margin-top: 21px; + background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), #4caf50, palevioletred, red, orange, #2196f3, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); + width: 100%; +} + +.mm-align-center { + text-align: center; +} + +pre { + background: rgba(0,0,0,0.1); + padding: 10px 20px; + margin: 1px 0; + white-space: pre-wrap; +} + +.mm-description { + color: yellowgreen; +} + +#mm-search { + background: rgba(0,0,0,0.1); + box-shadow: 0 0 10px -3px #000; + z-index: 2; +} + +@media screen and (max-width: 992px) { + #mm-nav-expander { + display: block; + } + + .mm-nav-tabs { + display: flex; + flex-direction: column; + } + + .mm-nav-a { + display: none; + padding: 5px 10px; + } + + .mm-ml-auto { + margin-left: 0; + } + + #mm-report-content { + grid-template-columns: 1fr; + grid-template-rows: 1fr 1px; + } + + #mm-side { + height: auto; + } + + #placeholder { + max-width: 90vw; + top: 50px; + } + + .mm-modal-fix { + max-width: 90vw; + } + + .mm-detail { + padding: 10px; + } +} \ No newline at end of file diff --git a/database/web/else-dark.svg b/database/web/else-dark.svg new file mode 100644 index 000000000..907ee3587 --- /dev/null +++ b/database/web/else-dark.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/else-light.svg b/database/web/else-light.svg new file mode 100644 index 000000000..907ee3587 --- /dev/null +++ b/database/web/else-light.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/guidancedb.dbml b/database/web/guidancedb.dbml similarity index 100% rename from database/guidancedb.dbml rename to database/web/guidancedb.dbml diff --git a/database/web/if-dark.svg b/database/web/if-dark.svg new file mode 100644 index 000000000..09fa21779 --- /dev/null +++ b/database/web/if-dark.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/if-light.svg b/database/web/if-light.svg new file mode 100644 index 000000000..09fa21779 --- /dev/null +++ b/database/web/if-light.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/im.css b/database/web/im.css new file mode 100644 index 000000000..5451901c1 --- /dev/null +++ b/database/web/im.css @@ -0,0 +1,536 @@ +@charset "UTF-8"; +@font-face { + font-family: "im-line-icons"; + src: url("./assets/im-line-icons.eot"); + src: url("./assets/im-line-icons.eot?#iefix") format("embedded-opentype"), url("./assets/im-line-icons.ttf") format("truetype"), url("./assets/im-line-icons.woff") format("woff"), url("./assets/im-line-icons.svg") format("svg"); + font-weight: normal; + font-style: normal; +} +[class^=im-icon-], +[class*=" im-icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: "im-line-icons" !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.im-icon-toolbar { + font-size: 16px; + align-self: center; + justify-content: center; + text-align: center; +} + +.im-icon-12 { + font-size: 12px; + align-self: center; + justify-content: center; + text-align: center; + color: #666; +} + +.im-icon-16 { + font-size: 16px; + align-self: center; + justify-content: center; + text-align: center; + color: #ccc; +} + +.im-icon-20 { + font-size: 20px; + align-self: center; + text-align: center; + justify-content: center; + color: #ccc; +} + +.im-icon-sm, +.im-icon-sm-disabled { + padding-top: 0; + text-align: center; + display: flex; + border-radius: 2px; + justify-content: center; + transition: 0.3s background-color; +} + +.im-icon-sm:hover { + background-color: rgba(0, 0, 0, 0.2); + transition: 0.3s background-color; +} + +.im-icon-key { + height: 16px; + width: 16px; + margin-right: 2px; + margin-left: 2px; + vertical-align: text-bottom; + padding-bottom: 1px; +} + + +.im-icon-AddRelationCursor:before { + content: "\e91a"; +} +.im-icon-AddTableCursor:before { + content: "\e93b"; +} +.im-icon-ArrowCursor:before { + content: "\e93c"; +} +.im-icon-Add:before { + content: "\e98c"; +} +.im-icon-AlignBottom:before { + content: "\e960"; +} +.im-icon-AlignHorizontalCenter:before { + content: "\e961"; +} +.im-icon-AlignLeft:before { + content: "\e962"; +} +.im-icon-AlignRight:before { + content: "\e963"; +} +.im-icon-AlignTop:before { + content: "\e964"; +} +.im-icon-AlignVerticalCenter:before { + content: "\e965"; +} +.im-icon-Arrow:before { + content: "\e941"; +} +.im-icon-Bottom:before { + content: "\e930"; +} +.im-icon-Comment:before { + content: "\e972"; +} +.im-icon-Composite:before { + content: "\e98d"; +} +.im-icon-Configuration:before { + content: "\e92e"; +} +.im-icon-Copy:before { + content: "\e942"; +} +.im-icon-DisplayMode:before { + content: "\e970"; +} +.im-icon-Edit:before { + content: "\e91b"; +} +.im-icon-Edu:before { + content: "\e974"; +} +.im-icon-Hamburger:before { + content: "\e966"; +} +.im-icon-HamburgerBold:before { + content: "\e967"; +} +.im-icon-Hidden:before { + content: "\e91c"; +} +.im-icon-Layout:before { + content: "\e943"; +} +.im-icon-Left:before { + content: "\e91d"; +} +.im-icon-Line:before { + content: "\e975"; +} +.im-icon-LineMode:before { + content: "\e94c"; +} +.im-icon-New:before { + content: "\e91e"; +} +.im-icon-Note:before { + content: "\e948"; +} +.im-icon-Open:before { + content: "\e91f"; +} +.im-icon-Paste:before { + content: "\e944"; +} +.im-icon-Projects:before { + content: "\e94d"; +} +.im-icon-Query:before { + content: "\e931"; +} +.im-icon-Redo:before { + content: "\e945"; +} +.im-icon-Relation:before { + content: "\e920"; +} +.im-icon-RelationDashed:before { + content: "\e94e"; +} +.im-icon-Right:before { + content: "\e921"; +} +.im-icon-Save:before { + content: "\e922"; +} +.im-icon-Script:before { + content: "\e946"; +} +.im-icon-ShowChildren:before { + content: "\e923"; +} +.im-icon-ShowData:before { + content: "\e924"; +} +.im-icon-ShowDescription:before { + content: "\e925"; +} +.im-icon-ShowMetadata:before { + content: "\e926"; +} +.im-icon-ShowParents:before { + content: "\e927"; +} +.im-icon-Table:before { + content: "\e928"; +} +.im-icon-TextNote:before { + content: "\e986"; +} +.im-icon-Top:before { + content: "\e936"; +} +.im-icon-TopDiagram:before { + content: "\e937"; +} +.im-icon-Trash:before { + content: "\e929"; +} +.im-icon-Type:before { + content: "\e949"; +} +.im-icon-Undo:before { + content: "\e947"; +} +.im-icon-User:before { + content: "\e92f"; +} +.im-icon-Visibility:before { + content: "\e92a"; +} +.im-icon-export:before { + content: "\e971"; +} +.im-icon-Add16:before { + content: "\e97b"; +} +.im-icon-AddToDiagram:before { + content: "\e989"; +} +.im-icon-AlignBottom16:before { + content: "\e968"; +} +.im-icon-AlignHorizontalCenter16:before { + content: "\e969"; +} +.im-icon-AlignLeft16:before { + content: "\e96a"; +} +.im-icon-AlignRight16:before { + content: "\e96b"; +} +.im-icon-AlignTop16:before { + content: "\e96c"; +} +.im-icon-AlignVerticalCenter16:before { + content: "\e96d"; +} +.im-icon-ArrowDown16:before { + content: "\e900"; +} +.im-icon-ArrowLeft16:before { + content: "\e93d"; +} +.im-icon-ArrowRight16:before { + content: "\e93e"; +} +.im-icon-ArrowUp16:before { + content: "\e901"; +} +.im-icon-Bottom16:before { + content: "\e932"; +} +.im-icon-CheckBox:before { + content: "\e92c"; +} +.im-icon-CheckBoxChecked:before { + content: "\e92d"; +} +.im-icon-Cloud16:before { + content: "\e94f"; +} +.im-icon-Collapse16:before { + content: "\e902"; +} +.im-icon-CollapseCircle16:before { + content: "\e903"; +} +.im-icon-Comment16:before { + content: "\e973"; +} +.im-icon-Compare:before { + content: "\e977"; +} +.im-icon-Configuration16:before { + content: "\e93f"; +} +.im-icon-Convert:before { + content: "\e978"; +} +.im-icon-Cross16:before { + content: "\e904"; +} +.im-icon-CrossCircle16:before { + content: "\e905"; +} +.im-icon-Daten:before { + content: "\e950"; +} +.im-icon-Diff:before { + content: "\e979"; +} +.im-icon-DotsHorizontal16:before { + content: "\e906"; +} +.im-icon-DotsVerticall16:before { + content: "\e907"; +} +.im-icon-DotsVerticallDouble16:before { + content: "\e95e"; +} +.im-icon-Download16:before { + content: "\e951"; +} +.im-icon-Edit16:before { + content: "\e908"; +} +.im-icon-Equal:before { + content: "\e97a"; +} +.im-icon-Error16:before { + content: "\e952"; +} +.im-icon-ErrorCircleFill16:before { + content: "\e953"; +} +.im-icon-ErrorFill16:before { + content: "\e954"; +} +.im-icon-Expand16:before { + content: "\e909"; +} +.im-icon-ExpandCircle16:before { + content: "\e90a"; +} +.im-icon-FullCircle:before { + content: "\e93a"; +} +.im-icon-Hidden16:before { + content: "\e90b"; +} +.im-icon-Info16:before { + content: "\e955"; +} +.im-icon-InfoFill16:before { + content: "\e956"; +} +.im-icon-Insecure:before { + content: "\e98b"; +} +.im-icon-Interface:before { + content: "\e987"; +} +.im-icon-Left16:before { + content: "\e90c"; +} +.im-icon-Line16:before { + content: "\e976"; +} +.im-icon-Linked:before { + content: "\e988"; +} +.im-icon-LockResize:before { + content: "\e98a"; +} +.im-icon-Mail16:before { + content: "\e957"; +} +.im-icon-Merge:before { + content: "\e97c"; +} +.im-icon-Meteor:before { + content: "\e958"; +} +.im-icon-MinusCircle16:before { + content: "\e933"; +} +.im-icon-Moon:before { + content: "\e959"; +} +.im-icon-Move16:before { + content: "\e95f"; +} +.im-icon-New16:before { + content: "\e90d"; +} +.im-icon-No:before { + content: "\e97d"; +} +.im-icon-NotInDiagram:before { + content: "\e98e"; +} +.im-icon-Note16:before { + content: "\e94a"; +} +.im-icon-Open16:before { + content: "\e90e"; +} +.im-icon-Perseid:before { + content: "\e98f"; +} +.im-icon-PlusCircle16:before { + content: "\e934"; +} +.im-icon-Problem16:before { + content: "\e95a"; +} +.im-icon-ProblemFill16:before { + content: "\e95b"; +} +.im-icon-Query16:before { + content: "\e935"; +} +.im-icon-Relation16:before { + content: "\e90f"; +} +.im-icon-RemoveFromDiagram:before { + content: "\e990"; +} +.im-icon-Reset:before { + content: "\e991"; +} +.im-icon-ResetName:before { + content: "\e992"; +} +.im-icon-ResizeBottomRight16:before { + content: "\e940"; +} +.im-icon-Right16:before { + content: "\e910"; +} +.im-icon-SameHeight16:before { + content: "\e96e"; +} +.im-icon-SameWidth16:before { + content: "\e96f"; +} +.im-icon-Save16:before { + content: "\e911"; +} +.im-icon-Search16:before { + content: "\e92b"; +} +.im-icon-Secure:before { + content: "\e993"; +} +.im-icon-ShowChildren16:before { + content: "\e912"; +} +.im-icon-ShowData16:before { + content: "\e913"; +} +.im-icon-ShowDescription16:before { + content: "\e914"; +} +.im-icon-ShowMetadata16:before { + content: "\e915"; +} +.im-icon-ShowParents16:before { + content: "\e916"; +} +.im-icon-Table16:before { + content: "\e917"; +} +.im-icon-Top16:before { + content: "\e938"; +} +.im-icon-TopDiagram16:before { + content: "\e939"; +} +.im-icon-Trash16:before { + content: "\e918"; +} +.im-icon-Type16:before { + content: "\e94b"; +} +.im-icon-Union:before { + content: "\e994"; +} +.im-icon-Update:before { + content: "\e97e"; +} +.im-icon-UpdateCloud:before { + content: "\e97f"; +} +.im-icon-UpdateDatabase:before { + content: "\e980"; +} +.im-icon-UpdateFromCloud:before { + content: "\e981"; +} +.im-icon-UpdateFromDatabase:before { + content: "\e982"; +} +.im-icon-UpdateFromSource:before { + content: "\e983"; +} +.im-icon-UpdateSource:before { + content: "\e984"; +} +.im-icon-Visibility16:before { + content: "\e919"; +} +.im-icon-Warning16:before { + content: "\e95c"; +} +.im-icon-WarningFill16:before { + content: "\e95d"; +} +.im-icon-Yes:before { + content: "\e985"; +} +.im-icon-ZoomFit:before { + content: "\e995"; +} + + +/* overwrites */ + +.im-icon-DotsHorizontal16, .im-icon-DotsVertical16 { + display: none; +} diff --git a/database/web/index.html b/database/web/index.html new file mode 100644 index 000000000..b3fab9550 --- /dev/null +++ b/database/web/index.html @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + Report for Benchmarks made in Luna Modeler + + +

    +
    + +
    +
    + + + +
    +
    + + \ No newline at end of file diff --git a/database/web/lists.css b/database/web/lists.css new file mode 100644 index 000000000..f1a54441b --- /dev/null +++ b/database/web/lists.css @@ -0,0 +1,94 @@ +.im-list { + list-style-type: none; + padding: 0; + margin: 0; + padding-bottom: 0; +} + +.im-list-item:hover { + background: #2196f3; + /*color: #fff;*/ + background: rgba(0, 0, 0, 0.02); +} + +.im-list-item > div { + /*background: rgba(255, 255, 255, 0.2);*/ + padding: 3px 10px 3px 10px; + font-size: 13px; + text-decoration: none; + display: block; + color: #eee; + border-bottom: 1px solid transparent; + /*transition: color 0.3s;*/ + margin-right: auto; + flex: 1; + overflow: hidden; + /*transition: background-color 0.4s;*/ + cursor: pointer; + border-radius: 2px; +} + + + +.im-list-item-nochk a { + padding: 3px 10px 3px 26px; +} + +.im-list-item:hover { + background: #2196f3; + color: #fff; +} + +.im-list-item i { + color: #ccc; +} + +.im-list-item:hover, +.im-list-item:hover a, +.im-list-item:hover div, +.im-list-item:hover i { + background: #111; + color: #fff; + /*color: #fff;*/ +} + +li.sel-item, +.sel-item-list-multi { + color: black; + background: #333; + color: #fff; +} + +li.sel-item a, +li.sel-item-list-multi a, +li.sel-item div i, +li.sel-item-list-multi div i { + color: #fff; +} + +.im-rel { + display: flex; + flex-direction: row; + flex-grow: 1; + margin: 0 2px; + border-radius: 2px; +} + +.im-list-btn-chk { + width: 12px; + display: block; + cursor: pointer; + align-self: center; +} + +.im-list-btn { + width: 22px; + display: block; + padding: 0 5px 0 0px; + cursor: pointer; + align-self: center; +} + +.im-list-btn i { + color: #ccc; +} \ No newline at end of file diff --git a/database/web/modals.css b/database/web/modals.css new file mode 100644 index 000000000..6f65ede3d --- /dev/null +++ b/database/web/modals.css @@ -0,0 +1,208 @@ +.modal-wrapper { + position: absolute; + top: 0; + left: 0; + display: block; + height: 100vh; + width: 100vw; + z-index: 999; + overflow: auto; + animation: toDark 1s forwards; +} + +.modal { + position: absolute; + top: 50px; + margin: auto; + left: 20vw; + right: 20vw; + width: 60vw; + background: #444; + z-index: 999; + box-shadow: 0 0 15px 0 #000; + /*animation: fromRight 0.5s;*/ + resize: both; + overflow: hidden; + display: grid; + grid-template-rows: 52px 1fr 56px; + min-width: 950px; + border-radius: 5px; + user-select: none; + max-height: 80vh; + min-height: 500px; +} + +.modal-confirm { + top: 20vh; + left: 25vw; + right: 25vw; + width: 50vw; + min-height: 250px; + min-width: 620px; + max-height: 800px; + border-radius: 5px; +} + +.modal-header { + height: 28px; + padding: 14px 20px 10px 20px; + font-size: 20px; + border-bottom: 0; + background: #222; + user-select: none; + z-index: 3; + color: #eee; + text-align: center; +} + +.modal-header::after { + content: " "; + display: block; + height: 1px; + margin-top: 11px; + position: relative; + left: 0; + background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), #4caf50, palevioletred, red, orange, #2196f3, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); + width: 100%; +} + +.modal-content { + /*padding: 5px 20px 20px 20px;*/ + min-height: 100px; + color: #eee; + overflow: auto; + max-height: 500px; +} + +.modal-content-notabs { + font-size: 12px; +} + +.modal-content-confirm { + min-height: 0px; + background: #444; + color: #eee; + padding: 30px; + padding-bottom: 40px; + font-size: 13px; + overflow: auto; +} + +.modal-footer { + border-top: 0; + padding: 12px 14px 8px 14px; + text-align: right; + font-size: 14px; + color: #eee; + background: #222; +} + +.modal .im-tabs-tablist { + padding-left: 2px; +} + +.modal-content .newColForm { + margin: 2px; + border-radius: 2px; + border: 0px solid #fff; + background: #393939; +} + +.modal-content .im-cat-header { + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.modal-content .im-tabs-area { + padding-top: 20px; + padding: 20px; +} + +.modal-toolbar { + position: fixed; + position: absolute; + right: 85px; + padding: 0; + background: transparent; + z-index: 100; + text-align: right; + max-width: 450px; + bottom: 13px; + display: flex; +} + +.modal-toolbar button { + display: flex; + flex-direction: row; + margin-left: auto; + margin-right: 12px; +} + +.modal-toolbar i { + color: #fff; + margin-right: 5px; +} + +.im-feedback-title { + font-size: 18px; +} + +.im-feedback-subtitle { + font-size: 14px; +} + +.im-feedback-grid { + display: grid; + grid-template-columns: 180px 1fr; + grid-row-gap: 3px; + grid-column-gap: 3px; + justify-content: stretch; + justify-items: stretch; + padding-bottom: 3px; +} + +.im-feedback-content textarea { + min-height: 180px !important; +} + +.im-items-selection, +.im-items-selection-header { + display: grid; + grid-template-columns: 20px 3fr 1fr 1fr; + column-gap: 5px; + row-gap: 0; + margin-bottom: 0; + margin-left: 30px; + margin-right: 40px; + padding: 3px 10px; + font-size: 13px; + border-radius: 2px; +} + +.im-items-selection:hover { + background: #222; + color: #fff; + cursor: pointer; +} + +.im-items-selection div { + padding-top: 1px; +} + +.im-diagram-items-modal { + position: sticky; + top: 0px; + background: #444; + box-shadow: 0 0 8px -4px #000; + padding-top: 4px; + padding-bottom: 4px; + z-index: 2; + margin-bottom: 8px; +} + +.im-diagram-items-modal .im-search-bar { + margin: 0px 50px 8px 50px; + position: absolute; + top: -50px; + right: 50px; + z-index: 999100; +} \ No newline at end of file diff --git a/database/web/not-dark.svg b/database/web/not-dark.svg new file mode 100644 index 000000000..1e53de679 --- /dev/null +++ b/database/web/not-dark.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/not-light.svg b/database/web/not-light.svg new file mode 100644 index 000000000..0fe1f12ba --- /dev/null +++ b/database/web/not-light.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/oneOf-dark.svg b/database/web/oneOf-dark.svg new file mode 100644 index 000000000..13ad7ee07 --- /dev/null +++ b/database/web/oneOf-dark.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/oneOf-light.svg b/database/web/oneOf-light.svg new file mode 100644 index 000000000..d96c4ff27 --- /dev/null +++ b/database/web/oneOf-light.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/scrollbars.css b/database/web/scrollbars.css new file mode 100644 index 000000000..9d8c1c4c4 --- /dev/null +++ b/database/web/scrollbars.css @@ -0,0 +1,29 @@ +div::-webkit-scrollbar, +textarea::-webkit-scrollbar { + width: 10px; + height: 10px; + margin-left: 5px; +} + +div::-webkit-scrollbar-thumb, +textarea::-webkit-scrollbar-thumb { + background: #2d2d2d; + border-radius: 0px; +} + +div::-webkit-scrollbar-track, +textarea::-webkit-scrollbar-track { + background: #585858; + border-radius: 0px; +} + +div::-webkit-scrollbar-corner, +textarea::-webkit-scrollbar-corner { + background: #585858; +} + +div, +textarea { + scrollbar-color: #202020 #585858; + /*scrollbar-width: thin;*/ +} \ No newline at end of file diff --git a/database/web/searchbar.css b/database/web/searchbar.css new file mode 100644 index 000000000..55c99fcc5 --- /dev/null +++ b/database/web/searchbar.css @@ -0,0 +1,66 @@ +input { +border-radius: 2px; +padding: 0 2px; +font-family: "Open Sans"; +background: #646464; +color: #fff; +min-width: 40px; +width: auto; +} + +.im-search-bar { + height: 20px; + display: grid; + grid-template-columns: 10px 1fr 24px 10px; + grid-template-rows: 1fr; + align-content: center; + align-items: center; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 100px; + border: 0px solid #646464; + margin: 7px 7px; + background: #646464; +} + +.im-search-fixed-width { + max-width: 500px; + position: absolute; + margin-left: auto; + margin-right: auto; + left: 0; + right: 0; + text-align: center; + top: 10px; + z-index: 100; +} + +.im-search-bar input, +.im-search-bar input:focus, +.im-search-bar input:hover { + display: inline-block; + border: 0px; +} + +.im-search-bar input { + width: auto; + min-width: 40px; +} + +.im-search-bar input::placeholder { + color: #000; + font-style: italic; +} + +.im-search-bar .im-search-button { + align-self: center; + justify-self: right; + width: 24px; + text-align: right; + cursor: pointer; + padding-top: 4px; +} + +.im-search-fixed-width > .im-search-button { + padding-top: 0; +} diff --git a/database/web/style.css b/database/web/style.css new file mode 100644 index 000000000..063088b68 --- /dev/null +++ b/database/web/style.css @@ -0,0 +1,1826 @@ +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + src: url("./assets/open-sans-v17-latin-ext_latin-regular.eot"); /* IE9 Compat Modes */ + src: local("Open Sans Regular"), local("OpenSans-Regular"), + url("./assets/open-sans-v17-latin-ext_latin-regular.eot?#iefix") + format("embedded-opentype"), + /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-regular.woff2") + format("woff2"), + /* Super Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-regular.woff") + format("woff"), + /* Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-regular.ttf") + format("truetype"), + /* Safari, Android, iOS */ + url("./assets/open-sans-v17-latin-ext_latin-regular.svg#OpenSans") + format("svg"); /* Legacy iOS */ +} + +/* open-sans-600 - latin-ext_latin */ +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 600; + src: url("./assets/open-sans-v17-latin-ext_latin-600.eot"); /* IE9 Compat Modes */ + src: local("Open Sans SemiBold"), local("OpenSans-SemiBold"), + url("./assets/open-sans-v17-latin-ext_latin-600.eot?#iefix") + format("embedded-opentype"), + /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-600.woff2") + format("woff2"), + /* Super Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-600.woff") format("woff"), + /* Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-600.ttf") + format("truetype"), + /* Safari, Android, iOS */ + url("./assets/open-sans-v17-latin-ext_latin-600.svg#OpenSans") + format("svg"); /* Legacy iOS */ +} + +/* open-sans-700 - latin-ext_latin */ +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 700; + src: url("./assets/open-sans-v17-latin-ext_latin-700.eot"); /* IE9 Compat Modes */ + src: local("Open Sans Bold"), local("OpenSans-Bold"), + url("./assets/open-sans-v17-latin-ext_latin-700.eot?#iefix") + format("embedded-opentype"), + /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-700.woff2") + format("woff2"), + /* Super Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-700.woff") format("woff"), + /* Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-700.ttf") + format("truetype"), + /* Safari, Android, iOS */ + url("./assets/open-sans-v17-latin-ext_latin-700.svg#OpenSans") + format("svg"); /* Legacy iOS */ +} + +html, body { + margin: 0; + overflow: hidden; +} + +html, +body, +#root, +.app-layout, +.aside-left, +.aside-right, +.diagram { + height: 100%; + width: 100%; +} + +.diagram { + overflow: auto; + background: #333; +} + +.main-area { + height: 100%; + width: 100%; +} + +html, +body, +div, +p, +span, +a, +td, +ul, +li { + font-family: "Open Sans", "Exo"; +} + + +h1, +h2, +h3, +h4, +h5, +h6 { + padding: 4px 0; + margin: 0; + font-family: "Open Sans", "Exo"; + font-weight: 400; +} + +h1 strong, +h1 b, +h2 strong, +h2 b, +h3 strong, +h3 b, +h4 strong, +h4 b, +h5 strong, +h5 b, +h6 strong, +h6 b { + font-weight: 700; +} + +p { + padding: 1px 0; + font-size: 12px; +} + +.diagram { + position: relative; +} + +.t { + position: relative; + border-radius: 3px; + box-shadow: 4px 4px 8px -8px black; + border: 1px solid rgba(0, 0, 0, 0.3); + z-index: 10 !important; + margin: 1px; + display: flex; + flex-direction: column; + min-height: 44px; + min-width: 150px; + min-width: fit-content; +} + +path { + z-index: 10 !important; +} + +.t-max-content { + min-width: max-content; +} + +.t-fixed-min { + min-width: 150px; +} + + +.drgbl:after { + content: ""; + display: inline-block; + opacity: 0; + height: 20px; + width: 1px; + position: absolute; + bottom: -20px; + left: 0; +} + +.im-n { + position: relative; + border-radius: 3px; + border: 1px solid transparent; + z-index: 5; + margin: 1px; + display: flex; + flex-direction: column; + min-height: 24px; + min-width: 50px; +} + +.im-n-sa { + position: absolute; + border-radius: 3px; + border: 1px solid transparent; + z-index: 1; + margin: 1px; + display: flex; + flex-direction: column; + min-width: 150px; + min-height: 50px; + top: 0; + left: 0; +} + +.im-n-sa > div { + padding:10px; + padding-top: 30px; +} + +.im-n-sa-type { + min-width: 150px; + min-height: 50px; +} + +.im-n-sa-type > div { + padding:10px; + padding-top: 30px; +} + +.im-n-sa-header { + position: absolute; + border-radius: 3px; + border: 1px solid transparent; + z-index: 10; + display: flex; + flex-direction: column; + top: 0; + left: 0; + width: 100%; + background: rgba(0, 0, 0, 0.15); + pointer-events: all !important; + cursor: move; + min-width: 150px; + min-height: 24px !important; + max-height: 24px; + +} + +.im-n-sa-header-text { + padding: 4px 10px; + font-size: 12px; +} + +.im-n-other { + position: relative; + border-radius: 3px; + border: 1px solid transparent; + z-index: 8; + margin: 1px; + display: flex; + flex-direction: column; + min-width: 150px; + min-height: 44px; +} + +.sel-item-sa { + z-index: 2; +} + +.im-n img { + max-width: 100%; +} + +.im-tp { + position: absolute; + background: #fff; + border-radius: 3px; + box-shadow: 4px 4px 8px -8px black; + border: 1px dashed #666; + overflow: auto; + z-index: 1; + margin: 1px; + display: flex; + flex-direction: column; + background: #f9f9f9; +} + +.t a, +.im-n a, +.im-tp a { + text-decoration: none; + color: black; +} + +#mainHtmlCanvas { + transform-origin: 0 0; +} + +.watermark { + opacity: 0.25; + width: 200px; + height: 200px; +} + +.dGraphicsHeader { + display: flex; + border-bottom: 1px solid rgba(0, 0, 0, 0.15); + font-size: 14px; + cursor: pointer; + background: #666; + flex-grow: 0; + flex-shrink: 0; + color: #fff; + height: 22px; + min-width: fit-content; + white-space: nowrap; +} + +.dTableName { + padding: 3px 0 1px 3px; + user-select: none; + font-weight: 700; + text-shadow: 0 0 1px #000; +} + +.dTableNameLight { + padding: 3px 0 1px 3px; + user-select: none; + font-weight: 700; +} + +.dGraphicsLeftTop { + margin-right: auto; + padding: 2px 4px; +} + +.dGraphicsRightTop { + margin-left: auto; + padding: 2px 4px; +} + +.im-tp .dGraphicsHeader { + display: flex; + border-bottom: 1px solid rgba(0, 0, 0, 0.15); + font-size: 15px; + cursor: pointer; + background: #666; + flex-grow: 0; + flex-shrink: 0; + color: #fff; +} + +.im-tp .dTableName { + padding: 1px 0 1px 0; + cursor: move; + user-select: none; + text-align: left; +} + +.t a.gr { + background: #404040; + display: flex; + flex-direction: column; + height: 100%; + user-select: none; + flex-grow: 1; + overflow: hidden; + cursor: pointer; +} + +.dCols, +.im-n-text { + padding: 2px 4px; + font-size: 13px; + overflow: auto; + min-height: auto; + min-width: auto; + color: #fff; + background: #404040; + user-select: none; + flex-grow: 1; + cursor: pointer; +} + +.dCols-report { + margin-top: 20px; + grid-column: span 4; + padding: 15px; + border: 1px solid rgba(0, 0, 0, 0.1); +} + +.im-n-text { + overflow: hidden; +} + +.im-n-text-nowrap div, +.im-n-text-nowrap p, +.im-n-text-nowrap h1, +.im-n-text-nowrap h2, +.im-n-text-nowrap h3, +.im-n-text-nowrap h4, +.im-n-text-nowrap h5, +.im-n-text-nowrap h6, +.im-n-text-nowrap ul, +.im-n-text-nowrap ol { + white-space: nowrap; +} + +.im-table-columns-displayed { + opacity: 1; +} + +.im-table-columns-hidden { + opacity: 0; + max-height: 1px; + overflow: hidden; +} + +.im-table-descriptions-hidden, +.im-table-indexes-hidden +{ + display: none; +} + +.im-table-descriptions-displayed { + display: block; + margin-top: 5px; + margin-bottom: 3px; +} + +.im-table-indexes-displayed { + margin-top: 5px; + padding-top: 5px; + border-top: 1px solid rgba(0, 0, 0, 0.3); + color: #ccc; +} + +.im-table-descriptions-displayed { + padding: 5px; + position: absolute; + top: 100%; + margin-bottom: 40px; +} + +.im-table-descriptions-displayed div, +.im-table-descriptions-hidden div { + white-space: pre-wrap; + word-wrap: break-word; + word-break: break-word; + + font-size: 12px; +} + +.dCols-desc pre { + white-space: pre-wrap; + padding: 5px; + font-size: 13px; + font-family: "Courier New", Courier, monospace; + overflow: auto; + margin: 0; + color: beige; +} + +.dCols-desc-nowrap pre { + white-space: revert; +} + + +.im-n-text p { + margin: 0; +} + +.im-n-text a { + color: #2196f3; +} + +pre.im-n-text { + padding: 0; + margin: 0; + font-family: "Open sans"; +} + +.im-tp-text { + padding: 5px 4px 2px 4px; + font-size: 13px; + overflow: auto; + min-height: auto; + min-width: auto; + color: #555; + user-select: none; + flex-grow: 1; +} + +.dRow { + display: grid; + grid-template-columns: 25px fit-content(150px) 1fr minmax(auto, 24px); + border-radius: 2px; + min-height: 18px; +} + +.dRow-thin { + grid-template-columns: 5px fit-content(150px) 1fr auto 200px 200px; +} + +#diagram .dRow-thin { + grid-template-columns: 5px fit-content(150px) 1fr minmax(auto, 24px); +} + +.dCol { + margin-right: 0; + font-size: 12px; + min-height: 17px; +} + +.dItem { + font-size: 12px; + min-height: 17px; + padding: 0 2px 0; +} + +.dCol:nth-of-type(2), +.dCol:nth-of-type(3) { + white-space: nowrap; + margin-right: 0; + font-weight: 400; + margin-right: 0px; +} + +.dCol:nth-of-type(3) { + font-style: italic; + color: #ddd; + padding-left: 4px; + padding-right: 10px; + text-align: right; + margin-left: 10px; +} + +.dCol:last-of-type { + margin-right: auto; + padding-left: 5px; +} + + +.t:hover:not(.sel-item-diagram), +.im-n:hover:not(.sel-item-diagram) { + transition: box-shadow 0.4s; +} + +.sel-item-diagram, +.sel-item-diagram-multi, +.sel-item-diagram:hover { + z-index: 100; + outline: none; + outline-offset: 0px; + border: 1px solid transparent; +} + +.res { + display: none; +} + +.sel-item-diagram-multi .res { + display: none; +} + +.sel-item-diagram .res { + display: block; +} + +marker path { + stroke-width: 1; +} + +path { + fill: none; + stroke-width: 1; + cursor: pointer; +} + +circle.relationCardinality { + fill: #585858; + stroke: #ddd; + stroke-width: 1; +} + +#svgMain { + position: absolute; + background: linear-gradient(45deg, #f2f2f2, #ddd, #f2f2f2, #eee); + background: #585858; + border: 0; + z-index: 2; +} + +.sel-relation-diagram { + stroke: #000; +} + +.sel-relation-diagram-arrow { + fill: #000; +} + +.relation-diagram-bg { + stroke: rgba(0, 0, 0, 0.01); + stroke-width: 5px; + z-index: 0; +} + +.sel-relation-diagram-bg { + stroke: #3faaff; +} + +text, +tspan { + user-select: none; + cursor: pointer; +} + +.rbelongs { + /*stroke-dasharray: 3;*/ +} + +.rboth { + /*stroke-dasharray: 10, 5, 2, 2, 2, 5;*/ +} + + +.rCardinality { + font-size: 10px; + fill: #eee; + color: #eee; +} + +.rCardinalityBg { + font-size: 10px; + stroke-width: 4px; + fill: #333; + stroke:#333; +} +.im-t-c { + display: table-cell; +} + +.im-t-c:not(:nth-of-type(1)):not(:nth-of-type(3)) { + padding-right: 4px; +} + +.im-mini { + font-size: 11px; + padding-bottom: 1px; +} + + +.im-mini-PK, .im-mini-PI { + background: #ff0000; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-mini-PFK, .im-mini-PL { + background: #2196f3; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-mini-FK { + background: #4caf50; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} +.im-mini-IX { + background: #8F5D00; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-mini-AK, .im-mini-AI { + background: #B20DA2; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-embedded { + margin-left: 0; + padding-left: 0; + grid-column: span 4; + border-radius: 2px; +} + +.im-embedded-thin { + background: rgba(0, 0, 0, 0.15); + margin-left: 14px; + padding-left: 0px; +} + +.im-col-list { + color: limegreen; + padding-right: 1px; + padding-left: 1px; + font-style: normal; +} + +.im-col-object-left { + color: goldenrod; + padding-right: 1px; + font-style: normal; + display: inline-block; +} + +.im-col-object-right { + color: goldenrod; + padding-left: 1px; + font-style: normal; + display: inline-block; +} + +.im-select-decorator { + position: absolute; + height: 100px; + width: 100px; + left: 50px; + top: 50px; + border: 2px dotted #ccc; + z-index: 9999; +} + +.im-other-object { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 1px 4px; +} + +.im-other-object-type { + display: flex; + align-items: center; + justify-content: center; + font-size: 8px; + opacity: 0.6; + text-transform: uppercase; +} + +.im-backgroundImageGrid { + background-image: url(backgroundImageGrid.svg); +} + +.im-backgroundImageSquares { + background-image: url(backgroundImageSquares.svg); +} + +.im-backgroundImageTriangles { + background-image: url(backgroundImageTriangles.svg); +} + +.im-backgroundImageBricks { + background-image: url(backgroundImageBricks.svg); +} + +.im-z-index-8 { + z-index: 8; +} + +.sel-item-diagram-multi.im-z-index-4,.im-z-index-4 { + z-index: 4 !important; + pointer-events: none; +} + +.sel-item-diagram-multi.im-z-index-4 div,.im-z-index-4 div { + visibility: hidden; +} + +.im-dropdown ul li.im-dropdown-icon-empty { + display: grid; + grid-template-columns: 21px 1fr; +} + + + +.forcedLineColor { + stroke: white !important; +} + +polygon.forcedPolygonFill, circle.forcedPolygonFill, tspan.forcedPolygonFill { + fill: white !important; + stroke-width: 0; +} + +.forcedTransparentFill { + fill: rgb(51, 51, 51) !important; + +} + +.im-icon-ResizeBottomRight16 { + display: none; +} + +.tree__wrapper { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + height: max-content; + width: max-content; + z-index: 10; +} + +.tree__wrapper * { + box-sizing: border-box; +} + +.tree__spacer { + height: 40px; + width: 100%; + display: block; +} + +.tree__mini__toolbar { + position: sticky; + top: 0; + width: 100%; + left: 0; + right: 0; + margin: auto; + height: 24px; + background: #282828; + z-index: 9999; + display: flex; + box-shadow: 0px 0px 5px -2px #000; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + border-left: 1px solid rgba(255, 255, 255, 0.1); + border-right: 1px solid rgba(255, 255, 255, 0.1); + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} + +.tree__item__root { + display: flex; + color: #eee; + position: relative; + margin-bottom: 0; + padding: 0; +} + +.tree__item__root__wrapper { + display: flex; + margin: 15px 20px; +} + +.tree__item__hidden__caption__text { + padding-left: 10px; + font-size: 12px; + width: max-content; + display: inline-block; + color: #999; + padding-top: 4px; +} + +.tree__item__hidden__caption__text::after { + font-family: "im-line-icons" !important; + content: ""; + background: transparent; + width: 20px; + height: 100%; + color: #999; + position: absolute; + top: 4px; + left: auto; + opacity: 0.6; + font-size: 10px; + padding-left: 5px; + padding-top: 4px; +} + +.tree__item__root__name { + font-size: 12px; + display: inline-block; + width: fit-content; + align-self: center; + padding: 0; + border: 1px solid transparent; + background: #404040; + padding: 1px 8px 1px 5px; + width: max-content; + min-width: 50px; +} + +.tree__item { + display: flex; + margin: 0px 0px 0px 0px; + width: fit-content; + font-size: 10px; + position: relative; + padding-left: 20px; + padding-top: 3px; + padding-bottom: 3px; +} + +.tree__item:not(.t__tree__item__single__line):first-of-type::before { + content: " "; + position: absolute; + left: 2px; + top: 50%; + height: 50%; + width: 0; + border-left: thin solid #eee; +} + +.tree__item:not(.t__tree__item__single__line):last-of-type::before { + content: " "; + position: absolute; + left: 2px; + top: 0%; + height: 50%; + width: 0; + border-left: thin solid #eee; +} + +.tree__item.t__tree__item__single__line { + padding-left: 0 !important; +} + +.tree__item__single__line::before { + content: " "; + width: 0px; + height: 0; + background: transparent; + position: absolute; + top: 50%; + left: -21px; + border-bottom: thin solid #eee; +} + +.tree__item__first__line::before { + content: " "; + width: 21px; + height: 0; + position: absolute; + top: 50%; + left: -21px; + border-top: thin solid #eee; +} + +.tree__item__last__line::before { + content: " "; + width: 21px; + height: 0; + position: absolute; + top: 50%; + left: -21px; + border-top: thin solid #eee; +} + +.tree__item__middle__line::before { + content: " "; + width: 20px; + height: 0; + position: absolute; + top: 50%; + left: -21px; + border-top: thin solid #eee; +} + +.t__tree__item__middle__line::before { + content: " "; + position: absolute; + left: 2px; + top: 0%; + height: 100%; + width: 0; + border-left: thin solid #eee; +} + +.tree__spec { + white-space: pre-wrap; + font-style: normal; + color: #ccc; + background: #333; + padding: 3px 4px 0px 4px; + font-size: 10px; + border-radius: 4px; + margin-top: 1px; +} + +.tree__prop__key { + color: goldenrod; + max-width: 180px; + text-overflow: ellipsis; + display: inline-block; + overflow: hidden; + white-space: nowrap; + width: auto; + padding-right: 10px; +} + +.tree__prop__value { + color: #ccc; + max-width: 180px; + text-overflow: ellipsis; + display: inline-block; + overflow: hidden; +} + +.tree__prop__comment { + color: limegreen; + max-width: 180px; + display: inline-block; + overflow: hidden; + padding-left: 2px; + font-size: 11px; + border-radius: 4px; + padding-right: 5px; +} + +.tree__item__named { + display: inline-block; + width: fit-content; + align-self: center; + padding: 0; + border: thin solid transparent; + position: relative; + margin-right: 28px; +} + +.tree__expander__icon__left > i.im-icon-MinusCircle16::after { + content: " "; + width: 15px; + height: 0; + position: absolute; + top: 50%; + left: 100%; + background: transparent; + border-bottom: thin solid #eee; +} + +.tree__item__bg { + background: #404040; + border: thin dashed rgba(255, 255, 255, 0.2); + box-shadow: 4px 4px 8px -8px black; + padding: 3px; + width: max-content; + position: relative; +} + +.tree__item__spec__bg span { + padding: 3px; + display: inline-block; +} + +.tree__item__required { + border: thin solid rgba(255, 255, 255, 0.2); +} + +.tree_padding_sm { + padding: 3px; +} + +.tree__item__sub { + display: inline-block; + margin: 0; + left: 0px; + position: relative; + align-self: center; +} + +.group { + /*background: url(bg-vertical.svg);*/ + background-repeat: repeat-y; + background-position-x: 20px; + background-position-y: center; + background-size: 1px 100%; +} + +.tree__expander__icon { + align-self: center; + position: relative; + left: -6px; + top: 1; + background: #404040; + border-radius: 100%; + box-shadow: 4px 4px 8px -6px black; + cursor: pointer; + padding: 1px; + width: 15px; + height: 15px; + z-index: 999; +} + +.tree__expander__icon__left { + align-self: center; + display: block; + cursor: pointer; + padding: 1px; + width: 15px; + height: 15px; + z-index: 999; + position: absolute; + right: -15px; + top: 0; + bottom: 0; + margin: auto; +} + +.tree__expander__icon__left i.im-icon-FullCircle { + position: absolute; + top: 0px; + left: -5px; + width: 15px; + height: 15px; + color: #404040; + } + + .tree__expander__icon__left i.im-icon-MinusCircle16, .tree__expander__icon__left i.im-icon-PlusCircle16 { + position: relative; + left: -6px; + background: transparent; + border-radius: 100%; + color: #fff; +} + +.tree__flex__rows { + display: flex; + font-size: 11px; +} + +.tree__flex { + display: flex; +} + +.tree__select { + padding: 0; + width: 100%; + max-width: 100% !important; +} + +.tree__select option { + padding: 1px; + width: 80px; +} + +.tree__input { + width: 100%; + min-width: 60px; + border: thin solid transparent; + border-bottom-color: transparent; + border-bottom-style: solid; + border-bottom-width: 1px; + border-radius: 2px; + padding: 0 2px; + font-family: "Open Sans"; + font-size: 12px; +} + +.tree__item input, .tree__item__rootbox input { + background: #404040; + border-bottom: 1px solid transparent; + margin-bottom: 0; +} + +.tree__item__box { + display: grid; + grid-template-columns: 1fr; + grid-gap: 4px; +} + +.tree__item__rootbox { + display: grid; + grid-template-columns: 15px 1fr; + grid-gap: 0; +} + +.tree__item__type { + text-align: center; +} + +.tree__item__req { + display: inline-block; + align-self: right; + background: rgba(0, 0, 0, 0.2); + margin: 0 4px; + padding: 1px 4px 1px 4px; + border-radius: 4px; + color: #eee; +} + +.tree__item__last { + display: grid; + grid-template-columns: 1fr auto; +} + +.tree__item__last > div > div { + margin: 1px 4px 4px 4px; +} + + .tree__item__last > div > span:first-of-type { + margin: 1px 0px 1px 4px; + padding-top: 3px; +} + + +.tree__required { + color: #eee; + padding-right: 2px; + display: inline-block; + font-style: normal; + font-size: 9px; +} + +.tree__item__inputwrapper { + padding-right: 5px; + display: grid; + grid-template-columns: 1fr; + font-size: 11px; + color: #eee; +} + +.tree__condition__wrapper .tree__item__inputwrapper { + padding-right: 0; +} +.tree__condition__wrapper .tree__item__last { + padding-left: 0; +} + +.tree__key__inputwrapper .tree__input { + color: #ccc; +} + +.tree__key__inputwrapper { + padding-right: 3px; + padding-left: 2px; + display: grid; + grid-template-columns: auto 1fr; + font-size: 10px; + color: #eee; +} + +.tree__item__icon { + font-size: 11px; + position: relative; + top: 1px; +} + +.tree__icon__array { + font-size: 11px; + color: limegreen; + padding-right: 4px; + padding-left: 1px; + font-style: normal; +} + +.tree__icon__array__mini { + font-size: 8px; + color: limegreen; + padding-right: 2px; + padding-left: 1px; + position: relative; + bottom: 1px; + font-style: italic; +} + +.tree__icon__multi { + font-size: 11px; + color: white; + padding-right: 4px; + padding-left: 1px; + font-style: normal; +} + +.tree__icon__array i.im-icon-DotsVerticallDouble16 { + font-size: 10px; + color: limegreen; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__pattern { + font-size: 10px; + color: #999; + padding-right: 4px; + font-style: normal; + display: inline-block; + align-self: center; +} + +.tree__icon__object { + font-size: 10px; + color: goldenrod; + padding-right: 4px; + font-style: normal; + display: inline-block; + align-self: center; +} + +.tree__icon__object__mini { + font-size: 8px; + color: goldenrod; + padding-right: 2px; + position: relative; + bottom: 1px; + font-style: italic; +} + +.tree__icon__object i.im-icon-ArrowLeft16 { + font-size: 9px; + color: goldenrod; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__ref i.im-icon-Type { + font-size: 9px; + color: #2196f3; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__ref i.im-icon-Table { + font-size: 9px; + color: goldenrod; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__object i.im-icon-Table { + font-size: 9px; + color: #eee; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__object i.im-icon-DotsVerticallDouble16 { + font-size: 10px; + color: goldenrod; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__condition { + background: darkmagenta; + color: rgba(255, 255, 255, 0.7); + padding-right: 1px; + font-style: normal; + display: inline-block; + font-size: 9px; + padding: 2px 4px; + min-width: 25px; + text-align: center; + border-radius: 5px; + bottom: 0; + position: relative; + top: -3px; + width: auto; + margin: 0 5px; + text-transform: uppercase; +} + +.tree__icon__def { + color: goldenrod; + padding-right: 1px; + font-style: normal; + display: inline-block; +} + +.tree__icon__referenced { + color: #2196f3; + padding-right: 4px; + font-style: normal; + display: inline-block; + font-size: 13px; +} + +.tree__ref__key { + color: #2196f3; + font-size: 11px; + max-width: 180px; + text-overflow: ellipsis; + display: inline-block; + overflow: hidden; +} + +.tree__datatype__name { + color: #999; + padding-left: 2px; + padding-right: 10px; + text-align: left; + margin-left: 0px; + font-size: 11px; +} + +.tree__item__index { + color: #eee; + opacity: 0.8; +} + +.tree__item__hidden { + padding-right: 10px; + opacity: 0; + font-size: 12px; + line-height: 0; + padding-left: 3px; +} + +.tree__item__hidden__caption { + opacity: 0; + position: sticky; + top: -2px; + bottom: unset; + height: 24px; + align-self: center; + z-index: -1; + width: 2px; +} + +.tree__item__root svg { + position: absolute; + width: 45px; + height: 100%; + left: -5px; + top: 5px; +} + +.tree__item__root line, +.tree__item__root path { + stroke-width: 1; + stroke: #fff; +} + +#diagram-tree { + margin: 30px; + position: relative; +} + +#diagram-tree svg { + margin: 2px; +} + +#diagram-tree .im-mw-sm, #diagram-tree input.im-mw-sm, #diagram-tree select.im-mw-sm { + min-width: fit-content !important; + width: fit-content !important; +} + +#diagram #svgMain { + top: 0px; + left: 0px; + background: transparent; + position: absolute; + height: 100%; +} + +#diagram #mainHtmlCanvas { + height: 100%; + transform-origin: 0 0; +} + +#diagram { + height: 100%; + width: 100%; + position: relative; +} + +.im-position-top-2 { + position: relative; + top: -2px; +} + +.tree__key { + width: max-content; + align-self: center; + position: relative; + left: -1px; + background-position: -3px center; + background-repeat: no-repeat; + background-size: 28px 24px; + stroke: #ddd !important; + font-size: 10px; + color: #ccc; + box-shadow: 4px 4px 8px -8px black; +} + +.tree__key__text { + color: #ccc; + font-size: 10px; + background: #404040; + border-radius: 8px; + min-width: 28px; + padding: 2px 5px 2px 5px; +} + +.tree__key__text__mini { + font-size: 12px; + border-radius: 4px; + min-width: 28px; + min-height: 12px; + padding: 1px 6px 1px 0; + text-align: center; + color: #ccc; +} + +.tree__mini__selected { + background: #0267b7; + border-radius: 4px; + position: relative; + left: -3px; + padding-left: 3px; + padding-right: 1px !important; + color: white; + max-height: 16px; +} + +.im-arrow .tree__mini__clickable, .im-Arrow .tree__mini__clickable { + cursor: pointer; +} + +.im-arrow .tree__mini__clickable:hover, .im-Arrow .tree__mini__clickable:hover { + background: #222; + border-radius: 4px; + position: relative; + left: -3px; + padding-left: 3px; + padding-right: 1px !important; + color: white !important; + max-height: 16px; +} + +.tree__mini__selected .tree__key__text__mini { + color: white; +} + +.tree__choice, .tree__condition { + width: max-content; + align-self: center; + position: relative; + left: -1px; + background-position: -3px center; + background-repeat: no-repeat; + background-size: 28px 24px; + padding-left: 13px; + font-size: 10px; + color: rgba(255, 255, 255, 0.8); +} + +.tree__choice__mini { + background-size: 20px 16px; + background-position: -1px center; + padding-left: 12px; + background-repeat: no-repeat; + font-style: italic; +} + +.tree__choice__oneOf { + background-image: url(oneOf-dark.svg); +} + +.tree__choice__allOf { + background-image: url(allOf-dark.svg); +} + +.tree__choice__anyOf { + background-image: url(anyOf-dark.svg); +} + +.tree__choice__not { + background-image: url(not-dark.svg); +} + +.tree__choice__wrapper { + background: darkgreen; + border-radius: 11px; + padding: 0 3px; +} + +.tree__choice__text { + font-size: 10px; + background: darkgreen; + border-radius: 11px; + min-width: 28px; + padding: 5px 9px 3px 7px; + text-align: center; +} + +.tree__choice__text__mini { + font-size: 10px; + background: darkgreen; + border-radius: 4px; + min-width: 28px; + min-height: 12px; + padding: 1px 6px 0px 4px; + text-align: center; + color: rgba(255, 255, 255, 0.8); + font-style: italic; +} + +.tree__condition { + background-position: 0 center; + padding-left: 16px; +} + +.tree__condition__if { + background-image: url(if-dark.svg); + color: white; +} + +.tree__condition__then { + background-image: url(then-dark.svg); + color: white; +} + +.tree__condition__else { + background-image: url(else-dark.svg); + color: white; +} + +.tree__condition__wrapper { + border-radius: 11px; + padding: 0 3px; + overflow: hidden; + background: #404040; + box-shadow: 4px 4px 8px -8px black; +} + +.tree__condition__text { + font-size: 10px; + background: darkmagenta; + border-radius: 11px; + min-width: 24px; + padding: 5px 9px 3px 7px; + text-align: center; + color: white; +} + +.tree__condition__text__mini { + font-size: 10px; + background: darkmagenta; + border-radius: 4px; + min-width: 28px; + min-height: 12px; + padding: 1px 6px 0px 4px; + text-align: center; + color: rgba(255, 255, 255, 0.8); + font-style: italic; +} + +input::placeholder { + color: #ccc; + font-style: italic; + opacity: 0.5; +} + +.tree__bg__referenced, .tree__bg__subschema { + background: rgba(0, 0, 0, 0.1); + border: thin dashed rgba(255, 255, 255, 0.2); + padding: 15px 2px 15px 20px; + position: relative; +} + +.tree__bg__referenced:before { + content: "Definition"; + position: absolute; + top: 3px; + left: 5px; + color: #eee; + opacity: 0.3; + font-size: 8px; + text-transform: uppercase; +} + +.tree__subschema { + position: relative; +} + +.tree__subschema::before { + content: "Subschema"; + position: absolute; + top: 5px; + left: 5px; + color: #eee; + opacity: 0.3; + font-size: 8px; + text-transform: uppercase; +} + +.tree__bg__subschema::before { + content: " "; + width: 20px; + height: 0; + position: absolute; + top: calc(50% - 0.5px); + left: 0px; + border-top: thin solid #eee; + margin-bottom: 1px; +} + +.tree__schema:before { + content: "Schema"; + position: absolute; + top: -15px; + left: 1px; + color: #eee; + opacity: 0.5; + font-size: 8px; + text-transform: uppercase; +} + +.tree__definition:before { + content: "Subschema"; + position: absolute; + top: -15px; + left: 1px; + color: #eee; + opacity: 0.5; + font-size: 8px; + text-transform: uppercase; +} + +.tree__ref:before { + content: "External ref"; + position: absolute; + top: -15px; + left: 1px; + color: #eee; + opacity: 0.5; + font-size: 8px; + text-transform: uppercase; +} + +.tree__condition__wrapper .tree__prop__comment { + background: #333; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + padding: 3px 7px 2px 4px; + text-align: left; +} + +.tree__item__hidden__caption[sticky-active] { + opacity: 1; + z-index: 9999; +} + +@media print { + .mm-freeware #mainHtmlCanvas div.tree__item:nth-child(3n) .tree__item__bg::after, .mm-trial #mainHtmlCanvas div.tree__item:nth-child(3n) .tree__item__bg::after { + content: " Trial "; + display: inline-block; + position: absolute; + top: 1px; + left: 1px; + right: 1px; + bottom: 1px; + background: rgba(0, 0, 0, 0.8); + color: white; + padding: 0; + text-align: center; + padding-top: 5px; + } +} + + +.dCols-report .tree__flex__rows { + overflow-wrap: break-word; +} + +.sel-item-diagram-multi { + box-shadow: none; + outline: 0; +} + +.sel-item-diagram, .sel-item-diagram:hover { + outline: 0; + box-shadow: 4px 4px 8px -8px black; + border: 1px solid rgba(0, 0, 0, 0.3); +} + +/**/ +.im-display-none { + display: none; +} + +.im-display-flex { + display: flex; + flex-grow: 1; + justify-content: center; +} + +.im-display-inline-block { + display: inline-block; +} + +.tree__input, .tree__input:focus, .tree__input:focus-visible { + outline: none; +} + +.tree__empty_decorator { + display: inline-block; + min-width: 6px; +} + +.im-text-opacity-50 { + opacity: 0.4; +} + +.mm-section-group { + display: none; +} \ No newline at end of file diff --git a/database/web/then-dark.svg b/database/web/then-dark.svg new file mode 100644 index 000000000..4c8678e41 --- /dev/null +++ b/database/web/then-dark.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/then-light.svg b/database/web/then-light.svg new file mode 100644 index 000000000..328aff41d --- /dev/null +++ b/database/web/then-light.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + From 725cf6eeb2e680726e0e148844a31f0a05b10a66 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 20:26:51 -0500 Subject: [PATCH 06/29] updating git commit Signed-off-by: Aaron Lippold --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 47c39617e..e01e47e4a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ node_modules -venv** +venv +.DS_Store +*.DS_Store** From d16168fd016bbed39cd0082ef47b6f3ee3a75f5d Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 20:27:22 -0500 Subject: [PATCH 07/29] updating database design Signed-off-by: Aaron Lippold --- database/Benchmarks.pdf | Bin 0 -> 38932 bytes database/Benchmarks.sql | 75 ++-- database/Security Guidance.dmm | 649 ++++++++++++++++++--------------- database/web/index.html | 36 +- 4 files changed, 403 insertions(+), 357 deletions(-) create mode 100644 database/Benchmarks.pdf diff --git a/database/Benchmarks.pdf b/database/Benchmarks.pdf new file mode 100644 index 0000000000000000000000000000000000000000..645650dbb627c426c84f812301648eadf24d708d GIT binary patch literal 38932 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ⅇhrIG>KV-(2WeY?F>iP4$m^eMS^$hH`yDr{YB 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 IMpnlE0#)AwJpcdz literal 0 HcmV?d00001 diff --git a/database/Benchmarks.sql b/database/Benchmarks.sql index cb22f633b..e5212e394 100644 --- a/database/Benchmarks.sql +++ b/database/Benchmarks.sql @@ -1,75 +1,70 @@ CREATE TABLE "Organization"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - name VARCHAR NOT NULL, + organization_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + short_name VARCHAR NOT NULL, uri VARCHAR, email VARCHAR, - CONSTRAINT "Authors_ak_1" UNIQUE(name) + full_name VARCHAR NOT NULL ); -CREATE INDEX organization_index ON "Organization"(id); - -CREATE TABLE artifact_types(type VARCHAR NOT NULL, PRIMARY KEY(type)); +CREATE TABLE artifact_types + (type_name VARCHAR NOT NULL, artifact_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, description TEXT); CREATE TABLE benchmark_type( - type VARCHAR NOT NULL, + short_name VARCHAR NOT NULL, description TEXT NOT NULL, - organization_name VARCHAR NOT NULL, - PRIMARY KEY(type), - CONSTRAINT name_benchmark_type FOREIGN KEY (organization_name) REFERENCES "Organization" (name) + benchmark_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + long_name VARCHAR NOT NULL ); CREATE TABLE "Artifact"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + artifact_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR NOT NULL, location VARCHAR NOT NULL, created_at DATE NOT NULL, secondary_location VARCHAR, raw_data BLOB, - type VARCHAR NOT NULL, - author_name VARCHAR NOT NULL, - CONSTRAINT "type_Artifact" FOREIGN KEY (type) REFERENCES artifact_types (type), - CONSTRAINT "name_Artifact" FOREIGN KEY (author_name) REFERENCES "Organization" (name) + type_id INTEGER NOT NULL, + organization_id INTEGER NOT NULL, + CONSTRAINT "type_Artifact" FOREIGN KEY (type_id) REFERENCES artifact_types (artifact_type_id), + CONSTRAINT "organization_id_Artifact" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) ); CREATE TABLE "Products"( - name VARCHAR NOT NULL, + short_name VARCHAR NOT NULL, version REAL NOT NULL, author_id INT NOT NULL, - "release" INT, - PRIMARY KEY(name, version), - CONSTRAINT "id_Products" FOREIGN KEY (author_id) REFERENCES "Organization" (id) + "release" INT NOT NULL, + long_name VARCHAR NOT NULL, + product_id INT NOT NULL, + organization_id INTEGER NOT NULL, + CONSTRAINT "organization_id_Products" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) ); -CREATE TABLE "Statuses"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - name VARCHAR NOT NULL, - CONSTRAINT "Statuses_ak_1" UNIQUE(id), - CONSTRAINT "Statuses_ak_2" UNIQUE(name) -); +CREATE TABLE "Statuses"(status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR NOT NULL); CREATE TABLE "Benchmarks"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + benchmark_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, version SMALLINT NOT NULL, "release" SMALLINT NOT NULL, release_date DATE NOT NULL, - type VARCHAR NOT NULL, - product_name VARCHAR NOT NULL, - product_version REAL NOT NULL, - status VARCHAR NOT NULL, - organization_name VARCHAR NOT NULL, - sponsor_name VARCHAR, - CONSTRAINT type_type FOREIGN KEY (type) REFERENCES benchmark_type (type), - CONSTRAINT "Products_Benchmarks" FOREIGN KEY (product_name, product_version) REFERENCES "Products" (name, version), - CONSTRAINT "name_Benchmarks" FOREIGN KEY (status) REFERENCES "Statuses" (name), - CONSTRAINT "name_Benchmarks" FOREIGN KEY (organization_name) REFERENCES "Organization" (name), - CONSTRAINT "name_Benchmarks" FOREIGN KEY (sponsor_name) REFERENCES "Organization" (name) + status_id INTEGER NOT NULL, + type_id INTEGER NOT NULL, + product_id INT NOT NULL, + author_id INTEGER NOT NULL, + sponsor_id INTEGER NOT NULL, + status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + CONSTRAINT "status_id_Benchmarks" FOREIGN KEY (status_id) REFERENCES "Statuses" (status_id), + CONSTRAINT "benchmark_type_id_Benchmarks" FOREIGN KEY (type_id) REFERENCES benchmark_type (benchmark_type_id), + CONSTRAINT "product_id_Benchmarks" FOREIGN KEY (product_id) REFERENCES "Products" (product_id), + CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (author_id) REFERENCES "Organization" (organization_id), + CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (sponsor_id) REFERENCES "Organization" (organization_id) ); CREATE TABLE benchmark_artifacts( + "default" INT2, benchmark_id INTEGER NOT NULL, artifact_id INTEGER NOT NULL, - "default" INT2, PRIMARY KEY(benchmark_id, artifact_id), - CONSTRAINT id_benchmark_references FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (id), - CONSTRAINT id_benchmark_reference FOREIGN KEY (artifact_id) REFERENCES "Artifact" (id) + CONSTRAINT benchmark_id_benchmark_artifacts FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (benchmark_id), + CONSTRAINT artifact_id_benchmark_artifacts FOREIGN KEY (artifact_id) REFERENCES "Artifact" (artifact_id) ); diff --git a/database/Security Guidance.dmm b/database/Security Guidance.dmm index 908f7be67..12edb6d9d 100644 --- a/database/Security Guidance.dmm +++ b/database/Security Guidance.dmm @@ -9,7 +9,7 @@ "cols": [ { "id": "1d76151a-b0c8-4b0a-8400-f244d48a92d6", - "name": "id", + "name": "benchmark_id", "datatype": "INTEGER", "param": "", "pk": true, @@ -74,32 +74,33 @@ "estimatedSize": "" }, { - "id": "bf7b3d03-626d-4886-9a32-ca9972d86f4b", - "name": "type", - "datatype": "VARCHAR", + "id": "248ecf4a-67bc-4911-bdf4-44e371027db5", + "name": "status_id", + "datatype": "INTEGER", "param": "", "pk": false, "nn": true, - "comment": "FK: [benchmark_type.id]", + "comment": "[autogenerated] id of the status type", "defaultvalue": "", - "data": "'stig', 'cis','srg','vendor'", + "data": "1,2,3", "after": "", + "collation": "", "sqlite": { "autoincrement": false }, "estimatedSize": "", - "fk": true + "fk": false }, { - "id": "5af93689-e4b0-4b4e-a4eb-a2482b960353", - "name": "product_name", - "datatype": "VARCHAR", + "id": "2da7d7d5-7ef4-4c07-a424-8b116ecd29ba", + "name": "type_id", + "datatype": "INTEGER", "param": "", "pk": false, "nn": true, - "comment": "", + "comment": "[autoincrement] id of the benchmark type", "defaultvalue": "", - "data": "", + "data": "1,2,3", "after": "", "sqlite": { "autoincrement": false @@ -108,15 +109,15 @@ "fk": true }, { - "id": "f583317f-0d69-437c-92ce-ac01937d387c", - "name": "product_version", - "datatype": "REAL", + "id": "a63e9906-c1c8-47b8-b628-23fd92b1ffe5", + "name": "product_id", + "datatype": "INT", "param": "", "pk": false, "nn": true, - "comment": "", + "comment": "[autoincrement] The int id of the product related to the benchmak", "defaultvalue": "", - "data": "", + "data": "1,2,3", "after": "", "sqlite": { "autoincrement": false @@ -125,16 +126,17 @@ "fk": true }, { - "id": "82d55b13-5bc6-487c-9d06-17c9bb3508e7", - "name": "status", - "datatype": "VARCHAR", + "id": "ff9f083a-372b-499b-8dc8-fdcf0fdc822e", + "name": "author_id", + "datatype": "INTEGER", "param": "", "pk": false, "nn": true, - "comment": "Text based name for the status", + "comment": "Integer id of the organization that authored the benchmark", "defaultvalue": "", - "data": "'final', 'draft', 'in-review', 'sunset'", + "data": "1,2,3", "after": "", + "collation": "", "sqlite": { "autoincrement": false }, @@ -142,16 +144,17 @@ "fk": true }, { - "id": "066852bf-14e2-4489-8448-bb61d57eeec1", - "name": "organization_name", - "datatype": "VARCHAR", + "id": "df997652-f34f-45cc-9138-755f4c5ba318", + "name": "sponsor_id", + "datatype": "INTEGER", "param": "", "pk": false, "nn": true, - "comment": "The full text name of the author, vendor or agency that created the Benchmark", + "comment": "Integer id of the organization that supported the development of the benchmark", "defaultvalue": "", - "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "data": "1,2,3", "after": "", + "collation": "", "sqlite": { "autoincrement": false }, @@ -159,30 +162,31 @@ "fk": true }, { - "id": "4a30d437-0207-4479-9f55-a9f8980d8189", - "name": "sponsor_name", - "datatype": "VARCHAR", + "id": "f24a7cbb-97a8-4ad6-99ef-978597b0742a", + "name": "status_id", + "datatype": "INTEGER", "param": "", "pk": false, - "nn": false, - "comment": "The full text name of the author, vendor or agency that sponsored the creation of the benchmark.", + "nn": true, + "comment": "[autogenerated] id of the status type", "defaultvalue": "", - "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "data": "1,2,3", "after": "", + "collation": "", "sqlite": { - "autoincrement": false + "autoincrement": true }, "estimatedSize": "", "fk": true } ], "relations": [ - "b408fbf5-544d-4f16-8324-441a198d8a7f", - "f74fb015-dbf2-4079-819c-c0b7b2a2a523", - "57450471-c472-4b73-b00b-78ea52310429", - "c6dc322d-7473-4310-84da-22412bbbadb2", - "b14de6cd-af4a-4d85-be8f-365d524292c3", - "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d" + "663efedd-aac8-45c1-baf3-c22f9266e727", + "6465776d-da1f-414e-a12c-32ac13b66909", + "8440ea26-76c0-4269-9597-a6995d857b68", + "e12f9a4e-1035-45c0-bd66-a0b32b825758", + "3627acdc-20c5-462a-9096-da39cd6b9ed8", + "a2782a52-3d03-4937-8ccf-9e0a994db294" ], "lines": [], "keys": [ @@ -219,14 +223,14 @@ "cols": [ { "id": "6684e545-9261-4248-8a02-b11526e64fd8", - "name": "type", + "name": "short_name", "datatype": "VARCHAR", "param": "", - "pk": true, + "pk": false, "nn": true, - "comment": "The varchar (text) name of the benchmark type", + "comment": "The short name name of the benchmark type", "defaultvalue": "", - "data": "\"stig\", \"cis\", \"srg\", \"vendor\"", + "data": "\"stig\", \"cis\", \"srg\", \"AWS-BP\", 'RH-BP'", "after": "", "sqlite": { "autoincrement": false @@ -242,7 +246,7 @@ "nn": true, "comment": "The full text description of the guidane type", "defaultvalue": "", - "data": "", + "data": "'A Security Technical Implementation Guide ....' , 'A Center for Internet Security Benchmark.....'", "after": "", "sqlite": { "autoincrement": false @@ -250,26 +254,40 @@ "estimatedSize": "" }, { - "id": "61bf3d33-120f-42a2-9aa1-f6baebbc3175", - "name": "organization_name", + "id": "2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d", + "name": "benchmark_type_id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "[autoincrement] id of the benchmark type", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "" + }, + { + "id": "e799c237-5417-437d-a4aa-c2da58ff5de2", + "name": "long_name", "datatype": "VARCHAR", "param": "", "pk": false, "nn": true, - "comment": "The full text name of the author, vendor or agency", + "comment": "The full name of the Benchmark type", "defaultvalue": "", - "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "data": "'Security Technical Implementation Guide', 'Center for Internet Security Benchmark', 'Redhat Best Practices Guide', 'Amazon Best Practices Guide'", "after": "", "sqlite": { "autoincrement": false }, - "estimatedSize": "", - "fk": true + "estimatedSize": "" } ], "relations": [ - "b408fbf5-544d-4f16-8324-441a198d8a7f", - "2ebc720a-0bad-4e24-ae4f-f66470ba133d" + "6465776d-da1f-414e-a12c-32ac13b66909" ], "lines": [], "keys": [ @@ -279,16 +297,10 @@ "isPk": true, "cols": [ { - "id": "0dc93f91-7de3-4184-b02e-78cdaa46401f", - "colid": "6684e545-9261-4248-8a02-b11526e64fd8" + "id": "d5d5d063-6b18-40f6-b91a-1dfe9de63169", + "colid": "2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d" } ] - }, - { - "id": "657768c5-09c1-4fe2-8d99-b93af72faadd", - "isPk": false, - "name": "benchmark_type_ak_1", - "cols": [] } ], "indexes": [], @@ -312,7 +324,7 @@ "cols": [ { "id": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", - "name": "id", + "name": "organization_id", "datatype": "INTEGER", "param": "", "pk": true, @@ -329,14 +341,14 @@ }, { "id": "cee2c943-546c-4f5c-a4c3-9483a4e03410", - "name": "name", + "name": "short_name", "datatype": "VARCHAR", "param": "", "pk": false, "nn": true, - "comment": "The full text name of the author, vendor or agency", + "comment": "The short text name of the author, vendor or agency", "defaultvalue": "", - "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft', 'DSCA', 'DCSA','NGA'", "after": "", "sqlite": { "autoincrement": false @@ -374,14 +386,29 @@ "autoincrement": false }, "estimatedSize": "" + }, + { + "id": "25edc163-dc64-4451-b8b5-010934342c35", + "name": "full_name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The full text name of the author, vendor or agency.", + "defaultvalue": "", + "data": "'MITRE Security Automation Framework', 'Defense Information Systems Agency', 'Defense Counterintelligence Services Agency', 'National Geospatial-Intelligence Agency'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" } ], "relations": [ - "89f391d5-ea53-4c40-b2c5-f627bb9022ae", - "b14de6cd-af4a-4d85-be8f-365d524292c3", - "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a", - "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d", - "2ebc720a-0bad-4e24-ae4f-f66470ba133d" + "fd560202-d9f1-4e3a-8133-4d207466a3c0", + "e12f9a4e-1035-45c0-bd66-a0b32b825758", + "3627acdc-20c5-462a-9096-da39cd6b9ed8", + "46831da2-6151-4803-a00f-c8b7a0fb5cf4" ], "lines": [], "keys": [ @@ -395,17 +422,6 @@ "colid": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9" } ] - }, - { - "id": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", - "isPk": false, - "name": "Authors_ak_1", - "cols": [ - { - "id": "7f7b4d69-b983-4b51-9237-ad318734c6fe", - "colid": "cee2c943-546c-4f5c-a4c3-9483a4e03410" - } - ] } ], "indexes": [], @@ -429,7 +445,7 @@ "cols": [ { "id": "2d7700a1-2d99-49fe-b90c-4fd176eb8951", - "name": "id", + "name": "artifact_id", "datatype": "INTEGER", "param": "", "pk": true, @@ -525,15 +541,15 @@ "estimatedSize": "" }, { - "id": "5673834f-a2cd-4c7e-90ad-046b4418bb99", - "name": "type", - "datatype": "VARCHAR", + "id": "23ae68f2-9c16-41af-bc28-13cd4eab9a71", + "name": "type_id", + "datatype": "INTEGER", "param": "", "pk": false, "nn": true, - "comment": "The simple name of the artifact", + "comment": "", "defaultvalue": "", - "data": "XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,", + "data": "", "after": "", "sqlite": { "autoincrement": false @@ -542,16 +558,17 @@ "fk": true }, { - "id": "b6ccd991-7ff6-444c-a626-f4030db8e18e", - "name": "author_name", - "datatype": "VARCHAR", + "id": "4c828330-0377-4eee-a133-32a062c1f18b", + "name": "organization_id", + "datatype": "INTEGER", "param": "", "pk": false, "nn": true, - "comment": "The full text name of the author, vendor or agency", + "comment": "Integer id of the creator or owner of the artifact", "defaultvalue": "", - "data": "''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'", + "data": "1,2,3", "after": "", + "collation": "", "sqlite": { "autoincrement": false }, @@ -561,8 +578,8 @@ ], "relations": [ "ab7e56b9-8aa7-429c-97ac-d4e117244aec", - "ea99ab57-cf4b-49c5-94e9-986c4686c7e6", - "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a" + "4624830c-2ee0-4972-b189-2657e9b7998b", + "46831da2-6151-4803-a00f-c8b7a0fb5cf4" ], "lines": [], "keys": [ @@ -598,13 +615,29 @@ "estimatedSize": "", "cols": [ { - "id": "abe8e1ab-9250-48c2-93fd-9645f9587769", + "id": "16db22ec-71fe-45af-a622-ff81a5c8500a", + "name": "default", + "datatype": "INT2", + "param": "", + "pk": false, + "nn": false, + "comment": "[optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.", + "defaultvalue": "", + "data": "0.1,NULL", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "51e1ca41-0019-4f28-828a-baea406e7692", "name": "benchmark_id", "datatype": "INTEGER", "param": "", "pk": true, "nn": true, - "comment": "[int, fk] Bechmarks.id", + "comment": "[autogenerated] Autogenerated primary key of the vendor published security guidance document", "defaultvalue": "", "data": "1,2,3", "after": "", @@ -616,7 +649,7 @@ "fk": true }, { - "id": "aac75266-c7ae-4420-9ff6-5fa89fecbdd3", + "id": "75e75cd3-b681-43db-8506-a9d3dea7c1de", "name": "artifact_id", "datatype": "INTEGER", "param": "", @@ -632,27 +665,11 @@ }, "estimatedSize": "", "fk": true - }, - { - "id": "16db22ec-71fe-45af-a622-ff81a5c8500a", - "name": "default", - "datatype": "INT2", - "param": "", - "pk": false, - "nn": false, - "comment": "[optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.", - "defaultvalue": "", - "data": "0.1,NULL", - "after": "", - "sqlite": { - "autoincrement": false - }, - "estimatedSize": "" } ], "relations": [ - "f74fb015-dbf2-4079-819c-c0b7b2a2a523", - "ea99ab57-cf4b-49c5-94e9-986c4686c7e6" + "a2782a52-3d03-4937-8ccf-9e0a994db294", + "4624830c-2ee0-4972-b189-2657e9b7998b" ], "lines": [], "keys": [ @@ -662,12 +679,12 @@ "isPk": true, "cols": [ { - "id": "86d3ded4-37ec-4f0d-ab01-eddb7555540a", - "colid": "abe8e1ab-9250-48c2-93fd-9645f9587769" + "id": "7cafc003-1052-4edb-8ee0-2f973c5ca745", + "colid": "51e1ca41-0019-4f28-828a-baea406e7692" }, { - "id": "b1f7220b-1ce6-4a90-9b9a-bf4463561deb", - "colid": "aac75266-c7ae-4420-9ff6-5fa89fecbdd3" + "id": "9c3e011a-7328-4902-aa6d-eccc063ea7a8", + "colid": "75e75cd3-b681-43db-8506-a9d3dea7c1de" } ] } @@ -693,10 +710,10 @@ "cols": [ { "id": "77f4d932-64bb-4cb8-a6d4-6511cac8493a", - "name": "type", + "name": "type_name", "datatype": "VARCHAR", "param": "", - "pk": true, + "pk": false, "nn": true, "comment": "The simple name of the artifact", "defaultvalue": "", @@ -706,6 +723,38 @@ "autoincrement": false }, "estimatedSize": "" + }, + { + "id": "a4c26fa6-5af9-4d31-96ab-5b068fe82fd9", + "name": "artifact_type_id", + "datatype": "INTEGER", + "param": "", + "pk": true, + "nn": true, + "comment": "[autoincrement] The int id of the artifact kind", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "" + }, + { + "id": "f86361cd-57a5-4cee-98c0-ac57ccea6a1a", + "name": "description", + "datatype": "TEXT", + "param": "", + "pk": false, + "nn": false, + "comment": "", + "defaultvalue": "", + "data": "", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" } ], "relations": [ @@ -719,8 +768,8 @@ "isPk": true, "cols": [ { - "id": "ae764350-fd50-407a-b65d-e69606659c29", - "colid": "77f4d932-64bb-4cb8-a6d4-6511cac8493a" + "id": "f7d1404a-15dd-4014-a49d-0fb118f6883f", + "colid": "a4c26fa6-5af9-4d31-96ab-5b068fe82fd9" } ] } @@ -746,14 +795,14 @@ "cols": [ { "id": "058e47d0-7551-4777-95d1-738dc4381129", - "name": "name", + "name": "short_name", "datatype": "VARCHAR", "param": "", - "pk": true, + "pk": false, "nn": true, - "comment": "The name of the product or service", + "comment": "The common name of the product or service - sometimes called the 'short name' - for example:\nRHEL for Red Hat Enterprise Linux \nVIDM for VMware Identity Manager\nvSphere for VMware vSphere\n", "defaultvalue": "", - "data": "'Enterprise Linux', 'MSSQL Server', 'VSphere'", + "data": "'RHEL', 'VCF', 'VIDM', 'vSphere'", "after": "", "sqlite": { "autoincrement": false @@ -765,7 +814,7 @@ "name": "version", "datatype": "REAL", "param": "", - "pk": true, + "pk": false, "nn": true, "comment": "The version of the project", "defaultvalue": "", @@ -792,7 +841,7 @@ "autoincrement": false }, "estimatedSize": "", - "fk": true + "fk": false }, { "id": "db0e76c4-1a99-4c6f-a92d-ae2e44a085c0", @@ -800,7 +849,7 @@ "datatype": "INT", "param": "", "pk": false, - "nn": false, + "nn": true, "comment": "", "defaultvalue": "", "data": "", @@ -809,11 +858,61 @@ "autoincrement": false }, "estimatedSize": "" + }, + { + "id": "7a5090f4-bee9-46a5-9cbf-b9b97cb5dbb7", + "name": "long_name", + "datatype": "VARCHAR", + "param": "", + "pk": false, + "nn": true, + "comment": "The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same.", + "defaultvalue": "", + "data": "'Identity Manager', 'Cloud Foundation', 'vSphere'", + "after": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "" + }, + { + "id": "83427e84-109d-43a2-9c15-a1d3c444ebaa", + "name": "product_id", + "datatype": "INT", + "param": "", + "pk": true, + "nn": true, + "comment": "[autoincrement] The int id of the product", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "" + }, + { + "id": "af7e3f56-16b2-463c-afa0-3393593014d8", + "name": "organization_id", + "datatype": "INTEGER", + "param": "", + "pk": false, + "nn": true, + "comment": "Integer id of the organization that ownes or manages the product", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "collation": "", + "sqlite": { + "autoincrement": false + }, + "estimatedSize": "", + "fk": true } ], "relations": [ - "89f391d5-ea53-4c40-b2c5-f627bb9022ae", - "57450471-c472-4b73-b00b-78ea52310429" + "fd560202-d9f1-4e3a-8133-4d207466a3c0", + "8440ea26-76c0-4269-9597-a6995d857b68" ], "lines": [], "keys": [ @@ -823,12 +922,8 @@ "isPk": true, "cols": [ { - "id": "5e3196f9-1efd-4917-b892-00be36f802ed", - "colid": "058e47d0-7551-4777-95d1-738dc4381129" - }, - { - "id": "540dd502-ed00-444b-8264-5522d3b18c5c", - "colid": "48f5eb1d-79c8-4914-bfff-53c5d057be39" + "id": "a4289a34-9f2c-4b9c-bd69-53487fc254b3", + "colid": "83427e84-109d-43a2-9c15-a1d3c444ebaa" } ] } @@ -854,7 +949,7 @@ "cols": [ { "id": "4bc8e5d6-ec2c-44a7-940c-d75199f981af", - "name": "id", + "name": "status_id", "datatype": "INTEGER", "param": "", "pk": true, @@ -888,7 +983,7 @@ } ], "relations": [ - "c6dc322d-7473-4310-84da-22412bbbadb2" + "663efedd-aac8-45c1-baf3-c22f9266e727" ], "lines": [], "keys": [ @@ -896,29 +991,12 @@ "id": "83c53cd8-165d-4d51-b67e-8c74146d2572", "name": "Primary key", "isPk": true, - "cols": [] - }, - { - "id": "00d5af0a-9e98-4586-8d9f-997346e51d7c", - "isPk": false, - "name": "Statuses_ak_1", "cols": [ { - "id": "a1947528-cf54-4fa6-b247-a4a5846e6c49", + "id": "77066e97-129c-446c-aa0c-c6d71ad508dc", "colid": "4bc8e5d6-ec2c-44a7-940c-d75199f981af" } ] - }, - { - "id": "a9b880d3-c9ed-4ba0-9c05-d30d067f6943", - "isPk": false, - "name": "Statuses_ak_2", - "cols": [ - { - "id": "158b1625-2e10-4a67-9bc8-0daa8ccc40ef", - "colid": "2bbc6494-a884-4eca-8769-d8aedfc02637" - } - ] } ], "indexes": [], @@ -935,42 +1013,15 @@ } }, "relations": { - "b408fbf5-544d-4f16-8324-441a198d8a7f": { - "id": "b408fbf5-544d-4f16-8324-441a198d8a7f", - "visible": true, - "name": "type_type", - "desc": "", - "type": "identifying", - "parent_key": "28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098", - "parent": "ae252854-db26-47df-9077-04e929b84447", - "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", - "c_mp": "true", - "c_mch": "true", - "c_p": "one", - "c_ch": "many", - "c_cp": "", - "c_cch": "", - "cols": [ - { - "id": "5caf6f0a-3c61-4206-8b36-60fb514fec53", - "parentcol": "6684e545-9261-4248-8a02-b11526e64fd8", - "childcol": "bf7b3d03-626d-4886-9a32-ca9972d86f4b" - } - ], - "generate": true, - "generateCustomCode": true, - "customCode": "", - "relationColor": "transparent" - }, - "f74fb015-dbf2-4079-819c-c0b7b2a2a523": { - "id": "f74fb015-dbf2-4079-819c-c0b7b2a2a523", + "ab7e56b9-8aa7-429c-97ac-d4e117244aec": { + "id": "ab7e56b9-8aa7-429c-97ac-d4e117244aec", "visible": true, - "name": "id_benchmark_references", + "name": "type_Artifact", "desc": "", "type": "identifying", - "parent_key": "fa60d456-7fef-4426-9a1d-b938566b8d9b", - "parent": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", - "child": "e4cfe7e8-661f-462c-b51e-401688f089aa", + "parent_key": "db251232-ef40-4eb6-92ff-67f608e7f6f6", + "parent": "6aecb762-1a99-493f-987c-133569ac56d9", + "child": "6e2bb99e-5664-4222-b085-611dca238bf8", "c_mp": "true", "c_mch": "true", "c_p": "one", @@ -979,9 +1030,9 @@ "c_cch": "", "cols": [ { - "id": "832a13af-a0ee-4572-94bd-81911d54067b", - "parentcol": "1d76151a-b0c8-4b0a-8400-f244d48a92d6", - "childcol": "abe8e1ab-9250-48c2-93fd-9645f9587769" + "id": "72c50d9c-e2e7-434f-aebd-74f8ea024323", + "parentcol": "a4c26fa6-5af9-4d31-96ab-5b068fe82fd9", + "childcol": "23ae68f2-9c16-41af-bc28-13cd4eab9a71" } ], "generate": true, @@ -989,10 +1040,10 @@ "customCode": "", "relationColor": "transparent" }, - "89f391d5-ea53-4c40-b2c5-f627bb9022ae": { - "id": "89f391d5-ea53-4c40-b2c5-f627bb9022ae", + "fd560202-d9f1-4e3a-8133-4d207466a3c0": { + "id": "fd560202-d9f1-4e3a-8133-4d207466a3c0", "visible": true, - "name": "id_Products", + "name": "organization_id_Products", "desc": "", "type": "identifying", "parent_key": "b056d86c-a62c-465f-ac96-9374f6e41b3f", @@ -1006,9 +1057,9 @@ "c_cch": "", "cols": [ { - "id": "ff007db6-bcfa-4737-8f1f-63e1057f1755", + "id": "318857a7-a606-4717-965d-87afc13b2539", "parentcol": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", - "childcol": "0750946d-1961-48f7-a05f-ad3ca3c6619f" + "childcol": "af7e3f56-16b2-463c-afa0-3393593014d8" } ], "generate": true, @@ -1016,31 +1067,26 @@ "customCode": "", "relationColor": "transparent" }, - "57450471-c472-4b73-b00b-78ea52310429": { - "id": "57450471-c472-4b73-b00b-78ea52310429", + "663efedd-aac8-45c1-baf3-c22f9266e727": { + "id": "663efedd-aac8-45c1-baf3-c22f9266e727", "visible": true, - "name": "Products_Benchmarks", + "name": "status_id_Benchmarks", "desc": "", "type": "identifying", - "parent_key": "91648061-8fe5-45d6-a841-129186f7cdc0", - "parent": "52cf2433-451e-4ba0-8b3d-8624bd967ffb", + "parent_key": "83c53cd8-165d-4d51-b67e-8c74146d2572", + "parent": "3042578a-ef8c-490f-86e5-4cebe82acc7d", "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", "c_mp": "true", "c_mch": "true", "c_p": "one", - "c_ch": "one", + "c_ch": "many", "c_cp": "", "c_cch": "", "cols": [ { - "id": "491c9dc5-1b09-4bd1-8110-46913d1005d4", - "parentcol": "058e47d0-7551-4777-95d1-738dc4381129", - "childcol": "5af93689-e4b0-4b4e-a4eb-a2482b960353" - }, - { - "id": "e4baf84f-98e1-494b-a34e-514c65934732", - "parentcol": "48f5eb1d-79c8-4914-bfff-53c5d057be39", - "childcol": "f583317f-0d69-437c-92ce-ac01937d387c" + "id": "044a1194-9e1a-46f6-8bfa-d1f8352dde57", + "parentcol": "4bc8e5d6-ec2c-44a7-940c-d75199f981af", + "childcol": "f24a7cbb-97a8-4ad6-99ef-978597b0742a" } ], "generate": true, @@ -1048,15 +1094,15 @@ "customCode": "", "relationColor": "transparent" }, - "ab7e56b9-8aa7-429c-97ac-d4e117244aec": { - "id": "ab7e56b9-8aa7-429c-97ac-d4e117244aec", + "6465776d-da1f-414e-a12c-32ac13b66909": { + "id": "6465776d-da1f-414e-a12c-32ac13b66909", "visible": true, - "name": "type_Artifact", + "name": "benchmark_type_id_Benchmarks", "desc": "", "type": "identifying", - "parent_key": "db251232-ef40-4eb6-92ff-67f608e7f6f6", - "parent": "6aecb762-1a99-493f-987c-133569ac56d9", - "child": "6e2bb99e-5664-4222-b085-611dca238bf8", + "parent_key": "28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098", + "parent": "ae252854-db26-47df-9077-04e929b84447", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", "c_mp": "true", "c_mch": "true", "c_p": "one", @@ -1065,9 +1111,9 @@ "c_cch": "", "cols": [ { - "id": "3ae2e09c-3f4b-423c-b488-a676ac1c1ee7", - "parentcol": "77f4d932-64bb-4cb8-a6d4-6511cac8493a", - "childcol": "5673834f-a2cd-4c7e-90ad-046b4418bb99" + "id": "d1e80650-fddc-4d27-8377-6c6335c1f8d0", + "parentcol": "2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d", + "childcol": "2da7d7d5-7ef4-4c07-a424-8b116ecd29ba" } ], "generate": true, @@ -1075,15 +1121,15 @@ "customCode": "", "relationColor": "transparent" }, - "ea99ab57-cf4b-49c5-94e9-986c4686c7e6": { - "id": "ea99ab57-cf4b-49c5-94e9-986c4686c7e6", + "8440ea26-76c0-4269-9597-a6995d857b68": { + "id": "8440ea26-76c0-4269-9597-a6995d857b68", "visible": true, - "name": "id_benchmark_reference", + "name": "product_id_Benchmarks", "desc": "", "type": "identifying", - "parent_key": "3f97f355-6d9f-4714-8099-5b17c5f57130", - "parent": "6e2bb99e-5664-4222-b085-611dca238bf8", - "child": "e4cfe7e8-661f-462c-b51e-401688f089aa", + "parent_key": "91648061-8fe5-45d6-a841-129186f7cdc0", + "parent": "52cf2433-451e-4ba0-8b3d-8624bd967ffb", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", "c_mp": "true", "c_mch": "true", "c_p": "one", @@ -1092,9 +1138,9 @@ "c_cch": "", "cols": [ { - "id": "84968788-ddbd-42c0-a2f3-b01709d80508", - "parentcol": "2d7700a1-2d99-49fe-b90c-4fd176eb8951", - "childcol": "aac75266-c7ae-4420-9ff6-5fa89fecbdd3" + "id": "67bf027e-9999-405b-b2ab-8ea0bf9c1a9b", + "parentcol": "83427e84-109d-43a2-9c15-a1d3c444ebaa", + "childcol": "a63e9906-c1c8-47b8-b628-23fd92b1ffe5" } ], "generate": true, @@ -1102,14 +1148,14 @@ "customCode": "", "relationColor": "transparent" }, - "c6dc322d-7473-4310-84da-22412bbbadb2": { - "id": "c6dc322d-7473-4310-84da-22412bbbadb2", + "e12f9a4e-1035-45c0-bd66-a0b32b825758": { + "id": "e12f9a4e-1035-45c0-bd66-a0b32b825758", "visible": true, - "name": "name_Benchmarks", + "name": "organization_id_Benchmarks", "desc": "", "type": "identifying", - "parent_key": "a9b880d3-c9ed-4ba0-9c05-d30d067f6943", - "parent": "3042578a-ef8c-490f-86e5-4cebe82acc7d", + "parent_key": "b056d86c-a62c-465f-ac96-9374f6e41b3f", + "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", "c_mp": "true", "c_mch": "true", @@ -1119,9 +1165,9 @@ "c_cch": "", "cols": [ { - "id": "c273194e-29ff-447a-b563-e8be07115bbe", - "parentcol": "2bbc6494-a884-4eca-8769-d8aedfc02637", - "childcol": "82d55b13-5bc6-487c-9d06-17c9bb3508e7" + "id": "b91acfd7-91d9-4c82-b152-a0731685fc7f", + "parentcol": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", + "childcol": "ff9f083a-372b-499b-8dc8-fdcf0fdc822e" } ], "generate": true, @@ -1129,13 +1175,13 @@ "customCode": "", "relationColor": "transparent" }, - "b14de6cd-af4a-4d85-be8f-365d524292c3": { - "id": "b14de6cd-af4a-4d85-be8f-365d524292c3", + "3627acdc-20c5-462a-9096-da39cd6b9ed8": { + "id": "3627acdc-20c5-462a-9096-da39cd6b9ed8", "visible": true, - "name": "name_Benchmarks", + "name": "organization_id_Benchmarks", "desc": "", "type": "identifying", - "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", + "parent_key": "b056d86c-a62c-465f-ac96-9374f6e41b3f", "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", "c_mp": "true", @@ -1146,9 +1192,9 @@ "c_cch": "", "cols": [ { - "id": "e17e91d5-a7f1-419a-8ebc-a97d2d9112b7", - "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", - "childcol": "066852bf-14e2-4489-8448-bb61d57eeec1" + "id": "f6151098-8bd2-4eb5-b9e7-f25d659a5eb3", + "parentcol": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", + "childcol": "df997652-f34f-45cc-9138-755f4c5ba318" } ], "generate": true, @@ -1156,15 +1202,15 @@ "customCode": "", "relationColor": "transparent" }, - "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a": { - "id": "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a", + "a2782a52-3d03-4937-8ccf-9e0a994db294": { + "id": "a2782a52-3d03-4937-8ccf-9e0a994db294", "visible": true, - "name": "name_Artifact", + "name": "benchmark_id_benchmark_artifacts", "desc": "", "type": "identifying", - "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", - "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", - "child": "6e2bb99e-5664-4222-b085-611dca238bf8", + "parent_key": "fa60d456-7fef-4426-9a1d-b938566b8d9b", + "parent": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "child": "e4cfe7e8-661f-462c-b51e-401688f089aa", "c_mp": "true", "c_mch": "true", "c_p": "one", @@ -1173,9 +1219,9 @@ "c_cch": "", "cols": [ { - "id": "6944ee95-7a19-4302-a98b-818d32d89d6a", - "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", - "childcol": "b6ccd991-7ff6-444c-a626-f4030db8e18e" + "id": "6fced89c-1eaf-4bb5-913a-638ea22caa51", + "parentcol": "1d76151a-b0c8-4b0a-8400-f244d48a92d6", + "childcol": "51e1ca41-0019-4f28-828a-baea406e7692" } ], "generate": true, @@ -1183,15 +1229,15 @@ "customCode": "", "relationColor": "transparent" }, - "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d": { - "id": "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d", + "4624830c-2ee0-4972-b189-2657e9b7998b": { + "id": "4624830c-2ee0-4972-b189-2657e9b7998b", "visible": true, - "name": "name_Benchmarks", + "name": "artifact_id_benchmark_artifacts", "desc": "", "type": "identifying", - "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", - "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", - "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "parent_key": "3f97f355-6d9f-4714-8099-5b17c5f57130", + "parent": "6e2bb99e-5664-4222-b085-611dca238bf8", + "child": "e4cfe7e8-661f-462c-b51e-401688f089aa", "c_mp": "true", "c_mch": "true", "c_p": "one", @@ -1200,9 +1246,9 @@ "c_cch": "", "cols": [ { - "id": "be28af0f-8cf1-4b9b-8cbc-223f3f4960f0", - "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", - "childcol": "4a30d437-0207-4479-9f55-a9f8980d8189" + "id": "dcf7410d-e61c-40ef-9ccc-f3961b3c3790", + "parentcol": "2d7700a1-2d99-49fe-b90c-4fd176eb8951", + "childcol": "75e75cd3-b681-43db-8506-a9d3dea7c1de" } ], "generate": true, @@ -1210,15 +1256,15 @@ "customCode": "", "relationColor": "transparent" }, - "2ebc720a-0bad-4e24-ae4f-f66470ba133d": { - "id": "2ebc720a-0bad-4e24-ae4f-f66470ba133d", + "46831da2-6151-4803-a00f-c8b7a0fb5cf4": { + "id": "46831da2-6151-4803-a00f-c8b7a0fb5cf4", "visible": true, - "name": "name_benchmark_type", + "name": "organization_id_Artifact", "desc": "", "type": "identifying", - "parent_key": "a3f1f5f8-577f-4bba-bf39-43f8938aea64", + "parent_key": "b056d86c-a62c-465f-ac96-9374f6e41b3f", "parent": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", - "child": "ae252854-db26-47df-9077-04e929b84447", + "child": "6e2bb99e-5664-4222-b085-611dca238bf8", "c_mp": "true", "c_mch": "true", "c_p": "one", @@ -1227,9 +1273,9 @@ "c_cch": "", "cols": [ { - "id": "b697fc6c-78f1-4ed7-b8eb-fa2eca019790", - "parentcol": "cee2c943-546c-4f5c-a4c3-9483a4e03410", - "childcol": "61bf3d33-120f-42a2-9aa1-f6baebbc3175" + "id": "c981600c-4d98-44cb-80d4-913c5972493f", + "parentcol": "4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9", + "childcol": "4c828330-0377-4eee-a133-32a062c1f18b" } ], "generate": true, @@ -1282,7 +1328,7 @@ "keywordCase": "upper", "identiferCase": "original" }, - "lastSaved": 1702585045561 + "lastSaved": 1702601859734 }, "otherObjects": {}, "diagrams": { @@ -1303,7 +1349,7 @@ "x": 361, "y": 30, "gHeight": 240, - "gWidth": 307, + "gWidth": 350, "color": "#ffffff", "background": "#03a9f4", "resized": true, @@ -1313,10 +1359,10 @@ }, "ae252854-db26-47df-9077-04e929b84447": { "referencedItemId": "ae252854-db26-47df-9077-04e929b84447", - "x": 901, - "y": 160, - "gHeight": 81, - "gWidth": 258, + "x": 947, + "y": 30, + "gHeight": 99, + "gWidth": 255, "color": "#ffffff", "background": "#03a9f4", "resized": false, @@ -1326,10 +1372,10 @@ }, "510cb49c-1f0e-4203-bd5d-80c96e661f5e": { "referencedItemId": "510cb49c-1f0e-4203-bd5d-80c96e661f5e", - "x": 900, - "y": 414, - "gHeight": 99, - "gWidth": 183, + "x": 967, + "y": 391, + "gHeight": 117, + "gWidth": 232, "color": "#ffffff", "background": "#03a9f4", "resized": false, @@ -1352,8 +1398,8 @@ }, "e4cfe7e8-661f-462c-b51e-401688f089aa": { "referencedItemId": "e4cfe7e8-661f-462c-b51e-401688f089aa", - "x": 355, - "y": 318, + "x": 353, + "y": 294, "gHeight": 81, "gWidth": 225, "color": "#ffffff", @@ -1367,8 +1413,8 @@ "referencedItemId": "6aecb762-1a99-493f-987c-133569ac56d9", "x": 359, "y": 639, - "gHeight": 45, - "gWidth": 175, + "gHeight": 81, + "gWidth": 231, "color": "#ffffff", "background": "#03a9f4", "resized": false, @@ -1378,10 +1424,10 @@ }, "52cf2433-451e-4ba0-8b3d-8624bd967ffb": { "referencedItemId": "52cf2433-451e-4ba0-8b3d-8624bd967ffb", - "x": 901, - "y": 277, - "gHeight": 99, - "gWidth": 183, + "x": 976, + "y": 171, + "gHeight": 153, + "gWidth": 232, "color": "#ffffff", "background": "#03a9f4", "resized": false, @@ -1392,9 +1438,9 @@ "3042578a-ef8c-490f-86e5-4cebe82acc7d": { "referencedItemId": "3042578a-ef8c-490f-86e5-4cebe82acc7d", "x": 45, - "y": 137, + "y": 101, "gHeight": 63, - "gWidth": 183, + "gWidth": 196, "color": "#ffffff", "background": "#03a9f4", "resized": false, @@ -1441,17 +1487,16 @@ "3042578a-ef8c-490f-86e5-4cebe82acc7d", "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", "e4cfe7e8-661f-462c-b51e-401688f089aa", - "b408fbf5-544d-4f16-8324-441a198d8a7f", - "f74fb015-dbf2-4079-819c-c0b7b2a2a523", - "89f391d5-ea53-4c40-b2c5-f627bb9022ae", - "57450471-c472-4b73-b00b-78ea52310429", "ab7e56b9-8aa7-429c-97ac-d4e117244aec", - "ea99ab57-cf4b-49c5-94e9-986c4686c7e6", - "c6dc322d-7473-4310-84da-22412bbbadb2", - "b14de6cd-af4a-4d85-be8f-365d524292c3", - "a1dbd78a-7313-4d76-94a1-a1a0a7208f5a", - "4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d", - "2ebc720a-0bad-4e24-ae4f-f66470ba133d" + "fd560202-d9f1-4e3a-8133-4d207466a3c0", + "663efedd-aac8-45c1-baf3-c22f9266e727", + "6465776d-da1f-414e-a12c-32ac13b66909", + "8440ea26-76c0-4269-9597-a6995d857b68", + "e12f9a4e-1035-45c0-bd66-a0b32b825758", + "3627acdc-20c5-462a-9096-da39cd6b9ed8", + "a2782a52-3d03-4937-8ccf-9e0a994db294", + "4624830c-2ee0-4972-b189-2657e9b7998b", + "46831da2-6151-4803-a00f-c8b7a0fb5cf4" ], "collapsedTreeItems": [], "reverseStats": {} diff --git a/database/web/index.html b/database/web/index.html index b3fab9550..c0c30b2f7 100644 --- a/database/web/index.html +++ b/database/web/index.html @@ -21,7 +21,7 @@ var projectObj = {}; var searchTerm = ""; - const projectData = {"Tables":{"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40":{"id":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","visible":true,"name":"Benchmarks","desc":"A collection of Security Benchmarks that are publied by Autors","estimatedSize":"","cols":[{"id":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","name":"id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] Autogenerated primary key of the vendor published security guidance document","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"f428635d-6ccc-4a7f-8649-0c02987ec283","name":"version","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark version number ","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"b00c4bcd-d3ba-4d03-bdcd-cd72c2e48b07","name":"release","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark release number","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"8f7d58d8-8560-4bb5-946a-6784a261d0d3","name":"release_date","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"The date that the benchmark was published by the Autor","defaultvalue":"","data":"01\\/02\\/2023","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"bf7b3d03-626d-4886-9a32-ca9972d86f4b","name":"type","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"FK: [benchmark_type.id]","defaultvalue":"","data":"'stig', 'cis','srg','vendor'","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"5af93689-e4b0-4b4e-a4eb-a2482b960353","name":"product_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"f583317f-0d69-437c-92ce-ac01937d387c","name":"product_version","datatype":"REAL","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"82d55b13-5bc6-487c-9d06-17c9bb3508e7","name":"status","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Text based name for the status","defaultvalue":"","data":"'final', 'draft', 'in-review', 'sunset'","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"066852bf-14e2-4489-8448-bb61d57eeec1","name":"organization_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full text name of the author, vendor or agency that created the Benchmark","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"4a30d437-0207-4479-9f55-a9f8980d8189","name":"sponsor_name","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"The full text name of the author, vendor or agency that sponsored the creation of the benchmark.","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["b408fbf5-544d-4f16-8324-441a198d8a7f","f74fb015-dbf2-4079-819c-c0b7b2a2a523","57450471-c472-4b73-b00b-78ea52310429","c6dc322d-7473-4310-84da-22412bbbadb2","b14de6cd-af4a-4d85-be8f-365d524292c3","4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d"],"lines":[],"keys":[{"id":"fa60d456-7fef-4426-9a1d-b938566b8d9b","name":"Primary key","isPk":true,"cols":[{"id":"57007081-1108-49b6-bc9f-182034e7f0cf","colid":"1d76151a-b0c8-4b0a-8400-f244d48a92d6"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"ae252854-db26-47df-9077-04e929b84447":{"id":"ae252854-db26-47df-9077-04e929b84447","visible":true,"name":"benchmark_type","desc":"Describes the kind of benchmark to include:\\n - Security Technical Implementation Gudie (stig)\\n - Security Requirements Guide (srg)\\n - Center for Internet Security Benchmark (cis)\\n - Vendor Guidance (vendor)","estimatedSize":"","cols":[{"id":"6684e545-9261-4248-8a02-b11526e64fd8","name":"type","datatype":"VARCHAR","param":"","pk":true,"nn":true,"comment":"The varchar (text) name of the benchmark type","defaultvalue":"","data":"\\\"stig\\\", \\\"cis\\\", \\\"srg\\\", \\\"vendor\\\"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e2f74eb2-b3b5-4c54-87ab-e131faee5c35","name":"description","datatype":"TEXT","param":"","pk":false,"nn":true,"comment":"The full text description of the guidane type","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"61bf3d33-120f-42a2-9aa1-f6baebbc3175","name":"organization_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full text name of the author, vendor or agency","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["b408fbf5-544d-4f16-8324-441a198d8a7f","2ebc720a-0bad-4e24-ae4f-f66470ba133d"],"lines":[],"keys":[{"id":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","name":"Primary key","isPk":true,"cols":[{"id":"0dc93f91-7de3-4184-b02e-78cdaa46401f","colid":"6684e545-9261-4248-8a02-b11526e64fd8"}]},{"id":"657768c5-09c1-4fe2-8d99-b93af72faadd","isPk":false,"name":"benchmark_type_ak_1","cols":[]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"510cb49c-1f0e-4203-bd5d-80c96e661f5e":{"id":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","visible":true,"name":"Organization","desc":"List of organizations or gorups that author or manage security guidance","estimatedSize":"","cols":[{"id":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","name":"id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"cee2c943-546c-4f5c-a4c3-9483a4e03410","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full text name of the author, vendor or agency","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"3c4f5e5d-568e-4714-8c21-9390758cfbbd","name":"uri","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"The primary uri of the author, vendor or agency","defaultvalue":"","data":"'https:\\/\\/www.mitre.org','https:\\/\\/www.disa.mil','https:\\/\\/www.vmware.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"016880f0-a877-42fa-af4d-f3bc012d36a2","name":"email","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] The email of the autor","defaultvalue":"","data":"'me@you.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["89f391d5-ea53-4c40-b2c5-f627bb9022ae","b14de6cd-af4a-4d85-be8f-365d524292c3","a1dbd78a-7313-4d76-94a1-a1a0a7208f5a","4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d","2ebc720a-0bad-4e24-ae4f-f66470ba133d"],"lines":[],"keys":[{"id":"b056d86c-a62c-465f-ac96-9374f6e41b3f","name":"Primary key","isPk":true,"cols":[{"id":"c53bc39a-2a2d-4167-860f-1cbbad8238a7","colid":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9"}]},{"id":"a3f1f5f8-577f-4bba-bf39-43f8938aea64","isPk":false,"name":"Authors_ak_1","cols":[{"id":"7f7b4d69-b983-4b51-9237-ad318734c6fe","colid":"cee2c943-546c-4f5c-a4c3-9483a4e03410"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6e2bb99e-5664-4222-b085-611dca238bf8":{"id":"6e2bb99e-5664-4222-b085-611dca238bf8","visible":true,"name":"Artifact","desc":"Collection of file artifacts related to the Benchmark, their data and where they are stored.","estimatedSize":"","cols":[{"id":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","name":"id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"4491f4ac-a271-44c9-96b8-91373e4deab9","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Filename that the artifact is stored as on the target location","defaultvalue":"","data":"'U_A10_Networks_ADC_ALG_V2R1_STIG.zip', 'rhel-9-profile.json', 'U_Red_Hat_Enterprise_Linux_7_STIG_V3R7_Manual-xccdf.xml'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e81132e3-e87c-4733-a5c4-1b7572f801d8","name":"location","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The URI path of the artifact","defaultvalue":"","data":"https:\\/\\/dl.dod.cyber.mil\\/wp-content\\/uploads\\/stigs\\/zip","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"ecaa1880-06fc-4554-b8f4-2e3fdc71c029","name":"created_at","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"568f380a-7d3b-4363-80a1-8459c0de6473","name":"secondary_location","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] A file path, uri or other location you can find the reference besides the default location.","defaultvalue":"","data":"'my_other\\/place\\/file.zip'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"59dbe73d-c74b-4b4a-b3a0-e5e566a9cd23","name":"raw_data","datatype":"BLOB","param":"","pk":false,"nn":false,"comment":"[optional] The raw data of the Artifact","defaultvalue":"","data":"XCCDF_File, Profile JSON, ","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"5673834f-a2cd-4c7e-90ad-046b4418bb99","name":"type","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The simple name of the artifact","defaultvalue":"","data":"XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"b6ccd991-7ff6-444c-a626-f4030db8e18e","name":"author_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full text name of the author, vendor or agency","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft'","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec","ea99ab57-cf4b-49c5-94e9-986c4686c7e6","a1dbd78a-7313-4d76-94a1-a1a0a7208f5a"],"lines":[],"keys":[{"id":"3f97f355-6d9f-4714-8099-5b17c5f57130","name":"Primary key","isPk":true,"cols":[{"id":"ad95d426-57d4-4e67-b616-24582987192c","colid":"2d7700a1-2d99-49fe-b90c-4fd176eb8951"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"e4cfe7e8-661f-462c-b51e-401688f089aa":{"id":"e4cfe7e8-661f-462c-b51e-401688f089aa","visible":true,"name":"benchmark_artifacts","desc":"","estimatedSize":"","cols":[{"id":"abe8e1ab-9250-48c2-93fd-9645f9587769","name":"benchmark_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[int, fk] Bechmarks.id","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"aac75266-c7ae-4420-9ff6-5fa89fecbdd3","name":"artifact_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"16db22ec-71fe-45af-a622-ff81a5c8500a","name":"default","datatype":"INT2","param":"","pk":false,"nn":false,"comment":"[optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.","defaultvalue":"","data":"0.1,NULL","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["f74fb015-dbf2-4079-819c-c0b7b2a2a523","ea99ab57-cf4b-49c5-94e9-986c4686c7e6"],"lines":[],"keys":[{"id":"39423998-e8c5-4fb5-92ac-845c28a6d1de","name":"Primary key","isPk":true,"cols":[{"id":"86d3ded4-37ec-4f0d-ab01-eddb7555540a","colid":"abe8e1ab-9250-48c2-93fd-9645f9587769"},{"id":"b1f7220b-1ce6-4a90-9b9a-bf4463561deb","colid":"aac75266-c7ae-4420-9ff6-5fa89fecbdd3"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6aecb762-1a99-493f-987c-133569ac56d9":{"id":"6aecb762-1a99-493f-987c-133569ac56d9","visible":true,"name":"artifact_types","desc":"A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies","estimatedSize":"","cols":[{"id":"77f4d932-64bb-4cb8-a6d4-6511cac8493a","name":"type","datatype":"VARCHAR","param":"","pk":true,"nn":true,"comment":"The simple name of the artifact","defaultvalue":"","data":"XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec"],"lines":[],"keys":[{"id":"db251232-ef40-4eb6-92ff-67f608e7f6f6","name":"Primary key","isPk":true,"cols":[{"id":"ae764350-fd50-407a-b65d-e69606659c29","colid":"77f4d932-64bb-4cb8-a6d4-6511cac8493a"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"52cf2433-451e-4ba0-8b3d-8624bd967ffb":{"id":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","visible":true,"name":"Products","desc":"A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level.\\n\\nFor example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'","estimatedSize":"","cols":[{"id":"058e47d0-7551-4777-95d1-738dc4381129","name":"name","datatype":"VARCHAR","param":"","pk":true,"nn":true,"comment":"The name of the product or service","defaultvalue":"","data":"'Enterprise Linux', 'MSSQL Server', 'VSphere'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"48f5eb1d-79c8-4914-bfff-53c5d057be39","name":"version","datatype":"REAL","param":"","pk":true,"nn":true,"comment":"The version of the project","defaultvalue":"","data":"1, 7, 10.7","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"0750946d-1961-48f7-a05f-ad3ca3c6619f","name":"author_id","datatype":"INT","param":"","pk":false,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"db0e76c4-1a99-4c6f-a92d-ae2e44a085c0","name":"release","datatype":"INT","param":"","pk":false,"nn":false,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["89f391d5-ea53-4c40-b2c5-f627bb9022ae","57450471-c472-4b73-b00b-78ea52310429"],"lines":[],"keys":[{"id":"91648061-8fe5-45d6-a841-129186f7cdc0","name":"Primary key","isPk":true,"cols":[{"id":"5e3196f9-1efd-4917-b892-00be36f802ed","colid":"058e47d0-7551-4777-95d1-738dc4381129"},{"id":"540dd502-ed00-444b-8264-5522d3b18c5c","colid":"48f5eb1d-79c8-4914-bfff-53c5d057be39"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"3042578a-ef8c-490f-86e5-4cebe82acc7d":{"id":"3042578a-ef8c-490f-86e5-4cebe82acc7d","visible":true,"name":"Statuses","desc":"Collection of statuses that can applly to a Benckmark or Artifact","estimatedSize":"","cols":[{"id":"4bc8e5d6-ec2c-44a7-940c-d75199f981af","name":"id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"2bbc6494-a884-4eca-8769-d8aedfc02637","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Text based name for the status","defaultvalue":"","data":"'final', 'draft', 'in-review', 'sunset'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["c6dc322d-7473-4310-84da-22412bbbadb2"],"lines":[],"keys":[{"id":"83c53cd8-165d-4d51-b67e-8c74146d2572","name":"Primary key","isPk":true,"cols":[]},{"id":"00d5af0a-9e98-4586-8d9f-997346e51d7c","isPk":false,"name":"Statuses_ak_1","cols":[{"id":"a1947528-cf54-4fa6-b247-a4a5846e6c49","colid":"4bc8e5d6-ec2c-44a7-940c-d75199f981af"}]},{"id":"a9b880d3-c9ed-4ba0-9c05-d30d067f6943","isPk":false,"name":"Statuses_ak_2","cols":[{"id":"158b1625-2e10-4a67-9bc8-0daa8ccc40ef","colid":"2bbc6494-a884-4eca-8769-d8aedfc02637"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}}},"Json":{},"Relationships":{"b408fbf5-544d-4f16-8324-441a198d8a7f":{"id":"b408fbf5-544d-4f16-8324-441a198d8a7f","visible":true,"name":"type_type","desc":"","type":"identifying","parent_key":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","parent":"ae252854-db26-47df-9077-04e929b84447","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"5caf6f0a-3c61-4206-8b36-60fb514fec53","parentcol":"6684e545-9261-4248-8a02-b11526e64fd8","childcol":"bf7b3d03-626d-4886-9a32-ca9972d86f4b"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"f74fb015-dbf2-4079-819c-c0b7b2a2a523":{"id":"f74fb015-dbf2-4079-819c-c0b7b2a2a523","visible":true,"name":"id_benchmark_references","desc":"","type":"identifying","parent_key":"fa60d456-7fef-4426-9a1d-b938566b8d9b","parent":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"832a13af-a0ee-4572-94bd-81911d54067b","parentcol":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","childcol":"abe8e1ab-9250-48c2-93fd-9645f9587769"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"89f391d5-ea53-4c40-b2c5-f627bb9022ae":{"id":"89f391d5-ea53-4c40-b2c5-f627bb9022ae","visible":true,"name":"id_Products","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"ff007db6-bcfa-4737-8f1f-63e1057f1755","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"0750946d-1961-48f7-a05f-ad3ca3c6619f"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"57450471-c472-4b73-b00b-78ea52310429":{"id":"57450471-c472-4b73-b00b-78ea52310429","visible":true,"name":"Products_Benchmarks","desc":"","type":"identifying","parent_key":"91648061-8fe5-45d6-a841-129186f7cdc0","parent":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"one","c_cp":"","c_cch":"","cols":[{"id":"491c9dc5-1b09-4bd1-8110-46913d1005d4","parentcol":"058e47d0-7551-4777-95d1-738dc4381129","childcol":"5af93689-e4b0-4b4e-a4eb-a2482b960353"},{"id":"e4baf84f-98e1-494b-a34e-514c65934732","parentcol":"48f5eb1d-79c8-4914-bfff-53c5d057be39","childcol":"f583317f-0d69-437c-92ce-ac01937d387c"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"ab7e56b9-8aa7-429c-97ac-d4e117244aec":{"id":"ab7e56b9-8aa7-429c-97ac-d4e117244aec","visible":true,"name":"type_Artifact","desc":"","type":"identifying","parent_key":"db251232-ef40-4eb6-92ff-67f608e7f6f6","parent":"6aecb762-1a99-493f-987c-133569ac56d9","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"3ae2e09c-3f4b-423c-b488-a676ac1c1ee7","parentcol":"77f4d932-64bb-4cb8-a6d4-6511cac8493a","childcol":"5673834f-a2cd-4c7e-90ad-046b4418bb99"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"ea99ab57-cf4b-49c5-94e9-986c4686c7e6":{"id":"ea99ab57-cf4b-49c5-94e9-986c4686c7e6","visible":true,"name":"id_benchmark_reference","desc":"","type":"identifying","parent_key":"3f97f355-6d9f-4714-8099-5b17c5f57130","parent":"6e2bb99e-5664-4222-b085-611dca238bf8","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"84968788-ddbd-42c0-a2f3-b01709d80508","parentcol":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","childcol":"aac75266-c7ae-4420-9ff6-5fa89fecbdd3"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"c6dc322d-7473-4310-84da-22412bbbadb2":{"id":"c6dc322d-7473-4310-84da-22412bbbadb2","visible":true,"name":"name_Benchmarks","desc":"","type":"identifying","parent_key":"a9b880d3-c9ed-4ba0-9c05-d30d067f6943","parent":"3042578a-ef8c-490f-86e5-4cebe82acc7d","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"c273194e-29ff-447a-b563-e8be07115bbe","parentcol":"2bbc6494-a884-4eca-8769-d8aedfc02637","childcol":"82d55b13-5bc6-487c-9d06-17c9bb3508e7"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"b14de6cd-af4a-4d85-be8f-365d524292c3":{"id":"b14de6cd-af4a-4d85-be8f-365d524292c3","visible":true,"name":"name_Benchmarks","desc":"","type":"identifying","parent_key":"a3f1f5f8-577f-4bba-bf39-43f8938aea64","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"e17e91d5-a7f1-419a-8ebc-a97d2d9112b7","parentcol":"cee2c943-546c-4f5c-a4c3-9483a4e03410","childcol":"066852bf-14e2-4489-8448-bb61d57eeec1"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"a1dbd78a-7313-4d76-94a1-a1a0a7208f5a":{"id":"a1dbd78a-7313-4d76-94a1-a1a0a7208f5a","visible":true,"name":"name_Artifact","desc":"","type":"identifying","parent_key":"a3f1f5f8-577f-4bba-bf39-43f8938aea64","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"6944ee95-7a19-4302-a98b-818d32d89d6a","parentcol":"cee2c943-546c-4f5c-a4c3-9483a4e03410","childcol":"b6ccd991-7ff6-444c-a626-f4030db8e18e"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d":{"id":"4f4ed0b7-40d8-45e7-bdb1-55c36515cd5d","visible":true,"name":"name_Benchmarks","desc":"","type":"identifying","parent_key":"a3f1f5f8-577f-4bba-bf39-43f8938aea64","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"be28af0f-8cf1-4b9b-8cbc-223f3f4960f0","parentcol":"cee2c943-546c-4f5c-a4c3-9483a4e03410","childcol":"4a30d437-0207-4479-9f55-a9f8980d8189"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"2ebc720a-0bad-4e24-ae4f-f66470ba133d":{"id":"2ebc720a-0bad-4e24-ae4f-f66470ba133d","visible":true,"name":"name_benchmark_type","desc":"","type":"identifying","parent_key":"a3f1f5f8-577f-4bba-bf39-43f8938aea64","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"ae252854-db26-47df-9077-04e929b84447","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"b697fc6c-78f1-4ed7-b8eb-fa2eca019790","parentcol":"cee2c943-546c-4f5c-a4c3-9483a4e03410","childcol":"61bf3d33-120f-42a2-9aa1-f6baebbc3175"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"}},"Lines":{},"Other":{},"Notes":{}} + const projectData = {"Tables":{"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40":{"id":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","visible":true,"name":"Benchmarks","desc":"A collection of Security Benchmarks that are publied by Autors","estimatedSize":"","cols":[{"id":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","name":"benchmark_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] Autogenerated primary key of the vendor published security guidance document","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"f428635d-6ccc-4a7f-8649-0c02987ec283","name":"version","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark version number ","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"b00c4bcd-d3ba-4d03-bdcd-cd72c2e48b07","name":"release","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark release number","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"8f7d58d8-8560-4bb5-946a-6784a261d0d3","name":"release_date","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"The date that the benchmark was published by the Autor","defaultvalue":"","data":"01\\/02\\/2023","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"248ecf4a-67bc-4911-bdf4-44e371027db5","name":"status_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":false},{"id":"2da7d7d5-7ef4-4c07-a424-8b116ecd29ba","name":"type_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autoincrement] id of the benchmark type","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"a63e9906-c1c8-47b8-b628-23fd92b1ffe5","name":"product_id","datatype":"INT","param":"","pk":false,"nn":true,"comment":"[autoincrement] The int id of the product related to the benchmak","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"ff9f083a-372b-499b-8dc8-fdcf0fdc822e","name":"author_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that authored the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"df997652-f34f-45cc-9138-755f4c5ba318","name":"sponsor_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that supported the development of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"f24a7cbb-97a8-4ad6-99ef-978597b0742a","name":"status_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":true}],"relations":["663efedd-aac8-45c1-baf3-c22f9266e727","6465776d-da1f-414e-a12c-32ac13b66909","8440ea26-76c0-4269-9597-a6995d857b68","e12f9a4e-1035-45c0-bd66-a0b32b825758","3627acdc-20c5-462a-9096-da39cd6b9ed8","a2782a52-3d03-4937-8ccf-9e0a994db294"],"lines":[],"keys":[{"id":"fa60d456-7fef-4426-9a1d-b938566b8d9b","name":"Primary key","isPk":true,"cols":[{"id":"57007081-1108-49b6-bc9f-182034e7f0cf","colid":"1d76151a-b0c8-4b0a-8400-f244d48a92d6"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"ae252854-db26-47df-9077-04e929b84447":{"id":"ae252854-db26-47df-9077-04e929b84447","visible":true,"name":"benchmark_type","desc":"Describes the kind of benchmark to include:\\n - Security Technical Implementation Gudie (stig)\\n - Security Requirements Guide (srg)\\n - Center for Internet Security Benchmark (cis)\\n - Vendor Guidance (vendor)","estimatedSize":"","cols":[{"id":"6684e545-9261-4248-8a02-b11526e64fd8","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The short name name of the benchmark type","defaultvalue":"","data":"\\\"stig\\\", \\\"cis\\\", \\\"srg\\\", \\\"AWS-BP\\\", 'RH-BP'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e2f74eb2-b3b5-4c54-87ab-e131faee5c35","name":"description","datatype":"TEXT","param":"","pk":false,"nn":true,"comment":"The full text description of the guidane type","defaultvalue":"","data":"'A Security Technical Implementation Guide ....' , 'A Center for Internet Security Benchmark.....'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d","name":"benchmark_type_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autoincrement] id of the benchmark type","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"e799c237-5417-437d-a4aa-c2da58ff5de2","name":"long_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full name of the Benchmark type","defaultvalue":"","data":"'Security Technical Implementation Guide', 'Center for Internet Security Benchmark', 'Redhat Best Practices Guide', 'Amazon Best Practices Guide'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["6465776d-da1f-414e-a12c-32ac13b66909"],"lines":[],"keys":[{"id":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","name":"Primary key","isPk":true,"cols":[{"id":"d5d5d063-6b18-40f6-b91a-1dfe9de63169","colid":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"510cb49c-1f0e-4203-bd5d-80c96e661f5e":{"id":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","visible":true,"name":"Organization","desc":"List of organizations or gorups that author or manage security guidance","estimatedSize":"","cols":[{"id":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","name":"organization_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"cee2c943-546c-4f5c-a4c3-9483a4e03410","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The short text name of the author, vendor or agency","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft', 'DSCA', 'DCSA','NGA'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"3c4f5e5d-568e-4714-8c21-9390758cfbbd","name":"uri","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"The primary uri of the author, vendor or agency","defaultvalue":"","data":"'https:\\/\\/www.mitre.org','https:\\/\\/www.disa.mil','https:\\/\\/www.vmware.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"016880f0-a877-42fa-af4d-f3bc012d36a2","name":"email","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] The email of the autor","defaultvalue":"","data":"'me@you.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"25edc163-dc64-4451-b8b5-010934342c35","name":"full_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full text name of the author, vendor or agency.","defaultvalue":"","data":"'MITRE Security Automation Framework', 'Defense Information Systems Agency', 'Defense Counterintelligence Services Agency', 'National Geospatial-Intelligence Agency'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["fd560202-d9f1-4e3a-8133-4d207466a3c0","e12f9a4e-1035-45c0-bd66-a0b32b825758","3627acdc-20c5-462a-9096-da39cd6b9ed8","46831da2-6151-4803-a00f-c8b7a0fb5cf4"],"lines":[],"keys":[{"id":"b056d86c-a62c-465f-ac96-9374f6e41b3f","name":"Primary key","isPk":true,"cols":[{"id":"c53bc39a-2a2d-4167-860f-1cbbad8238a7","colid":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6e2bb99e-5664-4222-b085-611dca238bf8":{"id":"6e2bb99e-5664-4222-b085-611dca238bf8","visible":true,"name":"Artifact","desc":"Collection of file artifacts related to the Benchmark, their data and where they are stored.","estimatedSize":"","cols":[{"id":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","name":"artifact_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"4491f4ac-a271-44c9-96b8-91373e4deab9","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Filename that the artifact is stored as on the target location","defaultvalue":"","data":"'U_A10_Networks_ADC_ALG_V2R1_STIG.zip', 'rhel-9-profile.json', 'U_Red_Hat_Enterprise_Linux_7_STIG_V3R7_Manual-xccdf.xml'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e81132e3-e87c-4733-a5c4-1b7572f801d8","name":"location","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The URI path of the artifact","defaultvalue":"","data":"https:\\/\\/dl.dod.cyber.mil\\/wp-content\\/uploads\\/stigs\\/zip","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"ecaa1880-06fc-4554-b8f4-2e3fdc71c029","name":"created_at","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"568f380a-7d3b-4363-80a1-8459c0de6473","name":"secondary_location","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] A file path, uri or other location you can find the reference besides the default location.","defaultvalue":"","data":"'my_other\\/place\\/file.zip'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"59dbe73d-c74b-4b4a-b3a0-e5e566a9cd23","name":"raw_data","datatype":"BLOB","param":"","pk":false,"nn":false,"comment":"[optional] The raw data of the Artifact","defaultvalue":"","data":"XCCDF_File, Profile JSON, ","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"23ae68f2-9c16-41af-bc28-13cd4eab9a71","name":"type_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"4c828330-0377-4eee-a133-32a062c1f18b","name":"organization_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the creator or owner of the artifact","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec","4624830c-2ee0-4972-b189-2657e9b7998b","46831da2-6151-4803-a00f-c8b7a0fb5cf4"],"lines":[],"keys":[{"id":"3f97f355-6d9f-4714-8099-5b17c5f57130","name":"Primary key","isPk":true,"cols":[{"id":"ad95d426-57d4-4e67-b616-24582987192c","colid":"2d7700a1-2d99-49fe-b90c-4fd176eb8951"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"e4cfe7e8-661f-462c-b51e-401688f089aa":{"id":"e4cfe7e8-661f-462c-b51e-401688f089aa","visible":true,"name":"benchmark_artifacts","desc":"","estimatedSize":"","cols":[{"id":"16db22ec-71fe-45af-a622-ff81a5c8500a","name":"default","datatype":"INT2","param":"","pk":false,"nn":false,"comment":"[optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.","defaultvalue":"","data":"0.1,NULL","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"51e1ca41-0019-4f28-828a-baea406e7692","name":"benchmark_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] Autogenerated primary key of the vendor published security guidance document","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"75e75cd3-b681-43db-8506-a9d3dea7c1de","name":"artifact_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["a2782a52-3d03-4937-8ccf-9e0a994db294","4624830c-2ee0-4972-b189-2657e9b7998b"],"lines":[],"keys":[{"id":"39423998-e8c5-4fb5-92ac-845c28a6d1de","name":"Primary key","isPk":true,"cols":[{"id":"7cafc003-1052-4edb-8ee0-2f973c5ca745","colid":"51e1ca41-0019-4f28-828a-baea406e7692"},{"id":"9c3e011a-7328-4902-aa6d-eccc063ea7a8","colid":"75e75cd3-b681-43db-8506-a9d3dea7c1de"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6aecb762-1a99-493f-987c-133569ac56d9":{"id":"6aecb762-1a99-493f-987c-133569ac56d9","visible":true,"name":"artifact_types","desc":"A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies","estimatedSize":"","cols":[{"id":"77f4d932-64bb-4cb8-a6d4-6511cac8493a","name":"type_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The simple name of the artifact","defaultvalue":"","data":"XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9","name":"artifact_type_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autoincrement] The int id of the artifact kind","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"f86361cd-57a5-4cee-98c0-ac57ccea6a1a","name":"description","datatype":"TEXT","param":"","pk":false,"nn":false,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec"],"lines":[],"keys":[{"id":"db251232-ef40-4eb6-92ff-67f608e7f6f6","name":"Primary key","isPk":true,"cols":[{"id":"f7d1404a-15dd-4014-a49d-0fb118f6883f","colid":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"52cf2433-451e-4ba0-8b3d-8624bd967ffb":{"id":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","visible":true,"name":"Products","desc":"A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level.\\n\\nFor example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'","estimatedSize":"","cols":[{"id":"058e47d0-7551-4777-95d1-738dc4381129","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The common name of the product or service - sometimes called the 'short name' - for example:\\nRHEL for Red Hat Enterprise Linux \\nVIDM for VMware Identity Manager\\nvSphere for VMware vSphere\\n","defaultvalue":"","data":"'RHEL', 'VCF', 'VIDM', 'vSphere'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"48f5eb1d-79c8-4914-bfff-53c5d057be39","name":"version","datatype":"REAL","param":"","pk":false,"nn":true,"comment":"The version of the project","defaultvalue":"","data":"1, 7, 10.7","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"0750946d-1961-48f7-a05f-ad3ca3c6619f","name":"author_id","datatype":"INT","param":"","pk":false,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":false},{"id":"db0e76c4-1a99-4c6f-a92d-ae2e44a085c0","name":"release","datatype":"INT","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"7a5090f4-bee9-46a5-9cbf-b9b97cb5dbb7","name":"long_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same.","defaultvalue":"","data":"'Identity Manager', 'Cloud Foundation', 'vSphere'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"83427e84-109d-43a2-9c15-a1d3c444ebaa","name":"product_id","datatype":"INT","param":"","pk":true,"nn":true,"comment":"[autoincrement] The int id of the product","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"af7e3f56-16b2-463c-afa0-3393593014d8","name":"organization_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that ownes or manages the product","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["fd560202-d9f1-4e3a-8133-4d207466a3c0","8440ea26-76c0-4269-9597-a6995d857b68"],"lines":[],"keys":[{"id":"91648061-8fe5-45d6-a841-129186f7cdc0","name":"Primary key","isPk":true,"cols":[{"id":"a4289a34-9f2c-4b9c-bd69-53487fc254b3","colid":"83427e84-109d-43a2-9c15-a1d3c444ebaa"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"3042578a-ef8c-490f-86e5-4cebe82acc7d":{"id":"3042578a-ef8c-490f-86e5-4cebe82acc7d","visible":true,"name":"Statuses","desc":"Collection of statuses that can applly to a Benckmark or Artifact","estimatedSize":"","cols":[{"id":"4bc8e5d6-ec2c-44a7-940c-d75199f981af","name":"status_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"2bbc6494-a884-4eca-8769-d8aedfc02637","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Text based name for the status","defaultvalue":"","data":"'final', 'draft', 'in-review', 'sunset'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["663efedd-aac8-45c1-baf3-c22f9266e727"],"lines":[],"keys":[{"id":"83c53cd8-165d-4d51-b67e-8c74146d2572","name":"Primary key","isPk":true,"cols":[{"id":"77066e97-129c-446c-aa0c-c6d71ad508dc","colid":"4bc8e5d6-ec2c-44a7-940c-d75199f981af"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}}},"Json":{},"Relationships":{"ab7e56b9-8aa7-429c-97ac-d4e117244aec":{"id":"ab7e56b9-8aa7-429c-97ac-d4e117244aec","visible":true,"name":"type_Artifact","desc":"","type":"identifying","parent_key":"db251232-ef40-4eb6-92ff-67f608e7f6f6","parent":"6aecb762-1a99-493f-987c-133569ac56d9","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"72c50d9c-e2e7-434f-aebd-74f8ea024323","parentcol":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9","childcol":"23ae68f2-9c16-41af-bc28-13cd4eab9a71"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"fd560202-d9f1-4e3a-8133-4d207466a3c0":{"id":"fd560202-d9f1-4e3a-8133-4d207466a3c0","visible":true,"name":"organization_id_Products","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"318857a7-a606-4717-965d-87afc13b2539","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"af7e3f56-16b2-463c-afa0-3393593014d8"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"663efedd-aac8-45c1-baf3-c22f9266e727":{"id":"663efedd-aac8-45c1-baf3-c22f9266e727","visible":true,"name":"status_id_Benchmarks","desc":"","type":"identifying","parent_key":"83c53cd8-165d-4d51-b67e-8c74146d2572","parent":"3042578a-ef8c-490f-86e5-4cebe82acc7d","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"044a1194-9e1a-46f6-8bfa-d1f8352dde57","parentcol":"4bc8e5d6-ec2c-44a7-940c-d75199f981af","childcol":"f24a7cbb-97a8-4ad6-99ef-978597b0742a"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"6465776d-da1f-414e-a12c-32ac13b66909":{"id":"6465776d-da1f-414e-a12c-32ac13b66909","visible":true,"name":"benchmark_type_id_Benchmarks","desc":"","type":"identifying","parent_key":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","parent":"ae252854-db26-47df-9077-04e929b84447","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"d1e80650-fddc-4d27-8377-6c6335c1f8d0","parentcol":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d","childcol":"2da7d7d5-7ef4-4c07-a424-8b116ecd29ba"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"8440ea26-76c0-4269-9597-a6995d857b68":{"id":"8440ea26-76c0-4269-9597-a6995d857b68","visible":true,"name":"product_id_Benchmarks","desc":"","type":"identifying","parent_key":"91648061-8fe5-45d6-a841-129186f7cdc0","parent":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"67bf027e-9999-405b-b2ab-8ea0bf9c1a9b","parentcol":"83427e84-109d-43a2-9c15-a1d3c444ebaa","childcol":"a63e9906-c1c8-47b8-b628-23fd92b1ffe5"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"e12f9a4e-1035-45c0-bd66-a0b32b825758":{"id":"e12f9a4e-1035-45c0-bd66-a0b32b825758","visible":true,"name":"organization_id_Benchmarks","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"b91acfd7-91d9-4c82-b152-a0731685fc7f","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"ff9f083a-372b-499b-8dc8-fdcf0fdc822e"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"3627acdc-20c5-462a-9096-da39cd6b9ed8":{"id":"3627acdc-20c5-462a-9096-da39cd6b9ed8","visible":true,"name":"organization_id_Benchmarks","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"f6151098-8bd2-4eb5-b9e7-f25d659a5eb3","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"df997652-f34f-45cc-9138-755f4c5ba318"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"a2782a52-3d03-4937-8ccf-9e0a994db294":{"id":"a2782a52-3d03-4937-8ccf-9e0a994db294","visible":true,"name":"benchmark_id_benchmark_artifacts","desc":"","type":"identifying","parent_key":"fa60d456-7fef-4426-9a1d-b938566b8d9b","parent":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"6fced89c-1eaf-4bb5-913a-638ea22caa51","parentcol":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","childcol":"51e1ca41-0019-4f28-828a-baea406e7692"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"4624830c-2ee0-4972-b189-2657e9b7998b":{"id":"4624830c-2ee0-4972-b189-2657e9b7998b","visible":true,"name":"artifact_id_benchmark_artifacts","desc":"","type":"identifying","parent_key":"3f97f355-6d9f-4714-8099-5b17c5f57130","parent":"6e2bb99e-5664-4222-b085-611dca238bf8","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"dcf7410d-e61c-40ef-9ccc-f3961b3c3790","parentcol":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","childcol":"75e75cd3-b681-43db-8506-a9d3dea7c1de"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"46831da2-6151-4803-a00f-c8b7a0fb5cf4":{"id":"46831da2-6151-4803-a00f-c8b7a0fb5cf4","visible":true,"name":"organization_id_Artifact","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"c981600c-4d98-44cb-80d4-913c5972493f","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"4c828330-0377-4eee-a133-32a062c1f18b"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"}},"Lines":{},"Other":{},"Notes":{}} async function processAll() { projectObj = projectData; @@ -292,15 +292,13 @@
    -
    Benchmarks
    Key
    id    
    INTEGER
    NN
    version    
    SMALLINT
    NN
    release    
    SMALLINT
    NN
    release_date    
    DATE
    NN
    Key
    type    
    VARCHAR
    NN
    Key
    product_name    
    VARCHAR
    NN
    Key
    product_version    
    REAL
    NN
    Key
    status    
    VARCHAR
    NN
    Key
    organization_name    
    VARCHAR
    NN
    Key
    sponsor_name    
    VARCHAR
    A collection of Security Benchmarks that are publied by Autors
    benchmark_type
    Key
    type    
    VARCHAR
    NN
    description    
    TEXT
    NN
    Key
    organization_name    
    VARCHAR
    NN
    Describes the kind of benchmark to include: - - Security Technical Implementation Gudie (stig) - - Security Requirements Guide (srg) - - Center for Internet Security Benchmark (cis) - - Vendor Guidance (vendor)
    Organization
    Key
    id    
    INTEGER
    NN
    Key
    name    
    VARCHAR
    NN
    uri    
    VARCHAR
    email    
    VARCHAR
    List of organizations or gorups that author or manage security guidance
    Artifact
    Key
    id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    location    
    VARCHAR
    NN
    created_at    
    DATE
    NN
    secondary_location    
    VARCHAR
    raw_data    
    BLOB
    Key
    type    
    VARCHAR
    NN
    Key
    author_name    
    VARCHAR
    NN
    -
    Benchmarks
    Key
    benchmark_id    
    INTEGER
    NN
    version    
    SMALLINT
    NN
    release    
    SMALLINT
    NN
    release_date    
    DATE
    NN
    status_id    
    INTEGER
    NN
    Key
    type_id    
    INTEGER
    NN
    Key
    product_id    
    INT
    NN
    Key
    author_id    
    INTEGER
    NN
    Key
    sponsor_id    
    INTEGER
    NN
    Key
    status_id    
    INTEGER
    NN
    A collection of Security Benchmarks that are publied by Autors
    benchmark_type
    short_name    
    VARCHAR
    NN
    description    
    TEXT
    NN
    Key
    benchmark_type_id    
    INTEGER
    NN
    long_name    
    VARCHAR
    NN
    + + +
    -
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    benchmark_artifacts
    Key
    benchmark_id    
    INTEGER
    NN
    Key
    artifact_id    
    INTEGER
    NN
    default    
    INT2
    artifact_types
    Key
    type    
    VARCHAR
    NN
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Products
    Key
    name    
    VARCHAR
    NN
    Key
    version    
    REAL
    NN
    Key
    author_id    
    INT
    NN
    release    
    INT
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. +
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    Organization
    Key
    organization_id    
    INTEGER
    NN
    short_name    
    VARCHAR
    NN
    uri    
    VARCHAR
    email    
    VARCHAR
    full_name    
    VARCHAR
    NN
    List of organizations or gorups that author or manage security guidance
    Artifact
    Key
    artifact_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    location    
    VARCHAR
    NN
    created_at    
    DATE
    NN
    secondary_location    
    VARCHAR
    raw_data    
    BLOB
    Key
    type_id    
    INTEGER
    NN
    Key
    organization_id    
    INTEGER
    NN
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    benchmark_artifacts
    default    
    INT2
    Key
    benchmark_id    
    INTEGER
    NN
    Key
    artifact_id    
    INTEGER
    NN
    artifact_types
    type_name    
    VARCHAR
    NN
    Key
    artifact_type_id    
    INTEGER
    NN
    description    
    TEXT
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Products
    short_name    
    VARCHAR
    NN
    version    
    REAL
    NN
    author_id    
    INT
    NN
    release    
    INT
    NN
    long_name    
    VARCHAR
    NN
    Key
    product_id    
    INT
    NN
    Key
    organization_id    
    INTEGER
    NN
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. -For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Statuses
    Key
    id    
    INTEGER
    NN
    Key
    name    
    VARCHAR
    NN
    Collection of statuses that can applly to a Benckmark or Artifact
    
    Documentation for project Benchmarks
    Benchmarks
    Project
    Name
    Benchmarks
    Diagram
    Name
    Security Guidance
    Report
    Generated
    12/14/2023 | 3:26:35 PM
    tables
    Name
    Benchmarks
    Description
    A collection of Security Benchmarks that are publied by Autors
    Columns
    Name
    Data type
    Key
    Not Null
    id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    version
    SMALLINT
    Yes
    Description
    The benchmark version number
    release
    SMALLINT
    Yes
    Description
    The benchmark release number
    release_date
    DATE
    Yes
    Description
    The date that the benchmark was published by the Autor
    type
    VARCHAR
    Yes
    Description
    FK: [benchmark_type.id]
    product_name
    VARCHAR
    Yes
    product_version
    REAL
    Yes
    status
    VARCHAR
    Yes
    Description
    Text based name for the status
    organization_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency that created the Benchmark
    sponsor_name
    VARCHAR
    Description
    The full text name of the author, vendor or agency that sponsored the creation of the benchmark.
    Keys
    Primary key
    Column in Primary key
    id
    Name
    benchmark_type
    Description
    Describes the kind of benchmark to include: +For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Statuses
    Key
    status_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    Collection of statuses that can applly to a Benckmark or Artifact
    
    Documentation for project Benchmarks
    Benchmarks
    Project
    Name
    Benchmarks
    Diagram
    Name
    Security Guidance
    Report
    Generated
    12/14/2023 | 8:17:07 PM
    tables
    Name
    Benchmarks
    Description
    A collection of Security Benchmarks that are publied by Autors
    Columns
    Name
    Data type
    Key
    Not Null
    benchmark_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    version
    SMALLINT
    Yes
    Description
    The benchmark version number
    release
    SMALLINT
    Yes
    Description
    The benchmark release number
    release_date
    DATE
    Yes
    Description
    The date that the benchmark was published by the Autor
    status_id
    INTEGER
    Yes
    Description
    [autogenerated] id of the status type
    type_id
    INTEGER
    Yes
    Description
    [autoincrement] id of the benchmark type
    product_id
    INT
    Yes
    Description
    [autoincrement] The int id of the product related to the benchmak
    author_id
    INTEGER
    Yes
    Description
    Integer id of the organization that authored the benchmark
    sponsor_id
    INTEGER
    Yes
    Description
    Integer id of the organization that supported the development of the benchmark
    status_id
    INTEGER
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Name
    benchmark_type
    Description
    Describes the kind of benchmark to include: - Security Technical Implementation Gudie (stig) - Security Requirements Guide (srg) - Center for Internet Security Benchmark (cis) - - Vendor Guidance (vendor)
    Columns
    Name
    Data type
    Key
    Not Null
    type
    VARCHAR
    Yes
    Yes
    Description
    The varchar (text) name of the benchmark type
    description
    TEXT
    Yes
    Description
    The full text description of the guidane type
    organization_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency
    Keys
    Primary key
    Column in Primary key
    type
    benchmark_type_ak_1
    Name
    Organization
    Description
    List of organizations or gorups that author or manage security guidance
    Columns
    Name
    Data type
    Key
    Not Null
    id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    Integer id of the author of the benchmark
    name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency
    uri
    VARCHAR
    Description
    The primary uri of the author, vendor or agency
    email
    VARCHAR
    Description
    [optional] The email of the autor
    Keys
    Primary key
    Column in Primary key
    id
    Authors_ak_1
    Column in Authors_ak_1
    name
    Name
    Artifact
    Description
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    Columns
    Name
    Data type
    Key
    Not Null
    id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] The id of the artifact.
    name
    VARCHAR
    Yes
    Description
    Filename that the artifact is stored as on the target location
    location
    VARCHAR
    Yes
    Description
    The URI path of the artifact
    created_at
    DATE
    Yes
    secondary_location
    VARCHAR
    Description
    [optional] A file path, uri or other location you can find the reference besides the default location.
    raw_data
    BLOB
    Description
    [optional] The raw data of the Artifact
    type
    VARCHAR
    Yes
    Description
    The simple name of the artifact
    author_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency
    Keys
    Primary key
    Column in Primary key
    id
    Name
    benchmark_artifacts
    Columns
    Name
    Data type
    Key
    Not Null
    benchmark_id
    INTEGER
    Yes
    Yes
    Description
    [int, fk] Bechmarks.id
    artifact_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] The id of the artifact.
    default
    INT2
    Description
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Column in Primary key
    artifact_id
    Name
    artifact_types
    Description
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Columns
    Name
    Data type
    Key
    Not Null
    type
    VARCHAR
    Yes
    Yes
    Description
    The simple name of the artifact
    Keys
    Primary key
    Column in Primary key
    type
    Relations
    Name
    Products
    Description
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. + - Vendor Guidance (vendor)
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The short name name of the benchmark type
    description
    TEXT
    Yes
    Description
    The full text description of the guidane type
    benchmark_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] id of the benchmark type
    long_name
    VARCHAR
    Yes
    Description
    The full name of the Benchmark type
    Keys
    Primary key
    Column in Primary key
    benchmark_type_id
    Name
    Organization
    Description
    List of organizations or gorups that author or manage security guidance
    Columns
    Name
    Data type
    Key
    Not Null
    organization_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    Integer id of the author of the benchmark
    short_name
    VARCHAR
    Yes
    Description
    The short text name of the author, vendor or agency
    uri
    VARCHAR
    Description
    The primary uri of the author, vendor or agency
    email
    VARCHAR
    Description
    [optional] The email of the autor
    full_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency.
    Keys
    Primary key
    Column in Primary key
    organization_id
    Name
    Artifact
    Description
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    Columns
    Name
    Data type
    Key
    Not Null
    artifact_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] The id of the artifact.
    name
    VARCHAR
    Yes
    Description
    Filename that the artifact is stored as on the target location
    location
    VARCHAR
    Yes
    Description
    The URI path of the artifact
    created_at
    DATE
    Yes
    secondary_location
    VARCHAR
    Description
    [optional] A file path, uri or other location you can find the reference besides the default location.
    raw_data
    BLOB
    Description
    [optional] The raw data of the Artifact
    type_id
    INTEGER
    Yes
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the creator or owner of the artifact
    Keys
    Primary key
    Column in Primary key
    artifact_id
    Name
    benchmark_artifacts
    Columns
    Name
    Data type
    Key
    Not Null
    default
    INT2
    Description
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    benchmark_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    artifact_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] The id of the artifact.
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Column in Primary key
    artifact_id
    Name
    artifact_types
    Description
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Columns
    Name
    Data type
    Key
    Not Null
    type_name
    VARCHAR
    Yes
    Description
    The simple name of the artifact
    artifact_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the artifact kind
    description
    TEXT
    Keys
    Primary key
    Column in Primary key
    artifact_type_id
    Relations
    Name
    Products
    Description
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. -For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Columns
    Name
    Data type
    Key
    Not Null
    name
    VARCHAR
    Yes
    Yes
    Description
    The name of the product or service
    version
    REAL
    Yes
    Yes
    Description
    The version of the project
    author_id
    INT
    Yes
    Description
    Integer id of the author of the benchmark
    release
    INT
    Keys
    Primary key
    Column in Primary key
    name
    Column in Primary key
    version
    Name
    Statuses
    Description
    Collection of statuses that can applly to a Benckmark or Artifact
    Columns
    Name
    Data type
    Key
    Not Null
    id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    name
    VARCHAR
    Yes
    Description
    Text based name for the status
    Keys
    Primary key
    Statuses_ak_1
    Column in Statuses_ak_1
    id
    Statuses_ak_2
    Column in Statuses_ak_2
    name
    Relations
    relationships
    Name
    type_type
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in benchmark_type
    Column in Benchmarks
    Primary key
    type
    type
    Name
    id_benchmark_references
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Benchmarks
    Column in benchmark_artifacts
    Primary key
    id
    benchmark_id
    Name
    id_Products
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Products
    Primary key
    id
    author_id
    Name
    Products_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    one
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Products
    Column in Benchmarks
    Primary key
    name
    product_name
    version
    product_version
    Name
    type_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in artifact_types
    Column in Artifact
    Primary key
    type
    type
    Name
    id_benchmark_reference
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Artifact
    Column in benchmark_artifacts
    Primary key
    id
    artifact_id
    Name
    name_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Statuses
    Column in Benchmarks
    Statuses_ak_2
    name
    status
    Name
    name_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Authors_ak_1
    name
    organization_name
    Name
    name_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Artifact
    Authors_ak_1
    name
    author_name
    Name
    name_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Authors_ak_1
    name
    sponsor_name
    Name
    name_benchmark_type
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in benchmark_type
    Authors_ak_1
    name
    organization_name
    +For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The common name of the product or service - sometimes called the 'short name' - for example: +RHEL for Red Hat Enterprise Linux +VIDM for VMware Identity Manager +vSphere for VMware vSphere +
    version
    REAL
    Yes
    Description
    The version of the project
    author_id
    INT
    Yes
    Description
    Integer id of the author of the benchmark
    release
    INT
    Yes
    long_name
    VARCHAR
    Yes
    Description
    The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same.
    product_id
    INT
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the product
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the organization that ownes or manages the product
    Keys
    Primary key
    Column in Primary key
    product_id
    Name
    Statuses
    Description
    Collection of statuses that can applly to a Benckmark or Artifact
    Columns
    Name
    Data type
    Key
    Not Null
    status_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    name
    VARCHAR
    Yes
    Description
    Text based name for the status
    Keys
    Primary key
    Column in Primary key
    status_id
    Relations
    relationships
    Name
    type_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in artifact_types
    Column in Artifact
    Primary key
    artifact_type_id
    type_id
    Name
    organization_id_Products
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Products
    Primary key
    organization_id
    organization_id
    Name
    status_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Statuses
    Column in Benchmarks
    Primary key
    status_id
    status_id
    Name
    benchmark_type_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in benchmark_type
    Column in Benchmarks
    Primary key
    benchmark_type_id
    type_id
    Name
    product_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Products
    Column in Benchmarks
    Primary key
    product_id
    product_id
    Name
    organization_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Primary key
    organization_id
    author_id
    Name
    organization_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Primary key
    organization_id
    sponsor_id
    Name
    benchmark_id_benchmark_artifacts
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Benchmarks
    Column in benchmark_artifacts
    Primary key
    benchmark_id
    benchmark_id
    Name
    artifact_id_benchmark_artifacts
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Artifact
    Column in benchmark_artifacts
    Primary key
    artifact_id
    artifact_id
    Name
    organization_id_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Artifact
    Primary key
    organization_id
    organization_id
    From 729666ff4d6555ad36713146172572c20d299121 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 20:28:32 -0500 Subject: [PATCH 08/29] remving .DS_Store file Signed-off-by: Aaron Lippold --- database/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 database/.DS_Store diff --git a/database/.DS_Store b/database/.DS_Store deleted file mode 100644 index edc74b0b58e1323e79dd60115ef7c5d565f266b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~J!%6%427R!7lt%jx|}8l$PET#pTHLgCdQ3%AdsY;qvz?T@g{Xx!V^euq*<}M zU$L_SV7rgkXJ7)bp}XSA!_18N3ST(m^m%;0UEgjOR=f&4M9hqp3A6p$mWY4|h=2%) zfCwyzK%U~*JTB;&^e7@A0?Q!a--kwb?WH3%J{=4(0#Mg1hjAUV1hsjA+Dk_&D>SR= z!K&3_4DoujQ(IlvOGj$9!)o}jy0iHdL$hp$H6}FcAqpZO0y6@u%qKtp5A@&W|5=Mt z5fFiYM!?ql<9^4Nsv{d9s=gj{YFy56_Y=UxkK!#ojQh Date: Thu, 14 Dec 2023 20:35:48 -0500 Subject: [PATCH 09/29] removing web Signed-off-by: Aaron Lippold --- database/web/allOf-dark.svg | 46 - database/web/allOf-light.svg | 43 - database/web/anyOf-dark.svg | 43 - database/web/anyOf-light.svg | 40 - database/web/assets/ak.svg | 73 - database/web/assets/fk.svg | 85 - database/web/assets/ik.svg | 12 - database/web/assets/im-line-icons.eot | Bin 48168 -> 0 bytes database/web/assets/im-line-icons.svg | 158 -- database/web/assets/im-line-icons.ttf | Bin 47980 -> 0 bytes database/web/assets/im-line-icons.woff | Bin 48056 -> 0 bytes database/web/assets/index.svg | 14 - database/web/assets/inter.svg | 12 - database/web/assets/linked.svg | 29 - .../open-sans-v17-latin-ext_latin-600.eot | Bin 21806 -> 0 bytes .../open-sans-v17-latin-ext_latin-600.svg | 336 --- .../open-sans-v17-latin-ext_latin-600.ttf | Bin 40548 -> 0 bytes .../open-sans-v17-latin-ext_latin-600.woff | Bin 25196 -> 0 bytes .../open-sans-v17-latin-ext_latin-600.woff2 | Bin 20108 -> 0 bytes .../open-sans-v17-latin-ext_latin-700.eot | Bin 21716 -> 0 bytes .../open-sans-v17-latin-ext_latin-700.svg | 334 --- .../open-sans-v17-latin-ext_latin-700.ttf | Bin 41412 -> 0 bytes .../open-sans-v17-latin-ext_latin-700.woff | Bin 25196 -> 0 bytes .../open-sans-v17-latin-ext_latin-700.woff2 | Bin 20108 -> 0 bytes .../open-sans-v17-latin-ext_latin-regular.eot | Bin 21049 -> 0 bytes .../open-sans-v17-latin-ext_latin-regular.svg | 336 --- .../open-sans-v17-latin-ext_latin-regular.ttf | Bin 39364 -> 0 bytes ...open-sans-v17-latin-ext_latin-regular.woff | Bin 24364 -> 0 bytes ...pen-sans-v17-latin-ext_latin-regular.woff2 | Bin 19396 -> 0 bytes database/web/assets/pfk.svg | 85 - database/web/assets/pk.svg | 76 - database/web/assets/union.svg | 19 - database/web/assets/watermark-meteor.svg | 48 - database/web/assets/watermark-moon.svg | 44 - database/web/assets/watermark-perseid.svg | 49 - database/web/backgroundImageBricks.svg | 23 - database/web/backgroundImageGrid.svg | 14 - database/web/backgroundImageLines.svg | 404 ---- database/web/backgroundImageSquares.svg | 77 - database/web/backgroundImageTriangles.svg | 134 -- database/web/compare.css | 186 -- database/web/datensen-moon-modeler-report.css | 471 ----- database/web/else-dark.svg | 30 - database/web/else-light.svg | 30 - database/web/guidancedb.dbml | 16 - database/web/if-dark.svg | 27 - database/web/if-light.svg | 27 - database/web/im.css | 536 ----- database/web/index.html | 350 ---- database/web/lists.css | 94 - database/web/modals.css | 208 -- database/web/not-dark.svg | 37 - database/web/not-light.svg | 31 - database/web/oneOf-dark.svg | 38 - database/web/oneOf-light.svg | 35 - database/web/scrollbars.css | 29 - database/web/searchbar.css | 66 - database/web/style.css | 1826 ----------------- database/web/then-dark.svg | 24 - database/web/then-light.svg | 24 - 60 files changed, 6619 deletions(-) delete mode 100644 database/web/allOf-dark.svg delete mode 100644 database/web/allOf-light.svg delete mode 100644 database/web/anyOf-dark.svg delete mode 100644 database/web/anyOf-light.svg delete mode 100644 database/web/assets/ak.svg delete mode 100644 database/web/assets/fk.svg delete mode 100644 database/web/assets/ik.svg delete mode 100644 database/web/assets/im-line-icons.eot delete mode 100644 database/web/assets/im-line-icons.svg delete mode 100644 database/web/assets/im-line-icons.ttf delete mode 100644 database/web/assets/im-line-icons.woff delete mode 100644 database/web/assets/index.svg delete mode 100644 database/web/assets/inter.svg delete mode 100644 database/web/assets/linked.svg delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.eot delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.svg delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.ttf delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.woff delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.eot delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.svg delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.ttf delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.woff delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.woff2 delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.eot delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.svg delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.woff delete mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 delete mode 100644 database/web/assets/pfk.svg delete mode 100644 database/web/assets/pk.svg delete mode 100644 database/web/assets/union.svg delete mode 100644 database/web/assets/watermark-meteor.svg delete mode 100644 database/web/assets/watermark-moon.svg delete mode 100644 database/web/assets/watermark-perseid.svg delete mode 100644 database/web/backgroundImageBricks.svg delete mode 100644 database/web/backgroundImageGrid.svg delete mode 100644 database/web/backgroundImageLines.svg delete mode 100644 database/web/backgroundImageSquares.svg delete mode 100644 database/web/backgroundImageTriangles.svg delete mode 100644 database/web/compare.css delete mode 100644 database/web/datensen-moon-modeler-report.css delete mode 100644 database/web/else-dark.svg delete mode 100644 database/web/else-light.svg delete mode 100644 database/web/guidancedb.dbml delete mode 100644 database/web/if-dark.svg delete mode 100644 database/web/if-light.svg delete mode 100644 database/web/im.css delete mode 100644 database/web/index.html delete mode 100644 database/web/lists.css delete mode 100644 database/web/modals.css delete mode 100644 database/web/not-dark.svg delete mode 100644 database/web/not-light.svg delete mode 100644 database/web/oneOf-dark.svg delete mode 100644 database/web/oneOf-light.svg delete mode 100644 database/web/scrollbars.css delete mode 100644 database/web/searchbar.css delete mode 100644 database/web/style.css delete mode 100644 database/web/then-dark.svg delete mode 100644 database/web/then-light.svg diff --git a/database/web/allOf-dark.svg b/database/web/allOf-dark.svg deleted file mode 100644 index 1912cb22d..000000000 --- a/database/web/allOf-dark.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/allOf-light.svg b/database/web/allOf-light.svg deleted file mode 100644 index 0b219d0ce..000000000 --- a/database/web/allOf-light.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/anyOf-dark.svg b/database/web/anyOf-dark.svg deleted file mode 100644 index d2c7f93eb..000000000 --- a/database/web/anyOf-dark.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/anyOf-light.svg b/database/web/anyOf-light.svg deleted file mode 100644 index e9996ad3e..000000000 --- a/database/web/anyOf-light.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/ak.svg b/database/web/assets/ak.svg deleted file mode 100644 index 578f8dba8..000000000 --- a/database/web/assets/ak.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/fk.svg b/database/web/assets/fk.svg deleted file mode 100644 index 85f8ef275..000000000 --- a/database/web/assets/fk.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/ik.svg b/database/web/assets/ik.svg deleted file mode 100644 index a9d01acdf..000000000 --- a/database/web/assets/ik.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - diff --git a/database/web/assets/im-line-icons.eot b/database/web/assets/im-line-icons.eot deleted file mode 100644 index b92244bdd62e8c63366b380f347ee71b1e8df21a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48168 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 - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/database/web/assets/im-line-icons.ttf b/database/web/assets/im-line-icons.ttf deleted file mode 100644 index c683fc93e60cb4aa360c99f47becfe98cbd68d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47980 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 - - - - - - - - - - - diff --git a/database/web/assets/inter.svg b/database/web/assets/inter.svg deleted file mode 100644 index 2178f71ce..000000000 --- a/database/web/assets/inter.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - diff --git a/database/web/assets/linked.svg b/database/web/assets/linked.svg deleted file mode 100644 index 272b4da60..000000000 --- a/database/web/assets/linked.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.eot b/database/web/assets/open-sans-v17-latin-ext_latin-600.eot deleted file mode 100644 index 078e134c6ade0a728d8d65d080e9b3964df7784a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21806 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 z 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 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.svg b/database/web/assets/open-sans-v17-latin-ext_latin-600.svg deleted file mode 100644 index 410561e78..000000000 --- a/database/web/assets/open-sans-v17-latin-ext_latin-600.svg +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-600.ttf deleted file mode 100644 index c416212a08b30a3385269bb9f140898092a77029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40548 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 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.woff b/database/web/assets/open-sans-v17-latin-ext_latin-600.woff deleted file mode 100644 index adaf3a1e506cb74dcf61dc44ab100edd96de0a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25196 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%0D+;P~dyjvK_N{VrBp&BbqP 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 L0ET5o`Tzg`D4n?k diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 b/database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 deleted file mode 100644 index 24449199fa85ae96c377812694f376c41cace82c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20108 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 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.eot b/database/web/assets/open-sans-v17-latin-ext_latin-700.eot deleted file mode 100644 index cd63ec4f24b903c58e01595890b249763b02550f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21716 zcmZsBRZtvE6Ya7ri@W>c?k*uXi@UqKOK^90_uvpL1Shz=YjAf>NU;0;Z?|sUp6WV1 zr%%^BO;uOVENK7$X#Y9zzXbyPhsX$ESU3<62!a801OFoc3My;>K(YLP5&i$R|5*_X z0P;Un@W}fg{r?yiKpEfyumm{$CsGHP{)g`WDG&hS0B3*$z~aA{0HF0>-t9l$_CM}_ zIt~Eqf6o42j^zJS4f(%n0RVAz8I}L%NB}G#zy%=U2vA}Gu(xAPpT&-utZ9$i$h$ea zxKe5gnlZCw@~V%vRqpjCqUs6hqyRQj(P=XPs;jxFbxKH9yh8>aLlzrNy5{1Y+Vs}P zR9%L4ScXKD_9Q^q>588?zum7NSBacCd2Oe=wCSkfTWPE7!582{QocsV z2Qc$b0+@f*D#jVJi@aaa{=On}@tm45-T9QwN^;+5IB0(z80E{$Sqcl1z_8Q{P<_>u zMLzW{FfA1I$`Mi}L+5s&1LB`$j3f@sW}HUSnzJW%oec2@aRXD?zccs!8STN4-sZm> zMXFz;vPEw_NdZ10JPa3~ni;+jKq zHmM>_op{4BJ<%Hc&=EFpZA1R^f>bQQ7WnKX2ncm?(So!+ zOiE?H#q0ocBWcNgFG|6wRHkP{SX<1|%tt7;N-YAIzuS?1Y`;w;a+mWmWoppIeJ_F6 zW8!zKhOhLuwwBfSM=m~-x)(}(cCZvv2AoPGK(InOSfxtDzynTir=>@I@Z=hznUn?8~s?vUS8wsjvAJ=x#4Navy#|0R8hwnby-_Z&;NU-nEO~*-t4hF@a8g0irTSJwy z35ujqA*95}-qopymd(9qZx#~tQUtZ%s+`G^nLn826$rWds9GAsE&364CqZQX@rRE+YbmzAPu(+I-ujU08z|U)76~#R9|ni=M$t;%K+@ z*O;Kpm?@dpTh1_Sn%)f(MKBS`pZDRL14%Dw8rj)>!5#oIi4@5K-r>$LOng1r;6mDQ z7_w;g#4%D^+tmK5ZtA9A3?JKnHo~zq&YxN6z6mUV65$_zYciP>iWVp7!D3O3bw(0L*_0l&L*sj*rgA0fBrGVj#5`p&-&B9K zRwE&6>jY?Wb#f#2#uidfIkG65lp>E1eSPZrK|NZgGE6c8cI(vo8T_>!C=3sEtgAE$ zW20b1alMw___@<6fkbij8Eq?C^8o_SsY6<&GONw&hJ7{eV`;Vv?5`)q3^)%ux9A?h zp;17}q1NaGU9Vws&=ny0CLPI1>E>=8rPucCL8NKVVxy;ElncvJR)PZ~Z{OQ%nP6~S zUHCpDYTt>?#_gD0Kz<7hc%XX9iyFrFEmz2oYG-+O>Il3ot8lk!HgTwV-T?e+my?BB`z<1a?Ta| z8g7U+GY4^MzSTI-;lxO^(iQlqqAUv_)@@!tf|TZ$)sKTsgn=k)0? z&6a>h$r*_t*pI^q&1+XdiIxm|e%{RBs2H`GL3D!{W$#w(7qT3IcLaQh#NXvSuukHZ zU2GNt0KoH&(@2M)`etYGXPm~mDlH1|0n`X>xTs?b+#AeNkx?d8dzT8{t7f=ORYNnrHI`1y&u7AR*0Lfri_sv4bV(dIwN~(j z$+CA$OH`eqVyVnbGB>t4S&@fiBvm>y^KN#ERncrL_XTT z0?@}(x%vYwX8|kNPXz3i>Iw9nPh*)~D>SS6SeG zU0Nejq(nl=w?xY*CnPyV5|m?q)o^x$;E03w@=bDs`+s@M>j=%IyYI|O+tI-S;6o!}snhE#7YrO1E`8HW7_?yEIAmy1|Gk<2XmFjV4O=?F zkih)$+aD=!Q4D$3BDh?gdI(GQ52*YYPOalYDa!<3L4_u+B2BZYPzE!OC#8{n$Wyc2 zQ4*OS(Low%T$LT;miep|YrfU4BwW64jkN}B;>san7EuL}JFl*GCSS`B z_|Usp$h<<2WJhI7Wgm`@I{&!!55C0EWPWciZQzbUZ`e!}auH12$W}ErwJ+s1EHRp3 zJ!wEXOE9+v!c4_FO&7NguhwS0I0x466XNp3z5@=DK@LRu(lKlIJRRG@gTP-zyi(zo zGm<8y`67iyv7(l~M$1OGK*mBl4ogbCO&?|xcN-Tqzm6o$BhnKGXNDW*`Eb(KE84W!;e?bQF-ctd|2PzNQBjJR~yz5FhGK3aKW5luPTcttG7UUnGw4E@Hd(F zvzuRwIBx<(xLjTD=uMYm&5L9pLF)}Y;5*D`E_EI&FXnlbA8P)mm~E@{xqtmi2z+)t zqi+y(RU*rfbKSDNBu33jGBw%6SP4`EP*<;tKmHB5+a@Vbew9z`r%c|jnDA4-)?aMG z%H9#?4yzgGYv<6Jlp5lRR!t#b2&)-7QGWF)3jV9itec54fuQezqmb9CJz`ER9D+zY zU8J&;bxcLx024j;UBlD|Az$X8O6;C@%@0y3i!T>|!;GMA zCaSXl3F*^@B1|bonZr>quhwrZRjbcBtUNv}{TJ;;zfs{r4c@e@%z9;C3HnUN;~SZc z!(Qnsz275tABldy!=2@{VWc5Y99w4A@z)6YJoeMAp;!JXWMw}Oz6cnk$;z5T)VL2wu)|TCBaYUeRMqH8+HBA zlmj%O!QPpB8OrQ~kI3#Gp8#hQtfn;m2K!Rzcw6|rxFfo}u<(2qZA+;2W7l8ZiH{1^ zu{)fgy5VU<6CHd7#W~TJn%Y1>5yf@?K(WEtebgmG_Pm*mHn~SOEOVcTIR&D^|wFInBjfqApo&W~0H*TyY37fiwh>p_}ZCGb8|Dq9{v^3GH5{age zr!}~r@aJScsvt%MtaSqOy36m_k(xj^dO3YzQEEd5BC+$32S3~@i%CX5T3dHqgotKn zPx&haX!h+8T-kCh>RIEuK2Izf;qH*5`o=iFc_)Mg>BVi6=R9ozN(xJq(s*bdfZ%H{%Df>O(`ky zuxf9=8{_29mf3`t-nPw1eZ!+6ArY%YVHW+ftcAq2sHWDd)K>P|-wD(GL5y5l*I0Z% zHex4_VcJ~2!hJFEDTZqNRlsv$*GFb)xqP|-<(|C=EqtlML+&y(;``ri~MIzO=%Kwormeairh0#oCJa*TCok9a! zhtGVke_*kSvZ|`{)vxnbp=FwRKBJwebQPh3Zq^{IDr84}(y|Q}Grk@|Y2YxWH!+&w zLzvzG!{Y^`#5f;48WDIa*1Fc$Qzx(yCBjQ-lF5$guO||6nmkc$DC#C7n(fcQBrQ-Y zGC=p1{$nB`sg~k4?lDGWVSdCH(&CRf`k#O_^Sne;vy;nwsDYq*A=h>+> zdQ|*TBNc*3R2b%X-*q8;<*;58W{4yJxw;0A;&TsNyR^h>909)LIB02jh>7p(7?Zms z&ucuYE3qv{u>IX+e~MU)Pfr1&DY2k2`AZ5H>}}wEY`YOgddH|bAF8XzCVoH!yGs;3 zJ__k16a%@S3964;GBD!JP&_z;Bm7knJMW1g&M9kz0T@N!lEo38{M28qAeUc*cMUqQ z0%V&DlI=1X@2sp&;mQlqzKYghkvdas7jWX3;MJi3nM0%=F9z!N!TKcuV%8n{N@WM3nD_D0Tx-mqt-_ z)NoPNJ^hq>s@Xh?pA%n4E(GZ{fxT?N40Yin4H}N0or{WDCLM`a-vo9C!cHo-L+QQc z=Y!_(<^;68FCmy`s{#+< zw?%M=$kg>4r&%G$v$pE+hDix7_8Hc_fIv32In}74hJNLSqT(wd8Y+K;yhd9!sr1)f zeub$A%;l`gl@`Ek$2Ea)J;j2|x_p@2?>TVuR(jv4{C$rqW}}=J89`_tL=WTkJtRkE zU{j{RrDq0h5}xj4hHp?G?CFC$^Y6!}(Wkyh!ldGdegJn(~(F<|Dt$;$=c888S~a0(wk1h}N=~1fzT@ zqx@70A7#%WKo~35&&?tQ@t{x|a@HBA5ffqR(nkrIr>fRk{T@?{+CiD*LPV;Fc@>)S zK97brC{Cs#HD4tsax@tv4|uVr4zvh+LYpY}ifCG&H-iMosgfOT?ah0FSqeS-$DhP> zA(G!+ooDhMZn=v8A|J#j+m5YaREgDO?CuXb0QPsQ?{6&<^fI&awR|@{fULb+M{Dfq zlvWb>zy%Lqh1F@FIUjGy^G`w#a1Wo&Sf0c$4HiiR#IAFv= z_C5jB%acRkK2um~MkcSfZs}AK-kZlm_8dpAWp+|?Kgikeu@CF@N@Vu9vl-}8qMjb= zX5BT+|3q{TOtl*P;Pc$YH(+7cgAp3LE3_T7cp(pNIybo^F-H#0tt z_8Vp~(K#ZN*pi+LxNQBg{lM?HJ$Wvr!tj=bI8ms37g9{g8u%Gs#}Ap!3Gwd`xuW!< zsZ7n97J~EfpOY&R_^Oj(?i4L#kfP8taxR2jh1Z#u39FTs6sFhaT;y*LLSrA3eQouh z+*dj|B3MD7>q{!8k@E867g~`4=4Q_X8Afw(@CyET@o`*M(VC9L7mIV5}_~m-0=tNZWFXG0NBhoBq!Hu6{{HN@`XR~G8o45?i7YZo!un*H{7Y`~& z`sc%bDGGoV^?GC~dgWB==jUQ98BOeKRU~pGyBZ1(k%AqdPOCxHQ~$|b6pH+gqTRjnK<}W_=eIY zJQQ#UDyzQQlr>^vxfyB@J?B%IMZU^ZIGZ+Yt2(=8X)%zKyctF zQmj#^@Er6lp(OHw@n)y)w@qre`6hncK4*$7@zKyG;-39{1I#z)tPwRgWCx5+@A_PV z2p3n)Xvsu1Y06aGGsF5W>m{~0ltd?q>kIkIPCVUjvR9;5;X$;d+NtM`7 z*->IG{X^R@0~R%E!?G3z})9MT89NsX)H?}WQyyU^BJ2Llt%jWJ4#iA z{A1Lw!y9XINjJDBty&xW_XFc08CcdAQ+k1>YbHjY`O&_a665@dJ~`##;`Ad1H4fM? z%ulp*Bg=6sui1xvr4M`*_Ch{)gV&r>R1WEYk zV%oFkndz~Ad71n>Xc&q;Yri^?^TX9&iu%l&+|py_`4&bFFIj0{mVNp65{TIkk%`pp6lb2fYm7b#*k*E1EnY15o=8y zLSDr?bhnug3;8z}BJ~dQb)v=t{y~^yZtFhcq)9f~af!(d)rv#sToF5|8`;(RpW;9zWso$cv zHh1-NN8Hnuifrik3)%nivlEWCuou+}jXg_dyE)O{ z9dnS5!bkL5BntCN>$Vd$kH@AMC_GFdQ4S-Oi4-HUN+T(wV>UmBmFYhIV|h(PY2cc~--9Z8(G47* z%#$uyVlL61qzm@;V|YqjHJbcp#-bYSv;~=p_JP}2prm}%IxN)UsLT`g<0pQ}MWlXB zVbsa>7_P#vn&G4{1S_e}?2=F=H-B7`WY7bBY-?#=h2q9L9 zsaPDwX7BxE%^VluSJ}c=yDYDD+&nfx53__?{577&xdvAgt%v3!z6G5VTnMJB48d*BtOeBJJkAOL#)z`u^2xaCVRWov{;Mq+qp7|u#w0z5i0_B zFGB6jbC;n7>-zHwPdn(^&_t#@>*^tGv}c5*y+m$x03>@N<1jWO^g8=Mg$78pTOK+D zGv9-xuYAF%`(e|rMjA;b>S#ejA6OMfLlh#oR|{seaTAgORD#Ae{+MWDa|eWz2Hd(u zkI`1p9Lgq%XIdMU;Yti+RX67je4t9=-s|nOLL5&=9Sf1E zup^AH)9DWktQBOU=wk(GYa9s`u?hq)Gz7;_>+jq^bzNAAB`reRrSy|vk0s30q~oBG z^G*|LN_qsjkzlAFrYJMl_&+v+TEiAUo~3~8I3Fx{E>ozhbemBdJxi>C(>({`>U~}k zk(4w}RT!g3wc11_Ve4~lL%6J0^^Jlz@%i?yk~Y=K_c4m(DJP+uRTInZ<=H(~(s9|9 zG%?ws)O28Q{Y$8ohjSbI>--lCBK0rOxiV1&SXkB>f?)BO>*B(ip>eoP>*P-<*dhAX zoBX~JHI-S!{ry7K#9}$aDOGCkdO1G+Vzl;&%K(Aut3Lh0;G*Vh>Y?+q`1@wU;a|Wos98Hu88ZXUN9#?dop05cqxa8*PuNhH}uYpeaNaGU9|G??72d-4zT=2^o*x z%ojY{aP1TQ!WfGj?9mo^wvb8clFjQj5%X5{ibM9v6v1>NbZbv-JgJuS>jMrccv{4; zjKbSe}??#voaJP$VbxtTt%y ziK_5~3Vj7cY+t70csKV?<@-8o2~J@?45=>|F>(O%(hPHv!OTu-Ch6Hry!9To{OOMW z0N+)3J;=m@=ykA`^1?&oO;o9pR-8aj1UkPt?Iamb)lxcn==Y?i`}Z?*Bt2`YhGHdi zQ)b_2tJ=X@A~!K(CN(0p;3B)4pxexBTEO~tL`98Tn%7md&m%)0p!R_(QLis!)Ttnq z5n`SP1uI(XJA{YVnIv!GaCv`r{QxzF17+L;gz_8XbIoYZOZat7!{GfIk;#8V_$R5p86lSt-H&*J5*v~XgUnkE z7{X3juH=5*ZOSJrZGS_-7Tt8NR@6X41jOhD+=c)yx%XnHk@m2^l>DtT8`f}G*m@N! z5^Mw;%qw^!=@>a(C&Z)Vb_%M~3BZgJ+y0f+Nrr7ST??+=1)xnZ{F28#W5+|A;AosX zgii!fTh_}SlBNM`2>YG{Wu`&lMG~=rxLm-Z!KjAuYxduL1W7~wV2g>@;c-QcGp}#q zU7Kk-y(UvM44Lul(P3MncoA0#pQsREIl+J$~%r|;a8=~($cY|JJUzdVI; z7<>$o8=1g9!QNTXqy&p=f*!~$HWuN|<3(HCEln11lf;ls2w~f}PWzFP9+$s1$$xv!@)g^eWi9i( zq_^u&E62WPEQti;K8nmZs~SVxfe+mCP?5z*IfMsu>nh6kI=$Xk6YAuMm#SNXx@8f? z31@g4>B~Im=vDDKOedqdnjxBD{Gr=3s@tROj)OX$rS#m34UFh?d#rw(B((2o>+$}s zUSZs<@Kt-DDnE@R+r9oliLoe$=H_0Co`Z|PP@A-hK{6VrnHJe{xK8yhe##Xp&HofE zdxf9nGGkknUFyEFZ3f`u%6007pO!kA|MV#DVz!Y?wgu;u`ja%*_lK$VQeF||<3qQW zWI#x(XhRN?f>~BrdSS!J=`*=6YD^JWOP`Gz%k`u&D%6|)^CDtb)Kd;rhO0ltcHH|l zK^YDf8A*5lyV#$je)@lVZT_j%J2e%g`D|Z&3zmj9V_RWGQ}d^|56^f0@HE}CFYp0> z-H*A_oXPM1z8os*O({1s0t<8}Wriw}Tz7=NMG+(Du-X5DTzx86{XErdQw&lyn?>=x zw2T)yL!-EC@nmobsNtdZ&p<4G)zSUnzmL)zpjr;#>}Pc+jQR^v6DlTvP-XFiuVl0{XV>Tf ziD6EM!eL@ygNx1TYF+fft-F63YM}DY1NmVfmO9l57_}4A?tr#6%r?UH9JAwl`vfev zE=;RyyJm=51|=)c0&0_d^n%47iSiM?IqEz>xoOy(nw54Q2Qt)0T5DXOeU`CAbOYu! z6tQ$pr_1pQd`D*BquuTX@R&dkwAXdxOI-U)j+)EbMiXc%re>`5p|X!9PT$ zcgA_nqYJzgFh(mc>M-~4`PE-+T*GTAoMy%BM2*LCp+9*WpO!0DmrPiRB~nf%Nc>hO zUL;`V$+pf-BAA+}N%T_Bhs#~hAKT6>8CV&vgTDLaaIadW6BD-=uB*JO_RvB%b(s1gGEeQtuoamRqTz#_qCpB%GUvIMH)3|>$;3?v{yIxUR~beyJ*hXs8ec_& z$8bi*K31jWO%}rrUbC29>ZX7st^&O?L+;;&Rf<%WHVj&Zqi`k~PUoMawXOwW_<=V0 z!mterxrGx?z;!qKXT7lm4d++3vy&9cpF(Q)gxK=7T81abzS1V;d1*%9W6lcP zB>S(;$uh^xGgthf%t8rMyFs0fA==8b>B$o}^&- zU#Y}R`UoynJBIq0XCx1`<$I{t@6cq9FjV8sQzQjFwn0kih`5l?;i+E97Co=WBj1=Y z{C?9UxIOYTadO9Z9|7_Llj9wy3COqmZnu`Y z8BO1IMZ$HbO)gTmoi5y#1n92Gk#>gDX;PVOw?QTA3dMH2(I6ZT27|EW3W7*G8hd3n zutq?sSsf&$9Hm9ock07DWcfyZn|vV*(_ILmc7DxPEV`rMt`WZf?4H&2w(1)%)*Q@A zUn==ftb^AtN)WR3mbcn02B)!D2d^Zv90GBLPoVPcF=%9 zqjpk_EfJIT!Ly^t=P6*&vGs{qT;?q#Z zQTn8K?%f{%be*_I(4u&SR#p9FESTel!b>Tq^i8nB#*`pjL)=9!CRQJ4ky6b?&1C}6 z5meN~dy~6nmK&Tz%Pd_eOO2WjE$7@53EYiFlQ4bNtD4ZaMx_D!NBoQ5u%n&ZG=9Sz zq0kgDTR@8zbd7r${i3+y#?CnNfNT7#n9{$u3FpB37PCZS>e;bxpXVmO*ueSI5p|Zk zieZjk6{hegq?Sqf-aKEj2Usnqv6P1n7eY62DS__%w2Z#G&D)Lq9vNSpf1Wz(V5+vK zQ2DxvZAdbqJ?_Hgp9+6KHo~F1BDRqD-nZFmW5$glL9dVsJBTynZEK3*GOZ(xjK^y@ z27BCGEOlteed8$$e8iKR3hW6~O}kDAxS@z;iEFqpitzXoQja+zFnnF&C7NNS6OH73 zrfyw%C#S@Knf#dPQ^d3!oLz~~%G$pyG8wuc3f~YD(=}rQJD|<%u)}=333M9uafdwY=Q)H zrP0KO${#a|g*$1c65ai3b`D?;vp(@&lU7hVg11tda~fNIMpC`OvJs~~A^n=lF;`=K zWB*rFJq8{P7ZX6LpfkhA#lq^yKONwpkzg_a*kM&)la~0b} ze6ruEnJCBRXL9bQxjRTMo-=Y$#{Qq!h6IOS2H^Lc46af0%P{Gs#wn(SY6laEUnJ0(j9^pA%4W~&ss_R~PbhxSWgr}JR{vFX+VP$R2 z=yek9gHC=t(abCL)tk z1t;rb%@^1v0KdF4?rX$<7l?u*gvRxa3UfT&p;w2@_kdyVuPprA$zDKkKkgdYgXEKl z6^x--?Db*o;!c;<^4y1x-Jr2EYTivnc3L+*K0dT567uA6Ns8(nHluGDM(ya)0g{87 z)D@V>_8Q@eN z^Oan9B)pNbv)xob?Q4iH@Y?{IPJ1|;6`)r`@VTu?U2Qld-D|#^THmrpksdLq)X}hC zH>-Tozm`@A+dxM*w5h54nK4HC%~no%QXmnO6g+DiE|N%CKGoGhCCaklw67)<^iZ@l z+=oNadLRBzx;1b5M^XAiWEzWgUg$6xsS$!x4L2-EU7%zCCV$AGSqZKF+@g)37v35P zi>TKYGd2QPmq@)Bb79fihH}+B1jn(lHXA!tQya~@*HoLGj@pj@>Fz(IGAD45nnD~K zoJk-;FkNF%Zq}!_%SAQVim0FWIjZfqP;ki z{%wG_N>*U%y(1YnTq2mY+WzS6%3KLtsxrds5<7V`?JM`+9FZi^sVvtK>pG$Skx%){ zBH?Cg;{J zSnxAVn9^GpVkx>19jRN%W!Si5@HA4)DTn}Y2*>=Vty?v!Fw~=OkP^Mr7Hi66%5E(hDR#Gj zcH+hQX=s+sqVogM(XwDXbIXXhFVI5#OWWH^@ur;c*QCUE9hJLWki*z;!j*uOIDjQW!*%@$k}(9i4>8IOz;Lxtr+k@N(TwWDI$ znPc=F(xL6+mdy@KA;4m0?d7~0y|*i`jZ|_JZ#hYy?NDcD*`b7gP6Yr5feYO+r7H6+ zwL9`J4PGYeqLb1ur}4H~Q#5+GyEo>RSI8-Kze3CFgM%nZY^?ABXMkHpjOc1Bpcb;UC=jx=eR&dPmy+Ngz!(72|T zM_F6D3s-RT@dHJ2OEmOF|9&%I@pyoVnCI=YJpcyQe~G%^jpAt@-S9C+DbI+)&dcmM4uuh z+pM)&FwlFD7(SFCh8dYX5NFY)hf;;HY1K~V-H~~dQ6r&0zbH=TlMSIKSI96zukSmP z{5^dd(s6mZf}Zsic1rc961>nv>lPv*>-Tvu-g5J-XtC?xKK)X{@F<7h65slx{FEkH?^L&+}=Vay*i{1rPWhZ z(sb?Tw995MG+2Zh*@&Wv^XeCXbW*gjG*svJcy^p=hRP{s7`X~${FJSY(GE}-hCB69 zPkHWyFE1-NKRy%#l{D?_$vhH49qmSq;#W8_+&I+mC#l3l`!mK(Y!5pxD0x-v2dtEy z8Ou(VouDLCg#*U*NyHT14u75P|Bw}%R(U~ZAPf(TJ~*nt)nuVk;ir)Br;z#QVglp+ zQAp1mqWh6FENxWsCl%8&j%_Ry_o=2|K{Q|&L!FYU+BEHFeog*H29Qs74mxllfv%7A(JSIleeER|ZR!(4RJj^y&XV15m zGaWNmiTVCQxCyycS;Q7~NQUMr4aLyJ{MofOnUuMCmf2V9PT z(l2#HlWI|JSB$n?M(K9UoH(gXl{zYujQSK<@psQ=u#ZDY?TW^s37ls%e~4i8MLGB5 zgzKGSb<8glL{E#ZM=5*)bSJ~s5_H?rb$<(Ie7C!_Bbov(D4sL9+uI}*pJzDQO4H3= z5=2P=DC3h-g*jVh${d@JE8tA?Cnpf2X;GIKlrpz`G`9CXI6i^ls>vG=p{-H!OAeir zV2v^sR@45C@=RSX2@2PFZZX*1OG8>!y9^TnE^}mp_1YZJQ!(oVf3+6`;CmgGC-{op z)R-6J!q3<7{Ve)ahGE!lAyQV3t!VuGQsWNu4k)`35@1&ElOam2;tFWhEI>ZOj`=jVg7suN;V`R_q`Abn{E#HtYNWV8o^ak%-AI?=>4(y{Wp zh@-`LQBdqe3RK>FAAA7`_pwdtJF*FpbNz$=oZ0;=WuG0J`IV@Du72b`D@>dgr$D3u zBbDrP&_5QDzj)}X`9b8cWJqI6+t5}~UZ*I^)%#e45P4R*YDu(-gC+a$*75^|f%U}1 z$kDoFgzRm^q|6O;S^ipUNtzm_Nr&A$$f~5v+yWD`To>-3mcmi!e~nz`4rO1y1dNZv z4AMITj1HuSm#M3c?FOR;*On~^;h%KSS(xg8>OY9xmCX#$w~|UkeAx2mFanyE@!S^!pSscNl{5DQ&ky zb-C{apZs!L-)=4(J74Ip_Gl!`s&0Tnubjh$l|N~i_BFPAOB~}~trgx9{Q7QdWz*Fag%orSx$2?N7 z3!65%k@Y8^aAAD{&M^JE2}~K8aV8cgQFq_UCJ-$ zPJer9Hd{T4v{_3pJ@q1Upm{7$(F;Cz4Z?fs4xq zhQIEf5AmiGM8`I884*TLeg| z{=WX1dT!6W40f`Iu^OVxV5>Pwtz)gsqAW-?d|DSE{5RGSUgHrCb}lRuqRh2~=q48GuAM1*C&pF1mwA`%SYK(QrA~Rf;8Yvu2Ob^T-p}bjX%?BoGC%4O?2A+gg-sGlL)6*!WUNN;f{0WtA?LT0vJ9(vLvNqN0s%$;n;>}FI zm*{1dn(i01Oi+bo2;i*2QbiVWPzC0up%mjv;NpPl5B*rqX(-YJ_&#SXeW#R>+*D$t zLfXW>*O6ivJ)=0qb?LmqQ`4y^B^R=zFn7o%%BARpW~ph*yqpNaMer=3w=z=5L-AFq z5NmCV<@>R|V=;;5hf>D|T|57r%<=;l!p>IE;~<{9@CiBs?Db{r-#}JVDO~Y2B9wt zU@S*{0}EKQ=WZ=aA~{s$a%mi6s)lA|jC|!Ts_5Zf)=-R8VARQcGcLR7@6Ki5EfSd<{Xa^m}vX(MR&U`#~!ju z*1NSMYcsQ#iaU;5Q)J6fP)mAXH%oxRFgZc)Wp=r(Ht245Dln}g)NFC z6f;c$7glv-#u8;`3DDr>DKh`leX4d5Z`1_i<6uVZtdr@>=hZ`os-qf(k~1{}BsQ$M zKoUi+s-sA3Tkds>Thpi*F>;|io8}?;@FfLPCbzU>|C0&N5@=+}y&R{@mj$4>7$i9v zLS;E-gb#jq;|_kbVw*w7T@9gx%uyl|z#;42it%OvEc-7(26*uyq}99MAV`54u;8?mD=DN;{GQ`tg@~h7#YBt&eQ$gr^f3 z;cZ-0l6<#-G+}ZOPxBToRRjLAcOYTwHVvc%i)3>4kGX-NhhyG1fBpEvIw#tIX9$f* zLOaztL5wA&Z5Y0H=Aw3*aTVjQ*g2RLMmu7-k>LBAdzA3!0;j=!{JdH%*u&5KT6hA9 z*P87pa(wVk+xwJ<*UU%6p)hr$HL$k6+-q&9Pl2*O*JB1`0|q>kOuI$}*KNYkxJLMq zO`Lcfi|=8Gn3fW7`{-?Rd_3_6xoSY4pmW+lqaP8 zaRzH~j>`9?di1{0l*8Ojb;xs8sw@wLM9CP1O7t{#ql(lEExn)9nEP0nP}4rd_;zU? zThM!rA?a|Be5M$K1;i>yI-0}1F7+GWKsoP4!h@`E3ge`ViQ4Nm8%1)t*hnmH4HZ;` zCK&}0j7?49hVp3QCyfD3$H!{I@#4uS=GO^dHvc8}iAWyyCG~>9n}Ow0A=`3=t;TMg z7HXx@zGr?ez4H6`LCXay#_9z4Q}M6S%Vk3?neyC4N(=NAdY7OLSb{2;jd>M=d?eiO z8~nIc=ATKEq~-od^to$Z5jEJ; zKf@rPUD6yMTZTO#l@cIPQKm;(@1WrQeZE|)j7Kn(e#u#zKR(kJk0}-MgJ_RO*q6V^T@;EZ_u+now*!n~Jy8Z>>zcDi2Ud zny|QpZ2i_oi=_R;QeuJv2PAu@(*Go*uOD0yHH!wn@>y2gQlKH#-c!}bLmu?+8{^jU za!cJKX74a7?E}|H*%3VeS|2b1HW2a)3WY%i>i?d~F>)BACE6IxkM;DS%aJw|3R(`cJ{YqD?4;5m=5*h~3hJpOj-;v8Z8SmcbS=D>dMESE7{U;#AKs_m&Lv zU}P)L8~z%Si)!OmKa5qXSNp7|)i1K7@+ZAaU=dBOJ@q)ucbpMS!eZUo$~yEIBDd9+ zKWI7W3U6bpff78In)6GAF4E!Q1<8NQv|+A`rzdgiQ=J2hZ_^maV-4HefuH;ikvfvJ zcbvf!Q!L%Mr(WWfPG|2`UNw-Qe~`r&V~jK0^UFc?G!$}<<0_6^$ifm&%^rw2;=6NLZI$wMsOfo5o5BhmByCdX`TXYaWOCM^5rhifb#`-@2 zVHBS0KEPH44OG=Ipm9eQ%mc%iqh>0Ij|@VIelBqI4t%I;hou-cS&eR^nYFNp+ao?G zcEt#7?L6az#Ee{WRcz2C;Z+sr-t?Jje9^8r2o{K=_An!Z*9;QM61;?URhC)_1Z){o zom{drT&cYpE0Umr{UWk+NU)>4s)DzVb2n*%xmE4m>?;K}Zn6gk+!2{!-`!Q^fD->2 zPcBchbpT5?FaxXDF(YbHlccPRi+VmRT&h*;?Ifl!IO)KBqiNRHg6U`iW``>GwJ>>|GxSuZh4DuPK&gja zG?m!KgpV3{1*xxdW4Q=f+%R+EHo2Yn&#svlRTgzFcG(U)s-Gn!*jJ4Q(#Cy1=ByC~1 zQbS>u$dN%2N;4C+*6sq1PRjsXOduOPT;{KDby5`yScfylmQm4x0d0Z#9L%S zf4G;8sps?Iydq@VnYp+T;!yl7ejm{QexkN(>Cx}FIB_5aUVuYv|XbHvN z3;%`=I6eLYk~P9gxm&^=Aqs#5unP&P8gQip;N7fp6E*v7IERG_MCaBR^YX2?oXru; zM~G}l_~R;NppbFDcw-FbxdZwEA!0+kLdy$@@hZLuQBfsS`aL$9e)uPsM4AxNAcB}6 zm6WLrCzmeih(cDzvwoVw2D)ba5tXmqhf3ACa)5PERA49>m#_kgvqFJq8r)h8vhAdb zz{aAu!J@7zp({}WU`AS^bPVPg03gTRGP!jFr3jZ1c?N51NaPlAjb|1Gu9>KDyf)79 zfuQho>j6uyk$iU#Dr3;$^a$1bBnnhSGKc9_a)Rlwmg+9Bn39RNLDzN&N%2ula2>ebg{503&mw zj(+`bVG%OSdTE&mtxu+3eJFgj>B6+dIrO{78 z#tF0NqtzcL>){e!k7s_r&9TXNX@Y8`QU#{xY(i1m22_xEMDb%mk7I^O zINn$WTGD_Byx91lIO58NyFiOvw~BC%j4;!cO=yKXmo2GW$T(TL7iJ`4wV?>eDGC^L zXuD%7Ag}>34~jrFN!wj`o}6-kC5RG!XWBg$f7!s-RwwXte2EJAz|<3VrZs5v(FnKI zB*(X5A$36-)z{|YV+fww9yU_I38-_Ov#&VAGhe+~Ik-Y|_3hLo*NWkp%e`0tKcO9I z11XrJ(Gwxc6~Dm3G(`G@F9tFwga_Dcm49lO$IMH!zMb!LB#JsD^B^{8gc*~AAY*{!hoQ5Cjv<-tM4S3 z6kr2m5P=sY(G_spU0_S5s*ex|3I(oa(-Qjwtj=dEUJG#z#Vj{q3bo`SBQ zx=P${*__}5Yfx}#5yOqe2^ZCN8gxxTMHjDo!paIE1v+mbEx!E0xePqCLQxLWR*?e& zKWq8uY~0HR4YXaKW795#KQktwmMP$jGbbE80jMm$&Ju6}Xu2{4e|3RX6c|H@4UV^= zr!Wj;N`5Sv7gn~0nWtG6F)8PM7@}$W2Fz(Kp)tkD`^tm;2wl0{Bs+MTazK?4n{A@W z3J2h!plR$M4w6p<$ARUv@Ac&jTfY;L5Q1ROO$ycV@nGn#$Xv>sl^3=!xr&@KU$K!Z zK;^I5>_P-iV(+cK~bK!IeblP7UmQ-)5+?I&HthDRD`45}6x z1Ys0KC02dg6rZus_~QwlpyTmF1voL4eAR5(NJcQ|!h3xa`Yx)*W1ZTNGR6eZ zQ_d)!k}_hXLx-hX6O1B35UR{(rxaG$5=75&47FOfdfLL?I_GOC&vv54ASE|}z~)d4 zHXB~i>Pv*E(nw}8jWj5Sz#$=6GHOl05g2Gfhks%Ri{?{V4o*o6@b_rbZb_l+7bpX( zANOCoWoMpCgtB?7k~Eh=VR>n~aYn@uq%tV%8c5GfP4jN)N#_biN*6fe6fr>Ef~suE z$G{!5X1sWZ+@3UH?AUUHSxDwI09YxbnjqGBZaDoKD|VXP=!{9I`w6Vwx3<>W2|-P? z9So~NPqRIT6Ozerc`(n)V-!7VpF&6tjwLG{YcE5U}|| zCUre)ELQe-eVbD^T$vZ;NkRvwhvJ-lXlc>3Wf){hPT;HST(^#k5V znNL?JqoX1xYS)*_Ta%DpXFvm%9Z1`OPaZRcj9{rOgY--RQ;2xQ5?N0fpb5$JfY~bZ z;5ifhzT1(l%D#jjDn4*fK#rDx{xW=eQq3ihEsw%JW0bYRSz|c(f}B9UWVlgZ*EP-j zI;;ps-n1!PakI}XLB$zBMI0GF#x@|TB(!)v0zto2$Y%eh+HOLgZdfpjD4vv80p0+*7& zM*t(_i-Vv$5hxDxh{tC93ey#9$ie%dW1#`%+>$V;)w+>EXhe(hqX;@E-j$scH`^tD zXmU@^I+DJiM8XcVg$(477>BmqX`Y%cqXdMZP6|~5Qiuf{+i(f}tp~~%4vHbbOixV> znYwpZ61r229J&FJ2R+O>XbIUyKzsHKy(k_L7pWCDKs@ro&X>E|(M7NW_l4?ngr-f| z`~n^tZp17W{nwI9ksAce!8o4u;)op0_W;w4Z4khEkC@+~TGyjYPsM|2b~m3IwRO*kv^nJ-Kle*!uf#U%R(PNcO18#Bsl4ONd0W9q7FE<&?gAm^*DMF8|2T!k6Fw54q^jI<^6a*s@yWH+nT zx71ra3Q`e|+}M^Li~gp~=ODW!Rv@r!*=0S^fN$+qSoa>`7m<6VQb5xN!7IwBPSG~v zlLzRCkepl#6sn&uu9`)Youf{>Mhz@$$n(e;%$giOmN``eNFY&8Gpk-JIjBnTW8r*kU{bXgB&YQ9#a`!l8xjU9Bz!Ax&(&Y~|nn@O3c3|5;ho`(Yj zkU>7(d+7EvjV%ueeuK4>s@M#SsSb#zz+JHRAOuCzY#tF`IkSP>I2^5u!_FcgXQ05+ z;JvLeBa$KQF3GggCQRqhnAXzq=T)mC8%&v!?W-PD#nl2(#;aUlsq9C%P33k@>y+dtGrJq38eN8Dhyi_W?dlrmRVv0P!D z?l8d9EVC?9xMsa!?qB=Wx?T)~U~GNQtVs2R<1KvkSfuK*9fZ!tXKmH9Q{g+H;z7pn zoucyf>m0P2X^RQTa~S{EJ%XXZn?2H?Z6P+=RQ}N4+ql}k$WMYKFL1oqk(|P*2TxkX z-V89yUzN#@;fb8DKhzhzT1XZu;HvBjH$Y*Ki`;66>51=hJa{HdQzE2RO+?dOR@%$Q z9p{E(oN773MiD-`;Qj9qFSK7b=8;;LEIcp41&w_a8kU?AgFr11aisih^jd<7^1(oB zXHsfGITo%SYS+tHUduM+2}Duw01HYA)|XDaTrP_l5{}C17Z%OhlT69g4Tw;xI3=BY z9HBiL5$?erR*B;U#|=~9Et~;?S~M*UL>V!V7_6ikK&G6=$-~%~4kS*(qD&Vu0kCh% zCSfN~iV%m%J@Js=0bp!kHTAm#bikFIl*dSGYROoi)wtI*c-TN8dH2;^mKAnY+Oh+O zijr+SPBO&s?lfx8vt}C0Sfql-h2FA{pwmmon)c&>M^I?Q9XnF&y|0cldFY$9O-NiH3bvvC9rRO?<=Fm_8|%-@dPE)K*HKhEnj5to8ce6M2P`3REM`!D4v z)fc@3mVFEw5MwYfRs%v?1&abA2)UNRNGTI2gKr3StKhZ-jKM+kpao2*KG+mdf5=!m z!%9lhhORei;Dor|lGO}}DFi0CuojfhE=C=Wc_pcFW-MkYPcD_q{RAdaxo{s-7QxY| z4h6>0SYk&2whYmU^^P(Mk`RkDND0UswrD}Kq0G_aX0{jKOe8>0Gl}Mu!WZgoX@KCj zSP+UH?qZ&dx;I0)hDHB!W>EWviie<*NMT!vGL8O^0!NUm^L>%{C}Ze8H^UJvAofBK z!4m30TO&Kk#IziwwuVJSsRH<{N*}o@NqsO=HMc}~lvNog&1uHA#-h;^LK{64WTGVr z9H&MVY|CSV)J%z>`4Ll6T_kNSYt-VPUBIy@D&&C+QcWmnTN(z~o6|6jg|eJ7a&?QCWXW_4z#wAEs~VQm=(F&W!}1osnQ&@ z(ViOTva*>x^usPRj`DF5H0}zfGQ1@TuTc#=8KqJ{dlH@zYrc-Up&vIa?$&+PXmYaN z3LC}8cAi)1HR)LZ#*1vt7#{F7vb2NmYhC%<4*?>zMBCEB4Q9rhyIlO2JZtnu;2oUp z5drb7!-L50{5TBzLN1^?w+LBr{+8EE3-mIt37jlDrJjtrn`SG(xF@013s~rw9**q@ z)xEpZCBgjUQ(0Ka9r&=5z;a{mVPe0lg~I#rG1Meg3gDBuwiaRYdkK*1SITnF3LcUj?i_>gaym7A zy?8n5iJS){KC~hn4g{=iwNle%p_cPp2rcNJh!+G$cUA-oz6~ZzA-Ihdm|c5B@9(h= zmH*C%^e~VugBsBWDOj;d1BOX3v_BOW!BOs3=+C#BMqTrXwR^K(9COeeaw7&sKGS&-NuEV z?R5If8H(^L$w1A4_&feD-m*&8xM4&|*8m}L0HeY|`5Z|(DHLm7{Dk#w@RF<${t*nN zgfyuMplfT%Sj^~jsgTIXBH0#|0FgAmnXJCphL(_~D+9#1Sq2?A*bf6mb-iJD4WypL zBSt%H$#RxYV?$s8d}qwCXdwnx!^LL??Jp8v_WMN_EJ-y2N7VI^uo567qylp4v^K}S z13{%MxzW#s&w{Lur0~%L#?m5$K`4r~Y^LC(zlFFHK@inK_2}DkbOHkenVzy0q`Z7% Ye`*fA;BKRbh61o3=7dAFwrLKD+=OoGH2?qr diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.svg b/database/web/assets/open-sans-v17-latin-ext_latin-700.svg deleted file mode 100644 index 8e6b61ade..000000000 --- a/database/web/assets/open-sans-v17-latin-ext_latin-700.svg +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-700.ttf deleted file mode 100644 index 885fb68ed4eb23c15408465651a89b9e20874723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41412 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 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.woff b/database/web/assets/open-sans-v17-latin-ext_latin-700.woff deleted file mode 100644 index 46bbd7588bec59b97337227afab2f7d528a0bcc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25196 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%0D2Awa4onyJO*9~ABX=TxsVaaGc+eU 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 JOh5?$001b+BU<4oqgF*+A3k-pH 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 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.eot b/database/web/assets/open-sans-v17-latin-ext_latin-regular.eot deleted file mode 100644 index b411f2e5139ba3d4bc535469fcfd9bd3178c662e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21049 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

    -z=N^~oy%*9O3P6E6;ZMA^U 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 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg b/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg deleted file mode 100644 index 78eb653a7..000000000 --- a/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf deleted file mode 100644 index 0a0d4838b9037918f76e8188ef179b34db353ce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39364 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 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff b/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff deleted file mode 100644 index efb8f0d315246d381774a7f96cfe3c55455d9f18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24364 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 K!~p7Ibs~ diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 b/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 deleted file mode 100644 index 9b582203f24b1d0369d49197f4e5b25bb8199da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19396 zcmV({K+?Z=Pew8T0RR91087LG5dZ)H0GnU{083y10RR9100000000000000000000 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 P#7S=ha@*g%9{>OVX?CUy diff --git a/database/web/assets/pfk.svg b/database/web/assets/pfk.svg deleted file mode 100644 index b1ad81b3c..000000000 --- a/database/web/assets/pfk.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/pk.svg b/database/web/assets/pk.svg deleted file mode 100644 index 427f25ef2..000000000 --- a/database/web/assets/pk.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/union.svg b/database/web/assets/union.svg deleted file mode 100644 index dbf0f679a..000000000 --- a/database/web/assets/union.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/watermark-meteor.svg b/database/web/assets/watermark-meteor.svg deleted file mode 100644 index d54133766..000000000 --- a/database/web/assets/watermark-meteor.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/watermark-moon.svg b/database/web/assets/watermark-moon.svg deleted file mode 100644 index 5895b0422..000000000 --- a/database/web/assets/watermark-moon.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/assets/watermark-perseid.svg b/database/web/assets/watermark-perseid.svg deleted file mode 100644 index 45767fdf4..000000000 --- a/database/web/assets/watermark-perseid.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/backgroundImageBricks.svg b/database/web/backgroundImageBricks.svg deleted file mode 100644 index a48f8ae4c..000000000 --- a/database/web/backgroundImageBricks.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/backgroundImageGrid.svg b/database/web/backgroundImageGrid.svg deleted file mode 100644 index a745d2bd0..000000000 --- a/database/web/backgroundImageGrid.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/database/web/backgroundImageLines.svg b/database/web/backgroundImageLines.svg deleted file mode 100644 index 089664d53..000000000 --- a/database/web/backgroundImageLines.svg +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/backgroundImageSquares.svg b/database/web/backgroundImageSquares.svg deleted file mode 100644 index f60a26a7d..000000000 --- a/database/web/backgroundImageSquares.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/backgroundImageTriangles.svg b/database/web/backgroundImageTriangles.svg deleted file mode 100644 index 9279ebca4..000000000 --- a/database/web/backgroundImageTriangles.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/compare.css b/database/web/compare.css deleted file mode 100644 index 4d7450178..000000000 --- a/database/web/compare.css +++ /dev/null @@ -1,186 +0,0 @@ -.im-code-split { - display: grid; - grid-template-columns: 50% 50%; - grid-gap: 10px; - margin: 10px; -} - -.im-code-fullwidth { - display: block; - margin: 10px; -} - -.im-align-center { - text-align: center; -} - -.im-code-split > div { - display: inline-block; - display: flex; - flex-direction: column; -} - -.im-code-split pre { - flex-grow: 1; - overflow: auto; - color: #ddd; - font-size: 14px; - line-height: 150%; - white-space: pre-wrap; -} - -.im-content-spacer-lg { - height: 25px; - display: block; -} - -.im-content-spacer-md { - height: 15px; - display: block; -} - -.im-content-spacer-sm { - height: 10px; - display: block; -} - -.mm-d-c-c-i { - font-size: 12px; - text-transform: uppercase; - color: #888; - padding: 3px 10px; - background: rgba(0,0,0,0.25); - display: inline-block; - margin: 1px 1px 0 1px; -} - -.mm-d-g-3 .mm-d-c-c-i { - padding: 4px 7px; - font-size: 10px; -} - -.mm-d-g-3 .mm-d-v-s { - background: rgba(0,0,0,0.25); -} - -.mm-title-section { - margin-top: 30px; - font-size: 20px; - color: #ddd; - margin-left: 10px; -} - -.mm-left { - border-bottom: 2px solid darkorange; - color: darkorange !important; -} - -.mm-left-text { - color: darkorange !important; -} - -.mm-right { - border-bottom: 2px solid lightgreen; - color: lightgreen !important; -} - -.mm-right-text { - color: lightgreen !important; -} - -.mm-modified-text { - color: rgb(3, 169, 244) !important; -} - -.mm-side-icon { - margin-right: 4px; -} - -.mm-subtitle { - margin-top: 20px; -} - -.mm-subtitle-col { - text-transform: uppercase; - margin-top: 21px; - font-size: 11px; - padding-left: 10px; -} - -.mm-compare-message { - margin: 10px 0 20px 10px; - padding: 10px; - color: #ccc; - background: rgba(255,255,255,0.05); - font-size: 14px; - font-style: italic; - border: 1px solid rgba(0,0,0,0.2); - box-shadow: 0 3px 6px -6px #000; -} - -.mm-compare-text { - padding: 0 10px; - color: #ccc; - font-size: 14px; - white-space: pre-wrap; -} - -.mm-author { - color: #fff; - margin: 10px 0; -} - -.mm-nav-a { - text-transform: capitalize; -} - -.mm-section-group { - display: none; -} - -@media screen and (max-width: 992px) { - .mm-section { - display: block !important; - } - - #mm-main-navs { - display: none !important; - } - - .mm-main-report-area { - grid-template-rows: 1fr; - } - - .mm-fullpage-wrapper { - max-width: unset; - min-width: unset; - width: unset; - margin: unset; - } - - html, - body { - overflow: unset; - } - - .mm-section-group, - .mm-statistics-group { - border-bottom: 2px solid white; - font-size: 18px; - text-transform: uppercase; - letter-spacing: 1px; - padding: 5px; - text-align: center; - font-weight: 700; - margin: 10px 10px 5px 10px; - color: white; - } - - .mm-section-active { - height: auto; - } - - .mm-section-group { - display: block; - } -} \ No newline at end of file diff --git a/database/web/datensen-moon-modeler-report.css b/database/web/datensen-moon-modeler-report.css deleted file mode 100644 index 83313d6e1..000000000 --- a/database/web/datensen-moon-modeler-report.css +++ /dev/null @@ -1,471 +0,0 @@ -.mm-main-report-area { - display: grid; - grid-template-rows: 42px 1fr; -} - -#mm-main-navs { - background: #333; - z-index: 6; -} - -#mm-nav-expander { - display: none; - background: #222; -} - -#mm-nav-expander i { - color: white; - cursor: pointer; -} - -.mm-main-hamburger { - padding: 10px; - display: inline-block; - margin-right: auto; -} - -.mm-nav-tabs { - display: flex; - flex-direction: row; - box-shadow: 0px 0px 5px -2px #000; - border-bottom: 1px solid rgba(0,0,0,0.2); - background: linear-gradient(180deg, #222, #222); -} - -.mm-nav-a { - display: inline-block; - padding: 10px 20px; - text-decoration: none; - color: white; - cursor: pointer; -} - -.mm-nav-active { - background: rgb(3, 169, 244); - color: white; -} - -.mm-tab-content { - display: none; -} - -.mm-tab-content-active { - display: block; -} - -.mm-ml-auto { - margin-left: auto; -} - -.mm-mr-auto { - margin-right: auto; -} - -.mm-display-none, .tob { - display: none; -} - -.tob { - color: white; - padding-top: 20px; - padding-left: 20px; -} - -.mm-display-block { - display: block; -} - -.mm-side-hidden { - width: 1px; -} - -#placeholder { - max-width: 60vw; - max-height: 90%; - position: absolute; - top: 100px; - left: 0; - right: 0; - margin: auto; - background: #333; - box-shadow: 0 0 20px -10px #000; - border-radius: 4px; - overflow: hidden; -} - -#mm-content { - overflow: auto; -} - -#mm-side-wrapper { - display: grid; - grid-template-rows: auto 1fr; - height: 100%; - width: 100%; - overflow: hidden; -} - -#mm-report-content { - overflow: hidden; - height: 100%; - width: 100%; - display: grid; - grid-template-columns: minmax(250px, max-content) 1fr; -} - -#mm-report-content.mm-report-content-cols-1 { - grid-template-columns: 1fr; - grid-template-rows: 1fr; -} - - -#mm-content { - height: 100%; - width: 100%; - background: #333; -} - -#mm-side { - background: #404040; - overflow: hidden; -} - -#mm-side-content > div { - display: none; -} - -.mm-section { - display: none; -} - -.mm-section-active { - display: block; - height: 100%; -} - -#mm-side-content { - overflow: auto; -} - -#mm-side-content .mm-sidenav-active { - display: block; -} - - -.mm-sidenav-item-active > div { - background: #222; - color: #fff; - cursor: pointer; -} - -.mm-detail:not(.mm-display-none) { - /*display: grid;*/ -} - -.mm-detail { - padding: 20px 30px 20px 30px; - border-bottom: 1px solid rgba(255, 255, 255, 0.1); -} - -.mm-subsection { - - - padding: 10px; -} - -.mm-props{ - background: rgba(0,0,0,0.1); - padding: 15px; -} - -.mm-subtitle { - color:darkorange; - margin: 2px 8px; - font-size: 12px; - text-transform: uppercase; - -} - -.mm-d-g-3 { - display: grid; - grid-template-columns: minmax(200px, auto) 1fr 1fr; -} - -.mm-d-g-c-m-3 { - grid-column: span 3; -} - -.mm-d-g-4 { - display: grid; - grid-template-columns: repeat(4, auto); -} - -.mm-d-g-c-m-4 { - grid-column: span 4; -} - -.mm-d-g-5 { - display: grid; - grid-template-columns: repeat(5, auto); -} - -.mm-d-g-c-m-5 { - grid-column: span 5; -} - -.mm-d-g-6 { - display: grid; - grid-template-columns: repeat(6, auto); -} - -.mm-d-g-c-m-6 { - grid-column: span 6; -} - - -.mm-d-hor { - display: grid; - grid-template-columns: auto 1fr; -} - -.mm-d-ver { - display: grid; - grid-template-rows: auto auto; - align-self: flex-start; -} - -.mm-d-c { - color: #999; - display: inline-block; - font-size: 12px; - font-weight: 300; - padding: 5px 8px 1px 8px; - text-transform: uppercase; -} - -.mm-d-v { - color: #fff; - display: inline-block; - font-size: 14px; - font-weight: 300; - padding: 1px 8px; - align-self: end; - background: rgba(0,0,0,0.15); - height: auto; - margin: 1px 1px 0 1px; - min-height: 20px; -} - -.mm-d-c-i { - color: #999; - display: block; - font-size: 10px; - font-weight: 300; - padding: 1px 8px 1px 8px; - position: relative; - top: 3px; - text-transform: uppercase; - align-self: end; -} - -.mm-d-v-i { - color: #fff; - display: inline-block; - font-size: 24px; - font-weight: 300; - padding: 1px 8px 1px 8px; - align-self: end; -} - -.mm-d-v-i:after { - content: ""; - width: auto; - height: 2px; - background: rgb(3, 169, 244); - margin-top: 2px; - display: block; - -} - -.mm-d-c-l { - color: #999; - display: block; - font-size: 10px; - font-weight: 300; - padding: 4px 8px 6px 8px; - position: relative; - top: 3px; - text-transform: uppercase; - align-self: end; -} - -.mm-d-v-l { - color: #fff; - display: inline-block; - font-size: 14px; - font-weight: 300; - padding: 1px 8px 15px 8px; - align-self: end; - white-space: pre-wrap; -} - -.mm-d-v-s { - - position: relative; - padding-left: 20px; - width: -webkit-fill-available; - width: -moz-available; -} - -.mm-d-v-s:before { - content: " "; - width: 4px; - height: 4px; - background: darkorange; - position: absolute; - left: 8px; - top: 10px; - display: inline-block; -} - -.mm-g-s-2 { - grid-column: span 2; -} - - -.mm-spacer-xs { - height: 0; - background: #333; - display: none; -} - -.mm-d-i { - padding: 10px; -} - -.mm-modal-fix { - display: grid; - grid-template-rows: 52px 1fr 56px; - border-radius: 5px; - user-select: none; - max-height: 85vh; - max-width: 60vw; -} - -.mm-no { - color: rgba(255,255,255,0.6); - font-style: italic; -} - -.mm-yes { - color: rgba(255,255,255,1); -} - -.mm-props .mm-d-v { - background: transparent; -} - - -.im-btn-default { - padding: 8px 16px; - border: 1px solid transparent; - - font-size: 12px; - border-radius: 20px; - text-transform: uppercase; - color: white; - background-color: #2196f3; - transition: background-color 0.3s; - cursor: pointer; - } - - -a, a.active, a.visited { - color:rgb(3, 169, 244); - text-decoration: none; -} - -.mm-fullpage-wrapper { - max-width: 85vw; - min-width: 50vh; - width: 80vw; - margin: 50px auto; - color: #eee; -} - -.mm-header-1 { - font-size: 26px; - font-family: "Open Sans", "Exo"; -} - -.mm-header-1::after { - content: " "; - display: block; - height: 1px; - margin-top: 21px; - background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), #4caf50, palevioletred, red, orange, #2196f3, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); - width: 100%; -} - -.mm-align-center { - text-align: center; -} - -pre { - background: rgba(0,0,0,0.1); - padding: 10px 20px; - margin: 1px 0; - white-space: pre-wrap; -} - -.mm-description { - color: yellowgreen; -} - -#mm-search { - background: rgba(0,0,0,0.1); - box-shadow: 0 0 10px -3px #000; - z-index: 2; -} - -@media screen and (max-width: 992px) { - #mm-nav-expander { - display: block; - } - - .mm-nav-tabs { - display: flex; - flex-direction: column; - } - - .mm-nav-a { - display: none; - padding: 5px 10px; - } - - .mm-ml-auto { - margin-left: 0; - } - - #mm-report-content { - grid-template-columns: 1fr; - grid-template-rows: 1fr 1px; - } - - #mm-side { - height: auto; - } - - #placeholder { - max-width: 90vw; - top: 50px; - } - - .mm-modal-fix { - max-width: 90vw; - } - - .mm-detail { - padding: 10px; - } -} \ No newline at end of file diff --git a/database/web/else-dark.svg b/database/web/else-dark.svg deleted file mode 100644 index 907ee3587..000000000 --- a/database/web/else-dark.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/else-light.svg b/database/web/else-light.svg deleted file mode 100644 index 907ee3587..000000000 --- a/database/web/else-light.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/guidancedb.dbml b/database/web/guidancedb.dbml deleted file mode 100644 index f9a2a4303..000000000 --- a/database/web/guidancedb.dbml +++ /dev/null @@ -1,16 +0,0 @@ -// Use DBML to define your database structure -// Docs: https://dbml.dbdiagram.io/docs - -Table Benchmarks { - id integer [pk, increment] - title varchar[256] - vendor text - release int - version int - release_date date -} - -Table Test { - id int [pk, increment] -} - diff --git a/database/web/if-dark.svg b/database/web/if-dark.svg deleted file mode 100644 index 09fa21779..000000000 --- a/database/web/if-dark.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/if-light.svg b/database/web/if-light.svg deleted file mode 100644 index 09fa21779..000000000 --- a/database/web/if-light.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/im.css b/database/web/im.css deleted file mode 100644 index 5451901c1..000000000 --- a/database/web/im.css +++ /dev/null @@ -1,536 +0,0 @@ -@charset "UTF-8"; -@font-face { - font-family: "im-line-icons"; - src: url("./assets/im-line-icons.eot"); - src: url("./assets/im-line-icons.eot?#iefix") format("embedded-opentype"), url("./assets/im-line-icons.ttf") format("truetype"), url("./assets/im-line-icons.woff") format("woff"), url("./assets/im-line-icons.svg") format("svg"); - font-weight: normal; - font-style: normal; -} -[class^=im-icon-], -[class*=" im-icon-"] { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: "im-line-icons" !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.im-icon-toolbar { - font-size: 16px; - align-self: center; - justify-content: center; - text-align: center; -} - -.im-icon-12 { - font-size: 12px; - align-self: center; - justify-content: center; - text-align: center; - color: #666; -} - -.im-icon-16 { - font-size: 16px; - align-self: center; - justify-content: center; - text-align: center; - color: #ccc; -} - -.im-icon-20 { - font-size: 20px; - align-self: center; - text-align: center; - justify-content: center; - color: #ccc; -} - -.im-icon-sm, -.im-icon-sm-disabled { - padding-top: 0; - text-align: center; - display: flex; - border-radius: 2px; - justify-content: center; - transition: 0.3s background-color; -} - -.im-icon-sm:hover { - background-color: rgba(0, 0, 0, 0.2); - transition: 0.3s background-color; -} - -.im-icon-key { - height: 16px; - width: 16px; - margin-right: 2px; - margin-left: 2px; - vertical-align: text-bottom; - padding-bottom: 1px; -} - - -.im-icon-AddRelationCursor:before { - content: "\e91a"; -} -.im-icon-AddTableCursor:before { - content: "\e93b"; -} -.im-icon-ArrowCursor:before { - content: "\e93c"; -} -.im-icon-Add:before { - content: "\e98c"; -} -.im-icon-AlignBottom:before { - content: "\e960"; -} -.im-icon-AlignHorizontalCenter:before { - content: "\e961"; -} -.im-icon-AlignLeft:before { - content: "\e962"; -} -.im-icon-AlignRight:before { - content: "\e963"; -} -.im-icon-AlignTop:before { - content: "\e964"; -} -.im-icon-AlignVerticalCenter:before { - content: "\e965"; -} -.im-icon-Arrow:before { - content: "\e941"; -} -.im-icon-Bottom:before { - content: "\e930"; -} -.im-icon-Comment:before { - content: "\e972"; -} -.im-icon-Composite:before { - content: "\e98d"; -} -.im-icon-Configuration:before { - content: "\e92e"; -} -.im-icon-Copy:before { - content: "\e942"; -} -.im-icon-DisplayMode:before { - content: "\e970"; -} -.im-icon-Edit:before { - content: "\e91b"; -} -.im-icon-Edu:before { - content: "\e974"; -} -.im-icon-Hamburger:before { - content: "\e966"; -} -.im-icon-HamburgerBold:before { - content: "\e967"; -} -.im-icon-Hidden:before { - content: "\e91c"; -} -.im-icon-Layout:before { - content: "\e943"; -} -.im-icon-Left:before { - content: "\e91d"; -} -.im-icon-Line:before { - content: "\e975"; -} -.im-icon-LineMode:before { - content: "\e94c"; -} -.im-icon-New:before { - content: "\e91e"; -} -.im-icon-Note:before { - content: "\e948"; -} -.im-icon-Open:before { - content: "\e91f"; -} -.im-icon-Paste:before { - content: "\e944"; -} -.im-icon-Projects:before { - content: "\e94d"; -} -.im-icon-Query:before { - content: "\e931"; -} -.im-icon-Redo:before { - content: "\e945"; -} -.im-icon-Relation:before { - content: "\e920"; -} -.im-icon-RelationDashed:before { - content: "\e94e"; -} -.im-icon-Right:before { - content: "\e921"; -} -.im-icon-Save:before { - content: "\e922"; -} -.im-icon-Script:before { - content: "\e946"; -} -.im-icon-ShowChildren:before { - content: "\e923"; -} -.im-icon-ShowData:before { - content: "\e924"; -} -.im-icon-ShowDescription:before { - content: "\e925"; -} -.im-icon-ShowMetadata:before { - content: "\e926"; -} -.im-icon-ShowParents:before { - content: "\e927"; -} -.im-icon-Table:before { - content: "\e928"; -} -.im-icon-TextNote:before { - content: "\e986"; -} -.im-icon-Top:before { - content: "\e936"; -} -.im-icon-TopDiagram:before { - content: "\e937"; -} -.im-icon-Trash:before { - content: "\e929"; -} -.im-icon-Type:before { - content: "\e949"; -} -.im-icon-Undo:before { - content: "\e947"; -} -.im-icon-User:before { - content: "\e92f"; -} -.im-icon-Visibility:before { - content: "\e92a"; -} -.im-icon-export:before { - content: "\e971"; -} -.im-icon-Add16:before { - content: "\e97b"; -} -.im-icon-AddToDiagram:before { - content: "\e989"; -} -.im-icon-AlignBottom16:before { - content: "\e968"; -} -.im-icon-AlignHorizontalCenter16:before { - content: "\e969"; -} -.im-icon-AlignLeft16:before { - content: "\e96a"; -} -.im-icon-AlignRight16:before { - content: "\e96b"; -} -.im-icon-AlignTop16:before { - content: "\e96c"; -} -.im-icon-AlignVerticalCenter16:before { - content: "\e96d"; -} -.im-icon-ArrowDown16:before { - content: "\e900"; -} -.im-icon-ArrowLeft16:before { - content: "\e93d"; -} -.im-icon-ArrowRight16:before { - content: "\e93e"; -} -.im-icon-ArrowUp16:before { - content: "\e901"; -} -.im-icon-Bottom16:before { - content: "\e932"; -} -.im-icon-CheckBox:before { - content: "\e92c"; -} -.im-icon-CheckBoxChecked:before { - content: "\e92d"; -} -.im-icon-Cloud16:before { - content: "\e94f"; -} -.im-icon-Collapse16:before { - content: "\e902"; -} -.im-icon-CollapseCircle16:before { - content: "\e903"; -} -.im-icon-Comment16:before { - content: "\e973"; -} -.im-icon-Compare:before { - content: "\e977"; -} -.im-icon-Configuration16:before { - content: "\e93f"; -} -.im-icon-Convert:before { - content: "\e978"; -} -.im-icon-Cross16:before { - content: "\e904"; -} -.im-icon-CrossCircle16:before { - content: "\e905"; -} -.im-icon-Daten:before { - content: "\e950"; -} -.im-icon-Diff:before { - content: "\e979"; -} -.im-icon-DotsHorizontal16:before { - content: "\e906"; -} -.im-icon-DotsVerticall16:before { - content: "\e907"; -} -.im-icon-DotsVerticallDouble16:before { - content: "\e95e"; -} -.im-icon-Download16:before { - content: "\e951"; -} -.im-icon-Edit16:before { - content: "\e908"; -} -.im-icon-Equal:before { - content: "\e97a"; -} -.im-icon-Error16:before { - content: "\e952"; -} -.im-icon-ErrorCircleFill16:before { - content: "\e953"; -} -.im-icon-ErrorFill16:before { - content: "\e954"; -} -.im-icon-Expand16:before { - content: "\e909"; -} -.im-icon-ExpandCircle16:before { - content: "\e90a"; -} -.im-icon-FullCircle:before { - content: "\e93a"; -} -.im-icon-Hidden16:before { - content: "\e90b"; -} -.im-icon-Info16:before { - content: "\e955"; -} -.im-icon-InfoFill16:before { - content: "\e956"; -} -.im-icon-Insecure:before { - content: "\e98b"; -} -.im-icon-Interface:before { - content: "\e987"; -} -.im-icon-Left16:before { - content: "\e90c"; -} -.im-icon-Line16:before { - content: "\e976"; -} -.im-icon-Linked:before { - content: "\e988"; -} -.im-icon-LockResize:before { - content: "\e98a"; -} -.im-icon-Mail16:before { - content: "\e957"; -} -.im-icon-Merge:before { - content: "\e97c"; -} -.im-icon-Meteor:before { - content: "\e958"; -} -.im-icon-MinusCircle16:before { - content: "\e933"; -} -.im-icon-Moon:before { - content: "\e959"; -} -.im-icon-Move16:before { - content: "\e95f"; -} -.im-icon-New16:before { - content: "\e90d"; -} -.im-icon-No:before { - content: "\e97d"; -} -.im-icon-NotInDiagram:before { - content: "\e98e"; -} -.im-icon-Note16:before { - content: "\e94a"; -} -.im-icon-Open16:before { - content: "\e90e"; -} -.im-icon-Perseid:before { - content: "\e98f"; -} -.im-icon-PlusCircle16:before { - content: "\e934"; -} -.im-icon-Problem16:before { - content: "\e95a"; -} -.im-icon-ProblemFill16:before { - content: "\e95b"; -} -.im-icon-Query16:before { - content: "\e935"; -} -.im-icon-Relation16:before { - content: "\e90f"; -} -.im-icon-RemoveFromDiagram:before { - content: "\e990"; -} -.im-icon-Reset:before { - content: "\e991"; -} -.im-icon-ResetName:before { - content: "\e992"; -} -.im-icon-ResizeBottomRight16:before { - content: "\e940"; -} -.im-icon-Right16:before { - content: "\e910"; -} -.im-icon-SameHeight16:before { - content: "\e96e"; -} -.im-icon-SameWidth16:before { - content: "\e96f"; -} -.im-icon-Save16:before { - content: "\e911"; -} -.im-icon-Search16:before { - content: "\e92b"; -} -.im-icon-Secure:before { - content: "\e993"; -} -.im-icon-ShowChildren16:before { - content: "\e912"; -} -.im-icon-ShowData16:before { - content: "\e913"; -} -.im-icon-ShowDescription16:before { - content: "\e914"; -} -.im-icon-ShowMetadata16:before { - content: "\e915"; -} -.im-icon-ShowParents16:before { - content: "\e916"; -} -.im-icon-Table16:before { - content: "\e917"; -} -.im-icon-Top16:before { - content: "\e938"; -} -.im-icon-TopDiagram16:before { - content: "\e939"; -} -.im-icon-Trash16:before { - content: "\e918"; -} -.im-icon-Type16:before { - content: "\e94b"; -} -.im-icon-Union:before { - content: "\e994"; -} -.im-icon-Update:before { - content: "\e97e"; -} -.im-icon-UpdateCloud:before { - content: "\e97f"; -} -.im-icon-UpdateDatabase:before { - content: "\e980"; -} -.im-icon-UpdateFromCloud:before { - content: "\e981"; -} -.im-icon-UpdateFromDatabase:before { - content: "\e982"; -} -.im-icon-UpdateFromSource:before { - content: "\e983"; -} -.im-icon-UpdateSource:before { - content: "\e984"; -} -.im-icon-Visibility16:before { - content: "\e919"; -} -.im-icon-Warning16:before { - content: "\e95c"; -} -.im-icon-WarningFill16:before { - content: "\e95d"; -} -.im-icon-Yes:before { - content: "\e985"; -} -.im-icon-ZoomFit:before { - content: "\e995"; -} - - -/* overwrites */ - -.im-icon-DotsHorizontal16, .im-icon-DotsVertical16 { - display: none; -} diff --git a/database/web/index.html b/database/web/index.html deleted file mode 100644 index c0c30b2f7..000000000 --- a/database/web/index.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - Report for Benchmarks made in Luna Modeler - - -

    -
    -
    -
    - - -
    -
    -
    -
    - section Diagrams - start
    Benchmarks
    Key
    benchmark_id    
    INTEGER
    NN
    version    
    SMALLINT
    NN
    release    
    SMALLINT
    NN
    release_date    
    DATE
    NN
    status_id    
    INTEGER
    NN
    Key
    type_id    
    INTEGER
    NN
    Key
    product_id    
    INT
    NN
    Key
    author_id    
    INTEGER
    NN
    Key
    sponsor_id    
    INTEGER
    NN
    Key
    status_id    
    INTEGER
    NN
    A collection of Security Benchmarks that are publied by Autors
    benchmark_type
    short_name    
    VARCHAR
    NN
    description    
    TEXT
    NN
    Key
    benchmark_type_id    
    INTEGER
    NN
    long_name    
    VARCHAR
    NN
    - - - -
    -
    Describes the kind of benchmark to include: - - Security Technical Implementation Gudie (stig) - - Security Requirements Guide (srg) - - Center for Internet Security Benchmark (cis) - - Vendor Guidance (vendor)
    Organization
    Key
    organization_id    
    INTEGER
    NN
    short_name    
    VARCHAR
    NN
    uri    
    VARCHAR
    email    
    VARCHAR
    full_name    
    VARCHAR
    NN
    List of organizations or gorups that author or manage security guidance
    Artifact
    Key
    artifact_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    location    
    VARCHAR
    NN
    created_at    
    DATE
    NN
    secondary_location    
    VARCHAR
    raw_data    
    BLOB
    Key
    type_id    
    INTEGER
    NN
    Key
    organization_id    
    INTEGER
    NN
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    benchmark_artifacts
    default    
    INT2
    Key
    benchmark_id    
    INTEGER
    NN
    Key
    artifact_id    
    INTEGER
    NN
    artifact_types
    type_name    
    VARCHAR
    NN
    Key
    artifact_type_id    
    INTEGER
    NN
    description    
    TEXT
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Products
    short_name    
    VARCHAR
    NN
    version    
    REAL
    NN
    author_id    
    INT
    NN
    release    
    INT
    NN
    long_name    
    VARCHAR
    NN
    Key
    product_id    
    INT
    NN
    Key
    organization_id    
    INTEGER
    NN
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. - -For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Statuses
    Key
    status_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    Collection of statuses that can applly to a Benckmark or Artifact
    
    Documentation for project Benchmarks
    Benchmarks
    Project
    Name
    Benchmarks
    Diagram
    Name
    Security Guidance
    Report
    Generated
    12/14/2023 | 8:17:07 PM
    tables
    Name
    Benchmarks
    Description
    A collection of Security Benchmarks that are publied by Autors
    Columns
    Name
    Data type
    Key
    Not Null
    benchmark_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    version
    SMALLINT
    Yes
    Description
    The benchmark version number
    release
    SMALLINT
    Yes
    Description
    The benchmark release number
    release_date
    DATE
    Yes
    Description
    The date that the benchmark was published by the Autor
    status_id
    INTEGER
    Yes
    Description
    [autogenerated] id of the status type
    type_id
    INTEGER
    Yes
    Description
    [autoincrement] id of the benchmark type
    product_id
    INT
    Yes
    Description
    [autoincrement] The int id of the product related to the benchmak
    author_id
    INTEGER
    Yes
    Description
    Integer id of the organization that authored the benchmark
    sponsor_id
    INTEGER
    Yes
    Description
    Integer id of the organization that supported the development of the benchmark
    status_id
    INTEGER
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Name
    benchmark_type
    Description
    Describes the kind of benchmark to include: - - Security Technical Implementation Gudie (stig) - - Security Requirements Guide (srg) - - Center for Internet Security Benchmark (cis) - - Vendor Guidance (vendor)
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The short name name of the benchmark type
    description
    TEXT
    Yes
    Description
    The full text description of the guidane type
    benchmark_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] id of the benchmark type
    long_name
    VARCHAR
    Yes
    Description
    The full name of the Benchmark type
    Keys
    Primary key
    Column in Primary key
    benchmark_type_id
    Name
    Organization
    Description
    List of organizations or gorups that author or manage security guidance
    Columns
    Name
    Data type
    Key
    Not Null
    organization_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    Integer id of the author of the benchmark
    short_name
    VARCHAR
    Yes
    Description
    The short text name of the author, vendor or agency
    uri
    VARCHAR
    Description
    The primary uri of the author, vendor or agency
    email
    VARCHAR
    Description
    [optional] The email of the autor
    full_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency.
    Keys
    Primary key
    Column in Primary key
    organization_id
    Name
    Artifact
    Description
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    Columns
    Name
    Data type
    Key
    Not Null
    artifact_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] The id of the artifact.
    name
    VARCHAR
    Yes
    Description
    Filename that the artifact is stored as on the target location
    location
    VARCHAR
    Yes
    Description
    The URI path of the artifact
    created_at
    DATE
    Yes
    secondary_location
    VARCHAR
    Description
    [optional] A file path, uri or other location you can find the reference besides the default location.
    raw_data
    BLOB
    Description
    [optional] The raw data of the Artifact
    type_id
    INTEGER
    Yes
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the creator or owner of the artifact
    Keys
    Primary key
    Column in Primary key
    artifact_id
    Name
    benchmark_artifacts
    Columns
    Name
    Data type
    Key
    Not Null
    default
    INT2
    Description
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    benchmark_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    artifact_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] The id of the artifact.
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Column in Primary key
    artifact_id
    Name
    artifact_types
    Description
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Columns
    Name
    Data type
    Key
    Not Null
    type_name
    VARCHAR
    Yes
    Description
    The simple name of the artifact
    artifact_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the artifact kind
    description
    TEXT
    Keys
    Primary key
    Column in Primary key
    artifact_type_id
    Relations
    Name
    Products
    Description
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. - -For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The common name of the product or service - sometimes called the 'short name' - for example: -RHEL for Red Hat Enterprise Linux -VIDM for VMware Identity Manager -vSphere for VMware vSphere -
    version
    REAL
    Yes
    Description
    The version of the project
    author_id
    INT
    Yes
    Description
    Integer id of the author of the benchmark
    release
    INT
    Yes
    long_name
    VARCHAR
    Yes
    Description
    The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same.
    product_id
    INT
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the product
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the organization that ownes or manages the product
    Keys
    Primary key
    Column in Primary key
    product_id
    Name
    Statuses
    Description
    Collection of statuses that can applly to a Benckmark or Artifact
    Columns
    Name
    Data type
    Key
    Not Null
    status_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    name
    VARCHAR
    Yes
    Description
    Text based name for the status
    Keys
    Primary key
    Column in Primary key
    status_id
    Relations
    relationships
    Name
    type_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in artifact_types
    Column in Artifact
    Primary key
    artifact_type_id
    type_id
    Name
    organization_id_Products
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Products
    Primary key
    organization_id
    organization_id
    Name
    status_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Statuses
    Column in Benchmarks
    Primary key
    status_id
    status_id
    Name
    benchmark_type_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in benchmark_type
    Column in Benchmarks
    Primary key
    benchmark_type_id
    type_id
    Name
    product_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Products
    Column in Benchmarks
    Primary key
    product_id
    product_id
    Name
    organization_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Primary key
    organization_id
    author_id
    Name
    organization_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Primary key
    organization_id
    sponsor_id
    Name
    benchmark_id_benchmark_artifacts
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Benchmarks
    Column in benchmark_artifacts
    Primary key
    benchmark_id
    benchmark_id
    Name
    artifact_id_benchmark_artifacts
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Artifact
    Column in benchmark_artifacts
    Primary key
    artifact_id
    artifact_id
    Name
    organization_id_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Artifact
    Primary key
    organization_id
    organization_id
    - -
    -
    - - - -
    -
    - - \ No newline at end of file diff --git a/database/web/lists.css b/database/web/lists.css deleted file mode 100644 index f1a54441b..000000000 --- a/database/web/lists.css +++ /dev/null @@ -1,94 +0,0 @@ -.im-list { - list-style-type: none; - padding: 0; - margin: 0; - padding-bottom: 0; -} - -.im-list-item:hover { - background: #2196f3; - /*color: #fff;*/ - background: rgba(0, 0, 0, 0.02); -} - -.im-list-item > div { - /*background: rgba(255, 255, 255, 0.2);*/ - padding: 3px 10px 3px 10px; - font-size: 13px; - text-decoration: none; - display: block; - color: #eee; - border-bottom: 1px solid transparent; - /*transition: color 0.3s;*/ - margin-right: auto; - flex: 1; - overflow: hidden; - /*transition: background-color 0.4s;*/ - cursor: pointer; - border-radius: 2px; -} - - - -.im-list-item-nochk a { - padding: 3px 10px 3px 26px; -} - -.im-list-item:hover { - background: #2196f3; - color: #fff; -} - -.im-list-item i { - color: #ccc; -} - -.im-list-item:hover, -.im-list-item:hover a, -.im-list-item:hover div, -.im-list-item:hover i { - background: #111; - color: #fff; - /*color: #fff;*/ -} - -li.sel-item, -.sel-item-list-multi { - color: black; - background: #333; - color: #fff; -} - -li.sel-item a, -li.sel-item-list-multi a, -li.sel-item div i, -li.sel-item-list-multi div i { - color: #fff; -} - -.im-rel { - display: flex; - flex-direction: row; - flex-grow: 1; - margin: 0 2px; - border-radius: 2px; -} - -.im-list-btn-chk { - width: 12px; - display: block; - cursor: pointer; - align-self: center; -} - -.im-list-btn { - width: 22px; - display: block; - padding: 0 5px 0 0px; - cursor: pointer; - align-self: center; -} - -.im-list-btn i { - color: #ccc; -} \ No newline at end of file diff --git a/database/web/modals.css b/database/web/modals.css deleted file mode 100644 index 6f65ede3d..000000000 --- a/database/web/modals.css +++ /dev/null @@ -1,208 +0,0 @@ -.modal-wrapper { - position: absolute; - top: 0; - left: 0; - display: block; - height: 100vh; - width: 100vw; - z-index: 999; - overflow: auto; - animation: toDark 1s forwards; -} - -.modal { - position: absolute; - top: 50px; - margin: auto; - left: 20vw; - right: 20vw; - width: 60vw; - background: #444; - z-index: 999; - box-shadow: 0 0 15px 0 #000; - /*animation: fromRight 0.5s;*/ - resize: both; - overflow: hidden; - display: grid; - grid-template-rows: 52px 1fr 56px; - min-width: 950px; - border-radius: 5px; - user-select: none; - max-height: 80vh; - min-height: 500px; -} - -.modal-confirm { - top: 20vh; - left: 25vw; - right: 25vw; - width: 50vw; - min-height: 250px; - min-width: 620px; - max-height: 800px; - border-radius: 5px; -} - -.modal-header { - height: 28px; - padding: 14px 20px 10px 20px; - font-size: 20px; - border-bottom: 0; - background: #222; - user-select: none; - z-index: 3; - color: #eee; - text-align: center; -} - -.modal-header::after { - content: " "; - display: block; - height: 1px; - margin-top: 11px; - position: relative; - left: 0; - background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), #4caf50, palevioletred, red, orange, #2196f3, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); - width: 100%; -} - -.modal-content { - /*padding: 5px 20px 20px 20px;*/ - min-height: 100px; - color: #eee; - overflow: auto; - max-height: 500px; -} - -.modal-content-notabs { - font-size: 12px; -} - -.modal-content-confirm { - min-height: 0px; - background: #444; - color: #eee; - padding: 30px; - padding-bottom: 40px; - font-size: 13px; - overflow: auto; -} - -.modal-footer { - border-top: 0; - padding: 12px 14px 8px 14px; - text-align: right; - font-size: 14px; - color: #eee; - background: #222; -} - -.modal .im-tabs-tablist { - padding-left: 2px; -} - -.modal-content .newColForm { - margin: 2px; - border-radius: 2px; - border: 0px solid #fff; - background: #393939; -} - -.modal-content .im-cat-header { - border: 1px solid rgba(255, 255, 255, 0.1); -} - -.modal-content .im-tabs-area { - padding-top: 20px; - padding: 20px; -} - -.modal-toolbar { - position: fixed; - position: absolute; - right: 85px; - padding: 0; - background: transparent; - z-index: 100; - text-align: right; - max-width: 450px; - bottom: 13px; - display: flex; -} - -.modal-toolbar button { - display: flex; - flex-direction: row; - margin-left: auto; - margin-right: 12px; -} - -.modal-toolbar i { - color: #fff; - margin-right: 5px; -} - -.im-feedback-title { - font-size: 18px; -} - -.im-feedback-subtitle { - font-size: 14px; -} - -.im-feedback-grid { - display: grid; - grid-template-columns: 180px 1fr; - grid-row-gap: 3px; - grid-column-gap: 3px; - justify-content: stretch; - justify-items: stretch; - padding-bottom: 3px; -} - -.im-feedback-content textarea { - min-height: 180px !important; -} - -.im-items-selection, -.im-items-selection-header { - display: grid; - grid-template-columns: 20px 3fr 1fr 1fr; - column-gap: 5px; - row-gap: 0; - margin-bottom: 0; - margin-left: 30px; - margin-right: 40px; - padding: 3px 10px; - font-size: 13px; - border-radius: 2px; -} - -.im-items-selection:hover { - background: #222; - color: #fff; - cursor: pointer; -} - -.im-items-selection div { - padding-top: 1px; -} - -.im-diagram-items-modal { - position: sticky; - top: 0px; - background: #444; - box-shadow: 0 0 8px -4px #000; - padding-top: 4px; - padding-bottom: 4px; - z-index: 2; - margin-bottom: 8px; -} - -.im-diagram-items-modal .im-search-bar { - margin: 0px 50px 8px 50px; - position: absolute; - top: -50px; - right: 50px; - z-index: 999100; -} \ No newline at end of file diff --git a/database/web/not-dark.svg b/database/web/not-dark.svg deleted file mode 100644 index 1e53de679..000000000 --- a/database/web/not-dark.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/not-light.svg b/database/web/not-light.svg deleted file mode 100644 index 0fe1f12ba..000000000 --- a/database/web/not-light.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/oneOf-dark.svg b/database/web/oneOf-dark.svg deleted file mode 100644 index 13ad7ee07..000000000 --- a/database/web/oneOf-dark.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/oneOf-light.svg b/database/web/oneOf-light.svg deleted file mode 100644 index d96c4ff27..000000000 --- a/database/web/oneOf-light.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/scrollbars.css b/database/web/scrollbars.css deleted file mode 100644 index 9d8c1c4c4..000000000 --- a/database/web/scrollbars.css +++ /dev/null @@ -1,29 +0,0 @@ -div::-webkit-scrollbar, -textarea::-webkit-scrollbar { - width: 10px; - height: 10px; - margin-left: 5px; -} - -div::-webkit-scrollbar-thumb, -textarea::-webkit-scrollbar-thumb { - background: #2d2d2d; - border-radius: 0px; -} - -div::-webkit-scrollbar-track, -textarea::-webkit-scrollbar-track { - background: #585858; - border-radius: 0px; -} - -div::-webkit-scrollbar-corner, -textarea::-webkit-scrollbar-corner { - background: #585858; -} - -div, -textarea { - scrollbar-color: #202020 #585858; - /*scrollbar-width: thin;*/ -} \ No newline at end of file diff --git a/database/web/searchbar.css b/database/web/searchbar.css deleted file mode 100644 index 55c99fcc5..000000000 --- a/database/web/searchbar.css +++ /dev/null @@ -1,66 +0,0 @@ -input { -border-radius: 2px; -padding: 0 2px; -font-family: "Open Sans"; -background: #646464; -color: #fff; -min-width: 40px; -width: auto; -} - -.im-search-bar { - height: 20px; - display: grid; - grid-template-columns: 10px 1fr 24px 10px; - grid-template-rows: 1fr; - align-content: center; - align-items: center; - padding-top: 2px; - padding-bottom: 2px; - border-radius: 100px; - border: 0px solid #646464; - margin: 7px 7px; - background: #646464; -} - -.im-search-fixed-width { - max-width: 500px; - position: absolute; - margin-left: auto; - margin-right: auto; - left: 0; - right: 0; - text-align: center; - top: 10px; - z-index: 100; -} - -.im-search-bar input, -.im-search-bar input:focus, -.im-search-bar input:hover { - display: inline-block; - border: 0px; -} - -.im-search-bar input { - width: auto; - min-width: 40px; -} - -.im-search-bar input::placeholder { - color: #000; - font-style: italic; -} - -.im-search-bar .im-search-button { - align-self: center; - justify-self: right; - width: 24px; - text-align: right; - cursor: pointer; - padding-top: 4px; -} - -.im-search-fixed-width > .im-search-button { - padding-top: 0; -} diff --git a/database/web/style.css b/database/web/style.css deleted file mode 100644 index 063088b68..000000000 --- a/database/web/style.css +++ /dev/null @@ -1,1826 +0,0 @@ -@font-face { - font-family: "Open Sans"; - font-style: normal; - font-weight: 400; - src: url("./assets/open-sans-v17-latin-ext_latin-regular.eot"); /* IE9 Compat Modes */ - src: local("Open Sans Regular"), local("OpenSans-Regular"), - url("./assets/open-sans-v17-latin-ext_latin-regular.eot?#iefix") - format("embedded-opentype"), - /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-regular.woff2") - format("woff2"), - /* Super Modern Browsers */ - url("./assets/open-sans-v17-latin-ext_latin-regular.woff") - format("woff"), - /* Modern Browsers */ - url("./assets/open-sans-v17-latin-ext_latin-regular.ttf") - format("truetype"), - /* Safari, Android, iOS */ - url("./assets/open-sans-v17-latin-ext_latin-regular.svg#OpenSans") - format("svg"); /* Legacy iOS */ -} - -/* open-sans-600 - latin-ext_latin */ -@font-face { - font-family: "Open Sans"; - font-style: normal; - font-weight: 600; - src: url("./assets/open-sans-v17-latin-ext_latin-600.eot"); /* IE9 Compat Modes */ - src: local("Open Sans SemiBold"), local("OpenSans-SemiBold"), - url("./assets/open-sans-v17-latin-ext_latin-600.eot?#iefix") - format("embedded-opentype"), - /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-600.woff2") - format("woff2"), - /* Super Modern Browsers */ - url("./assets/open-sans-v17-latin-ext_latin-600.woff") format("woff"), - /* Modern Browsers */ - url("./assets/open-sans-v17-latin-ext_latin-600.ttf") - format("truetype"), - /* Safari, Android, iOS */ - url("./assets/open-sans-v17-latin-ext_latin-600.svg#OpenSans") - format("svg"); /* Legacy iOS */ -} - -/* open-sans-700 - latin-ext_latin */ -@font-face { - font-family: "Open Sans"; - font-style: normal; - font-weight: 700; - src: url("./assets/open-sans-v17-latin-ext_latin-700.eot"); /* IE9 Compat Modes */ - src: local("Open Sans Bold"), local("OpenSans-Bold"), - url("./assets/open-sans-v17-latin-ext_latin-700.eot?#iefix") - format("embedded-opentype"), - /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-700.woff2") - format("woff2"), - /* Super Modern Browsers */ - url("./assets/open-sans-v17-latin-ext_latin-700.woff") format("woff"), - /* Modern Browsers */ - url("./assets/open-sans-v17-latin-ext_latin-700.ttf") - format("truetype"), - /* Safari, Android, iOS */ - url("./assets/open-sans-v17-latin-ext_latin-700.svg#OpenSans") - format("svg"); /* Legacy iOS */ -} - -html, body { - margin: 0; - overflow: hidden; -} - -html, -body, -#root, -.app-layout, -.aside-left, -.aside-right, -.diagram { - height: 100%; - width: 100%; -} - -.diagram { - overflow: auto; - background: #333; -} - -.main-area { - height: 100%; - width: 100%; -} - -html, -body, -div, -p, -span, -a, -td, -ul, -li { - font-family: "Open Sans", "Exo"; -} - - -h1, -h2, -h3, -h4, -h5, -h6 { - padding: 4px 0; - margin: 0; - font-family: "Open Sans", "Exo"; - font-weight: 400; -} - -h1 strong, -h1 b, -h2 strong, -h2 b, -h3 strong, -h3 b, -h4 strong, -h4 b, -h5 strong, -h5 b, -h6 strong, -h6 b { - font-weight: 700; -} - -p { - padding: 1px 0; - font-size: 12px; -} - -.diagram { - position: relative; -} - -.t { - position: relative; - border-radius: 3px; - box-shadow: 4px 4px 8px -8px black; - border: 1px solid rgba(0, 0, 0, 0.3); - z-index: 10 !important; - margin: 1px; - display: flex; - flex-direction: column; - min-height: 44px; - min-width: 150px; - min-width: fit-content; -} - -path { - z-index: 10 !important; -} - -.t-max-content { - min-width: max-content; -} - -.t-fixed-min { - min-width: 150px; -} - - -.drgbl:after { - content: ""; - display: inline-block; - opacity: 0; - height: 20px; - width: 1px; - position: absolute; - bottom: -20px; - left: 0; -} - -.im-n { - position: relative; - border-radius: 3px; - border: 1px solid transparent; - z-index: 5; - margin: 1px; - display: flex; - flex-direction: column; - min-height: 24px; - min-width: 50px; -} - -.im-n-sa { - position: absolute; - border-radius: 3px; - border: 1px solid transparent; - z-index: 1; - margin: 1px; - display: flex; - flex-direction: column; - min-width: 150px; - min-height: 50px; - top: 0; - left: 0; -} - -.im-n-sa > div { - padding:10px; - padding-top: 30px; -} - -.im-n-sa-type { - min-width: 150px; - min-height: 50px; -} - -.im-n-sa-type > div { - padding:10px; - padding-top: 30px; -} - -.im-n-sa-header { - position: absolute; - border-radius: 3px; - border: 1px solid transparent; - z-index: 10; - display: flex; - flex-direction: column; - top: 0; - left: 0; - width: 100%; - background: rgba(0, 0, 0, 0.15); - pointer-events: all !important; - cursor: move; - min-width: 150px; - min-height: 24px !important; - max-height: 24px; - -} - -.im-n-sa-header-text { - padding: 4px 10px; - font-size: 12px; -} - -.im-n-other { - position: relative; - border-radius: 3px; - border: 1px solid transparent; - z-index: 8; - margin: 1px; - display: flex; - flex-direction: column; - min-width: 150px; - min-height: 44px; -} - -.sel-item-sa { - z-index: 2; -} - -.im-n img { - max-width: 100%; -} - -.im-tp { - position: absolute; - background: #fff; - border-radius: 3px; - box-shadow: 4px 4px 8px -8px black; - border: 1px dashed #666; - overflow: auto; - z-index: 1; - margin: 1px; - display: flex; - flex-direction: column; - background: #f9f9f9; -} - -.t a, -.im-n a, -.im-tp a { - text-decoration: none; - color: black; -} - -#mainHtmlCanvas { - transform-origin: 0 0; -} - -.watermark { - opacity: 0.25; - width: 200px; - height: 200px; -} - -.dGraphicsHeader { - display: flex; - border-bottom: 1px solid rgba(0, 0, 0, 0.15); - font-size: 14px; - cursor: pointer; - background: #666; - flex-grow: 0; - flex-shrink: 0; - color: #fff; - height: 22px; - min-width: fit-content; - white-space: nowrap; -} - -.dTableName { - padding: 3px 0 1px 3px; - user-select: none; - font-weight: 700; - text-shadow: 0 0 1px #000; -} - -.dTableNameLight { - padding: 3px 0 1px 3px; - user-select: none; - font-weight: 700; -} - -.dGraphicsLeftTop { - margin-right: auto; - padding: 2px 4px; -} - -.dGraphicsRightTop { - margin-left: auto; - padding: 2px 4px; -} - -.im-tp .dGraphicsHeader { - display: flex; - border-bottom: 1px solid rgba(0, 0, 0, 0.15); - font-size: 15px; - cursor: pointer; - background: #666; - flex-grow: 0; - flex-shrink: 0; - color: #fff; -} - -.im-tp .dTableName { - padding: 1px 0 1px 0; - cursor: move; - user-select: none; - text-align: left; -} - -.t a.gr { - background: #404040; - display: flex; - flex-direction: column; - height: 100%; - user-select: none; - flex-grow: 1; - overflow: hidden; - cursor: pointer; -} - -.dCols, -.im-n-text { - padding: 2px 4px; - font-size: 13px; - overflow: auto; - min-height: auto; - min-width: auto; - color: #fff; - background: #404040; - user-select: none; - flex-grow: 1; - cursor: pointer; -} - -.dCols-report { - margin-top: 20px; - grid-column: span 4; - padding: 15px; - border: 1px solid rgba(0, 0, 0, 0.1); -} - -.im-n-text { - overflow: hidden; -} - -.im-n-text-nowrap div, -.im-n-text-nowrap p, -.im-n-text-nowrap h1, -.im-n-text-nowrap h2, -.im-n-text-nowrap h3, -.im-n-text-nowrap h4, -.im-n-text-nowrap h5, -.im-n-text-nowrap h6, -.im-n-text-nowrap ul, -.im-n-text-nowrap ol { - white-space: nowrap; -} - -.im-table-columns-displayed { - opacity: 1; -} - -.im-table-columns-hidden { - opacity: 0; - max-height: 1px; - overflow: hidden; -} - -.im-table-descriptions-hidden, -.im-table-indexes-hidden -{ - display: none; -} - -.im-table-descriptions-displayed { - display: block; - margin-top: 5px; - margin-bottom: 3px; -} - -.im-table-indexes-displayed { - margin-top: 5px; - padding-top: 5px; - border-top: 1px solid rgba(0, 0, 0, 0.3); - color: #ccc; -} - -.im-table-descriptions-displayed { - padding: 5px; - position: absolute; - top: 100%; - margin-bottom: 40px; -} - -.im-table-descriptions-displayed div, -.im-table-descriptions-hidden div { - white-space: pre-wrap; - word-wrap: break-word; - word-break: break-word; - - font-size: 12px; -} - -.dCols-desc pre { - white-space: pre-wrap; - padding: 5px; - font-size: 13px; - font-family: "Courier New", Courier, monospace; - overflow: auto; - margin: 0; - color: beige; -} - -.dCols-desc-nowrap pre { - white-space: revert; -} - - -.im-n-text p { - margin: 0; -} - -.im-n-text a { - color: #2196f3; -} - -pre.im-n-text { - padding: 0; - margin: 0; - font-family: "Open sans"; -} - -.im-tp-text { - padding: 5px 4px 2px 4px; - font-size: 13px; - overflow: auto; - min-height: auto; - min-width: auto; - color: #555; - user-select: none; - flex-grow: 1; -} - -.dRow { - display: grid; - grid-template-columns: 25px fit-content(150px) 1fr minmax(auto, 24px); - border-radius: 2px; - min-height: 18px; -} - -.dRow-thin { - grid-template-columns: 5px fit-content(150px) 1fr auto 200px 200px; -} - -#diagram .dRow-thin { - grid-template-columns: 5px fit-content(150px) 1fr minmax(auto, 24px); -} - -.dCol { - margin-right: 0; - font-size: 12px; - min-height: 17px; -} - -.dItem { - font-size: 12px; - min-height: 17px; - padding: 0 2px 0; -} - -.dCol:nth-of-type(2), -.dCol:nth-of-type(3) { - white-space: nowrap; - margin-right: 0; - font-weight: 400; - margin-right: 0px; -} - -.dCol:nth-of-type(3) { - font-style: italic; - color: #ddd; - padding-left: 4px; - padding-right: 10px; - text-align: right; - margin-left: 10px; -} - -.dCol:last-of-type { - margin-right: auto; - padding-left: 5px; -} - - -.t:hover:not(.sel-item-diagram), -.im-n:hover:not(.sel-item-diagram) { - transition: box-shadow 0.4s; -} - -.sel-item-diagram, -.sel-item-diagram-multi, -.sel-item-diagram:hover { - z-index: 100; - outline: none; - outline-offset: 0px; - border: 1px solid transparent; -} - -.res { - display: none; -} - -.sel-item-diagram-multi .res { - display: none; -} - -.sel-item-diagram .res { - display: block; -} - -marker path { - stroke-width: 1; -} - -path { - fill: none; - stroke-width: 1; - cursor: pointer; -} - -circle.relationCardinality { - fill: #585858; - stroke: #ddd; - stroke-width: 1; -} - -#svgMain { - position: absolute; - background: linear-gradient(45deg, #f2f2f2, #ddd, #f2f2f2, #eee); - background: #585858; - border: 0; - z-index: 2; -} - -.sel-relation-diagram { - stroke: #000; -} - -.sel-relation-diagram-arrow { - fill: #000; -} - -.relation-diagram-bg { - stroke: rgba(0, 0, 0, 0.01); - stroke-width: 5px; - z-index: 0; -} - -.sel-relation-diagram-bg { - stroke: #3faaff; -} - -text, -tspan { - user-select: none; - cursor: pointer; -} - -.rbelongs { - /*stroke-dasharray: 3;*/ -} - -.rboth { - /*stroke-dasharray: 10, 5, 2, 2, 2, 5;*/ -} - - -.rCardinality { - font-size: 10px; - fill: #eee; - color: #eee; -} - -.rCardinalityBg { - font-size: 10px; - stroke-width: 4px; - fill: #333; - stroke:#333; -} -.im-t-c { - display: table-cell; -} - -.im-t-c:not(:nth-of-type(1)):not(:nth-of-type(3)) { - padding-right: 4px; -} - -.im-mini { - font-size: 11px; - padding-bottom: 1px; -} - - -.im-mini-PK, .im-mini-PI { - background: #ff0000; - font-size: 10px; - padding: 0 2px; - border-radius: 2px; - margin-right: 5px; - color: #fff; - text-align: center; - position: relative; - top: 2px; -} - -.im-mini-PFK, .im-mini-PL { - background: #2196f3; - font-size: 10px; - padding: 0 2px; - border-radius: 2px; - margin-right: 5px; - color: #fff; - text-align: center; - position: relative; - top: 2px; -} - -.im-mini-FK { - background: #4caf50; - font-size: 10px; - padding: 0 2px; - border-radius: 2px; - margin-right: 5px; - color: #fff; - text-align: center; - position: relative; - top: 2px; -} -.im-mini-IX { - background: #8F5D00; - font-size: 10px; - padding: 0 2px; - border-radius: 2px; - margin-right: 5px; - color: #fff; - text-align: center; - position: relative; - top: 2px; -} - -.im-mini-AK, .im-mini-AI { - background: #B20DA2; - font-size: 10px; - padding: 0 2px; - border-radius: 2px; - margin-right: 5px; - color: #fff; - text-align: center; - position: relative; - top: 2px; -} - -.im-embedded { - margin-left: 0; - padding-left: 0; - grid-column: span 4; - border-radius: 2px; -} - -.im-embedded-thin { - background: rgba(0, 0, 0, 0.15); - margin-left: 14px; - padding-left: 0px; -} - -.im-col-list { - color: limegreen; - padding-right: 1px; - padding-left: 1px; - font-style: normal; -} - -.im-col-object-left { - color: goldenrod; - padding-right: 1px; - font-style: normal; - display: inline-block; -} - -.im-col-object-right { - color: goldenrod; - padding-left: 1px; - font-style: normal; - display: inline-block; -} - -.im-select-decorator { - position: absolute; - height: 100px; - width: 100px; - left: 50px; - top: 50px; - border: 2px dotted #ccc; - z-index: 9999; -} - -.im-other-object { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - padding: 1px 4px; -} - -.im-other-object-type { - display: flex; - align-items: center; - justify-content: center; - font-size: 8px; - opacity: 0.6; - text-transform: uppercase; -} - -.im-backgroundImageGrid { - background-image: url(backgroundImageGrid.svg); -} - -.im-backgroundImageSquares { - background-image: url(backgroundImageSquares.svg); -} - -.im-backgroundImageTriangles { - background-image: url(backgroundImageTriangles.svg); -} - -.im-backgroundImageBricks { - background-image: url(backgroundImageBricks.svg); -} - -.im-z-index-8 { - z-index: 8; -} - -.sel-item-diagram-multi.im-z-index-4,.im-z-index-4 { - z-index: 4 !important; - pointer-events: none; -} - -.sel-item-diagram-multi.im-z-index-4 div,.im-z-index-4 div { - visibility: hidden; -} - -.im-dropdown ul li.im-dropdown-icon-empty { - display: grid; - grid-template-columns: 21px 1fr; -} - - - -.forcedLineColor { - stroke: white !important; -} - -polygon.forcedPolygonFill, circle.forcedPolygonFill, tspan.forcedPolygonFill { - fill: white !important; - stroke-width: 0; -} - -.forcedTransparentFill { - fill: rgb(51, 51, 51) !important; - -} - -.im-icon-ResizeBottomRight16 { - display: none; -} - -.tree__wrapper { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - height: max-content; - width: max-content; - z-index: 10; -} - -.tree__wrapper * { - box-sizing: border-box; -} - -.tree__spacer { - height: 40px; - width: 100%; - display: block; -} - -.tree__mini__toolbar { - position: sticky; - top: 0; - width: 100%; - left: 0; - right: 0; - margin: auto; - height: 24px; - background: #282828; - z-index: 9999; - display: flex; - box-shadow: 0px 0px 5px -2px #000; - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - border-left: 1px solid rgba(255, 255, 255, 0.1); - border-right: 1px solid rgba(255, 255, 255, 0.1); - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; -} - -.tree__item__root { - display: flex; - color: #eee; - position: relative; - margin-bottom: 0; - padding: 0; -} - -.tree__item__root__wrapper { - display: flex; - margin: 15px 20px; -} - -.tree__item__hidden__caption__text { - padding-left: 10px; - font-size: 12px; - width: max-content; - display: inline-block; - color: #999; - padding-top: 4px; -} - -.tree__item__hidden__caption__text::after { - font-family: "im-line-icons" !important; - content: ""; - background: transparent; - width: 20px; - height: 100%; - color: #999; - position: absolute; - top: 4px; - left: auto; - opacity: 0.6; - font-size: 10px; - padding-left: 5px; - padding-top: 4px; -} - -.tree__item__root__name { - font-size: 12px; - display: inline-block; - width: fit-content; - align-self: center; - padding: 0; - border: 1px solid transparent; - background: #404040; - padding: 1px 8px 1px 5px; - width: max-content; - min-width: 50px; -} - -.tree__item { - display: flex; - margin: 0px 0px 0px 0px; - width: fit-content; - font-size: 10px; - position: relative; - padding-left: 20px; - padding-top: 3px; - padding-bottom: 3px; -} - -.tree__item:not(.t__tree__item__single__line):first-of-type::before { - content: " "; - position: absolute; - left: 2px; - top: 50%; - height: 50%; - width: 0; - border-left: thin solid #eee; -} - -.tree__item:not(.t__tree__item__single__line):last-of-type::before { - content: " "; - position: absolute; - left: 2px; - top: 0%; - height: 50%; - width: 0; - border-left: thin solid #eee; -} - -.tree__item.t__tree__item__single__line { - padding-left: 0 !important; -} - -.tree__item__single__line::before { - content: " "; - width: 0px; - height: 0; - background: transparent; - position: absolute; - top: 50%; - left: -21px; - border-bottom: thin solid #eee; -} - -.tree__item__first__line::before { - content: " "; - width: 21px; - height: 0; - position: absolute; - top: 50%; - left: -21px; - border-top: thin solid #eee; -} - -.tree__item__last__line::before { - content: " "; - width: 21px; - height: 0; - position: absolute; - top: 50%; - left: -21px; - border-top: thin solid #eee; -} - -.tree__item__middle__line::before { - content: " "; - width: 20px; - height: 0; - position: absolute; - top: 50%; - left: -21px; - border-top: thin solid #eee; -} - -.t__tree__item__middle__line::before { - content: " "; - position: absolute; - left: 2px; - top: 0%; - height: 100%; - width: 0; - border-left: thin solid #eee; -} - -.tree__spec { - white-space: pre-wrap; - font-style: normal; - color: #ccc; - background: #333; - padding: 3px 4px 0px 4px; - font-size: 10px; - border-radius: 4px; - margin-top: 1px; -} - -.tree__prop__key { - color: goldenrod; - max-width: 180px; - text-overflow: ellipsis; - display: inline-block; - overflow: hidden; - white-space: nowrap; - width: auto; - padding-right: 10px; -} - -.tree__prop__value { - color: #ccc; - max-width: 180px; - text-overflow: ellipsis; - display: inline-block; - overflow: hidden; -} - -.tree__prop__comment { - color: limegreen; - max-width: 180px; - display: inline-block; - overflow: hidden; - padding-left: 2px; - font-size: 11px; - border-radius: 4px; - padding-right: 5px; -} - -.tree__item__named { - display: inline-block; - width: fit-content; - align-self: center; - padding: 0; - border: thin solid transparent; - position: relative; - margin-right: 28px; -} - -.tree__expander__icon__left > i.im-icon-MinusCircle16::after { - content: " "; - width: 15px; - height: 0; - position: absolute; - top: 50%; - left: 100%; - background: transparent; - border-bottom: thin solid #eee; -} - -.tree__item__bg { - background: #404040; - border: thin dashed rgba(255, 255, 255, 0.2); - box-shadow: 4px 4px 8px -8px black; - padding: 3px; - width: max-content; - position: relative; -} - -.tree__item__spec__bg span { - padding: 3px; - display: inline-block; -} - -.tree__item__required { - border: thin solid rgba(255, 255, 255, 0.2); -} - -.tree_padding_sm { - padding: 3px; -} - -.tree__item__sub { - display: inline-block; - margin: 0; - left: 0px; - position: relative; - align-self: center; -} - -.group { - /*background: url(bg-vertical.svg);*/ - background-repeat: repeat-y; - background-position-x: 20px; - background-position-y: center; - background-size: 1px 100%; -} - -.tree__expander__icon { - align-self: center; - position: relative; - left: -6px; - top: 1; - background: #404040; - border-radius: 100%; - box-shadow: 4px 4px 8px -6px black; - cursor: pointer; - padding: 1px; - width: 15px; - height: 15px; - z-index: 999; -} - -.tree__expander__icon__left { - align-self: center; - display: block; - cursor: pointer; - padding: 1px; - width: 15px; - height: 15px; - z-index: 999; - position: absolute; - right: -15px; - top: 0; - bottom: 0; - margin: auto; -} - -.tree__expander__icon__left i.im-icon-FullCircle { - position: absolute; - top: 0px; - left: -5px; - width: 15px; - height: 15px; - color: #404040; - } - - .tree__expander__icon__left i.im-icon-MinusCircle16, .tree__expander__icon__left i.im-icon-PlusCircle16 { - position: relative; - left: -6px; - background: transparent; - border-radius: 100%; - color: #fff; -} - -.tree__flex__rows { - display: flex; - font-size: 11px; -} - -.tree__flex { - display: flex; -} - -.tree__select { - padding: 0; - width: 100%; - max-width: 100% !important; -} - -.tree__select option { - padding: 1px; - width: 80px; -} - -.tree__input { - width: 100%; - min-width: 60px; - border: thin solid transparent; - border-bottom-color: transparent; - border-bottom-style: solid; - border-bottom-width: 1px; - border-radius: 2px; - padding: 0 2px; - font-family: "Open Sans"; - font-size: 12px; -} - -.tree__item input, .tree__item__rootbox input { - background: #404040; - border-bottom: 1px solid transparent; - margin-bottom: 0; -} - -.tree__item__box { - display: grid; - grid-template-columns: 1fr; - grid-gap: 4px; -} - -.tree__item__rootbox { - display: grid; - grid-template-columns: 15px 1fr; - grid-gap: 0; -} - -.tree__item__type { - text-align: center; -} - -.tree__item__req { - display: inline-block; - align-self: right; - background: rgba(0, 0, 0, 0.2); - margin: 0 4px; - padding: 1px 4px 1px 4px; - border-radius: 4px; - color: #eee; -} - -.tree__item__last { - display: grid; - grid-template-columns: 1fr auto; -} - -.tree__item__last > div > div { - margin: 1px 4px 4px 4px; -} - - .tree__item__last > div > span:first-of-type { - margin: 1px 0px 1px 4px; - padding-top: 3px; -} - - -.tree__required { - color: #eee; - padding-right: 2px; - display: inline-block; - font-style: normal; - font-size: 9px; -} - -.tree__item__inputwrapper { - padding-right: 5px; - display: grid; - grid-template-columns: 1fr; - font-size: 11px; - color: #eee; -} - -.tree__condition__wrapper .tree__item__inputwrapper { - padding-right: 0; -} -.tree__condition__wrapper .tree__item__last { - padding-left: 0; -} - -.tree__key__inputwrapper .tree__input { - color: #ccc; -} - -.tree__key__inputwrapper { - padding-right: 3px; - padding-left: 2px; - display: grid; - grid-template-columns: auto 1fr; - font-size: 10px; - color: #eee; -} - -.tree__item__icon { - font-size: 11px; - position: relative; - top: 1px; -} - -.tree__icon__array { - font-size: 11px; - color: limegreen; - padding-right: 4px; - padding-left: 1px; - font-style: normal; -} - -.tree__icon__array__mini { - font-size: 8px; - color: limegreen; - padding-right: 2px; - padding-left: 1px; - position: relative; - bottom: 1px; - font-style: italic; -} - -.tree__icon__multi { - font-size: 11px; - color: white; - padding-right: 4px; - padding-left: 1px; - font-style: normal; -} - -.tree__icon__array i.im-icon-DotsVerticallDouble16 { - font-size: 10px; - color: limegreen; - padding: 0; - position: relative; - top: 1px; -} - -.tree__icon__pattern { - font-size: 10px; - color: #999; - padding-right: 4px; - font-style: normal; - display: inline-block; - align-self: center; -} - -.tree__icon__object { - font-size: 10px; - color: goldenrod; - padding-right: 4px; - font-style: normal; - display: inline-block; - align-self: center; -} - -.tree__icon__object__mini { - font-size: 8px; - color: goldenrod; - padding-right: 2px; - position: relative; - bottom: 1px; - font-style: italic; -} - -.tree__icon__object i.im-icon-ArrowLeft16 { - font-size: 9px; - color: goldenrod; - padding: 0; - position: relative; - top: 1px; -} - -.tree__icon__ref i.im-icon-Type { - font-size: 9px; - color: #2196f3; - padding: 0; - position: relative; - top: 1px; -} - -.tree__icon__ref i.im-icon-Table { - font-size: 9px; - color: goldenrod; - padding: 0; - position: relative; - top: 1px; -} - -.tree__icon__object i.im-icon-Table { - font-size: 9px; - color: #eee; - padding: 0; - position: relative; - top: 1px; -} - -.tree__icon__object i.im-icon-DotsVerticallDouble16 { - font-size: 10px; - color: goldenrod; - padding: 0; - position: relative; - top: 1px; -} - -.tree__icon__condition { - background: darkmagenta; - color: rgba(255, 255, 255, 0.7); - padding-right: 1px; - font-style: normal; - display: inline-block; - font-size: 9px; - padding: 2px 4px; - min-width: 25px; - text-align: center; - border-radius: 5px; - bottom: 0; - position: relative; - top: -3px; - width: auto; - margin: 0 5px; - text-transform: uppercase; -} - -.tree__icon__def { - color: goldenrod; - padding-right: 1px; - font-style: normal; - display: inline-block; -} - -.tree__icon__referenced { - color: #2196f3; - padding-right: 4px; - font-style: normal; - display: inline-block; - font-size: 13px; -} - -.tree__ref__key { - color: #2196f3; - font-size: 11px; - max-width: 180px; - text-overflow: ellipsis; - display: inline-block; - overflow: hidden; -} - -.tree__datatype__name { - color: #999; - padding-left: 2px; - padding-right: 10px; - text-align: left; - margin-left: 0px; - font-size: 11px; -} - -.tree__item__index { - color: #eee; - opacity: 0.8; -} - -.tree__item__hidden { - padding-right: 10px; - opacity: 0; - font-size: 12px; - line-height: 0; - padding-left: 3px; -} - -.tree__item__hidden__caption { - opacity: 0; - position: sticky; - top: -2px; - bottom: unset; - height: 24px; - align-self: center; - z-index: -1; - width: 2px; -} - -.tree__item__root svg { - position: absolute; - width: 45px; - height: 100%; - left: -5px; - top: 5px; -} - -.tree__item__root line, -.tree__item__root path { - stroke-width: 1; - stroke: #fff; -} - -#diagram-tree { - margin: 30px; - position: relative; -} - -#diagram-tree svg { - margin: 2px; -} - -#diagram-tree .im-mw-sm, #diagram-tree input.im-mw-sm, #diagram-tree select.im-mw-sm { - min-width: fit-content !important; - width: fit-content !important; -} - -#diagram #svgMain { - top: 0px; - left: 0px; - background: transparent; - position: absolute; - height: 100%; -} - -#diagram #mainHtmlCanvas { - height: 100%; - transform-origin: 0 0; -} - -#diagram { - height: 100%; - width: 100%; - position: relative; -} - -.im-position-top-2 { - position: relative; - top: -2px; -} - -.tree__key { - width: max-content; - align-self: center; - position: relative; - left: -1px; - background-position: -3px center; - background-repeat: no-repeat; - background-size: 28px 24px; - stroke: #ddd !important; - font-size: 10px; - color: #ccc; - box-shadow: 4px 4px 8px -8px black; -} - -.tree__key__text { - color: #ccc; - font-size: 10px; - background: #404040; - border-radius: 8px; - min-width: 28px; - padding: 2px 5px 2px 5px; -} - -.tree__key__text__mini { - font-size: 12px; - border-radius: 4px; - min-width: 28px; - min-height: 12px; - padding: 1px 6px 1px 0; - text-align: center; - color: #ccc; -} - -.tree__mini__selected { - background: #0267b7; - border-radius: 4px; - position: relative; - left: -3px; - padding-left: 3px; - padding-right: 1px !important; - color: white; - max-height: 16px; -} - -.im-arrow .tree__mini__clickable, .im-Arrow .tree__mini__clickable { - cursor: pointer; -} - -.im-arrow .tree__mini__clickable:hover, .im-Arrow .tree__mini__clickable:hover { - background: #222; - border-radius: 4px; - position: relative; - left: -3px; - padding-left: 3px; - padding-right: 1px !important; - color: white !important; - max-height: 16px; -} - -.tree__mini__selected .tree__key__text__mini { - color: white; -} - -.tree__choice, .tree__condition { - width: max-content; - align-self: center; - position: relative; - left: -1px; - background-position: -3px center; - background-repeat: no-repeat; - background-size: 28px 24px; - padding-left: 13px; - font-size: 10px; - color: rgba(255, 255, 255, 0.8); -} - -.tree__choice__mini { - background-size: 20px 16px; - background-position: -1px center; - padding-left: 12px; - background-repeat: no-repeat; - font-style: italic; -} - -.tree__choice__oneOf { - background-image: url(oneOf-dark.svg); -} - -.tree__choice__allOf { - background-image: url(allOf-dark.svg); -} - -.tree__choice__anyOf { - background-image: url(anyOf-dark.svg); -} - -.tree__choice__not { - background-image: url(not-dark.svg); -} - -.tree__choice__wrapper { - background: darkgreen; - border-radius: 11px; - padding: 0 3px; -} - -.tree__choice__text { - font-size: 10px; - background: darkgreen; - border-radius: 11px; - min-width: 28px; - padding: 5px 9px 3px 7px; - text-align: center; -} - -.tree__choice__text__mini { - font-size: 10px; - background: darkgreen; - border-radius: 4px; - min-width: 28px; - min-height: 12px; - padding: 1px 6px 0px 4px; - text-align: center; - color: rgba(255, 255, 255, 0.8); - font-style: italic; -} - -.tree__condition { - background-position: 0 center; - padding-left: 16px; -} - -.tree__condition__if { - background-image: url(if-dark.svg); - color: white; -} - -.tree__condition__then { - background-image: url(then-dark.svg); - color: white; -} - -.tree__condition__else { - background-image: url(else-dark.svg); - color: white; -} - -.tree__condition__wrapper { - border-radius: 11px; - padding: 0 3px; - overflow: hidden; - background: #404040; - box-shadow: 4px 4px 8px -8px black; -} - -.tree__condition__text { - font-size: 10px; - background: darkmagenta; - border-radius: 11px; - min-width: 24px; - padding: 5px 9px 3px 7px; - text-align: center; - color: white; -} - -.tree__condition__text__mini { - font-size: 10px; - background: darkmagenta; - border-radius: 4px; - min-width: 28px; - min-height: 12px; - padding: 1px 6px 0px 4px; - text-align: center; - color: rgba(255, 255, 255, 0.8); - font-style: italic; -} - -input::placeholder { - color: #ccc; - font-style: italic; - opacity: 0.5; -} - -.tree__bg__referenced, .tree__bg__subschema { - background: rgba(0, 0, 0, 0.1); - border: thin dashed rgba(255, 255, 255, 0.2); - padding: 15px 2px 15px 20px; - position: relative; -} - -.tree__bg__referenced:before { - content: "Definition"; - position: absolute; - top: 3px; - left: 5px; - color: #eee; - opacity: 0.3; - font-size: 8px; - text-transform: uppercase; -} - -.tree__subschema { - position: relative; -} - -.tree__subschema::before { - content: "Subschema"; - position: absolute; - top: 5px; - left: 5px; - color: #eee; - opacity: 0.3; - font-size: 8px; - text-transform: uppercase; -} - -.tree__bg__subschema::before { - content: " "; - width: 20px; - height: 0; - position: absolute; - top: calc(50% - 0.5px); - left: 0px; - border-top: thin solid #eee; - margin-bottom: 1px; -} - -.tree__schema:before { - content: "Schema"; - position: absolute; - top: -15px; - left: 1px; - color: #eee; - opacity: 0.5; - font-size: 8px; - text-transform: uppercase; -} - -.tree__definition:before { - content: "Subschema"; - position: absolute; - top: -15px; - left: 1px; - color: #eee; - opacity: 0.5; - font-size: 8px; - text-transform: uppercase; -} - -.tree__ref:before { - content: "External ref"; - position: absolute; - top: -15px; - left: 1px; - color: #eee; - opacity: 0.5; - font-size: 8px; - text-transform: uppercase; -} - -.tree__condition__wrapper .tree__prop__comment { - background: #333; - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; - padding: 3px 7px 2px 4px; - text-align: left; -} - -.tree__item__hidden__caption[sticky-active] { - opacity: 1; - z-index: 9999; -} - -@media print { - .mm-freeware #mainHtmlCanvas div.tree__item:nth-child(3n) .tree__item__bg::after, .mm-trial #mainHtmlCanvas div.tree__item:nth-child(3n) .tree__item__bg::after { - content: " Trial "; - display: inline-block; - position: absolute; - top: 1px; - left: 1px; - right: 1px; - bottom: 1px; - background: rgba(0, 0, 0, 0.8); - color: white; - padding: 0; - text-align: center; - padding-top: 5px; - } -} - - -.dCols-report .tree__flex__rows { - overflow-wrap: break-word; -} - -.sel-item-diagram-multi { - box-shadow: none; - outline: 0; -} - -.sel-item-diagram, .sel-item-diagram:hover { - outline: 0; - box-shadow: 4px 4px 8px -8px black; - border: 1px solid rgba(0, 0, 0, 0.3); -} - -/**/ -.im-display-none { - display: none; -} - -.im-display-flex { - display: flex; - flex-grow: 1; - justify-content: center; -} - -.im-display-inline-block { - display: inline-block; -} - -.tree__input, .tree__input:focus, .tree__input:focus-visible { - outline: none; -} - -.tree__empty_decorator { - display: inline-block; - min-width: 6px; -} - -.im-text-opacity-50 { - opacity: 0.4; -} - -.mm-section-group { - display: none; -} \ No newline at end of file diff --git a/database/web/then-dark.svg b/database/web/then-dark.svg deleted file mode 100644 index 4c8678e41..000000000 --- a/database/web/then-dark.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/database/web/then-light.svg b/database/web/then-light.svg deleted file mode 100644 index 328aff41d..000000000 --- a/database/web/then-light.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - From 3516726b647a55524a981ed28b8980a4f9412320 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 20:36:16 -0500 Subject: [PATCH 10/29] adding new web dir Signed-off-by: Aaron Lippold --- database/web/allOf-dark.svg | 46 + database/web/allOf-light.svg | 43 + database/web/anyOf-dark.svg | 43 + database/web/anyOf-light.svg | 40 + database/web/assets/ak.svg | 73 + database/web/assets/fk.svg | 85 + database/web/assets/ik.svg | 12 + database/web/assets/im-line-icons.eot | Bin 0 -> 48168 bytes database/web/assets/im-line-icons.svg | 158 ++ database/web/assets/im-line-icons.ttf | Bin 0 -> 47980 bytes database/web/assets/im-line-icons.woff | Bin 0 -> 48056 bytes database/web/assets/index.svg | 14 + database/web/assets/inter.svg | 12 + database/web/assets/linked.svg | 29 + .../open-sans-v17-latin-ext_latin-600.eot | Bin 0 -> 21806 bytes .../open-sans-v17-latin-ext_latin-600.svg | 336 +++ .../open-sans-v17-latin-ext_latin-600.ttf | Bin 0 -> 40548 bytes .../open-sans-v17-latin-ext_latin-600.woff | Bin 0 -> 25196 bytes .../open-sans-v17-latin-ext_latin-600.woff2 | Bin 0 -> 20108 bytes .../open-sans-v17-latin-ext_latin-700.eot | Bin 0 -> 21716 bytes .../open-sans-v17-latin-ext_latin-700.svg | 334 +++ .../open-sans-v17-latin-ext_latin-700.ttf | Bin 0 -> 41412 bytes .../open-sans-v17-latin-ext_latin-700.woff | Bin 0 -> 25196 bytes .../open-sans-v17-latin-ext_latin-700.woff2 | Bin 0 -> 20108 bytes .../open-sans-v17-latin-ext_latin-regular.eot | Bin 0 -> 21049 bytes .../open-sans-v17-latin-ext_latin-regular.svg | 336 +++ .../open-sans-v17-latin-ext_latin-regular.ttf | Bin 0 -> 39364 bytes ...open-sans-v17-latin-ext_latin-regular.woff | Bin 0 -> 24364 bytes ...pen-sans-v17-latin-ext_latin-regular.woff2 | Bin 0 -> 19396 bytes database/web/assets/pfk.svg | 85 + database/web/assets/pk.svg | 76 + database/web/assets/union.svg | 19 + database/web/assets/watermark-meteor.svg | 48 + database/web/assets/watermark-moon.svg | 44 + database/web/assets/watermark-perseid.svg | 49 + database/web/backgroundImageBricks.svg | 23 + database/web/backgroundImageGrid.svg | 14 + database/web/backgroundImageLines.svg | 404 ++++ database/web/backgroundImageSquares.svg | 77 + database/web/backgroundImageTriangles.svg | 134 ++ database/web/compare.css | 186 ++ database/web/datensen-moon-modeler-report.css | 471 +++++ database/web/else-dark.svg | 30 + database/web/else-light.svg | 30 + database/web/guidancedb.dbml | 16 + database/web/if-dark.svg | 27 + database/web/if-light.svg | 27 + database/web/im.css | 536 +++++ database/web/index.html | 350 ++++ database/web/lists.css | 94 + database/web/modals.css | 208 ++ database/web/not-dark.svg | 37 + database/web/not-light.svg | 31 + database/web/oneOf-dark.svg | 38 + database/web/oneOf-light.svg | 35 + database/web/scrollbars.css | 29 + database/web/searchbar.css | 66 + database/web/style.css | 1826 +++++++++++++++++ database/web/then-dark.svg | 24 + database/web/then-light.svg | 24 + 60 files changed, 6619 insertions(+) create mode 100644 database/web/allOf-dark.svg create mode 100644 database/web/allOf-light.svg create mode 100644 database/web/anyOf-dark.svg create mode 100644 database/web/anyOf-light.svg create mode 100644 database/web/assets/ak.svg create mode 100644 database/web/assets/fk.svg create mode 100644 database/web/assets/ik.svg create mode 100644 database/web/assets/im-line-icons.eot create mode 100644 database/web/assets/im-line-icons.svg create mode 100644 database/web/assets/im-line-icons.ttf create mode 100644 database/web/assets/im-line-icons.woff create mode 100644 database/web/assets/index.svg create mode 100644 database/web/assets/inter.svg create mode 100644 database/web/assets/linked.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.eot create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.ttf create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.woff create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.eot create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.ttf create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.woff create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-700.woff2 create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.eot create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.svg create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.woff create mode 100644 database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 create mode 100644 database/web/assets/pfk.svg create mode 100644 database/web/assets/pk.svg create mode 100644 database/web/assets/union.svg create mode 100644 database/web/assets/watermark-meteor.svg create mode 100644 database/web/assets/watermark-moon.svg create mode 100644 database/web/assets/watermark-perseid.svg create mode 100644 database/web/backgroundImageBricks.svg create mode 100644 database/web/backgroundImageGrid.svg create mode 100644 database/web/backgroundImageLines.svg create mode 100644 database/web/backgroundImageSquares.svg create mode 100644 database/web/backgroundImageTriangles.svg create mode 100644 database/web/compare.css create mode 100644 database/web/datensen-moon-modeler-report.css create mode 100644 database/web/else-dark.svg create mode 100644 database/web/else-light.svg create mode 100644 database/web/guidancedb.dbml create mode 100644 database/web/if-dark.svg create mode 100644 database/web/if-light.svg create mode 100644 database/web/im.css create mode 100644 database/web/index.html create mode 100644 database/web/lists.css create mode 100644 database/web/modals.css create mode 100644 database/web/not-dark.svg create mode 100644 database/web/not-light.svg create mode 100644 database/web/oneOf-dark.svg create mode 100644 database/web/oneOf-light.svg create mode 100644 database/web/scrollbars.css create mode 100644 database/web/searchbar.css create mode 100644 database/web/style.css create mode 100644 database/web/then-dark.svg create mode 100644 database/web/then-light.svg diff --git a/database/web/allOf-dark.svg b/database/web/allOf-dark.svg new file mode 100644 index 000000000..1912cb22d --- /dev/null +++ b/database/web/allOf-dark.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/allOf-light.svg b/database/web/allOf-light.svg new file mode 100644 index 000000000..0b219d0ce --- /dev/null +++ b/database/web/allOf-light.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/anyOf-dark.svg b/database/web/anyOf-dark.svg new file mode 100644 index 000000000..d2c7f93eb --- /dev/null +++ b/database/web/anyOf-dark.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/anyOf-light.svg b/database/web/anyOf-light.svg new file mode 100644 index 000000000..e9996ad3e --- /dev/null +++ b/database/web/anyOf-light.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/ak.svg b/database/web/assets/ak.svg new file mode 100644 index 000000000..578f8dba8 --- /dev/null +++ b/database/web/assets/ak.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/fk.svg b/database/web/assets/fk.svg new file mode 100644 index 000000000..85f8ef275 --- /dev/null +++ b/database/web/assets/fk.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/ik.svg b/database/web/assets/ik.svg new file mode 100644 index 000000000..a9d01acdf --- /dev/null +++ b/database/web/assets/ik.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/database/web/assets/im-line-icons.eot b/database/web/assets/im-line-icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..b92244bdd62e8c63366b380f347ee71b1e8df21a GIT binary patch literal 48168 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 + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/database/web/assets/im-line-icons.ttf b/database/web/assets/im-line-icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c683fc93e60cb4aa360c99f47becfe98cbd68d2e GIT binary patch literal 47980 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 + + + + + + + + + + + diff --git a/database/web/assets/inter.svg b/database/web/assets/inter.svg new file mode 100644 index 000000000..2178f71ce --- /dev/null +++ b/database/web/assets/inter.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/database/web/assets/linked.svg b/database/web/assets/linked.svg new file mode 100644 index 000000000..272b4da60 --- /dev/null +++ b/database/web/assets/linked.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.eot b/database/web/assets/open-sans-v17-latin-ext_latin-600.eot new file mode 100644 index 0000000000000000000000000000000000000000..078e134c6ade0a728d8d65d080e9b3964df7784a GIT binary patch literal 21806 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 z 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.svg b/database/web/assets/open-sans-v17-latin-ext_latin-600.svg new file mode 100644 index 000000000..410561e78 --- /dev/null +++ b/database/web/assets/open-sans-v17-latin-ext_latin-600.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-600.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c416212a08b30a3385269bb9f140898092a77029 GIT binary patch literal 40548 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.woff b/database/web/assets/open-sans-v17-latin-ext_latin-600.woff new file mode 100644 index 0000000000000000000000000000000000000000..adaf3a1e506cb74dcf61dc44ab100edd96de0a5b GIT binary patch literal 25196 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%0D+;P~dyjvK_N{VrBp&BbqP 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 L0ET5o`Tzg`D4n?k literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 b/database/web/assets/open-sans-v17-latin-ext_latin-600.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..24449199fa85ae96c377812694f376c41cace82c GIT binary patch literal 20108 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.eot b/database/web/assets/open-sans-v17-latin-ext_latin-700.eot new file mode 100644 index 0000000000000000000000000000000000000000..cd63ec4f24b903c58e01595890b249763b02550f GIT binary patch literal 21716 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 Ye`*fA;BKRbh61o3=7dAFwrLKD+=OoGH2?qr literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.svg b/database/web/assets/open-sans-v17-latin-ext_latin-700.svg new file mode 100644 index 000000000..8e6b61ade --- /dev/null +++ b/database/web/assets/open-sans-v17-latin-ext_latin-700.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..885fb68ed4eb23c15408465651a89b9e20874723 GIT binary patch literal 41412 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-700.woff b/database/web/assets/open-sans-v17-latin-ext_latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..46bbd7588bec59b97337227afab2f7d528a0bcc2 GIT binary patch literal 25196 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%0D2Awa4onyJO*9~ABX=TxsVaaGc+eU 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 JOh5?$001b+BU<4oqgF*+A3k-pH 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.eot b/database/web/assets/open-sans-v17-latin-ext_latin-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b411f2e5139ba3d4bc535469fcfd9bd3178c662e GIT binary patch literal 21049 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

    -z=N^~oy%*9O3P6E6;ZMA^U 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 literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg b/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg new file mode 100644 index 000000000..78eb653a7 --- /dev/null +++ b/database/web/assets/open-sans-v17-latin-ext_latin-regular.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf b/database/web/assets/open-sans-v17-latin-ext_latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0a0d4838b9037918f76e8188ef179b34db353ce5 GIT binary patch literal 39364 zcma%k2Vj&%+W$Lm+umC?eX}GB1PI9{gwV2tkc1vFAd84}0i_cWI7Hy+AOaGKfPfe= zB61jth$xB$5fM?5<2=sFSw2oZ&jQ&u|KH5JyGc0xzCST0*`4>9XJ(#WW;w!foDKgI zIcs@o?=tN?T^+}5*@aiTlvfVAo%3=={QWolZ7sijNJ*=LKmdP#hrd4>bbC(TgA-EE zaNOcn_nK1pHDG!c5V&k|!mvWq@ z{+`jZrgJXN4|tDI`1jm5cS5ILmdEgHGRNKj^ThF^$MMIEjt0Lk z#-CiPiBo1j@Z(>1e1P|NahyErzG-7ezx@5KRUG#~KF0}pQ${~9UC8D2_}hu`=~G8f z8K2dq=SRS2ALjV$^l7tZ&uvJ@+SUPIoniXS@zZ-9tpUEPf5rPcj^|EcWAxGyPT(}0 z>!>J5yeMcmE+;Q1NOFQX!Q74xpUqc@?^8mbhNBbtxsm14ksEy{ieKUBEsdX(mF#IV zmmP8nIvp>H7Aqk}-Y5?W8{NFX6&GjQ>|9Yoj?GSrY{8%nFo|CX3i-i2x63K}GqOn8 zq~Q5aALvpXD#|Y<8%6((`W0m*q4Hu5b1W5V`GZjm(?TXr(1?Pl)ycd@0Px_sJPH?p z8C=0H`0!1NTTg1kXSbQyMmiGtp10C(3M+`!{tQ@2TpG7EG(?-0>=KfU!)8s2k7@AQnirOEB)#BLS;Xx!kI5=Tqzo5JD1L7aqYPYp@M)dGsPo{ZJj2` z$8lcCrjt74WSV5tfUqF9GPgDN52v)vPIe{_2z%N(u{lo3jTPsx_1cT_=xS|jtK>m6#v zStY%@b#g{Vht~RzRyi*yn9{OM`0AJ|cTDhRdNmFW2o7JxY`JtrQySkLbk}))sZSPcwgNYUthoa`B&E)t~~SfQ_nv0k={fdvUEgrJ$Q5UE30P>3rwC+9dAP+&>G5=muE~*CNX)#;>CVJK zcHq@TgR?cH6XxJG#2=6uoA0c+W6}6~hK8p-_QT^!ziA`dJ*K>{x_(IaR;Qoab9}`P zvbl3F&%V-?B>T%3?*FOg(*KAXdoLK)Z{h6&MvuC=V;k958lKRzdgYD9Z%w#+%;ch) zeNSz=_wZfH+#XMjRX%%E`Q*^#5fGJxN(@rWB!=@SCkUd%Q%P}7l|Pidq5?vd4fKh@ z$_d_wCrn&&$f)7;A}5+Hh5&u6xS4oySnY*D87sAW{8{|q$2RPFWc{P7cWvCp=Mo)x z_rNJ7@2BsTPA}DwHz?HZfNG3E74?A2nJs!j477wwth~nG$zG7p2ZC-pZ+vXSuGNpO ze`F5@tNf;P*>{4R{r)HN?y2XLTtFSlFBHwPlQVN2LrH=p5{*f(Gw3W~(P+{` zere4dSA04zPMh@b=*lxak^^!x;K(eL1b%%sc{ov7^6UPCyAJ-SEKecJvt_4JJ?%)E za(pD2tkjGoWobvIk=1lH6S>dDHsWibsMa9|CyF{rGMWU9R#O?~ELx)Fa_&+YznPea z9JBdtkYBbSzm{xQ#;sN+kZr34&njgosar+%18%YME1AMw=d_&du*B&gK)D=tRzNt@ z12K=iDI_B;iDL>DB=t01_l#41nK_Z22AhY{+vH8ov|UGcNRC*PM3FD08wm zLFeih)@cMwzp&s{`HUeEQ({)$pTXO#_F$f!u>afGD`NY9{rug}*MGYHOT(u%duums zs@+?|f1)f^R*{8dCV7y|R320|D5sQ9NPu+3SEh0mSf2paXMwezYZbEUIHDy6qo~tp zh)yO6Kp!k_hZ%OtR|xg{>Nr&_7H8Q}NLxH2~OGKzcwpP${ShP`T)GLN>U3VrD}z zS#)rE=Z7D>^NDf8-oF0sH`_l_Ug5uAN0uDg^2qJgE4vMvvG3xc)yntpDQ{}&NsPq4 zCIN#0*DKU2iF0T)oZ!wd$*tQ69=FHcFYNK?Gc!~Bg)=pJTfeZrX_u)X0<1W?VwF2^ za#SI?fsW{lDy4Lr)#opW3vHlF@fEJ`c;sN6@^|GwvrpZ5_oY!}zB2NW4bQx_@xf7b zQ>uo4yZFQJ#F1+brE1;v8!mk6Z?`iim$V`Jb(@#nJ1@U%diiayQ5z&1yEj=niSw{? z-9o8$NyqaBjlc<#;BXSjF7*%VEE>CA(8xmkd}5qMQKp(yHKG`A5&Yr9nfW1a#mSc+ zj}-Ao4qjGP=(Qc&Dutv{IY=tk3!gN!Az!VlA5|Q=AN#iy`)p06L3(|r4!%&8qq0Nm0uQ@ zy*K{gYs$*IA0JxCUy2;foFy#y^3Bf`Wzeqn!P*@pFQt&*zg6kup*vFzta5OwZmtzq z8uBOF3_chkvQ5a!G#bn)1HuNg*(o?Z{lZSKpoK*ObsVKKdaOmv_=p`VQ^!`$m*;VT z;&>q#r8s{EC&iSp44vh!CWA=DjGhC=e*3G@IQ9DLpa1s3=gQCI+lO~-SU-neG*Y;gpcF&=Slpb-W+1O8+OAA?vByl_hqrmrv z(Zta+jPU`ufIu3$2ua~bHheCei_}ReTbJHA4+#dFL~O%WpTTwD287ypELqNWLW)i& z$Tp`%&gm%I+N8Hh?-y><#>g2H2ZW7Y&Oaaw!@c<~Fyd~a?kK4+OIt%}oGRji{7hzb z2{FS2`k7?V-B5KpU-8yA%QhaWQ9k*mf#j`v;M+M*ZQfM7{nbs&NS6f<-~af!IqRjf z$M@cMsLzlW=O4Lz?!?VC0}oGs{H2?<4=h_VZ}jH!&||_q4~!e}=aO!#MvR|B&vr6a zM`ebG%j9~7GLmc=dblkj&Ng69#mPF&X5Q&cz|m@W&44i9lI-j_+vW#LKx-g72uO#Y znHB~4kd|({x(M(swM??a%*e#qrIi!D|Bt~~cx2|QUo^hA>FNWDbKUkwHr}~)*x-#q zSwpRJT_Tt?c>5jyeD4dQ-Ktz69gppO#tp$PPq1W%?Yl;VRd(>NSlvRMqYh9_-pl{zTg z%5By630tG4En^hsmBy?jXaeer#LU{5l7cdnArhPWtGr3yx{6V1q zgX4Q1iuS37|!}G}S zcj#p9s&OW9TpOpkgB0qS(7ChNU28MoD?2Su$jWYVD&b@?1rTEg5CT&MPR0j;7&}mD z=Mh{^ro;GF{tS_KQE6D{lKtr%jEh#jJkd_@zQaK^vV3gVu8BkMH)vaLno#rfcdwN0 z@9kZB=gdcyfBogEa^wIhAvy1V_R3GnCS}@3WDVgikwHgq{`}f`ySZY>;*I>}hre4q z@wPk0oIChVqt~spbsxI4|1hy`d_j5oQ{}vJZ0OP|vW`q3BB{B0Sb1LAtB@ihIqPw9 z_$OJV6QCqBPA-)<8?;2ClqHB7(P}aCeZmIGY=*hTi7>Z}7E=FHx{VY8j{^bO;={}Q>)Awl3GnUPt5?LSlWaWkx4^eJe0BL%j>542wUCd6MS@0y-xjtdLXppgAjyQfyTZ6DO zaOPYvcKrGFR>3^D+d|hLl&^{Dx2>nQTvc9Dc0WyuKmKZeMXeN6URJ(VK2_c<+*CwX zkV&7Bs$*3f22xJLj!DC?W3bn$O=}i)2(8&2lBsW45=3*~Fg>N1@fQ!wfc6kWO6LUp z;Wk;4K4D%U;BeA}K-Aoe+bk3b_$2IG__g7JkQ15DkBsc$ zmr6%AD{X2bUp1Ra$K{0*;VTe9O9Z{)mWin8AC)1L7-PmHRu`Rt%&Lol2k^+(o1-Tu zb!T!4t8i+)Ja10YipeQlQXg1elF?}E6E=#Hr%zaFI>cL7L41geP&SU8BV%dG-8P@l zpZqZU`<+U?^6*hI?AkYPm%MRQ`H%7e@sWfr>y;OHB~p}`MOKq>UywTv53Q+EURAzQ zK33lKlULQXOKEJEgCVaDQd}#F5+|9ATA@!^tCjS!02`HsLEtzv<3c8d=;C3N2J!!( zlvdZE)YS=m9e*%V3152yKNUOBI7(SaCSnE?ml84=v|6)8CvZ4BE<+_7sxK%9395$g zQ~+>J**LOO`GB$a)V-oCOj_@JUQVJ9y{=|cRPVGK<~v6Xm(o?^^vC0%oDn~Wmr z-9X0#x|vNJ$VRXMoLF+_7&lE3J3O_yzyi7 z9BB;1%5@02bWmZ$Vu6UY*$slmq7{fHc832ouRl65rp@9DagN2WHhikJ?s!E=(eh^g zaq;ZO^$n*mVV5M5SuB)OnE-hto%}sNw@+9n3YI=$p^2E|)&PMhpsI-ezqy|)om6%x zr>Qt1qev5eyOc}HIg&@(!spFZ&Z+WA zr1Yi33FU_p_1JgpGv{#X#lB&^Ue;*reZv}o?tF9pRV9_GN=48yc0Qd%JwU%WQMsUe zwZD$c=UYV#TR(gI_n$8+NaMnC*hHm+gWDR!Dvb?ywv5BIv>0f=OfY z_6eIrjRTAghq?HTxZ~1HcF;%=l!E5>cjdEp$%tQ+&kO%>XRax0N|YMXm;XQa=REeu zh{#|?DAPm;Z`9c|2EAT`=)K#cGl4bxhD|0!&0IJ+!9b%N!Df5a%z37?%Jz)ym*}!e zz&|s#ZIFOuJ;4mhU&-1t%1-6{*Y*3JdFc~=RAiTQAZC1SI?5Ar#|krH>=&ES^Y;3 z&hPWq?x)|Xe6;`Ud-{*QEq5?NDFjr-iNmpf8pKoV9Fd41Xc5d2ArnM_svhhVg5WA% zRMOD+m&?bmu2XWw3ME%c+srhd|j=3>(v+Dl8!VCyrFzX(i?;W4P{49zkW2e{ zAh8B`7&w2(F3J)_zDz~FNJYMCCo)9nF)%cM0p`YkV$CU79@Fc|S4!6tVeqe6$HVJu zqD%*N7e|*%4vi(BY*E%IhxmZ7tziQHb;JW}qCt6G*w$D9%x#CMA4~9b5NE*-2Ge5b z7-6UK`Vx+imEvW=F8go_jw76C(8~|ONllE!nu#BjS`dVk5bRTX9%_9yeP%oHa{epD zuHJ_WpjQxc6wZmmDdltJq09`eAvM+OwQB`fQ@kOyJj@%AY;jr2!jOWAWnsw;0SjTE zMh1RAK;?`1Yu3y{78#938eO(bFn9s=JDqM}uunVqiFr@Fz&nmlo44}W;BBWypMFU( zKlYc}H=dia{hmJi9wYs&a_OS^RSVnY9e5?;tghQSR->6RYxqdueGpQ$8u`$X65X_j0WqQ1(kCQ(dW)8Fb z={6e9f`iLXxQ-B=?mvTewhtCA&QlIOv1{ccQ=KG}7>R?l%kZpqrzk_;{7T$G7b+LWp1%i%{>Q( zUTn+kE|(A4SGrxYfPlO&KZ{@ZZ{-@1{`T(o5tH=7zP~&>Y{&LL?=bV-*EmUQf_wq# zto-ozNvGcG`)HO=_;UZ29Z%6yOMzczmeY_OLEOb@G&*=><|V=9)`J!FP>>p_EbP!& z1j-F8j;-be=Y>{=!`u4z-B+@1up&TbdW!ged-u{xX)(%Z4MGDS|$2pZI;5-`q5<#-xka@mBP z^A@gqsVLE?lwa@54!W^_aX(@F|QY)Q7Ms)B=&AwYBw~+qUk~rFGlRVg+eaRM4q&=fXn3 zZd|W88EhjW?d?KthrwXdYQ2eWYem={(pflAAFLK8ITBk;;%MezTAR<7eRtR1y$1Ga zno)6jmpg~tAvWB!Dkn5|#U@wxGzEKV?NeKBY~%i3A&mF$`1rEV#tam4*B+o6U~n_v`F_ zp;czG+vT!*MUxkjHqC2wSl~HPIshR=(@tOluxiZGRw=(3K{Qc@Cx}E@I{QDR4morB z{f|9bJAKaf^|i~Bv^mdACS;H{_xPOSFYsrUEIIT-WIO%&;)jt_Vnt2m@Z&?rz5G6< zm?*UZUniFvO5mK7T%9_%%c!$jL9AA*-ttGp+LBh|xKK*nzl)*~JT~KvwOD4X?SVh6Hh$-^pj82@|ns{%EeWLe-`Q}TX|Qx`TpOoT)c3ZO8JA3Wz}reKCU>F z?lp)SjW*4$wP*N6181?g%EA__&Z14?lAFYQlwX@W@|0sGP;m`f7>#|%{J`2R()On}JhpYg2iL#<=+n8ngeA2G)2um%E@po9_UGr%UtWzM zfC1iShq{{I-XR~3D|!hqlMGR7$6nOD&V$615S4ax z^Z31ex_CLg;`ob4kW9dtK^7#u4Q4j zRTgw{`pHoRY)ju2Rzs8T8i-cWM0KI+x(c(tc=xaK1|6L?GJLsp9h2c?M~RN}d2UM!U+^n73|z{;YEx-jUXQBJ3ux3?Rd zkTj{S^6HKqWur(B<<*hZCe1>VjSS+~RQCQxSrnN+b~5GYy|A;2#0qe9e#lE48lzF~ z(7W75lgX-eqIv~f?KV(NKy5r~|2KIrOw%&!jzt6gF{{}|`h%$-uU(m-3m%^R)|+BQ zqzDS=Lq2r#*v8w2p1i=Hqcc-qj>pUfco}-4HzKJGDlIn4rP4L=9ZK56OMoUE} zgs18S(`0?r6GmbJDSDcuu-hq36*|-@J7G#O=Zqs?+dB39E6RrlCQs994Y~F+^`|>K zwW9y!{mKP?N!JU{-5pto_`z7EvR~2R0=_!3dVh7R8vbuU3RnfOMlD-oM#!d-WY}G_ z#D!=LE)k2RC{c`5cR1<^Q@_ejjwwrCB0iG-qOydnKcSpc-af(S@*ZUb*&F#fa-N(} zN&%k-zsrE{qEQblQ*e7k1d3pmo07E9>cx3+tARS)&DI8*Q59`rA%E!mK@P3y_OA{p zZOUF;(Z6qD=`(%0V}sXyba(I<{!cg4UwF*6)cDGFx+3_@!W7K--#&ABSh5gpd6;Uu z<_-Zw{{d|>hHkB@wH^{R2g z2!0J;w~gdX46o%!j3RlD?O!dQQZ8Q#7z3A}tFJ3oett}MBhCho8-W$jeoS}MkT1Eu z7H-ln4ZyhqIMW)Q6wsW@CF$*UB*;@z%x147q^7w7$ds~YRh*d-#dwCI8z`Wvm|_pB z8j*BO6#GJ6fA#ZY7w=y@@4<5?r_G)^gD(zTB7sx#>H}MqcSqmJuMH#Wx%C;WWW)s0 zW+p8$Mim%eDYg-+zy+;BHo=nMwHqtLg54s^Nc+lMPBv#vIGuA^O$@+3hQ2AFb{s-) zP&zdG2(^@zMFtlv>@@C?(i!2BF*%(c>NMfuiU%wD4d>7F>a=-Ea#nIusHkSDFFieh zT8~?l)$rX%!qQ)mu>yFnUy?B6T+JZpj%FMn{hE3iV*nOG{F!Kqh-vJxCRlPS?{;|*?yl$vHt@Foll z>%3kRUs?Ny9SNL-(w&y2AT5f9R4Q)LY!KfxKZzd&h%}(s2?Wj8oviD=ZQc9@q*fW; zv#*eJ^X9oX-uQ=frfTVcKdn(NFZ^WOigw%9=KOSZA?bDqvX$rN6It|#yI^4l5Q8!$ za~VjKwr-Q=a%E}|i9rQ9lYi>$j{L$vp$BK-DfDPii=y#p0#rI^0)<(HF{=dob*%65 zk;^A8UN~Xp-OKv+T{2?jgoVq-Eg!M8@1h;EXYbrKbM_AY;=Fs;j9A*I&(aaAX57Ez z9=utO-&frGr|G*MpD}X}O5CCGuzxiF;^u~iI@rw`gTZP@>KJkBAvP3`RUrlRi9 zFZU>R30*rSx0ii7U!XkfbLp(*VI9OyRETmAA1#f1N6d?*986;@jF!R6lyuZ$q9&sy z3swtG(c_`EWk8l!4;|RI>ip{?A0J&XW_kbFv*&L+UNgAw)^9%e>q7%y9lUI9$NOeI zysTuypP$NIx$%Y4Awrv>D>GY98!~rwN?=JKscWcPRblDodxx)WbK8bBTYEm5*}i{y zhb~>R^M}tIGhkA8N9DBJrx!WKVgCvwvoKM*2>tHiQbSm((azZuyofmHK!PnB1e!UO zs8*&vtm6=d)oiWnf$}Y7k=(`e^5Eb zo>BI^{kl^7-gz?ojc1jM&mJIc4n`lNd|oCv`5Dri;H5OKFqG_(lk|kRsa>1yOV;b{ zUN=(v0xy{CX;|t9cbx|NFy4==QIIWVb`}|drSC_vAlrXiCW=s4tdn;pj97E`v~5pT zKRRw=_ROV=S1Og$&y1OVkKn5sJ$Ax`NwOGN8XVPm(p;t6iE;J0qDbR+gSl#JTAAvP!DQ$h8WNwQ)FF2^tXlb$ zq*W{X_yF15TiK)RE+?Clnto+^kZ7R?J?JG!3K@CCon?(AR)*n&=ftz(STPd|Vw;r> zZwa2r4`k^ouCXyzwam-#N+6=*G^NGvW`U~i3Izim4nDf517(?XM!QEY>}<4RwAo>{ zYaJGQnw^K-ckp(H-SLMMMh~D#X3=%4!h<<~em`0iG!DPOQk`g0_&$#$GeyUPU#wa_5`HPj;|1W|gjW=Z2oAO3* z-0#QrMfv7WXkBqG1O+SMJycmITJ^8E1AY>Z>U;)cvkgom9u6HzI~Rsaq*GEORCmY)h`)5bH?peGiK8BL&Ybm=U(Hp zV2>ajM(*Lb2=xMU`M&&G=<5U;7xVr9 zUHi<>8eDqt*uE{ZH_pF!t$NNqV=H@=Oz+&gc+JQaJH%_1_jq#lJhZO!{L($^?;TXy zy)@fDynUxRuymW}Ty)5Ii4Q?0H|1Ptg9wD4#!psuoRgwVK~siJEv#3r zj-ITWtZm&XyTEp6RseYR=lhaRC7MA-mXSwCjot|PDx}L?D)sw{m}vrkJ!Y9i`v(TE zTPnLdE$@W{?xTFKJBPd5-#rT4S^`aS5}Jf+>&%dywx1#W=Y>m2^@mGG^~dSEnsY4Z zGo}^YQZqA=Klx0}hNt&!-tuHbxpU&A5hEtuGeVrU_vrE6PaHn7XCD5|zyE&BSP2cW zFRCHHnFbwFjDm*O>*U|l57;Esl8{1V_Sp|%pR%u-q$!_PlVJ*!LhN_ms7xv+caxF5 zl}SlWzd}Cr1EE~Neg()VehJPdi<{TTLD@_dQX)q=-ScQ0fq_|2KxIh>jHNv#bS&(B zI`%V+WFq1YK1i1=ZuV~+8-Epwh(etbg_^BG#fpQ<9H9yxQwrCb zR$FVGseY1dN%lL%Hf^~SWVBLJ(07+UD4b=r8Ty26{w5m`vEI8!!s?A?p_#^@)*fr{ zqAr|AJ&YbaEtD;2=3nsx`;DI4-TUWxl{I6!zW&C^kNu%=r|~`O=XUK;Qb=8{;Jinx zCiffAdEAVwj>|_KuPd7r9-K35_FZWtdwFlPdxo$|{FAJjS&*%*=<2wV##hN;PWwD> zm9n_(g5McY%`H_&B>ce$65{;oh?JHia$>WPa^xe}EVsbOjE&$XafKM6uNU}M3`i3u zvN{HOpf^{5=5L0Z= zZXHq06{{m$e=vfC8gHs25?hX-yQ z*Ov~tLu+)fqrr5kf)%CC-?oh$BDax09ge(t4P8D9!mbGhXu4h< zk<}6g#e>ZPn%?%iFzD{9cue9x#0W~$?W4Po&LCnHjp7zaXKzTSK>$%lj3zDTjmdZ> z518p3m5%#IDZ9wXQ7G=(JD!YGc8w#W#Vup;=dQ8jZe{maGK!2Euk4_{(}Kp=P#^a* zxFQL8C~$^5&66sknOKj|lHDR{so~;I^?6OcK4FVpD~W>DBnl{;lWEZxE17!(yui|v z&0JMh08WoojU>>DLN&r5SOdh(y68M43t4%!vhdqS$3Jl2A>dVdVaMnPCcjcYH8N_} z!GHhS5E#$zn7l7mWH@f^plxrEDYVXT$ZmegK4p$a$}qDTpyGh;$&DI z7dsiGBPr)_Wo+M(e2z-2TSruL=hYEOe=q{4yFeY0-f{#zJ9U;x+!l6rJPD|02Tbr! zoX;@n$}p+sa#bjHHUzu{9v0^^-g41Qg$X^JvJL9j?J=P^QU~@i=}bCAsabU-3xLqX zcQo0hYItOH4<(Xszav;bzpfzG+Q^-ce6w!v zrd2?T)uU`jy+B8*ncB3KQv969Xyj6CZKd2iyS;6P4q0X44qRIo%XUT65zV4|u^1<# zM5kIJL&J;AkyoP;H2$C_-=U%quT7_gw9J$ez3YZ`PAVU`X2Pq_pSZVpd&Q;Or!E}T zyS!g$#X{w~+Q0q%-A~0Im(MEe`^upp~t^}2!&{kQt=-J=;el=>@@qULtc%OtmX78gdUe$K& zdFhiFd{X|>?>sMEjJ?lI`ix^7-Gu?5T1v%WX>0`P{fj!HwK@WPi4ii*UbW%!xvt#k zP_Ql6%GMEKBe7#qLPA=fId)>VzF$3%z2E8&-X|fP2PmRVi}%@y zs_-YFT7t^xj_P?eHa7kh^NwX0e2w2Aag^JDq4s$q#b7**kWF5*5!H?9>IhSGMC0=q zF{Eh(2`NvhBkZve-(f@=!$X~Al5!Ly^z}UPs+d5Y;FbY#3@Ykq*Hzz8wof)DC!=cD z>o(gQR#_KltxGEl8w9t_Yqr4h(FqQ1tf%r z1BGrDG`0(rpVeF-GVC{h`8yg|G=KYSoVMtk@V!RdA|d(uu;U$bqh%^1E~m=68?%;uMr-W;SlQFEVkrA)+JJR6G0Kpf zOv%eqK2!RgSpCJe=~XjFE$w%JwHqZc;3R6s8Dn~5Tf%|Rune8v+`tJN62s|POG zg0>12Wb~iYf9aOro|(WeEBNSxz2hPaf>$VIu;s*-j7qx zE$Bzgff@i83T%y0xhR>$RD0` z>`a?$Z<2$TF2q*D)~l{&5~L`VE!pw)LfA-FxgNa6JV8Mz(>k9@UGj=MRQX<);6DkCFcxA#arUOPQ zCAcDFxcVG@onOaZhm|g#XBHT|D@f*Q+_pgdN)or@AVGxH>=dC@AVI2286Bj@X1oOg zEW!OMgv=Puw?H5vCWA;EXB9#&aAP=-Qaf$5aN;!mZmg}?L>gh(UTj-AnIouFz83GO^;s7|;fY*;8y70fl-f<_kymV3-<3H*7O>b5P79` z`}W^0?7h9u(nZIPExMW6RND(W#a;=&GD>G&F({pS#h{uvol?DHmnfw(n}C$SCV)hF5O6HtxxUoi*LGlsRN1=ftpRIGcdSjVkv z>J@iqRMwW^6ym;C*WES-fmH`H2z@X@CZV_Kx`oQvx>X2NMyL>aK?|_GPi_H$?VJjs z*SictNlOTn-&6>t{5TatoMRadjNd2(x^ro4=Y)Q77)n>#6{^C(4&6rrZ0BypehQNo zLRsuNoSKxz)(^J=kV9OJI(Izc!Ymq19U%9Ojz}Xb>A6x@GMn}_;Gc92KA{8gma0%Y zq%$p?)hQZ{8iUqgwIk@_L1@aYN2-bT%{e^yB1WqnjZe{R0!>awFF2#lVl-Gqxrlj; z4pc(;@Xh#!^@sWkNC9n?L~rO@Z_zH%Gh%gvBA)ye|JL3-Py0p1+_lQ8ufK-Bh}ZzD zTTbP|p**(}HMJ%k*xs%)h-v8_cOnYM90sGIJZv@6%xjKOa3>m#iEcp$<4P@PhKZR& zQ~AH^l-yF?jGz$37hklm0eUc6<$Pc#n7WpnQi@}>&O1>-`eEdncxB=7;|ot$(Q@ba zBO_p+KLTO(0JGx0W_w<)tYGJjOX5_oj#}`19^+?qM2YgOIzkg0@eW3GW>lw+=oPci z#n{;wC?#YOqbkIkIhmAMF&VXB$xviWVpYMC7_G0SUObB+MyrCw3UJ^a_&E2WE<20H ztPu_D4_OOqhxX|5;~8DGQ>jLYMgwD9L94F$L6on^I#}9iqe(#<$}!GQ`qD_ zZY87XgLoY^(|COV!}~r;y3F!U63dXo%?Wu;2Gl(OxB5%sP#TPCZ%6+EAKc7z+^R$BP^9&H0py~VQ;bLzNCPLF%qRdS zc1Br9F+z7)=TNfMWHM`=PLGE-3yDc~z1d|EaPvg7Ci$jnP8x`#UvP?I{S3r!rvWe8 zz^yjV3unf3D!+Zwckb$~6aMM48?l*?L_73GnmUkTi zI_exsbyzG`O;QqXMX4ccHnKXbHj7oQpN@7`;6!PNu6fc(#fH^O(!xXFqn4r5VnkWU z99r0|$C_wKzCOQx>e)Bfur`bR!rXXe{@`IRzu&NSTOH1v>gkirM#`mU4jbuBb_RSr zhDz;|F-)d1-#rWf%lzBdHL2MQvI>p7T*5P#Z~w(929ukypbVF&r4(sSqlN z6F5-+JDV8`)JtP97$vAMDsVdu9np@7ZK`j9hkOma@=jFJ+#c$XAX^-c6wYKzk)?E> z#g53gg)1qBKP$`_%^WJP*qe(OeOU zcFGmnvgB(KZo&xV1?6!vf`ldv7tE38`9S0{KcJ!XH>Ht~U#8!2hZFbfOh%LaGLL#I zhPVT_xLl^a_CB#X71{-nA59v%AyZ-X(QeMn>2sA|KAWV>L0mA9&KF(0^5KO~KK%IOy*qdARpn09yUSPQPArd; z7PA#0kA(m`eb~lS?);6(fp~lfatGNrDt7>Z%9jOHzKnu4L5~7n#Zydg{41t6n$HKh zqk3|HEZU zF$|jV9Gm^w^iO+yEfMHLE0-9tDOtYRx(0agyi)(hH;auidzr<)Nck`9G~?bagTQ3J3ZaBsuR@6X zrYZ#LAFB{bybMA@%vM%$pkAH|p%=GWg%FP=sSv2_S0VILqie2~5H7_b^yan$0*zRy zNKo0Y#`u=TVf02MgN{(qpd)U{1dYsf~XX3j!1eXR7;?V&W0(CpP(mA+EjXy-!p32amYafhRRLia# z8&l1dsI$a*5hH{t4AT)90SOB`3bQz3=cGcQ-Z+B*i@5anATYm)LV(T8T~*h53k+&s zsxW#s{*MYHPH(qhL3%D@Sg6!O?I+m6SCHdGS`#6DLQFEQ$tnxueg*wfouzyE#D zks%MbT@$*EsU(TYH#-%lW3_$44B=eAZmVBAlpX4sKIu=J7Bv(edk$5s_$N6vb*O1g zKm@u2@`(91NlcKPxUXHK^>b|yPS9mIc`ilJbT_fBY0F+6n#z5ET?Ye&4S(1C1Gw79yH zFmWR9Ja90wv-SY*oIG#rxCKdvygBBMy1#76o!~i}zOQ83#gbsKq+3xzNUB-d`DTEu zSEh-V@>h(XS>4cy9PF~bcs(@J}8LQVJTAc$5 zFX!$F6}GpRbn4czjmu?d)k^NjbxN^oD*B)@xwxoz&}J~Y+LVWlxG^F<9Vw7>t0fbO z5VzhXaye=}WAp&oy{2f1JDq1^rFPNyO5E&6KTn~L7EuxuInt~tnopvwl)rbKMDuDo zT(utG9&)L}WH%9Admkcv?7|6e{hXzvo+>Y_dT;!NGqD>dNZtGi`T`y%M%*QG0GUrSdJ1(K&T27;51DDZL1MJu z0DMNN5G_D1KfM9RkA9B{o?7>m1#^ZiU4hc#?^it3rtQ+jp28)|U<}>@5vAcMF?~od zw1gO>SLg&?8i2!PCB!&u=A^}U&MA4ML#=1RLfO}M*5a<-(ns%T^WX{!u|05HDvg1) zjv8w8hvOGk2hVs1x}3DYoxXuUwMbIWg4h!G|$7w@2bxSH1yvtstg^o5Ha<@hjMy z*R}46_4P|LVvY6a>6iw5+RIB>l_+{T>}afDRiZiT=g?5K>XdBR>#+RqfOHrwl+tGs#1=hMoZ*{=h4~=YF z*t6UDp%o95_P##SG{t_RYzhjsF( z5{(^0Mh9H>jpL-wO?+oxW$5iR`#eGF>b@Pv>=cfN9Z4VIc~$<3Za@DR3Z5P zzy<+_;~5Gg9_?3QPz!?DG2A3VBkk0}%86SL3=fu9WR?u-HqQeJ9h1k{oLU+9*W8vt zjp?H*F8UZQEo~W8STv4Saq%!9pzpy1{Ljx&d5Z^c(Jm7Z3_VnuK_4uPh~7Mpk(&Q? zq$W1fE1V*w@FO&w{Rok8K?A)@DRw=PBYd_BX$!X<`` zA~ESitBup*#vtfsCfz7GkpLQ(WnSZp;zepKo#)L@?P`i#YQpdm(au6Wc^uQ`(5)1@ z&O{_!mSIB8FNOXFE&FEBqd5EG9{>7xOVWqMw z_jImOPx|8r86{jxyLm&D)9O;mZsqP&%)OWV#E-;X%5h1FsPOMg%Dpr0n>2gYCY^_+*1D+$6^#!f4~|_=&}dnaui+ei{bOS0DSEeV&dCtA)}I z`lt9bRvn)h(u=$x^RiZhW(T$75N0YhRHN-u&HAL8_eKEtwXrLHGhe$uau3_#vfqe)O#t{zAIPMUm_vrNt zwKlWBv%!k{+9bOJcBf`wnA4hV{lh3!GoypV)IY43CEDM~tSfrG54De5+Q@V!8ahLs zmzD^t#n$8)$yeT~J$O*CMK{wec?%oX#~5fDS#P3`Taemry+fAGxCZd*3adywp<++XS^`qqj}ay>YnpF>X~ zP{S#a-T805u>a`bYO}Z?b;T-jzOwhr7Z)kz0|pD5KmUea-+3`|ef=JKe<%8_5kX!F zKP!uy5h_mcq`BRRs2$WKwz7%(M2{S3ZSW*`28Oi>SXIivFrR8kO-s#5MWI1LYC@_b zBZKQ7&d@mU8A*=j*Vq5A#}~Ka)9HskX|t7hF7vnWJFbDcP5&Un(FF0VoTf6n)nq8wt z4V+oCyn6Y&&ka7XuvZVlP5ZF+(BY^5?RU>`Wsx6OJ-&O@3(9+al`kjG7qed-dY{sd zSvi^fml7`4g!z2?y@+NxRxZA~sd&2SYHX@S5P7|T(^K@RG z+6D<+nRo`nv~VUV^H4tbxp2R(-$U~h4hQY8F2tt<&6t0IPrJwuJEN87ymn5aHg|-q z?S3lP(fwuG^Xo*XWxaF)8qJB%P)T!2xJ+5VcJuV!Ieh+x&f-jS;`1Z~vnEYI=OrsN zy^G4q=;5ohK#v}uM20vk{`M8*7n;#b!q+cYk1K|^tX`n}2u+ciYSPN#pCJ*elvA2I?4H1KARTb0jlq*Crlz6rD7#(jRHr#3)of195P15z3Ti+j zHh*qMogh(PLM=~+{ZB7NU`_S7@zE9kSPt-xpa}aLsv3q0-?r;{PoEc`9CW;V@UG#- zJ#s6mx+ayEmGr6TRnZ$a01R!oLwNdTPF~O4!4D2wzO8fHLzP`}3i@>_o!+;r@;}8D zeR_oYAmh*S_IFSpIGVTbsXPtJf|VVQl}2qz9yv-zi^#UhGc?t(x>1kCJn!vz2T#N+ zxe)D=&oaMyP;>-T1|1RithvaC^p1bPXhrFq%tLJvwOvL=KBRYQ;`LtY>)f08iBE!w ze8?AowxS*VG4BsIsZpQi|I7R13l_lpdtm(d2dBn@I?93355W7YzJD~0+aUCya-e(> zoEG3Jc&sDNas4E?bJ6!-`qi0aeJsPXs4!PqpYD9l4mr>B`(-Bd`#b>ztGIs0bA7KvZuik*xgnIKv&1P4j zU0xaNl2~s^n>(Sr;ia9=KDXoX=bqi(@=CO|mY!p$dbU58wd#e7SFT)q|KpD#R}ndv z>5Vz8rdh(LR~el6aEz2>JuxRqcEOAb^U-Y05*u$&O+_Ukvt7Y+U~^Y&OV#VfTU?^t zr7Z2R*|&caK7!y^)U19`_s$!~U>Lli?J<3-`^YhGWG%Mu8Q5e9mx*d$b)hzx8O8sQ!HN8CwbjY7WbtWThRt4CWa__R3NY~ zps3cg12Y$-0y}=zwaheY?4ql|eGggE53a?1SNVshoqbCzi*#l8UGtGopg2GFZ35{GFK1>F38Z1O*UNj6%fVdx@aYcJ&GU$Ch z>B_8H{UqbifxY_lNYCm`IO)=wj2Q>bdD+=*e1LY)@X zN|%~dk4L(8Rj+OA`eRY2PDO>dvk_dyDZA+H%HaF1;35rKEN*Aq#{6!U!MIa>UE0|g zq2r+s=W9My$HTK*B-W`Od%QbQ_1M>81fFCgP?tnyP(1gl!k~F5%!v`@(aus5&jB$Q zEDuFtp!$CmgP>Me1B+S8>muq;0pVQ$)8Mwz`k0K6PDf<~)zdQ7<`{2B+`cIbN%Nk? z?DaI%PBrBrY2Nd7JjFiYg3N-AgLob8C#Lmva5dSLQ0k`(oT;PtFH^|y+{nW;)=AdV zwV(s!PwIY1u?WWVVDWCvMpQSpZMkEOkhJ`yrV;1>c~Kn^-w({fch(@@5}jp|@*YOe zSc=-Xh*(PFGZ?dxc0a0PNV)RFE%W>vBl^+oU35f=@`gG>6UDXh8b;hsD>I@adMRqp zFG7~lJoiw<==M;0p(BvFEo1doFJkQrHOTcupDX3mh;Or=Rb`>@1a?$?PQ$h1arSJl zIkJUY1=%+gd&whbk;Bn!keT}xyH7A8E&6pEH-~E^^T~JoWPS;MfWIubgr36P!fc^N zcux31Ocd`FUl4CfWzrMU>vF!lUVc-)sY%k5YQ||^)b`Xqq`ji^>W1i6>5l2O`Xc>k z{UiDV`tJ;W!z4qk;WuNMajWqq;}50;(+JZV)AOdQX2G0nE;f%c-*4Vz{=rgaS!DUZ z>a&iv{s)p`wC!=*C$^vL{q4)_Z$i>ccRb7J>cS3TDf#w2X$u{QA^Ngb00B|V&UGU*@5_T-}E znaOp@uOxq%{B24_N;qY5%KVfyDLYf@QhrSpQ(dW9sfDS1QvY9PR|4PEapu2~o+bGp zHsB;A0_(}o5;l^2NEm!@2-^}i=JFvTLrX2&vL!GUNEQSLjnjmL6`@H;O0FhN2+i4T zpJBHlDNPUBq->KW*_6#TZ5AAwqs`HzP0}p|)c?HqY%4U~-QPZY=KJQG`}@8b&Ad6@ zgGGmnju-v1=*^-}Ehfu6%Y&A~mgAORTHdn!S*#Tw5M}X);!EOb@gu9wy3cyI^)c&H z))Us(tnXUS6;CO)6yH>QXYnJ&PZmE{{A%$#Qn_@8bV&La=_k@j>CKV_B`ZqSmkgC$ zTXIXuy(N#794+}-$*)R&S8~>tYny3v+7{YY+Sb^9Y>ti%v)g7rKKpyKpP&8u?006Tu_0wq*xM*K4k~Tz@Rrmlu}X%B#zlmIuot<=e|s<@c69QU320wu(cQjg_61;mWO* zH&)(O`Sr@5R(^n^cFwBhRo7KLS~cdL?k;i9b^F|F+!6N<_g?qc-J|Yj-Dj}JE8A1! ziF&U0{Kzxr`N;E^xomF9+~&EVxer$tR^M2CZeHiSN9X-u-p}W~I`6{#S@RdnUpN20 ziNF7@$*!4NQ(WVzSzOavGg5PF%>y;(YddT2tNoyEW?g;V(z=eizPe=Hjdcg=4%U6U z?&-Q`>waDLUfucnOX|h?s``fdj{5cWvHG2An<93_uXk^`dCHga7kq-xf$^3`C#tLV za(L45{K>!GbN*!ZK@;BCVBC*!F@J;?l(l9O3egL2Bhg*@YTBLUAdhf6U2ix*k*rr~ z3;QYU)~%;@n1#XyS_8ib`;->zZl_MHf8VA1kP1QThdBn*2eTf=0kaz>sktM784Z*7cMHD*Z8n`S*3t=s z38tQQ2`_8#kMQfG4ZaM`$pWKI`OD&b`wN8g0_ zFQbmHkOh8+@FtE7wRE{qg)~g~FyS-Qt~Y^)5%vLKGq3wN-+?~^!}+ok#=^s(?mJPo zYQv+{r#p#zpw3b|{34w1oF-8EtbP++tI(dq9XQXCRjJFzBxfz8Eu7cvWwL?3Tu-?D z<1DQ!1LF@`^Nx}z`Q5?l(tOpo%24^aGm0A&ihOQ-gDV< z8Sr}Y{QnN3t~`HU=g);)A0cC2e-0IX@N#m#{11@pF4v)d2%*=!KG1IhEJPh|RqLF7 z9`&wuY#E+0ex1Ea{D&_@y50&^YOb0OdK!R}GI zam7LzI(ax=2HrRF{%Kstb&pfhn50?Upxy5hPC?E#w9$4tg!{7)^?dzAeKPs0wwnaz z+p~C|%H@br+zFU0m?OIS^m8hneggQPVBUs%4b1n1_1G(p(VS`D`A6}S^R2($b75!p zL1lb5S!g~I)C=EbxAIYS);(Ds)XAbk=u|)Z$b|3n8gNC6pwkHt;AIY?w!)P1B&wEl zG?JIZ^mzkD^>l-2pDrj8`v&*JS^%F7h!{~KNo`!2hnr>&!`+QoS@3J77Wy*%95+JD z#>EmL){AdB?`IEUb@W4))|qwlb;oqi>R!|Rric|SF4|r6r=q`zIx$XKI7nFJy~$g^g#fK2!6?i8sFZ#w}x;#sVn5Gt;5q!M~&Y?*yD_nS9uOdJ}E!Ep`XJ z&AvwOumd1?|V*E3ozGYY5T^OaL_bFxiF1MV`>F>;DB>-Ncdn>f`U zl6+FA+2s^{Ga^kcr%&>C%VJ2B0R+3$3?GoBkSunKvK=6lLGG5l2-$y8NUs{wI}wr< zhzn=|&q5OA7n&sTC|lbW1ir6H>JsJm6?}z)3wFgZ1rDnfF_cpA(uzLWzcrHbb)$@I zG&iSFY7FPNoHUw~3p5v)TqqCf}()&`Wo8+ku zxlC%3%Xa*B26z;fol=uecJNeN+b8mAoy?NSS+)X6OnpMAj`aR}s7D4Rq)`mEf=`Hh z%DP5uO$b`~WA;NTsgz$5{i*I$=xBPRM-mI9)M#E_YO@dQrqw~2f&TPfv+TdQOD^b+ zusRe~sk*k#V1i=-m=z+u9LK;itQ$Px67|dqeU_5439o z7mQROU-GHhDy61P6>BR{MuZhn=$5{yC}-Ja1CNy%0XoT}q+mfLmwc*%_sz(_K6RQ{ zDYlN2BeW_qyzijC?_o3bOi$Swh_I5$ST~aXI#nlcRDm#tr@Ss}ImCj&mht%4( z7T3yvr1)?To}6IwU6hOzG^@!#0cDfTBnEY6eHQ{2fFSyTNDT{M%SM|CrT`3As9bRy z7KlM+rt#1yhFm84!cAH@?*2@oaOiD~&Eu&VxD)9#Hk++z;>zQ4>fkME86&!hGqsuf zaW8aJ@HRm|8#ztoWZA?imeJQCUxIhVw{$!VV2hV#NwX)XE2A30ETf?Zt_Oy+9 z*`AKI!KW~k7x#1q59^q&vAdybv;=;^r$qc{C{!J%av~2RatBYT9S)Nc-u#r8XhiW9 z6oTUJJ<3R-sewRa)O%E?(h8Jtqjn`DFX`YTs6O8D6a>&rDs4oeb@6AEI7huXSzePj z8*hZC=**)iHA)7`)A*&$W^^PEi^b+q#6lTCKFUT$v%O|D#0WxoyVMc~0JN+FYlBDf z2+M|pOmVw_JpV-G0<(jTYs=JFfHo6R=!9RvM(jtgST7-fa^5h&T+#u&l z4V=E1(-*6B1E(9M2AN&P5PbygZnex{cdiRs(ImwyPnc5$?{i6Yp;Ji}yy^1Zoo#Iv z10pL5Seo?#OA*V*0O~tM`W3Bq%kox_rPXh<*yk1mY@U+971PreqmZ^3^l8ho7LTO` ze$zeE0(b`-5Il&jXZiZYc;TmC>c7JBuAfPs;=oLgIdGZh(!f-fA1LtT2lDe*UA>PBilN- z?QL5t8}`T)Si3Gb%Gg)CcJJFq4YOKhcSlebXLYs8eLxCkjb26#U5SLlu|6@J#5N{} zW7v@xR*-Q^an4vznEw}IKjKP^MlYvi)^~CC>@$zRzsYeMMr!YI@}zyCkmHCo{oEbt z_b=>D|Ng>bpv<^{5!(Of!4RK6dvQnN>vR|0LSLo3X%Ah;^6@5?KPKuYynV$7rHSG& zD$dW>#5G)p{i!!-xE@{iehn9}hV`t5XJLoHI~r~v5o)cba|!NU7O9D%GypRUvxCCa zhcS2`h2RbW>!lcN#{2lV5-I|!NRPp|aniI3#-(9Z?H`(2y8sgcnsG?amM{8(-bcX zu?Bg>k(XKuaUz%TnExncUgu$yxDNB23cUN~f7r_pN(kJEAk}iEh6C^&MC!dt-4d`9 zpe)B+qmg_#H{Ai7bE}-6(M3n0Jn4Q&_;Vi2z=&b>9+JWd2CSbLp$pkq-Ot5NhbfRb zZY01e7S2FIQ!m9^`^zEYD{v18zJrAIw<5f&7qR|Yj9Uduu=~o6)!b6tW;TZ$C__2Q z#ii#a{$pQ_6JhhI20KXWz~=?HCw~zw#$0R(?(J)YcKFB-x$;@rGR*Rp2dmmKBiCUApJAus?X84sRum06*~EI@bqW&Z}dCx z>=k;6UPdP}Kp&!|{s;XMC*>maF1?R4^&23CjkF2U7{V+sMq3~&F8L(nxE0d-JzWh= z-%dMe7hOX~=|OZyU#1bX!uRL{dK&!^Kby@DK<3bSx`0n8@t=T8u_Me zSS1#p-I#sOWz}pRn@?}h8CJt;SslLbynroK=38F2gf(DkyNUUjpJW^OwCESuRD7H0|iPa31w=-2cc^i8MfS9FREvn1Qf zwy~?(cI;Q!Nr&kOeV3l3pJ3JRU$J8M6`bULf?dOQ(KGY|I!1qHU&h>hgk48B(;wJZ z*!AoNwwv9^Zen{di%j8O`J353_EmNZyA>Zr-p_7lcd)Oq1DI>x#qMVJuzT6p*?sJO z_6^L24 z=#9n0#wD9Vz46$PF{DDnlAd^YYuFG{fN@D|AT|`{w+dLUQH!_I}%{`&G5P@Zg4o3(3 z!p5jp+^EWos9F+TbVKg4$!NJ7Ch@%1jC}Goe#S8n4~K^aLqmPhUc>TGZ*n+n7*s&s z^2~6984km8wa$YI5SH`04Zt=oD4yIj7)lOLiDkMB?P?j~Y8l!yvdxQUI1KG- z8R9DFP-7(&klQiIy4=Jhp4XX?K;CeM!_cWFGpqoilS^!vODv#B%#c(C7tm^z)M^z_ zYn4<$Rv;c78puj=drBa)PE(SZE@ME`z@!RuubM1j?zRlPD+Av?i5u3cb={$WoV5^~ zrsX>((5%7O&_E(*2``HpEHr@{m-rNtF%(u{?yAIKC=pTd*d(6Uk-?xmwCV}9H(WIk z51}z{Q^8eARKqp}WM9=64adWYXd-*tIA-Wl18!HrrsxpY(nPp7Hq@6L>W@Y%Yij3K z88(L#;o*?rOU7dgbzYUbrj~at{)Wmb4Z2OJ<6tDeg*pdO&nHM`70IZZfNAN%IEQEPzhJ%t5o~} zl|oj!{T}X*LXX3_S*s$k_)u0%u>*>oFeYGw zq2VFqQ$V^EtCov2qkYv15hEnNdxVGLP{&8c8YaM%H5eVhDEKpWtap&?gNltv7!oKp zAJG{w#!_8)Lyr;&$}b$o2%rke7y<84m2;u|YwZlZ)!&xrm8*yP)= literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff b/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..efb8f0d315246d381774a7f96cfe3c55455d9f18 GIT binary patch literal 24364 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 K!~p7Ibs~ literal 0 HcmV?d00001 diff --git a/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 b/database/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9b582203f24b1d0369d49197f4e5b25bb8199da7 GIT binary patch literal 19396 zcmV({K+?Z=Pew8T0RR91087LG5dZ)H0GnU{083y10RR9100000000000000000000 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 P#7S=ha@*g%9{>OVX?CUy literal 0 HcmV?d00001 diff --git a/database/web/assets/pfk.svg b/database/web/assets/pfk.svg new file mode 100644 index 000000000..b1ad81b3c --- /dev/null +++ b/database/web/assets/pfk.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/pk.svg b/database/web/assets/pk.svg new file mode 100644 index 000000000..427f25ef2 --- /dev/null +++ b/database/web/assets/pk.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/union.svg b/database/web/assets/union.svg new file mode 100644 index 000000000..dbf0f679a --- /dev/null +++ b/database/web/assets/union.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/watermark-meteor.svg b/database/web/assets/watermark-meteor.svg new file mode 100644 index 000000000..d54133766 --- /dev/null +++ b/database/web/assets/watermark-meteor.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/watermark-moon.svg b/database/web/assets/watermark-moon.svg new file mode 100644 index 000000000..5895b0422 --- /dev/null +++ b/database/web/assets/watermark-moon.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/assets/watermark-perseid.svg b/database/web/assets/watermark-perseid.svg new file mode 100644 index 000000000..45767fdf4 --- /dev/null +++ b/database/web/assets/watermark-perseid.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageBricks.svg b/database/web/backgroundImageBricks.svg new file mode 100644 index 000000000..a48f8ae4c --- /dev/null +++ b/database/web/backgroundImageBricks.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageGrid.svg b/database/web/backgroundImageGrid.svg new file mode 100644 index 000000000..a745d2bd0 --- /dev/null +++ b/database/web/backgroundImageGrid.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageLines.svg b/database/web/backgroundImageLines.svg new file mode 100644 index 000000000..089664d53 --- /dev/null +++ b/database/web/backgroundImageLines.svg @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageSquares.svg b/database/web/backgroundImageSquares.svg new file mode 100644 index 000000000..f60a26a7d --- /dev/null +++ b/database/web/backgroundImageSquares.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/backgroundImageTriangles.svg b/database/web/backgroundImageTriangles.svg new file mode 100644 index 000000000..9279ebca4 --- /dev/null +++ b/database/web/backgroundImageTriangles.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/compare.css b/database/web/compare.css new file mode 100644 index 000000000..4d7450178 --- /dev/null +++ b/database/web/compare.css @@ -0,0 +1,186 @@ +.im-code-split { + display: grid; + grid-template-columns: 50% 50%; + grid-gap: 10px; + margin: 10px; +} + +.im-code-fullwidth { + display: block; + margin: 10px; +} + +.im-align-center { + text-align: center; +} + +.im-code-split > div { + display: inline-block; + display: flex; + flex-direction: column; +} + +.im-code-split pre { + flex-grow: 1; + overflow: auto; + color: #ddd; + font-size: 14px; + line-height: 150%; + white-space: pre-wrap; +} + +.im-content-spacer-lg { + height: 25px; + display: block; +} + +.im-content-spacer-md { + height: 15px; + display: block; +} + +.im-content-spacer-sm { + height: 10px; + display: block; +} + +.mm-d-c-c-i { + font-size: 12px; + text-transform: uppercase; + color: #888; + padding: 3px 10px; + background: rgba(0,0,0,0.25); + display: inline-block; + margin: 1px 1px 0 1px; +} + +.mm-d-g-3 .mm-d-c-c-i { + padding: 4px 7px; + font-size: 10px; +} + +.mm-d-g-3 .mm-d-v-s { + background: rgba(0,0,0,0.25); +} + +.mm-title-section { + margin-top: 30px; + font-size: 20px; + color: #ddd; + margin-left: 10px; +} + +.mm-left { + border-bottom: 2px solid darkorange; + color: darkorange !important; +} + +.mm-left-text { + color: darkorange !important; +} + +.mm-right { + border-bottom: 2px solid lightgreen; + color: lightgreen !important; +} + +.mm-right-text { + color: lightgreen !important; +} + +.mm-modified-text { + color: rgb(3, 169, 244) !important; +} + +.mm-side-icon { + margin-right: 4px; +} + +.mm-subtitle { + margin-top: 20px; +} + +.mm-subtitle-col { + text-transform: uppercase; + margin-top: 21px; + font-size: 11px; + padding-left: 10px; +} + +.mm-compare-message { + margin: 10px 0 20px 10px; + padding: 10px; + color: #ccc; + background: rgba(255,255,255,0.05); + font-size: 14px; + font-style: italic; + border: 1px solid rgba(0,0,0,0.2); + box-shadow: 0 3px 6px -6px #000; +} + +.mm-compare-text { + padding: 0 10px; + color: #ccc; + font-size: 14px; + white-space: pre-wrap; +} + +.mm-author { + color: #fff; + margin: 10px 0; +} + +.mm-nav-a { + text-transform: capitalize; +} + +.mm-section-group { + display: none; +} + +@media screen and (max-width: 992px) { + .mm-section { + display: block !important; + } + + #mm-main-navs { + display: none !important; + } + + .mm-main-report-area { + grid-template-rows: 1fr; + } + + .mm-fullpage-wrapper { + max-width: unset; + min-width: unset; + width: unset; + margin: unset; + } + + html, + body { + overflow: unset; + } + + .mm-section-group, + .mm-statistics-group { + border-bottom: 2px solid white; + font-size: 18px; + text-transform: uppercase; + letter-spacing: 1px; + padding: 5px; + text-align: center; + font-weight: 700; + margin: 10px 10px 5px 10px; + color: white; + } + + .mm-section-active { + height: auto; + } + + .mm-section-group { + display: block; + } +} \ No newline at end of file diff --git a/database/web/datensen-moon-modeler-report.css b/database/web/datensen-moon-modeler-report.css new file mode 100644 index 000000000..83313d6e1 --- /dev/null +++ b/database/web/datensen-moon-modeler-report.css @@ -0,0 +1,471 @@ +.mm-main-report-area { + display: grid; + grid-template-rows: 42px 1fr; +} + +#mm-main-navs { + background: #333; + z-index: 6; +} + +#mm-nav-expander { + display: none; + background: #222; +} + +#mm-nav-expander i { + color: white; + cursor: pointer; +} + +.mm-main-hamburger { + padding: 10px; + display: inline-block; + margin-right: auto; +} + +.mm-nav-tabs { + display: flex; + flex-direction: row; + box-shadow: 0px 0px 5px -2px #000; + border-bottom: 1px solid rgba(0,0,0,0.2); + background: linear-gradient(180deg, #222, #222); +} + +.mm-nav-a { + display: inline-block; + padding: 10px 20px; + text-decoration: none; + color: white; + cursor: pointer; +} + +.mm-nav-active { + background: rgb(3, 169, 244); + color: white; +} + +.mm-tab-content { + display: none; +} + +.mm-tab-content-active { + display: block; +} + +.mm-ml-auto { + margin-left: auto; +} + +.mm-mr-auto { + margin-right: auto; +} + +.mm-display-none, .tob { + display: none; +} + +.tob { + color: white; + padding-top: 20px; + padding-left: 20px; +} + +.mm-display-block { + display: block; +} + +.mm-side-hidden { + width: 1px; +} + +#placeholder { + max-width: 60vw; + max-height: 90%; + position: absolute; + top: 100px; + left: 0; + right: 0; + margin: auto; + background: #333; + box-shadow: 0 0 20px -10px #000; + border-radius: 4px; + overflow: hidden; +} + +#mm-content { + overflow: auto; +} + +#mm-side-wrapper { + display: grid; + grid-template-rows: auto 1fr; + height: 100%; + width: 100%; + overflow: hidden; +} + +#mm-report-content { + overflow: hidden; + height: 100%; + width: 100%; + display: grid; + grid-template-columns: minmax(250px, max-content) 1fr; +} + +#mm-report-content.mm-report-content-cols-1 { + grid-template-columns: 1fr; + grid-template-rows: 1fr; +} + + +#mm-content { + height: 100%; + width: 100%; + background: #333; +} + +#mm-side { + background: #404040; + overflow: hidden; +} + +#mm-side-content > div { + display: none; +} + +.mm-section { + display: none; +} + +.mm-section-active { + display: block; + height: 100%; +} + +#mm-side-content { + overflow: auto; +} + +#mm-side-content .mm-sidenav-active { + display: block; +} + + +.mm-sidenav-item-active > div { + background: #222; + color: #fff; + cursor: pointer; +} + +.mm-detail:not(.mm-display-none) { + /*display: grid;*/ +} + +.mm-detail { + padding: 20px 30px 20px 30px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.mm-subsection { + + + padding: 10px; +} + +.mm-props{ + background: rgba(0,0,0,0.1); + padding: 15px; +} + +.mm-subtitle { + color:darkorange; + margin: 2px 8px; + font-size: 12px; + text-transform: uppercase; + +} + +.mm-d-g-3 { + display: grid; + grid-template-columns: minmax(200px, auto) 1fr 1fr; +} + +.mm-d-g-c-m-3 { + grid-column: span 3; +} + +.mm-d-g-4 { + display: grid; + grid-template-columns: repeat(4, auto); +} + +.mm-d-g-c-m-4 { + grid-column: span 4; +} + +.mm-d-g-5 { + display: grid; + grid-template-columns: repeat(5, auto); +} + +.mm-d-g-c-m-5 { + grid-column: span 5; +} + +.mm-d-g-6 { + display: grid; + grid-template-columns: repeat(6, auto); +} + +.mm-d-g-c-m-6 { + grid-column: span 6; +} + + +.mm-d-hor { + display: grid; + grid-template-columns: auto 1fr; +} + +.mm-d-ver { + display: grid; + grid-template-rows: auto auto; + align-self: flex-start; +} + +.mm-d-c { + color: #999; + display: inline-block; + font-size: 12px; + font-weight: 300; + padding: 5px 8px 1px 8px; + text-transform: uppercase; +} + +.mm-d-v { + color: #fff; + display: inline-block; + font-size: 14px; + font-weight: 300; + padding: 1px 8px; + align-self: end; + background: rgba(0,0,0,0.15); + height: auto; + margin: 1px 1px 0 1px; + min-height: 20px; +} + +.mm-d-c-i { + color: #999; + display: block; + font-size: 10px; + font-weight: 300; + padding: 1px 8px 1px 8px; + position: relative; + top: 3px; + text-transform: uppercase; + align-self: end; +} + +.mm-d-v-i { + color: #fff; + display: inline-block; + font-size: 24px; + font-weight: 300; + padding: 1px 8px 1px 8px; + align-self: end; +} + +.mm-d-v-i:after { + content: ""; + width: auto; + height: 2px; + background: rgb(3, 169, 244); + margin-top: 2px; + display: block; + +} + +.mm-d-c-l { + color: #999; + display: block; + font-size: 10px; + font-weight: 300; + padding: 4px 8px 6px 8px; + position: relative; + top: 3px; + text-transform: uppercase; + align-self: end; +} + +.mm-d-v-l { + color: #fff; + display: inline-block; + font-size: 14px; + font-weight: 300; + padding: 1px 8px 15px 8px; + align-self: end; + white-space: pre-wrap; +} + +.mm-d-v-s { + + position: relative; + padding-left: 20px; + width: -webkit-fill-available; + width: -moz-available; +} + +.mm-d-v-s:before { + content: " "; + width: 4px; + height: 4px; + background: darkorange; + position: absolute; + left: 8px; + top: 10px; + display: inline-block; +} + +.mm-g-s-2 { + grid-column: span 2; +} + + +.mm-spacer-xs { + height: 0; + background: #333; + display: none; +} + +.mm-d-i { + padding: 10px; +} + +.mm-modal-fix { + display: grid; + grid-template-rows: 52px 1fr 56px; + border-radius: 5px; + user-select: none; + max-height: 85vh; + max-width: 60vw; +} + +.mm-no { + color: rgba(255,255,255,0.6); + font-style: italic; +} + +.mm-yes { + color: rgba(255,255,255,1); +} + +.mm-props .mm-d-v { + background: transparent; +} + + +.im-btn-default { + padding: 8px 16px; + border: 1px solid transparent; + + font-size: 12px; + border-radius: 20px; + text-transform: uppercase; + color: white; + background-color: #2196f3; + transition: background-color 0.3s; + cursor: pointer; + } + + +a, a.active, a.visited { + color:rgb(3, 169, 244); + text-decoration: none; +} + +.mm-fullpage-wrapper { + max-width: 85vw; + min-width: 50vh; + width: 80vw; + margin: 50px auto; + color: #eee; +} + +.mm-header-1 { + font-size: 26px; + font-family: "Open Sans", "Exo"; +} + +.mm-header-1::after { + content: " "; + display: block; + height: 1px; + margin-top: 21px; + background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), #4caf50, palevioletred, red, orange, #2196f3, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); + width: 100%; +} + +.mm-align-center { + text-align: center; +} + +pre { + background: rgba(0,0,0,0.1); + padding: 10px 20px; + margin: 1px 0; + white-space: pre-wrap; +} + +.mm-description { + color: yellowgreen; +} + +#mm-search { + background: rgba(0,0,0,0.1); + box-shadow: 0 0 10px -3px #000; + z-index: 2; +} + +@media screen and (max-width: 992px) { + #mm-nav-expander { + display: block; + } + + .mm-nav-tabs { + display: flex; + flex-direction: column; + } + + .mm-nav-a { + display: none; + padding: 5px 10px; + } + + .mm-ml-auto { + margin-left: 0; + } + + #mm-report-content { + grid-template-columns: 1fr; + grid-template-rows: 1fr 1px; + } + + #mm-side { + height: auto; + } + + #placeholder { + max-width: 90vw; + top: 50px; + } + + .mm-modal-fix { + max-width: 90vw; + } + + .mm-detail { + padding: 10px; + } +} \ No newline at end of file diff --git a/database/web/else-dark.svg b/database/web/else-dark.svg new file mode 100644 index 000000000..907ee3587 --- /dev/null +++ b/database/web/else-dark.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/else-light.svg b/database/web/else-light.svg new file mode 100644 index 000000000..907ee3587 --- /dev/null +++ b/database/web/else-light.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/guidancedb.dbml b/database/web/guidancedb.dbml new file mode 100644 index 000000000..f9a2a4303 --- /dev/null +++ b/database/web/guidancedb.dbml @@ -0,0 +1,16 @@ +// Use DBML to define your database structure +// Docs: https://dbml.dbdiagram.io/docs + +Table Benchmarks { + id integer [pk, increment] + title varchar[256] + vendor text + release int + version int + release_date date +} + +Table Test { + id int [pk, increment] +} + diff --git a/database/web/if-dark.svg b/database/web/if-dark.svg new file mode 100644 index 000000000..09fa21779 --- /dev/null +++ b/database/web/if-dark.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/if-light.svg b/database/web/if-light.svg new file mode 100644 index 000000000..09fa21779 --- /dev/null +++ b/database/web/if-light.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/im.css b/database/web/im.css new file mode 100644 index 000000000..5451901c1 --- /dev/null +++ b/database/web/im.css @@ -0,0 +1,536 @@ +@charset "UTF-8"; +@font-face { + font-family: "im-line-icons"; + src: url("./assets/im-line-icons.eot"); + src: url("./assets/im-line-icons.eot?#iefix") format("embedded-opentype"), url("./assets/im-line-icons.ttf") format("truetype"), url("./assets/im-line-icons.woff") format("woff"), url("./assets/im-line-icons.svg") format("svg"); + font-weight: normal; + font-style: normal; +} +[class^=im-icon-], +[class*=" im-icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: "im-line-icons" !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.im-icon-toolbar { + font-size: 16px; + align-self: center; + justify-content: center; + text-align: center; +} + +.im-icon-12 { + font-size: 12px; + align-self: center; + justify-content: center; + text-align: center; + color: #666; +} + +.im-icon-16 { + font-size: 16px; + align-self: center; + justify-content: center; + text-align: center; + color: #ccc; +} + +.im-icon-20 { + font-size: 20px; + align-self: center; + text-align: center; + justify-content: center; + color: #ccc; +} + +.im-icon-sm, +.im-icon-sm-disabled { + padding-top: 0; + text-align: center; + display: flex; + border-radius: 2px; + justify-content: center; + transition: 0.3s background-color; +} + +.im-icon-sm:hover { + background-color: rgba(0, 0, 0, 0.2); + transition: 0.3s background-color; +} + +.im-icon-key { + height: 16px; + width: 16px; + margin-right: 2px; + margin-left: 2px; + vertical-align: text-bottom; + padding-bottom: 1px; +} + + +.im-icon-AddRelationCursor:before { + content: "\e91a"; +} +.im-icon-AddTableCursor:before { + content: "\e93b"; +} +.im-icon-ArrowCursor:before { + content: "\e93c"; +} +.im-icon-Add:before { + content: "\e98c"; +} +.im-icon-AlignBottom:before { + content: "\e960"; +} +.im-icon-AlignHorizontalCenter:before { + content: "\e961"; +} +.im-icon-AlignLeft:before { + content: "\e962"; +} +.im-icon-AlignRight:before { + content: "\e963"; +} +.im-icon-AlignTop:before { + content: "\e964"; +} +.im-icon-AlignVerticalCenter:before { + content: "\e965"; +} +.im-icon-Arrow:before { + content: "\e941"; +} +.im-icon-Bottom:before { + content: "\e930"; +} +.im-icon-Comment:before { + content: "\e972"; +} +.im-icon-Composite:before { + content: "\e98d"; +} +.im-icon-Configuration:before { + content: "\e92e"; +} +.im-icon-Copy:before { + content: "\e942"; +} +.im-icon-DisplayMode:before { + content: "\e970"; +} +.im-icon-Edit:before { + content: "\e91b"; +} +.im-icon-Edu:before { + content: "\e974"; +} +.im-icon-Hamburger:before { + content: "\e966"; +} +.im-icon-HamburgerBold:before { + content: "\e967"; +} +.im-icon-Hidden:before { + content: "\e91c"; +} +.im-icon-Layout:before { + content: "\e943"; +} +.im-icon-Left:before { + content: "\e91d"; +} +.im-icon-Line:before { + content: "\e975"; +} +.im-icon-LineMode:before { + content: "\e94c"; +} +.im-icon-New:before { + content: "\e91e"; +} +.im-icon-Note:before { + content: "\e948"; +} +.im-icon-Open:before { + content: "\e91f"; +} +.im-icon-Paste:before { + content: "\e944"; +} +.im-icon-Projects:before { + content: "\e94d"; +} +.im-icon-Query:before { + content: "\e931"; +} +.im-icon-Redo:before { + content: "\e945"; +} +.im-icon-Relation:before { + content: "\e920"; +} +.im-icon-RelationDashed:before { + content: "\e94e"; +} +.im-icon-Right:before { + content: "\e921"; +} +.im-icon-Save:before { + content: "\e922"; +} +.im-icon-Script:before { + content: "\e946"; +} +.im-icon-ShowChildren:before { + content: "\e923"; +} +.im-icon-ShowData:before { + content: "\e924"; +} +.im-icon-ShowDescription:before { + content: "\e925"; +} +.im-icon-ShowMetadata:before { + content: "\e926"; +} +.im-icon-ShowParents:before { + content: "\e927"; +} +.im-icon-Table:before { + content: "\e928"; +} +.im-icon-TextNote:before { + content: "\e986"; +} +.im-icon-Top:before { + content: "\e936"; +} +.im-icon-TopDiagram:before { + content: "\e937"; +} +.im-icon-Trash:before { + content: "\e929"; +} +.im-icon-Type:before { + content: "\e949"; +} +.im-icon-Undo:before { + content: "\e947"; +} +.im-icon-User:before { + content: "\e92f"; +} +.im-icon-Visibility:before { + content: "\e92a"; +} +.im-icon-export:before { + content: "\e971"; +} +.im-icon-Add16:before { + content: "\e97b"; +} +.im-icon-AddToDiagram:before { + content: "\e989"; +} +.im-icon-AlignBottom16:before { + content: "\e968"; +} +.im-icon-AlignHorizontalCenter16:before { + content: "\e969"; +} +.im-icon-AlignLeft16:before { + content: "\e96a"; +} +.im-icon-AlignRight16:before { + content: "\e96b"; +} +.im-icon-AlignTop16:before { + content: "\e96c"; +} +.im-icon-AlignVerticalCenter16:before { + content: "\e96d"; +} +.im-icon-ArrowDown16:before { + content: "\e900"; +} +.im-icon-ArrowLeft16:before { + content: "\e93d"; +} +.im-icon-ArrowRight16:before { + content: "\e93e"; +} +.im-icon-ArrowUp16:before { + content: "\e901"; +} +.im-icon-Bottom16:before { + content: "\e932"; +} +.im-icon-CheckBox:before { + content: "\e92c"; +} +.im-icon-CheckBoxChecked:before { + content: "\e92d"; +} +.im-icon-Cloud16:before { + content: "\e94f"; +} +.im-icon-Collapse16:before { + content: "\e902"; +} +.im-icon-CollapseCircle16:before { + content: "\e903"; +} +.im-icon-Comment16:before { + content: "\e973"; +} +.im-icon-Compare:before { + content: "\e977"; +} +.im-icon-Configuration16:before { + content: "\e93f"; +} +.im-icon-Convert:before { + content: "\e978"; +} +.im-icon-Cross16:before { + content: "\e904"; +} +.im-icon-CrossCircle16:before { + content: "\e905"; +} +.im-icon-Daten:before { + content: "\e950"; +} +.im-icon-Diff:before { + content: "\e979"; +} +.im-icon-DotsHorizontal16:before { + content: "\e906"; +} +.im-icon-DotsVerticall16:before { + content: "\e907"; +} +.im-icon-DotsVerticallDouble16:before { + content: "\e95e"; +} +.im-icon-Download16:before { + content: "\e951"; +} +.im-icon-Edit16:before { + content: "\e908"; +} +.im-icon-Equal:before { + content: "\e97a"; +} +.im-icon-Error16:before { + content: "\e952"; +} +.im-icon-ErrorCircleFill16:before { + content: "\e953"; +} +.im-icon-ErrorFill16:before { + content: "\e954"; +} +.im-icon-Expand16:before { + content: "\e909"; +} +.im-icon-ExpandCircle16:before { + content: "\e90a"; +} +.im-icon-FullCircle:before { + content: "\e93a"; +} +.im-icon-Hidden16:before { + content: "\e90b"; +} +.im-icon-Info16:before { + content: "\e955"; +} +.im-icon-InfoFill16:before { + content: "\e956"; +} +.im-icon-Insecure:before { + content: "\e98b"; +} +.im-icon-Interface:before { + content: "\e987"; +} +.im-icon-Left16:before { + content: "\e90c"; +} +.im-icon-Line16:before { + content: "\e976"; +} +.im-icon-Linked:before { + content: "\e988"; +} +.im-icon-LockResize:before { + content: "\e98a"; +} +.im-icon-Mail16:before { + content: "\e957"; +} +.im-icon-Merge:before { + content: "\e97c"; +} +.im-icon-Meteor:before { + content: "\e958"; +} +.im-icon-MinusCircle16:before { + content: "\e933"; +} +.im-icon-Moon:before { + content: "\e959"; +} +.im-icon-Move16:before { + content: "\e95f"; +} +.im-icon-New16:before { + content: "\e90d"; +} +.im-icon-No:before { + content: "\e97d"; +} +.im-icon-NotInDiagram:before { + content: "\e98e"; +} +.im-icon-Note16:before { + content: "\e94a"; +} +.im-icon-Open16:before { + content: "\e90e"; +} +.im-icon-Perseid:before { + content: "\e98f"; +} +.im-icon-PlusCircle16:before { + content: "\e934"; +} +.im-icon-Problem16:before { + content: "\e95a"; +} +.im-icon-ProblemFill16:before { + content: "\e95b"; +} +.im-icon-Query16:before { + content: "\e935"; +} +.im-icon-Relation16:before { + content: "\e90f"; +} +.im-icon-RemoveFromDiagram:before { + content: "\e990"; +} +.im-icon-Reset:before { + content: "\e991"; +} +.im-icon-ResetName:before { + content: "\e992"; +} +.im-icon-ResizeBottomRight16:before { + content: "\e940"; +} +.im-icon-Right16:before { + content: "\e910"; +} +.im-icon-SameHeight16:before { + content: "\e96e"; +} +.im-icon-SameWidth16:before { + content: "\e96f"; +} +.im-icon-Save16:before { + content: "\e911"; +} +.im-icon-Search16:before { + content: "\e92b"; +} +.im-icon-Secure:before { + content: "\e993"; +} +.im-icon-ShowChildren16:before { + content: "\e912"; +} +.im-icon-ShowData16:before { + content: "\e913"; +} +.im-icon-ShowDescription16:before { + content: "\e914"; +} +.im-icon-ShowMetadata16:before { + content: "\e915"; +} +.im-icon-ShowParents16:before { + content: "\e916"; +} +.im-icon-Table16:before { + content: "\e917"; +} +.im-icon-Top16:before { + content: "\e938"; +} +.im-icon-TopDiagram16:before { + content: "\e939"; +} +.im-icon-Trash16:before { + content: "\e918"; +} +.im-icon-Type16:before { + content: "\e94b"; +} +.im-icon-Union:before { + content: "\e994"; +} +.im-icon-Update:before { + content: "\e97e"; +} +.im-icon-UpdateCloud:before { + content: "\e97f"; +} +.im-icon-UpdateDatabase:before { + content: "\e980"; +} +.im-icon-UpdateFromCloud:before { + content: "\e981"; +} +.im-icon-UpdateFromDatabase:before { + content: "\e982"; +} +.im-icon-UpdateFromSource:before { + content: "\e983"; +} +.im-icon-UpdateSource:before { + content: "\e984"; +} +.im-icon-Visibility16:before { + content: "\e919"; +} +.im-icon-Warning16:before { + content: "\e95c"; +} +.im-icon-WarningFill16:before { + content: "\e95d"; +} +.im-icon-Yes:before { + content: "\e985"; +} +.im-icon-ZoomFit:before { + content: "\e995"; +} + + +/* overwrites */ + +.im-icon-DotsHorizontal16, .im-icon-DotsVertical16 { + display: none; +} diff --git a/database/web/index.html b/database/web/index.html new file mode 100644 index 000000000..c0c30b2f7 --- /dev/null +++ b/database/web/index.html @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + Report for Benchmarks made in Luna Modeler + + +

    +
    +
    +
    + + +
    +
    +
    +
    + section Diagrams - start
    Benchmarks
    Key
    benchmark_id    
    INTEGER
    NN
    version    
    SMALLINT
    NN
    release    
    SMALLINT
    NN
    release_date    
    DATE
    NN
    status_id    
    INTEGER
    NN
    Key
    type_id    
    INTEGER
    NN
    Key
    product_id    
    INT
    NN
    Key
    author_id    
    INTEGER
    NN
    Key
    sponsor_id    
    INTEGER
    NN
    Key
    status_id    
    INTEGER
    NN
    A collection of Security Benchmarks that are publied by Autors
    benchmark_type
    short_name    
    VARCHAR
    NN
    description    
    TEXT
    NN
    Key
    benchmark_type_id    
    INTEGER
    NN
    long_name    
    VARCHAR
    NN
    + + + +
    +
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    Organization
    Key
    organization_id    
    INTEGER
    NN
    short_name    
    VARCHAR
    NN
    uri    
    VARCHAR
    email    
    VARCHAR
    full_name    
    VARCHAR
    NN
    List of organizations or gorups that author or manage security guidance
    Artifact
    Key
    artifact_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    location    
    VARCHAR
    NN
    created_at    
    DATE
    NN
    secondary_location    
    VARCHAR
    raw_data    
    BLOB
    Key
    type_id    
    INTEGER
    NN
    Key
    organization_id    
    INTEGER
    NN
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    benchmark_artifacts
    default    
    INT2
    Key
    benchmark_id    
    INTEGER
    NN
    Key
    artifact_id    
    INTEGER
    NN
    artifact_types
    type_name    
    VARCHAR
    NN
    Key
    artifact_type_id    
    INTEGER
    NN
    description    
    TEXT
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Products
    short_name    
    VARCHAR
    NN
    version    
    REAL
    NN
    author_id    
    INT
    NN
    release    
    INT
    NN
    long_name    
    VARCHAR
    NN
    Key
    product_id    
    INT
    NN
    Key
    organization_id    
    INTEGER
    NN
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. + +For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Statuses
    Key
    status_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    Collection of statuses that can applly to a Benckmark or Artifact
    
    Documentation for project Benchmarks
    Benchmarks
    Project
    Name
    Benchmarks
    Diagram
    Name
    Security Guidance
    Report
    Generated
    12/14/2023 | 8:17:07 PM
    tables
    Name
    Benchmarks
    Description
    A collection of Security Benchmarks that are publied by Autors
    Columns
    Name
    Data type
    Key
    Not Null
    benchmark_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    version
    SMALLINT
    Yes
    Description
    The benchmark version number
    release
    SMALLINT
    Yes
    Description
    The benchmark release number
    release_date
    DATE
    Yes
    Description
    The date that the benchmark was published by the Autor
    status_id
    INTEGER
    Yes
    Description
    [autogenerated] id of the status type
    type_id
    INTEGER
    Yes
    Description
    [autoincrement] id of the benchmark type
    product_id
    INT
    Yes
    Description
    [autoincrement] The int id of the product related to the benchmak
    author_id
    INTEGER
    Yes
    Description
    Integer id of the organization that authored the benchmark
    sponsor_id
    INTEGER
    Yes
    Description
    Integer id of the organization that supported the development of the benchmark
    status_id
    INTEGER
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Name
    benchmark_type
    Description
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The short name name of the benchmark type
    description
    TEXT
    Yes
    Description
    The full text description of the guidane type
    benchmark_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] id of the benchmark type
    long_name
    VARCHAR
    Yes
    Description
    The full name of the Benchmark type
    Keys
    Primary key
    Column in Primary key
    benchmark_type_id
    Name
    Organization
    Description
    List of organizations or gorups that author or manage security guidance
    Columns
    Name
    Data type
    Key
    Not Null
    organization_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    Integer id of the author of the benchmark
    short_name
    VARCHAR
    Yes
    Description
    The short text name of the author, vendor or agency
    uri
    VARCHAR
    Description
    The primary uri of the author, vendor or agency
    email
    VARCHAR
    Description
    [optional] The email of the autor
    full_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency.
    Keys
    Primary key
    Column in Primary key
    organization_id
    Name
    Artifact
    Description
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    Columns
    Name
    Data type
    Key
    Not Null
    artifact_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] The id of the artifact.
    name
    VARCHAR
    Yes
    Description
    Filename that the artifact is stored as on the target location
    location
    VARCHAR
    Yes
    Description
    The URI path of the artifact
    created_at
    DATE
    Yes
    secondary_location
    VARCHAR
    Description
    [optional] A file path, uri or other location you can find the reference besides the default location.
    raw_data
    BLOB
    Description
    [optional] The raw data of the Artifact
    type_id
    INTEGER
    Yes
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the creator or owner of the artifact
    Keys
    Primary key
    Column in Primary key
    artifact_id
    Name
    benchmark_artifacts
    Columns
    Name
    Data type
    Key
    Not Null
    default
    INT2
    Description
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    benchmark_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    artifact_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] The id of the artifact.
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Column in Primary key
    artifact_id
    Name
    artifact_types
    Description
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Columns
    Name
    Data type
    Key
    Not Null
    type_name
    VARCHAR
    Yes
    Description
    The simple name of the artifact
    artifact_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the artifact kind
    description
    TEXT
    Keys
    Primary key
    Column in Primary key
    artifact_type_id
    Relations
    Name
    Products
    Description
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. + +For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The common name of the product or service - sometimes called the 'short name' - for example: +RHEL for Red Hat Enterprise Linux +VIDM for VMware Identity Manager +vSphere for VMware vSphere +
    version
    REAL
    Yes
    Description
    The version of the project
    author_id
    INT
    Yes
    Description
    Integer id of the author of the benchmark
    release
    INT
    Yes
    long_name
    VARCHAR
    Yes
    Description
    The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same.
    product_id
    INT
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the product
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the organization that ownes or manages the product
    Keys
    Primary key
    Column in Primary key
    product_id
    Name
    Statuses
    Description
    Collection of statuses that can applly to a Benckmark or Artifact
    Columns
    Name
    Data type
    Key
    Not Null
    status_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    name
    VARCHAR
    Yes
    Description
    Text based name for the status
    Keys
    Primary key
    Column in Primary key
    status_id
    Relations
    relationships
    Name
    type_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in artifact_types
    Column in Artifact
    Primary key
    artifact_type_id
    type_id
    Name
    organization_id_Products
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Products
    Primary key
    organization_id
    organization_id
    Name
    status_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Statuses
    Column in Benchmarks
    Primary key
    status_id
    status_id
    Name
    benchmark_type_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in benchmark_type
    Column in Benchmarks
    Primary key
    benchmark_type_id
    type_id
    Name
    product_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Products
    Column in Benchmarks
    Primary key
    product_id
    product_id
    Name
    organization_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Primary key
    organization_id
    author_id
    Name
    organization_id_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Primary key
    organization_id
    sponsor_id
    Name
    benchmark_id_benchmark_artifacts
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Benchmarks
    Column in benchmark_artifacts
    Primary key
    benchmark_id
    benchmark_id
    Name
    artifact_id_benchmark_artifacts
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Artifact
    Column in benchmark_artifacts
    Primary key
    artifact_id
    artifact_id
    Name
    organization_id_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Artifact
    Primary key
    organization_id
    organization_id
    + +
    +
    + + + +
    +
    + + \ No newline at end of file diff --git a/database/web/lists.css b/database/web/lists.css new file mode 100644 index 000000000..f1a54441b --- /dev/null +++ b/database/web/lists.css @@ -0,0 +1,94 @@ +.im-list { + list-style-type: none; + padding: 0; + margin: 0; + padding-bottom: 0; +} + +.im-list-item:hover { + background: #2196f3; + /*color: #fff;*/ + background: rgba(0, 0, 0, 0.02); +} + +.im-list-item > div { + /*background: rgba(255, 255, 255, 0.2);*/ + padding: 3px 10px 3px 10px; + font-size: 13px; + text-decoration: none; + display: block; + color: #eee; + border-bottom: 1px solid transparent; + /*transition: color 0.3s;*/ + margin-right: auto; + flex: 1; + overflow: hidden; + /*transition: background-color 0.4s;*/ + cursor: pointer; + border-radius: 2px; +} + + + +.im-list-item-nochk a { + padding: 3px 10px 3px 26px; +} + +.im-list-item:hover { + background: #2196f3; + color: #fff; +} + +.im-list-item i { + color: #ccc; +} + +.im-list-item:hover, +.im-list-item:hover a, +.im-list-item:hover div, +.im-list-item:hover i { + background: #111; + color: #fff; + /*color: #fff;*/ +} + +li.sel-item, +.sel-item-list-multi { + color: black; + background: #333; + color: #fff; +} + +li.sel-item a, +li.sel-item-list-multi a, +li.sel-item div i, +li.sel-item-list-multi div i { + color: #fff; +} + +.im-rel { + display: flex; + flex-direction: row; + flex-grow: 1; + margin: 0 2px; + border-radius: 2px; +} + +.im-list-btn-chk { + width: 12px; + display: block; + cursor: pointer; + align-self: center; +} + +.im-list-btn { + width: 22px; + display: block; + padding: 0 5px 0 0px; + cursor: pointer; + align-self: center; +} + +.im-list-btn i { + color: #ccc; +} \ No newline at end of file diff --git a/database/web/modals.css b/database/web/modals.css new file mode 100644 index 000000000..6f65ede3d --- /dev/null +++ b/database/web/modals.css @@ -0,0 +1,208 @@ +.modal-wrapper { + position: absolute; + top: 0; + left: 0; + display: block; + height: 100vh; + width: 100vw; + z-index: 999; + overflow: auto; + animation: toDark 1s forwards; +} + +.modal { + position: absolute; + top: 50px; + margin: auto; + left: 20vw; + right: 20vw; + width: 60vw; + background: #444; + z-index: 999; + box-shadow: 0 0 15px 0 #000; + /*animation: fromRight 0.5s;*/ + resize: both; + overflow: hidden; + display: grid; + grid-template-rows: 52px 1fr 56px; + min-width: 950px; + border-radius: 5px; + user-select: none; + max-height: 80vh; + min-height: 500px; +} + +.modal-confirm { + top: 20vh; + left: 25vw; + right: 25vw; + width: 50vw; + min-height: 250px; + min-width: 620px; + max-height: 800px; + border-radius: 5px; +} + +.modal-header { + height: 28px; + padding: 14px 20px 10px 20px; + font-size: 20px; + border-bottom: 0; + background: #222; + user-select: none; + z-index: 3; + color: #eee; + text-align: center; +} + +.modal-header::after { + content: " "; + display: block; + height: 1px; + margin-top: 11px; + position: relative; + left: 0; + background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), #4caf50, palevioletred, red, orange, #2196f3, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)); + width: 100%; +} + +.modal-content { + /*padding: 5px 20px 20px 20px;*/ + min-height: 100px; + color: #eee; + overflow: auto; + max-height: 500px; +} + +.modal-content-notabs { + font-size: 12px; +} + +.modal-content-confirm { + min-height: 0px; + background: #444; + color: #eee; + padding: 30px; + padding-bottom: 40px; + font-size: 13px; + overflow: auto; +} + +.modal-footer { + border-top: 0; + padding: 12px 14px 8px 14px; + text-align: right; + font-size: 14px; + color: #eee; + background: #222; +} + +.modal .im-tabs-tablist { + padding-left: 2px; +} + +.modal-content .newColForm { + margin: 2px; + border-radius: 2px; + border: 0px solid #fff; + background: #393939; +} + +.modal-content .im-cat-header { + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.modal-content .im-tabs-area { + padding-top: 20px; + padding: 20px; +} + +.modal-toolbar { + position: fixed; + position: absolute; + right: 85px; + padding: 0; + background: transparent; + z-index: 100; + text-align: right; + max-width: 450px; + bottom: 13px; + display: flex; +} + +.modal-toolbar button { + display: flex; + flex-direction: row; + margin-left: auto; + margin-right: 12px; +} + +.modal-toolbar i { + color: #fff; + margin-right: 5px; +} + +.im-feedback-title { + font-size: 18px; +} + +.im-feedback-subtitle { + font-size: 14px; +} + +.im-feedback-grid { + display: grid; + grid-template-columns: 180px 1fr; + grid-row-gap: 3px; + grid-column-gap: 3px; + justify-content: stretch; + justify-items: stretch; + padding-bottom: 3px; +} + +.im-feedback-content textarea { + min-height: 180px !important; +} + +.im-items-selection, +.im-items-selection-header { + display: grid; + grid-template-columns: 20px 3fr 1fr 1fr; + column-gap: 5px; + row-gap: 0; + margin-bottom: 0; + margin-left: 30px; + margin-right: 40px; + padding: 3px 10px; + font-size: 13px; + border-radius: 2px; +} + +.im-items-selection:hover { + background: #222; + color: #fff; + cursor: pointer; +} + +.im-items-selection div { + padding-top: 1px; +} + +.im-diagram-items-modal { + position: sticky; + top: 0px; + background: #444; + box-shadow: 0 0 8px -4px #000; + padding-top: 4px; + padding-bottom: 4px; + z-index: 2; + margin-bottom: 8px; +} + +.im-diagram-items-modal .im-search-bar { + margin: 0px 50px 8px 50px; + position: absolute; + top: -50px; + right: 50px; + z-index: 999100; +} \ No newline at end of file diff --git a/database/web/not-dark.svg b/database/web/not-dark.svg new file mode 100644 index 000000000..1e53de679 --- /dev/null +++ b/database/web/not-dark.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/not-light.svg b/database/web/not-light.svg new file mode 100644 index 000000000..0fe1f12ba --- /dev/null +++ b/database/web/not-light.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/oneOf-dark.svg b/database/web/oneOf-dark.svg new file mode 100644 index 000000000..13ad7ee07 --- /dev/null +++ b/database/web/oneOf-dark.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/oneOf-light.svg b/database/web/oneOf-light.svg new file mode 100644 index 000000000..d96c4ff27 --- /dev/null +++ b/database/web/oneOf-light.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/scrollbars.css b/database/web/scrollbars.css new file mode 100644 index 000000000..9d8c1c4c4 --- /dev/null +++ b/database/web/scrollbars.css @@ -0,0 +1,29 @@ +div::-webkit-scrollbar, +textarea::-webkit-scrollbar { + width: 10px; + height: 10px; + margin-left: 5px; +} + +div::-webkit-scrollbar-thumb, +textarea::-webkit-scrollbar-thumb { + background: #2d2d2d; + border-radius: 0px; +} + +div::-webkit-scrollbar-track, +textarea::-webkit-scrollbar-track { + background: #585858; + border-radius: 0px; +} + +div::-webkit-scrollbar-corner, +textarea::-webkit-scrollbar-corner { + background: #585858; +} + +div, +textarea { + scrollbar-color: #202020 #585858; + /*scrollbar-width: thin;*/ +} \ No newline at end of file diff --git a/database/web/searchbar.css b/database/web/searchbar.css new file mode 100644 index 000000000..55c99fcc5 --- /dev/null +++ b/database/web/searchbar.css @@ -0,0 +1,66 @@ +input { +border-radius: 2px; +padding: 0 2px; +font-family: "Open Sans"; +background: #646464; +color: #fff; +min-width: 40px; +width: auto; +} + +.im-search-bar { + height: 20px; + display: grid; + grid-template-columns: 10px 1fr 24px 10px; + grid-template-rows: 1fr; + align-content: center; + align-items: center; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 100px; + border: 0px solid #646464; + margin: 7px 7px; + background: #646464; +} + +.im-search-fixed-width { + max-width: 500px; + position: absolute; + margin-left: auto; + margin-right: auto; + left: 0; + right: 0; + text-align: center; + top: 10px; + z-index: 100; +} + +.im-search-bar input, +.im-search-bar input:focus, +.im-search-bar input:hover { + display: inline-block; + border: 0px; +} + +.im-search-bar input { + width: auto; + min-width: 40px; +} + +.im-search-bar input::placeholder { + color: #000; + font-style: italic; +} + +.im-search-bar .im-search-button { + align-self: center; + justify-self: right; + width: 24px; + text-align: right; + cursor: pointer; + padding-top: 4px; +} + +.im-search-fixed-width > .im-search-button { + padding-top: 0; +} diff --git a/database/web/style.css b/database/web/style.css new file mode 100644 index 000000000..063088b68 --- /dev/null +++ b/database/web/style.css @@ -0,0 +1,1826 @@ +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + src: url("./assets/open-sans-v17-latin-ext_latin-regular.eot"); /* IE9 Compat Modes */ + src: local("Open Sans Regular"), local("OpenSans-Regular"), + url("./assets/open-sans-v17-latin-ext_latin-regular.eot?#iefix") + format("embedded-opentype"), + /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-regular.woff2") + format("woff2"), + /* Super Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-regular.woff") + format("woff"), + /* Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-regular.ttf") + format("truetype"), + /* Safari, Android, iOS */ + url("./assets/open-sans-v17-latin-ext_latin-regular.svg#OpenSans") + format("svg"); /* Legacy iOS */ +} + +/* open-sans-600 - latin-ext_latin */ +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 600; + src: url("./assets/open-sans-v17-latin-ext_latin-600.eot"); /* IE9 Compat Modes */ + src: local("Open Sans SemiBold"), local("OpenSans-SemiBold"), + url("./assets/open-sans-v17-latin-ext_latin-600.eot?#iefix") + format("embedded-opentype"), + /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-600.woff2") + format("woff2"), + /* Super Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-600.woff") format("woff"), + /* Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-600.ttf") + format("truetype"), + /* Safari, Android, iOS */ + url("./assets/open-sans-v17-latin-ext_latin-600.svg#OpenSans") + format("svg"); /* Legacy iOS */ +} + +/* open-sans-700 - latin-ext_latin */ +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 700; + src: url("./assets/open-sans-v17-latin-ext_latin-700.eot"); /* IE9 Compat Modes */ + src: local("Open Sans Bold"), local("OpenSans-Bold"), + url("./assets/open-sans-v17-latin-ext_latin-700.eot?#iefix") + format("embedded-opentype"), + /* IE6-IE8 */ url("./assets/open-sans-v17-latin-ext_latin-700.woff2") + format("woff2"), + /* Super Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-700.woff") format("woff"), + /* Modern Browsers */ + url("./assets/open-sans-v17-latin-ext_latin-700.ttf") + format("truetype"), + /* Safari, Android, iOS */ + url("./assets/open-sans-v17-latin-ext_latin-700.svg#OpenSans") + format("svg"); /* Legacy iOS */ +} + +html, body { + margin: 0; + overflow: hidden; +} + +html, +body, +#root, +.app-layout, +.aside-left, +.aside-right, +.diagram { + height: 100%; + width: 100%; +} + +.diagram { + overflow: auto; + background: #333; +} + +.main-area { + height: 100%; + width: 100%; +} + +html, +body, +div, +p, +span, +a, +td, +ul, +li { + font-family: "Open Sans", "Exo"; +} + + +h1, +h2, +h3, +h4, +h5, +h6 { + padding: 4px 0; + margin: 0; + font-family: "Open Sans", "Exo"; + font-weight: 400; +} + +h1 strong, +h1 b, +h2 strong, +h2 b, +h3 strong, +h3 b, +h4 strong, +h4 b, +h5 strong, +h5 b, +h6 strong, +h6 b { + font-weight: 700; +} + +p { + padding: 1px 0; + font-size: 12px; +} + +.diagram { + position: relative; +} + +.t { + position: relative; + border-radius: 3px; + box-shadow: 4px 4px 8px -8px black; + border: 1px solid rgba(0, 0, 0, 0.3); + z-index: 10 !important; + margin: 1px; + display: flex; + flex-direction: column; + min-height: 44px; + min-width: 150px; + min-width: fit-content; +} + +path { + z-index: 10 !important; +} + +.t-max-content { + min-width: max-content; +} + +.t-fixed-min { + min-width: 150px; +} + + +.drgbl:after { + content: ""; + display: inline-block; + opacity: 0; + height: 20px; + width: 1px; + position: absolute; + bottom: -20px; + left: 0; +} + +.im-n { + position: relative; + border-radius: 3px; + border: 1px solid transparent; + z-index: 5; + margin: 1px; + display: flex; + flex-direction: column; + min-height: 24px; + min-width: 50px; +} + +.im-n-sa { + position: absolute; + border-radius: 3px; + border: 1px solid transparent; + z-index: 1; + margin: 1px; + display: flex; + flex-direction: column; + min-width: 150px; + min-height: 50px; + top: 0; + left: 0; +} + +.im-n-sa > div { + padding:10px; + padding-top: 30px; +} + +.im-n-sa-type { + min-width: 150px; + min-height: 50px; +} + +.im-n-sa-type > div { + padding:10px; + padding-top: 30px; +} + +.im-n-sa-header { + position: absolute; + border-radius: 3px; + border: 1px solid transparent; + z-index: 10; + display: flex; + flex-direction: column; + top: 0; + left: 0; + width: 100%; + background: rgba(0, 0, 0, 0.15); + pointer-events: all !important; + cursor: move; + min-width: 150px; + min-height: 24px !important; + max-height: 24px; + +} + +.im-n-sa-header-text { + padding: 4px 10px; + font-size: 12px; +} + +.im-n-other { + position: relative; + border-radius: 3px; + border: 1px solid transparent; + z-index: 8; + margin: 1px; + display: flex; + flex-direction: column; + min-width: 150px; + min-height: 44px; +} + +.sel-item-sa { + z-index: 2; +} + +.im-n img { + max-width: 100%; +} + +.im-tp { + position: absolute; + background: #fff; + border-radius: 3px; + box-shadow: 4px 4px 8px -8px black; + border: 1px dashed #666; + overflow: auto; + z-index: 1; + margin: 1px; + display: flex; + flex-direction: column; + background: #f9f9f9; +} + +.t a, +.im-n a, +.im-tp a { + text-decoration: none; + color: black; +} + +#mainHtmlCanvas { + transform-origin: 0 0; +} + +.watermark { + opacity: 0.25; + width: 200px; + height: 200px; +} + +.dGraphicsHeader { + display: flex; + border-bottom: 1px solid rgba(0, 0, 0, 0.15); + font-size: 14px; + cursor: pointer; + background: #666; + flex-grow: 0; + flex-shrink: 0; + color: #fff; + height: 22px; + min-width: fit-content; + white-space: nowrap; +} + +.dTableName { + padding: 3px 0 1px 3px; + user-select: none; + font-weight: 700; + text-shadow: 0 0 1px #000; +} + +.dTableNameLight { + padding: 3px 0 1px 3px; + user-select: none; + font-weight: 700; +} + +.dGraphicsLeftTop { + margin-right: auto; + padding: 2px 4px; +} + +.dGraphicsRightTop { + margin-left: auto; + padding: 2px 4px; +} + +.im-tp .dGraphicsHeader { + display: flex; + border-bottom: 1px solid rgba(0, 0, 0, 0.15); + font-size: 15px; + cursor: pointer; + background: #666; + flex-grow: 0; + flex-shrink: 0; + color: #fff; +} + +.im-tp .dTableName { + padding: 1px 0 1px 0; + cursor: move; + user-select: none; + text-align: left; +} + +.t a.gr { + background: #404040; + display: flex; + flex-direction: column; + height: 100%; + user-select: none; + flex-grow: 1; + overflow: hidden; + cursor: pointer; +} + +.dCols, +.im-n-text { + padding: 2px 4px; + font-size: 13px; + overflow: auto; + min-height: auto; + min-width: auto; + color: #fff; + background: #404040; + user-select: none; + flex-grow: 1; + cursor: pointer; +} + +.dCols-report { + margin-top: 20px; + grid-column: span 4; + padding: 15px; + border: 1px solid rgba(0, 0, 0, 0.1); +} + +.im-n-text { + overflow: hidden; +} + +.im-n-text-nowrap div, +.im-n-text-nowrap p, +.im-n-text-nowrap h1, +.im-n-text-nowrap h2, +.im-n-text-nowrap h3, +.im-n-text-nowrap h4, +.im-n-text-nowrap h5, +.im-n-text-nowrap h6, +.im-n-text-nowrap ul, +.im-n-text-nowrap ol { + white-space: nowrap; +} + +.im-table-columns-displayed { + opacity: 1; +} + +.im-table-columns-hidden { + opacity: 0; + max-height: 1px; + overflow: hidden; +} + +.im-table-descriptions-hidden, +.im-table-indexes-hidden +{ + display: none; +} + +.im-table-descriptions-displayed { + display: block; + margin-top: 5px; + margin-bottom: 3px; +} + +.im-table-indexes-displayed { + margin-top: 5px; + padding-top: 5px; + border-top: 1px solid rgba(0, 0, 0, 0.3); + color: #ccc; +} + +.im-table-descriptions-displayed { + padding: 5px; + position: absolute; + top: 100%; + margin-bottom: 40px; +} + +.im-table-descriptions-displayed div, +.im-table-descriptions-hidden div { + white-space: pre-wrap; + word-wrap: break-word; + word-break: break-word; + + font-size: 12px; +} + +.dCols-desc pre { + white-space: pre-wrap; + padding: 5px; + font-size: 13px; + font-family: "Courier New", Courier, monospace; + overflow: auto; + margin: 0; + color: beige; +} + +.dCols-desc-nowrap pre { + white-space: revert; +} + + +.im-n-text p { + margin: 0; +} + +.im-n-text a { + color: #2196f3; +} + +pre.im-n-text { + padding: 0; + margin: 0; + font-family: "Open sans"; +} + +.im-tp-text { + padding: 5px 4px 2px 4px; + font-size: 13px; + overflow: auto; + min-height: auto; + min-width: auto; + color: #555; + user-select: none; + flex-grow: 1; +} + +.dRow { + display: grid; + grid-template-columns: 25px fit-content(150px) 1fr minmax(auto, 24px); + border-radius: 2px; + min-height: 18px; +} + +.dRow-thin { + grid-template-columns: 5px fit-content(150px) 1fr auto 200px 200px; +} + +#diagram .dRow-thin { + grid-template-columns: 5px fit-content(150px) 1fr minmax(auto, 24px); +} + +.dCol { + margin-right: 0; + font-size: 12px; + min-height: 17px; +} + +.dItem { + font-size: 12px; + min-height: 17px; + padding: 0 2px 0; +} + +.dCol:nth-of-type(2), +.dCol:nth-of-type(3) { + white-space: nowrap; + margin-right: 0; + font-weight: 400; + margin-right: 0px; +} + +.dCol:nth-of-type(3) { + font-style: italic; + color: #ddd; + padding-left: 4px; + padding-right: 10px; + text-align: right; + margin-left: 10px; +} + +.dCol:last-of-type { + margin-right: auto; + padding-left: 5px; +} + + +.t:hover:not(.sel-item-diagram), +.im-n:hover:not(.sel-item-diagram) { + transition: box-shadow 0.4s; +} + +.sel-item-diagram, +.sel-item-diagram-multi, +.sel-item-diagram:hover { + z-index: 100; + outline: none; + outline-offset: 0px; + border: 1px solid transparent; +} + +.res { + display: none; +} + +.sel-item-diagram-multi .res { + display: none; +} + +.sel-item-diagram .res { + display: block; +} + +marker path { + stroke-width: 1; +} + +path { + fill: none; + stroke-width: 1; + cursor: pointer; +} + +circle.relationCardinality { + fill: #585858; + stroke: #ddd; + stroke-width: 1; +} + +#svgMain { + position: absolute; + background: linear-gradient(45deg, #f2f2f2, #ddd, #f2f2f2, #eee); + background: #585858; + border: 0; + z-index: 2; +} + +.sel-relation-diagram { + stroke: #000; +} + +.sel-relation-diagram-arrow { + fill: #000; +} + +.relation-diagram-bg { + stroke: rgba(0, 0, 0, 0.01); + stroke-width: 5px; + z-index: 0; +} + +.sel-relation-diagram-bg { + stroke: #3faaff; +} + +text, +tspan { + user-select: none; + cursor: pointer; +} + +.rbelongs { + /*stroke-dasharray: 3;*/ +} + +.rboth { + /*stroke-dasharray: 10, 5, 2, 2, 2, 5;*/ +} + + +.rCardinality { + font-size: 10px; + fill: #eee; + color: #eee; +} + +.rCardinalityBg { + font-size: 10px; + stroke-width: 4px; + fill: #333; + stroke:#333; +} +.im-t-c { + display: table-cell; +} + +.im-t-c:not(:nth-of-type(1)):not(:nth-of-type(3)) { + padding-right: 4px; +} + +.im-mini { + font-size: 11px; + padding-bottom: 1px; +} + + +.im-mini-PK, .im-mini-PI { + background: #ff0000; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-mini-PFK, .im-mini-PL { + background: #2196f3; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-mini-FK { + background: #4caf50; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} +.im-mini-IX { + background: #8F5D00; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-mini-AK, .im-mini-AI { + background: #B20DA2; + font-size: 10px; + padding: 0 2px; + border-radius: 2px; + margin-right: 5px; + color: #fff; + text-align: center; + position: relative; + top: 2px; +} + +.im-embedded { + margin-left: 0; + padding-left: 0; + grid-column: span 4; + border-radius: 2px; +} + +.im-embedded-thin { + background: rgba(0, 0, 0, 0.15); + margin-left: 14px; + padding-left: 0px; +} + +.im-col-list { + color: limegreen; + padding-right: 1px; + padding-left: 1px; + font-style: normal; +} + +.im-col-object-left { + color: goldenrod; + padding-right: 1px; + font-style: normal; + display: inline-block; +} + +.im-col-object-right { + color: goldenrod; + padding-left: 1px; + font-style: normal; + display: inline-block; +} + +.im-select-decorator { + position: absolute; + height: 100px; + width: 100px; + left: 50px; + top: 50px; + border: 2px dotted #ccc; + z-index: 9999; +} + +.im-other-object { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 1px 4px; +} + +.im-other-object-type { + display: flex; + align-items: center; + justify-content: center; + font-size: 8px; + opacity: 0.6; + text-transform: uppercase; +} + +.im-backgroundImageGrid { + background-image: url(backgroundImageGrid.svg); +} + +.im-backgroundImageSquares { + background-image: url(backgroundImageSquares.svg); +} + +.im-backgroundImageTriangles { + background-image: url(backgroundImageTriangles.svg); +} + +.im-backgroundImageBricks { + background-image: url(backgroundImageBricks.svg); +} + +.im-z-index-8 { + z-index: 8; +} + +.sel-item-diagram-multi.im-z-index-4,.im-z-index-4 { + z-index: 4 !important; + pointer-events: none; +} + +.sel-item-diagram-multi.im-z-index-4 div,.im-z-index-4 div { + visibility: hidden; +} + +.im-dropdown ul li.im-dropdown-icon-empty { + display: grid; + grid-template-columns: 21px 1fr; +} + + + +.forcedLineColor { + stroke: white !important; +} + +polygon.forcedPolygonFill, circle.forcedPolygonFill, tspan.forcedPolygonFill { + fill: white !important; + stroke-width: 0; +} + +.forcedTransparentFill { + fill: rgb(51, 51, 51) !important; + +} + +.im-icon-ResizeBottomRight16 { + display: none; +} + +.tree__wrapper { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + height: max-content; + width: max-content; + z-index: 10; +} + +.tree__wrapper * { + box-sizing: border-box; +} + +.tree__spacer { + height: 40px; + width: 100%; + display: block; +} + +.tree__mini__toolbar { + position: sticky; + top: 0; + width: 100%; + left: 0; + right: 0; + margin: auto; + height: 24px; + background: #282828; + z-index: 9999; + display: flex; + box-shadow: 0px 0px 5px -2px #000; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + border-left: 1px solid rgba(255, 255, 255, 0.1); + border-right: 1px solid rgba(255, 255, 255, 0.1); + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} + +.tree__item__root { + display: flex; + color: #eee; + position: relative; + margin-bottom: 0; + padding: 0; +} + +.tree__item__root__wrapper { + display: flex; + margin: 15px 20px; +} + +.tree__item__hidden__caption__text { + padding-left: 10px; + font-size: 12px; + width: max-content; + display: inline-block; + color: #999; + padding-top: 4px; +} + +.tree__item__hidden__caption__text::after { + font-family: "im-line-icons" !important; + content: ""; + background: transparent; + width: 20px; + height: 100%; + color: #999; + position: absolute; + top: 4px; + left: auto; + opacity: 0.6; + font-size: 10px; + padding-left: 5px; + padding-top: 4px; +} + +.tree__item__root__name { + font-size: 12px; + display: inline-block; + width: fit-content; + align-self: center; + padding: 0; + border: 1px solid transparent; + background: #404040; + padding: 1px 8px 1px 5px; + width: max-content; + min-width: 50px; +} + +.tree__item { + display: flex; + margin: 0px 0px 0px 0px; + width: fit-content; + font-size: 10px; + position: relative; + padding-left: 20px; + padding-top: 3px; + padding-bottom: 3px; +} + +.tree__item:not(.t__tree__item__single__line):first-of-type::before { + content: " "; + position: absolute; + left: 2px; + top: 50%; + height: 50%; + width: 0; + border-left: thin solid #eee; +} + +.tree__item:not(.t__tree__item__single__line):last-of-type::before { + content: " "; + position: absolute; + left: 2px; + top: 0%; + height: 50%; + width: 0; + border-left: thin solid #eee; +} + +.tree__item.t__tree__item__single__line { + padding-left: 0 !important; +} + +.tree__item__single__line::before { + content: " "; + width: 0px; + height: 0; + background: transparent; + position: absolute; + top: 50%; + left: -21px; + border-bottom: thin solid #eee; +} + +.tree__item__first__line::before { + content: " "; + width: 21px; + height: 0; + position: absolute; + top: 50%; + left: -21px; + border-top: thin solid #eee; +} + +.tree__item__last__line::before { + content: " "; + width: 21px; + height: 0; + position: absolute; + top: 50%; + left: -21px; + border-top: thin solid #eee; +} + +.tree__item__middle__line::before { + content: " "; + width: 20px; + height: 0; + position: absolute; + top: 50%; + left: -21px; + border-top: thin solid #eee; +} + +.t__tree__item__middle__line::before { + content: " "; + position: absolute; + left: 2px; + top: 0%; + height: 100%; + width: 0; + border-left: thin solid #eee; +} + +.tree__spec { + white-space: pre-wrap; + font-style: normal; + color: #ccc; + background: #333; + padding: 3px 4px 0px 4px; + font-size: 10px; + border-radius: 4px; + margin-top: 1px; +} + +.tree__prop__key { + color: goldenrod; + max-width: 180px; + text-overflow: ellipsis; + display: inline-block; + overflow: hidden; + white-space: nowrap; + width: auto; + padding-right: 10px; +} + +.tree__prop__value { + color: #ccc; + max-width: 180px; + text-overflow: ellipsis; + display: inline-block; + overflow: hidden; +} + +.tree__prop__comment { + color: limegreen; + max-width: 180px; + display: inline-block; + overflow: hidden; + padding-left: 2px; + font-size: 11px; + border-radius: 4px; + padding-right: 5px; +} + +.tree__item__named { + display: inline-block; + width: fit-content; + align-self: center; + padding: 0; + border: thin solid transparent; + position: relative; + margin-right: 28px; +} + +.tree__expander__icon__left > i.im-icon-MinusCircle16::after { + content: " "; + width: 15px; + height: 0; + position: absolute; + top: 50%; + left: 100%; + background: transparent; + border-bottom: thin solid #eee; +} + +.tree__item__bg { + background: #404040; + border: thin dashed rgba(255, 255, 255, 0.2); + box-shadow: 4px 4px 8px -8px black; + padding: 3px; + width: max-content; + position: relative; +} + +.tree__item__spec__bg span { + padding: 3px; + display: inline-block; +} + +.tree__item__required { + border: thin solid rgba(255, 255, 255, 0.2); +} + +.tree_padding_sm { + padding: 3px; +} + +.tree__item__sub { + display: inline-block; + margin: 0; + left: 0px; + position: relative; + align-self: center; +} + +.group { + /*background: url(bg-vertical.svg);*/ + background-repeat: repeat-y; + background-position-x: 20px; + background-position-y: center; + background-size: 1px 100%; +} + +.tree__expander__icon { + align-self: center; + position: relative; + left: -6px; + top: 1; + background: #404040; + border-radius: 100%; + box-shadow: 4px 4px 8px -6px black; + cursor: pointer; + padding: 1px; + width: 15px; + height: 15px; + z-index: 999; +} + +.tree__expander__icon__left { + align-self: center; + display: block; + cursor: pointer; + padding: 1px; + width: 15px; + height: 15px; + z-index: 999; + position: absolute; + right: -15px; + top: 0; + bottom: 0; + margin: auto; +} + +.tree__expander__icon__left i.im-icon-FullCircle { + position: absolute; + top: 0px; + left: -5px; + width: 15px; + height: 15px; + color: #404040; + } + + .tree__expander__icon__left i.im-icon-MinusCircle16, .tree__expander__icon__left i.im-icon-PlusCircle16 { + position: relative; + left: -6px; + background: transparent; + border-radius: 100%; + color: #fff; +} + +.tree__flex__rows { + display: flex; + font-size: 11px; +} + +.tree__flex { + display: flex; +} + +.tree__select { + padding: 0; + width: 100%; + max-width: 100% !important; +} + +.tree__select option { + padding: 1px; + width: 80px; +} + +.tree__input { + width: 100%; + min-width: 60px; + border: thin solid transparent; + border-bottom-color: transparent; + border-bottom-style: solid; + border-bottom-width: 1px; + border-radius: 2px; + padding: 0 2px; + font-family: "Open Sans"; + font-size: 12px; +} + +.tree__item input, .tree__item__rootbox input { + background: #404040; + border-bottom: 1px solid transparent; + margin-bottom: 0; +} + +.tree__item__box { + display: grid; + grid-template-columns: 1fr; + grid-gap: 4px; +} + +.tree__item__rootbox { + display: grid; + grid-template-columns: 15px 1fr; + grid-gap: 0; +} + +.tree__item__type { + text-align: center; +} + +.tree__item__req { + display: inline-block; + align-self: right; + background: rgba(0, 0, 0, 0.2); + margin: 0 4px; + padding: 1px 4px 1px 4px; + border-radius: 4px; + color: #eee; +} + +.tree__item__last { + display: grid; + grid-template-columns: 1fr auto; +} + +.tree__item__last > div > div { + margin: 1px 4px 4px 4px; +} + + .tree__item__last > div > span:first-of-type { + margin: 1px 0px 1px 4px; + padding-top: 3px; +} + + +.tree__required { + color: #eee; + padding-right: 2px; + display: inline-block; + font-style: normal; + font-size: 9px; +} + +.tree__item__inputwrapper { + padding-right: 5px; + display: grid; + grid-template-columns: 1fr; + font-size: 11px; + color: #eee; +} + +.tree__condition__wrapper .tree__item__inputwrapper { + padding-right: 0; +} +.tree__condition__wrapper .tree__item__last { + padding-left: 0; +} + +.tree__key__inputwrapper .tree__input { + color: #ccc; +} + +.tree__key__inputwrapper { + padding-right: 3px; + padding-left: 2px; + display: grid; + grid-template-columns: auto 1fr; + font-size: 10px; + color: #eee; +} + +.tree__item__icon { + font-size: 11px; + position: relative; + top: 1px; +} + +.tree__icon__array { + font-size: 11px; + color: limegreen; + padding-right: 4px; + padding-left: 1px; + font-style: normal; +} + +.tree__icon__array__mini { + font-size: 8px; + color: limegreen; + padding-right: 2px; + padding-left: 1px; + position: relative; + bottom: 1px; + font-style: italic; +} + +.tree__icon__multi { + font-size: 11px; + color: white; + padding-right: 4px; + padding-left: 1px; + font-style: normal; +} + +.tree__icon__array i.im-icon-DotsVerticallDouble16 { + font-size: 10px; + color: limegreen; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__pattern { + font-size: 10px; + color: #999; + padding-right: 4px; + font-style: normal; + display: inline-block; + align-self: center; +} + +.tree__icon__object { + font-size: 10px; + color: goldenrod; + padding-right: 4px; + font-style: normal; + display: inline-block; + align-self: center; +} + +.tree__icon__object__mini { + font-size: 8px; + color: goldenrod; + padding-right: 2px; + position: relative; + bottom: 1px; + font-style: italic; +} + +.tree__icon__object i.im-icon-ArrowLeft16 { + font-size: 9px; + color: goldenrod; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__ref i.im-icon-Type { + font-size: 9px; + color: #2196f3; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__ref i.im-icon-Table { + font-size: 9px; + color: goldenrod; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__object i.im-icon-Table { + font-size: 9px; + color: #eee; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__object i.im-icon-DotsVerticallDouble16 { + font-size: 10px; + color: goldenrod; + padding: 0; + position: relative; + top: 1px; +} + +.tree__icon__condition { + background: darkmagenta; + color: rgba(255, 255, 255, 0.7); + padding-right: 1px; + font-style: normal; + display: inline-block; + font-size: 9px; + padding: 2px 4px; + min-width: 25px; + text-align: center; + border-radius: 5px; + bottom: 0; + position: relative; + top: -3px; + width: auto; + margin: 0 5px; + text-transform: uppercase; +} + +.tree__icon__def { + color: goldenrod; + padding-right: 1px; + font-style: normal; + display: inline-block; +} + +.tree__icon__referenced { + color: #2196f3; + padding-right: 4px; + font-style: normal; + display: inline-block; + font-size: 13px; +} + +.tree__ref__key { + color: #2196f3; + font-size: 11px; + max-width: 180px; + text-overflow: ellipsis; + display: inline-block; + overflow: hidden; +} + +.tree__datatype__name { + color: #999; + padding-left: 2px; + padding-right: 10px; + text-align: left; + margin-left: 0px; + font-size: 11px; +} + +.tree__item__index { + color: #eee; + opacity: 0.8; +} + +.tree__item__hidden { + padding-right: 10px; + opacity: 0; + font-size: 12px; + line-height: 0; + padding-left: 3px; +} + +.tree__item__hidden__caption { + opacity: 0; + position: sticky; + top: -2px; + bottom: unset; + height: 24px; + align-self: center; + z-index: -1; + width: 2px; +} + +.tree__item__root svg { + position: absolute; + width: 45px; + height: 100%; + left: -5px; + top: 5px; +} + +.tree__item__root line, +.tree__item__root path { + stroke-width: 1; + stroke: #fff; +} + +#diagram-tree { + margin: 30px; + position: relative; +} + +#diagram-tree svg { + margin: 2px; +} + +#diagram-tree .im-mw-sm, #diagram-tree input.im-mw-sm, #diagram-tree select.im-mw-sm { + min-width: fit-content !important; + width: fit-content !important; +} + +#diagram #svgMain { + top: 0px; + left: 0px; + background: transparent; + position: absolute; + height: 100%; +} + +#diagram #mainHtmlCanvas { + height: 100%; + transform-origin: 0 0; +} + +#diagram { + height: 100%; + width: 100%; + position: relative; +} + +.im-position-top-2 { + position: relative; + top: -2px; +} + +.tree__key { + width: max-content; + align-self: center; + position: relative; + left: -1px; + background-position: -3px center; + background-repeat: no-repeat; + background-size: 28px 24px; + stroke: #ddd !important; + font-size: 10px; + color: #ccc; + box-shadow: 4px 4px 8px -8px black; +} + +.tree__key__text { + color: #ccc; + font-size: 10px; + background: #404040; + border-radius: 8px; + min-width: 28px; + padding: 2px 5px 2px 5px; +} + +.tree__key__text__mini { + font-size: 12px; + border-radius: 4px; + min-width: 28px; + min-height: 12px; + padding: 1px 6px 1px 0; + text-align: center; + color: #ccc; +} + +.tree__mini__selected { + background: #0267b7; + border-radius: 4px; + position: relative; + left: -3px; + padding-left: 3px; + padding-right: 1px !important; + color: white; + max-height: 16px; +} + +.im-arrow .tree__mini__clickable, .im-Arrow .tree__mini__clickable { + cursor: pointer; +} + +.im-arrow .tree__mini__clickable:hover, .im-Arrow .tree__mini__clickable:hover { + background: #222; + border-radius: 4px; + position: relative; + left: -3px; + padding-left: 3px; + padding-right: 1px !important; + color: white !important; + max-height: 16px; +} + +.tree__mini__selected .tree__key__text__mini { + color: white; +} + +.tree__choice, .tree__condition { + width: max-content; + align-self: center; + position: relative; + left: -1px; + background-position: -3px center; + background-repeat: no-repeat; + background-size: 28px 24px; + padding-left: 13px; + font-size: 10px; + color: rgba(255, 255, 255, 0.8); +} + +.tree__choice__mini { + background-size: 20px 16px; + background-position: -1px center; + padding-left: 12px; + background-repeat: no-repeat; + font-style: italic; +} + +.tree__choice__oneOf { + background-image: url(oneOf-dark.svg); +} + +.tree__choice__allOf { + background-image: url(allOf-dark.svg); +} + +.tree__choice__anyOf { + background-image: url(anyOf-dark.svg); +} + +.tree__choice__not { + background-image: url(not-dark.svg); +} + +.tree__choice__wrapper { + background: darkgreen; + border-radius: 11px; + padding: 0 3px; +} + +.tree__choice__text { + font-size: 10px; + background: darkgreen; + border-radius: 11px; + min-width: 28px; + padding: 5px 9px 3px 7px; + text-align: center; +} + +.tree__choice__text__mini { + font-size: 10px; + background: darkgreen; + border-radius: 4px; + min-width: 28px; + min-height: 12px; + padding: 1px 6px 0px 4px; + text-align: center; + color: rgba(255, 255, 255, 0.8); + font-style: italic; +} + +.tree__condition { + background-position: 0 center; + padding-left: 16px; +} + +.tree__condition__if { + background-image: url(if-dark.svg); + color: white; +} + +.tree__condition__then { + background-image: url(then-dark.svg); + color: white; +} + +.tree__condition__else { + background-image: url(else-dark.svg); + color: white; +} + +.tree__condition__wrapper { + border-radius: 11px; + padding: 0 3px; + overflow: hidden; + background: #404040; + box-shadow: 4px 4px 8px -8px black; +} + +.tree__condition__text { + font-size: 10px; + background: darkmagenta; + border-radius: 11px; + min-width: 24px; + padding: 5px 9px 3px 7px; + text-align: center; + color: white; +} + +.tree__condition__text__mini { + font-size: 10px; + background: darkmagenta; + border-radius: 4px; + min-width: 28px; + min-height: 12px; + padding: 1px 6px 0px 4px; + text-align: center; + color: rgba(255, 255, 255, 0.8); + font-style: italic; +} + +input::placeholder { + color: #ccc; + font-style: italic; + opacity: 0.5; +} + +.tree__bg__referenced, .tree__bg__subschema { + background: rgba(0, 0, 0, 0.1); + border: thin dashed rgba(255, 255, 255, 0.2); + padding: 15px 2px 15px 20px; + position: relative; +} + +.tree__bg__referenced:before { + content: "Definition"; + position: absolute; + top: 3px; + left: 5px; + color: #eee; + opacity: 0.3; + font-size: 8px; + text-transform: uppercase; +} + +.tree__subschema { + position: relative; +} + +.tree__subschema::before { + content: "Subschema"; + position: absolute; + top: 5px; + left: 5px; + color: #eee; + opacity: 0.3; + font-size: 8px; + text-transform: uppercase; +} + +.tree__bg__subschema::before { + content: " "; + width: 20px; + height: 0; + position: absolute; + top: calc(50% - 0.5px); + left: 0px; + border-top: thin solid #eee; + margin-bottom: 1px; +} + +.tree__schema:before { + content: "Schema"; + position: absolute; + top: -15px; + left: 1px; + color: #eee; + opacity: 0.5; + font-size: 8px; + text-transform: uppercase; +} + +.tree__definition:before { + content: "Subschema"; + position: absolute; + top: -15px; + left: 1px; + color: #eee; + opacity: 0.5; + font-size: 8px; + text-transform: uppercase; +} + +.tree__ref:before { + content: "External ref"; + position: absolute; + top: -15px; + left: 1px; + color: #eee; + opacity: 0.5; + font-size: 8px; + text-transform: uppercase; +} + +.tree__condition__wrapper .tree__prop__comment { + background: #333; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + padding: 3px 7px 2px 4px; + text-align: left; +} + +.tree__item__hidden__caption[sticky-active] { + opacity: 1; + z-index: 9999; +} + +@media print { + .mm-freeware #mainHtmlCanvas div.tree__item:nth-child(3n) .tree__item__bg::after, .mm-trial #mainHtmlCanvas div.tree__item:nth-child(3n) .tree__item__bg::after { + content: " Trial "; + display: inline-block; + position: absolute; + top: 1px; + left: 1px; + right: 1px; + bottom: 1px; + background: rgba(0, 0, 0, 0.8); + color: white; + padding: 0; + text-align: center; + padding-top: 5px; + } +} + + +.dCols-report .tree__flex__rows { + overflow-wrap: break-word; +} + +.sel-item-diagram-multi { + box-shadow: none; + outline: 0; +} + +.sel-item-diagram, .sel-item-diagram:hover { + outline: 0; + box-shadow: 4px 4px 8px -8px black; + border: 1px solid rgba(0, 0, 0, 0.3); +} + +/**/ +.im-display-none { + display: none; +} + +.im-display-flex { + display: flex; + flex-grow: 1; + justify-content: center; +} + +.im-display-inline-block { + display: inline-block; +} + +.tree__input, .tree__input:focus, .tree__input:focus-visible { + outline: none; +} + +.tree__empty_decorator { + display: inline-block; + min-width: 6px; +} + +.im-text-opacity-50 { + opacity: 0.4; +} + +.mm-section-group { + display: none; +} \ No newline at end of file diff --git a/database/web/then-dark.svg b/database/web/then-dark.svg new file mode 100644 index 000000000..4c8678e41 --- /dev/null +++ b/database/web/then-dark.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/web/then-light.svg b/database/web/then-light.svg new file mode 100644 index 000000000..328aff41d --- /dev/null +++ b/database/web/then-light.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + From 3002f4af2450f231d20b64bbe529086b2bafedf0 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 20:56:48 -0500 Subject: [PATCH 11/29] fixing small typo Signed-off-by: Aaron Lippold --- database/Benchmarks.pdf | Bin 38932 -> 39052 bytes database/Benchmarks.sql | 2 +- database/Security Guidance.dmm | 4 ++-- database/web/index.html | 30 ++++++++++++++---------------- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/database/Benchmarks.pdf b/database/Benchmarks.pdf index 645650dbb627c426c84f812301648eadf24d708d..7614b009a54822e77208e89cfb40c07527e6594e 100644 GIT binary patch delta 22044 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

    }L+&jAliX6`s2_PN18|24F8HKNZpA7jFS` zqKglO9~|iFRC4j!T!~^W!j39$RvurKspj;I9QMH~{1@^*FniJUD1(*@x~N;LMms&mgs> zP&jQ7Zx81H0s(U~VBq!)&a)un^dnuG=$_j;ray;%#j43y?L6xVLFXe&4Ki+&QDJo3 zFn^I!H%;%{fK6WK%C&aq45}2F*j!z2LTVcn8}KQ5H`0P~Gcrpq4!na%Ni*2r*Qz zDtowYCsT3CQj(U|yqNRF+wsa&#VR(gFn?yQy&oF*uB!C*j)voc0&iViU_jco)q#t= zOG|%Rz=JQ^>Wkj4B|^^cP`0jbrmsy6RWn?lp!jO zrc&R^CWg4yAira%5c``dteXd8O;~lbdZHrxVqID<@;Ncv-9Ag5Ir78a{jIK1XMg0D zP6VV4`S8W0(`I0VjJzQzjc9hoGuh%>OC($w1NkB+OZGSYIn>0TVakEfq@!EpijGf7cVwUZ{BR-fbR1tT;`(4w2_9w)M{EH zR?e(JkBf}c5x?RSvK1A`#eYbS66j+$a^aTA-?B>=gi8s>Q~rNAm-dG8I>XEi1fAD1 z`)c{f%?WPUU=!5Vy;O?NjoF80?G)oKJ`D@>*R*-TES8|+XgoIGwX6sP&bMlysYKNK ziv+6X!P#SG0$!$)Rqb-|+dF&O@wfQTo7jgv`{A{%YRS)(n}%A0>VJWYUPrsCtC@Qi zO;v48om@5UvBqmFz>yjTLdf9l7ffsq%`hzcaTku0>6U{smG{xnomYR0+^V-sFaSb7 zWA|n0rF@M?3~g1;WM2nM3Hnfo!f&DRtNO5u{Y*)C8{h-uos3O|xM=LSSrDX=jMN$> z+GdKxkQ4vKhu+jiT7R7Ymk16mC(OtpaIv7S)I+@u<=&o+`!Dq1@Ok|Wu1vj_u$u^3 zTFtMZSlK=M*6F3rc$nUYEq~j>Xq6J&dT2)TR8CPIR|92A4f@n^n?6u6ucv`5dY8rH zDOQTr99mTzcM)cNYWYrBNlOi6^_`5udp4Tx@yM@j7Y8BLJA!6tEMc;FA+6k90m`V zZL*tc7Hr}~^nZSMg6mM|-jmN17vB*vSs}-jKK;lKXvyHdpR#*k%Qx7+NnO)At80Re zvuo<2Wo*!JX;EOT7$3Qm<})MaG4p!U;CDUe)l%60+m_cgy`__Pq}cCoN^y(d99f?> zOIz4*YSLu0p_N4~kbi3d&2Sn863!&Bc|V1sh=x5{(tpr9In66<)&Ve`F#V?IoZ=t? zE$953y;XB_nl;t1;c+>+sX7zfG@TwdFS#45qs4ROxWbaVij)p+f^MRhJl)vcMNicP z3#x(P7DT-r4-9v%8e)Y2Num9{LpJnF zZ;PL-On(oo>0X%_DEvyrqT<;2D`=^1n%HYp0mQl!thy3NHIrt)J<7v6Fvk1u7UzpE zta|i9#M5TnLFUx3b`;(qyYF}h{X}MLn*02s{f~-;KLPqk^8rkMY~!`448(>zZfVsD z&%+)ZG+6Te2kZP2+Wo6u@x$96ZIVapi&uD#=YJOQV!(ZS?oz6TpX#@9RVxb%;kAM2 zRh+lq#s#i4J>j>3gh}6z-{!jyqTajM0kPw|c~R_o`fgyeR?Tjx*9F(P@5^^%U94|i zz8mYej~(w_xbc1av1a{2G7-Dk&p*Q850zMFT?ntP>|V-@O3j}t1}wd;8AvMuMi{IYBH?SH?E z61k7{^+NWG>X+3w2hPVwSBkho}*@`lqHyn(dG z)`s44IjQ;Q?`iFdmr8J>CsMwu(!e9gVjc@Z`c!jV|e7szs2Ru)xKPePMxjS5CHEZ z1QvDl)YL1p0&1m(;*4loEI|iNyj#8Aj)EzEhBx(C?(lw}-sFSc6|ukM%nRGE|Mlbl z0Zd>QPqT<9fB}CtFfcwoAaitbWnpa!c%1D$+pgreaqs;VdNwe!cqf4%z&c+0ImrUa z`$23Y=t*Gb|AEwnWKn(8(~^$Z>X|cZ&x}+p-l~dZ-B=v8N%Y?^!T-LD&1>*_OfDrq zynVg={i2i~J^UB+&^+4Urg54kH|WGqdickGUH;>D!~cIk88a&F2!^%G+j3pd%%}(c z|G)itsL%iS>*e=7xVi_QGy@~`l}yM1$$AE8C)n~!!h!L@x;)F(Bl zq&$?05!;^#2#xatwQRBF-~Xo@{`kMt*ycekRqC-)s_gO=}j>e2IP7?;BR05t`vnu}K zx6AMU6bE3S-~N)9wJ&O*nQip&+tJuoH^qLqO)6?K1F zSWTiHzQ|+qJ76M=upq;_WMSd=3BdbhuxT38p2 z>3Rt;6R;@1$H@SN!w~Uz`15v&4mt;qUP8+a=jRPrFu=QuynoRCvA2 z8>-DqhjJI^9WMiVtAqUHa*u|IF~WcRAB=aSnwFNxgT3Az0mPU z!W&Z2_257mjf;EZv4q#wFsFIebaoQ{wYD7CU7SzGO|U?XA;b_tLHyD@%J1;Uj?pGS zig#{wF$A@H%PH&J(L2q&-mV)=uw{dRC)i-JbV$Es;Vvp$*6!r!S2ILw2W@|F1&_hx z5-3@+V326<#m%hL*b0baY`DOT#V5c&iBd=8`-RemkE7l#7ysOy4%?kTO;n49wO+eZr0wvBP>5h7ipGO3?r9^^ z(c_2Zq50JWlRzj-plZO#N9TX^esfE-ps#CmXt>eBOFVv)y3<0}?JDWAT_sK1m8omG zuG`gAb^!w_iAk`YOt}90kiRuC4rplPuh80@EZd@Ci}GQ=O}i9^Ey@35GgInesk_ra&z(ubGR`{_ zKD9d&yuaU>&}v7Ef12-1u=k(8GbPn_Zr16gVU}|n^l3?7cP1dwolt~c zJ5wrK;SaGhDHmKqXCi;@OcQ*RhWgO{tRp%m;SH88z{F&OKVn}}aSYyh({pROX``Fd z+8NL%$!TpIJzX#8e3K{dDelqa2f(WLJEI=C?ANBYTE8?Y-N;@0K<^@kKkoLp zqlh+jU*!#R?ZBS)}Tdh1HBBwDXfIuw4P+T=;8Sp)?{5OJ{NiKmF<`QOq`a z3<&QoRVhtU6}9O;w2JgvAGNuMiS_HF)bRtaj~j!+l}{t^1KL3>hoJ7abI|lwZtM_> zbW?M$HPS0LxQKsd0}tK7r|ZS1L{Gt~YzlC`mgIwW)sH9AVrGB3teoLZQDvZlNE+h;_-m5;Tz-sm{;Wi!g+ID~uy`3X8R^3o}YT zg=b|v!rkr2WgZBQWWES4WoETlmpLf(k*O+llv(|D`5VfLlY)N0ph48b$`Y+$?|`yE z8f1Spz<`?uZTK|%(h{Pk^0Bk@vEpwxw^tTUJr~_dVD!Z6vz@;Cpi+OPP9n=ji$bFL+C~*7b`VN03 zvO{u*?$@6?1ciZrq?yMEyDjm)V+jSe2~WLgiaaHrR#|36vYtv}e z(^~r|hcC6}U|Wg-Uo4&`p%XC`w|dsj$*Cs~jq}u%Hg1u#rb| zEAT%op1jb_08o&YV|1eh`uCcvxblAw^#OnR+a+MnCSoZIVpKqFqJ;&-8WsVHfbfG! zVD139^mU;|Z0FHDQ=wSTdWKa+B8hg$AFeHVYZ$K%te zr`05UFGR2;B_85PCK-$kp2!L_X*>83sd4`io%;R6ZiQK;-$}C=by7r8YaffE7S=EO z2l(Twe5sNrEP&k4&xrbWz$y{H>w^t>B1=!anhCs1WdiRaOJ(lK;_qvTpzfrbmfM=f zh&oRDH;(Ncux&w=7GM`8*&Kg($AN^-^{WUtG-x>UK*tDwe&K(OUD10rm-?gB%XLl< zu!hu*CC1;yOl^w_22<53r2cV~HK43243DX;KBg=z0?JOyW!6*Hf}-nhT0WYx8rqnQ zf;Oss4)Ca9#%RE){+0eT6yHT*se3JjLFg?c&J)`Hn*TMK)Zsu9!$yB+Q09?lSI{_) zK%6^;HV_#^(si^&@jr`D!}Drtyf*dBOG>=8vU42st^KLhZ_9+QYUwF~ckr zT2K3c8p3VcN7Ej}dFC%&B3X1`vh(`AkJPoY^`y2Xe;AV0HRN<5le)vcjMK}YRY{tE zOkPA8?5WFz){_@xCANQPwbgXlno;lTvNzX?Z|MBau;y3<-e*`tl{0~k?))?CYM_*( zLExCy9vf6JchPq9&0d2_uhte#Qz5cW@o~%4V|xmy8&h(iYOGRU-kDV%cJ4bjtK@8@ znW^upQ1476j}f!NsbxG8`8dDgxo+52&8N3eHy z3#D$;HJxvuyj}fX#Xfl=*%r-{C#^~rG^ktMW6| zoqephQ{9;j{{^%iN?u;~$d^%e4x6x_XXQJRxpyi%+nBq%u49ywTs!CMIyWodtEf8X z5p7x1Ib}t9r0D1=5W3d&>U-03LUqgQ?2^xZJ9O~a;`D#%pz}D)6@^3(>s|CNj_meZ zD6?MU@ffLo)AG>@j{{i=#6>(bAKocF`;?rp?2v!2wkR{f-v>p3KUQ*JnHXIHCFiG(v#8^^*>3RyI?g^$+^gfX!#`ig(XO%C zypE1@+I+hR38h4vSG*q3t+7M*CCSxufkE zHQP5{LEG8KiaXVv+4#>_cTDRwej#g!c62#lncq8VJzwM8k)<#3K? zs6DuaOh27Gchw$0+dN)C?b*kPd$pc+_%ERKv~J|r(Rz-Xub*e(JCeEgsyv&RyT8iQ zUS|3NDv#eHHa}10IgMz`D$gk^(nFOe_wRqlRC&y)nF^%&4Vem-3T<%nluQL}HGR|_ z(?D zZj(VLn--EmBNP+sI?1GrpkOf0P!cW^R^BCpMkw^nwn>~3hC|>q&&jEh3tH((mt=p? z_)OV^GlbqfO!m;!M8M>{v$IA4jOmbIoo@O^Kuq>4!yr(Ay?#Dmg-5P{dW^4(8v@?u zgeIT?jU~+RP2ilrxRQo|PRLi@Z7IN1zcw$NNmvg}eFz0CSXk+r#u1A7iIXptaZf3c zn+K%i=6O&E#mvvPMF0XRNwg{mBwT+fKo*pO>V^iZ2nA47z9j)dF+(%m_}tJ7;n;gz zvW2Ruk~Kdfv#9)hy;LSqnM(>EHMI%L&6*bOZ2Bo&+zd$=el~oW8-gmCLk&`8y3Hsc zGqWL=%;1KyGTV11iKdwa+YtH;A0~;$kAY73F>kL&C5cYXd?-n@0u+L796^87c3ZRa z%@4|cJ8?9OD~EFLOdL%ZbcDg+8HK!Qm?`p|mLi_u?UrO+GHg}Lf`9RQyv{|qt zLJ_U;=EP}?xR3R-y*G_1zNHaX!EVNPqsYAnjoD6FYMPN13Vg|DMD2f>7RaVIZOZ?1 z4Uj~9x}uY0r>;R4($+rGZ!rf#TbKpqIc>2^Kk7A@Qzx4ez%Wt7&w@(_?x5VWZN*zVMEsdo=C76`xJIQeXCev zYQ@KqR#I-+GW=?am!yAY-lxEJF&L`}^9m5`+CU*{ehDK3O8({Z(BcHLf0xE zeV96&4-jd6W9n*Rikh<-Q&yLtDA;s6tKw5R4Zc2KH7W2us5_-L5FM>>>9+N5+IW*? zx`#S`FNyU_xC}fR5#5Bs7C)OrCRAU228nOm^8@|v>B9EJx9xv9f@P;c;@kEt-E&-> z28nOmv-D+l8YH@H4;V1{>NH4n+ny#9s!#cMljyd+NFQ=F2tunoR2ayDs~o}5fKN_? zP@M*eF55$yBTRV+1cP^#pWXodDSt{*Wn%NH%^(7JzNfENN5FiOWYe<3W9IqxzuHLx zvge?Tg+OR8o(+FmQDPHz98~-eFgp$^A_B9QNE zY$$-ha8o(F z3`+RE9lp#EK~$MZy1{6fbGjlw#SXG_6CD1r!VQb1Z&wpvIg?MKJz3VXmHG}fDNIy6F3W^UC%EDlM$<>C}H{PvBoRR?Sdzx~+81YFr1vF4!-W!0b0B$@9qEQZX=Vj=RT@cETPn1H zxZ1GMysf4qZM{E&whI)B#VAiMl`@tGhW3ANqWdinO*IK?F=$6m7$ZuN_X)HqvcFlf z>0*#F{5s;aMHoguC+!JlCfXqrMvW&$rfh(^DHsh<1zK5BhQ5U592gE^&U)0@k{?x2 zP&dNxiEQuy<=;W_z%rm{AdKrl7}T9*FK!WG&ktNO8WT>GZVAUq|An{Pp~@@}tjKH;^vS$x z5G@l>NFo!plCI2Ww37d2+lGS0PH@@!;Ig1gf= za(*Na%QQb*IyZyQ?Ch~Rk^{&L^t(5>)B+40K$>9a?{frW2hbapW_KTE`^kPv7uns1 zpzO_bii7>{1w2m;s09VA_ zbQrHp7?9y0j4@EhjUakpobj&?7ECT7ctjZ2ToH~S?g3FP_Y0xiSD}9%!DviKU3_!I z87et#FRiDLmG;F5D>H6t0!w2!A)@uJb_9Bhy9DC=;u}x6D8xjLcLapv>x> zE=}k;avokcxx%GMU&DTdUmxqzG${R8yWgdW7e!<--xe_+h2v^zK&2+;{f7=6f7^xW z(a%rnW$o2A2PWalO^kmlAXVeRR3*(Z-iD`3=7jaRfgB$nPiTTZ&at?rwbJb;WC!xL zbv^V+k|Jc7T087XzRY=l8u#?sX;N|)Y`oTl9PU1K%#ui&=kOVDDJwZ#9*r{Ua%DO!4A^=v2bLB3exx$$(GwcN$a#eYK&RZ;6|oa@tfU z$ZE^Fwbcjm0lT_&)dkYcs_u;C%Mq-%$NM#1Oa*s#i))LB9*d=?lTFL&5}+AZTeQ&p zz-by5Wn6VsRL%dE5Eeli>5ipgcWES+mXdA+M7l#(5V!&o($XCg%hKJsBHb(?pr}ZP zN;m%aegAsT``&ZzJ#(J>Ox!tlKJ%HGXJ(`lT$y+vdG&+LD?5L87Rq0+CdyeJ4B>+iI`)nCchGy0?R`<4P9sWhV!iN>2YHkP3`yY|NMDSK9 zEZ)D$qwe&&2l=Wkb`^glHD+=}HVY!T)P0EA=F)sL zfNwFnpTnJ*_wtbg&p}w`l;{B4!nz{+7_>s+!+EqsmhZBkkaR6!dl6&neDJ0$*c3XW- zOp`rjas{LXQgQHo>j$!30=#KUFaBr3BuNZ*m1rEWQ|8Hx$i>v<4nD~A-#e4Z-y}F0 z(xa6KRc}{-ClauN#VD27VkuaRV%b43&HyfR$tenj2^9AlI}P(8!Lf>CbzH{qO&>irUxdazlK~ogp~A8PcCF^LDtWC2 zzEx@c34%HU$1q@cehow7CaOxv&AU-CEc~SZHGy(h3fK#vU+9eLlWmkMMNC(80%u~7100fK6Z%jaQogbnK%rn+; z0X3T>l17dm8SY9ZIF6c4ZtqSr&J)w4&wJQ`Dlq11Y(lLF>eU-|{CuwMnNiZ6XIxsQVcD6sIU6Vx}5exWFJg{Kl3nhTRlGkD#5!}^~2 zU#$ENK-Hb25U$nu^W~HD;~FX$=;v$L{jj?yr?~}t3OoH_HJoqgdhV>ZcO5#-b^NaBwLfBw(h9= zHk=LaDtC++#YC%itA@9Wa?Vd%x`mIJ0?AKpo z&ACFqt8&GD*DW=Q@ydLwK%ZHmpqRPvI!xK|76qqo;xfVQIgRL+l`!cCaF*L!FIzD~7^s$%Jd-An2_!l7&D~FlFs++YMm2cw*&*vLVnC+*D8lJ;MC$}HM zlLKF5?kC<5HXGEJsPFRW;oc`Eu;guc#uSpNxv|ikR%ENlWlkgN+u8`iNrwUv>w)m_ z1?RHX`E~cvlg*1QcjL!40JW%<-@<`NextJeD*IA9vNn=jvzjRXubL`zzA5p1LRQW7 z}U5zDx9 zkgVW!L@3*n6fQmuVDX691dUHd_a{+~d@|-WfkuRf+->YLEVmw}*&x`MEv6Yrhj;02 zmnDiC3cnzVIkr>B5)vWevcgMM;7|mAoT4d3i993QI@o|y${lbshE7eO2;L3|PjE-n z6Mw4>9jH|b*KhV=ql~kO=;n|HheS{!uaEHvMO|sHy-TQp`owJ_wl@fU_b?ZBmRK3U zkPc6n(VkF?nqVV#*lkJ&^hmxqz5&ixl{m)Rh9`%sWN9iM#Ziz+zT&p{J*Rj66(jwj zaH3!)r4)H0L2e8L-$H17^ParH_mfmT2=-#_k}r0MV`x?GcVhbe!^LiUN03sHz4P?l zxZI?=F9QxxVC7a&VAx_Ozlj>iTT7NN=n(a}mbq`K%hyMcuWNO05}TseUjO24x%<-% z^iZ`{%iY4|zJ}+f5ga++;-76qv8Zn(SsU0}#sp^OD}XZx6?8I>q^o-R2e9_r0>V$y zyS3xHW#=!mJ!Q&}RR|Mc4)?08)P>tn=1wP&mH>Ebzo0Ii+x$z(&3ciO;p>{6n?Aix zYiaNNuq&b_NkO-sL!T(4{SA!fv2FqG7%r)+%V8*k{Z*sJ4n!YISL?ENBkA(_jumf{ zS(J`Gf4#B!nNR)lRc*NR+OA$_L(sbFveCq9_ZOQRK`W9QH5@N zJp=rD5KvSS3%wRdU6S`8m6hDKx=Z1>IZsp7%=oBd+!_1!YB!R*Qrr@&m$Dfa1X(lv zdUw=^6l>*RG`n>1g(!mjwcj;A)sptPHil8)qc<>@!9dOGWU`1{(+z47ZZ+Cd!%tUT=?4vnLJsxk` zA3VRB+Wl?wK`Yne(cK5y(G9XO9CyT^zUICDGJu)6nF!KU<`|n-7DXlbyI0B0%ipkb zzqRqKJJTZ9GRL>~wmdZpxmPpPR#~4B8)A^#Sx5C(FfU)TXM1e)#SA{0-DCSl3;?O+ zSDHQG@O5(m|7dAdDHMq3eWhZ~{9;Q$+a!#SWRJ2}Da)NiS1z|!xZ%8gCfg}Ei^OlU ze0K1@x%AK3i*$y2S8OWo!ansLWE&pwDN=D3uoa%lz*DZe{;BMlMnP#St5Hq+9p(4G z=p#PKj`)7BRcg3R(=<7M*kO0)odfUDIIo?xdR{~6?M5|!!vcbpw!{#>1_Hsp3+H9~ z3N3Pf6q+L4+E%FPqV`f3T7&U9l#h2Xn9x5D+SeS%$k4kF`uJv)@tnWXol6Qr%dj(A zYCK~?)YdvoJkuj2=`R-PO2vhI{NV{tE@_S0KDPRg`XA+f`C{rr@auZ?K{>FoYQ^ni zFlRBrz7V?MJ+a#GN)@Y)^g4VHCKs&O7vm&&(tbqUdM7ENF@-NsWSkiHDxxxegH3pw zp5^N%Pf$~41gH1%m3%BS#o}pcW~LQg;*~(ShXdgmN-07Pq!_dKA(I(}AxE;$iEHu&S^hS+`B^P#F&Qq>QSz!udN4}d=NwttBcj z#Db3=Crz-9&1?{O4+5>l3P_R-9dGE3;oZ$-)J^KTUVBx~>$lSLCpQsZbFzo+hOV$B zDsG{tVn_7La_a=JALFn4r$RE`uS*6`Mi#;=&Mf@Hf+xvBe2Y6+Q#ZfE9q?I^4&Cue z`T?J&ms6N)(j(w&z;Z-t@l3@260r!sS^H9LJrT<0%I|!f5|!b+q4&uVwoiuHL+JxP!2sCXU^Mmw*ty>xZM0YlU=F;<)BZ!+og>IJH z!kc$Oc((7XOW(TNW3k@bb@jIfFW%2u`Ga$|Ve#?J2H)U&CdgG@LaC}^ppz@}K@0cZ zg~_jEx+`vT4==f&Ln&U|Hi>8c(c8!?e;xnA&dfdJMgEzfY|xm*4E-mjt<*vDtIuAC zrpxAEa$JX|0skxMEoHuSGMy1n@ zw5N-Vpvs?pD+^6XXNJ)`HQH)w`k0e2aa(2ptni$4Uu z&}{gmM}~z1krYW@)E~x$NQy#}<*}Ion8ZKTo#Td+9`wqT!5$8N;xBhvId9+3>z3_* z_JS8btJ!}$Ge63ySE9GW(pn(W6bckaCu4~9eB{r2u~2HBZ&_Gb-J|3RBdK&yON5069p>3cGN2mKz;_J?&md(K8zB1Qm=blwiM?R|`@Q||xv z=1!;1?IGKG_MLT)zP1K4Ql%9OE$Ca!mvL%Wlxx&+hx=OPUWDhbw=z$>i=HfcXRRVjn$??FZD(^2po&vpR>*gYbfpm; z)F}#v_g#M0UvdIP%pxiTb|JU&QF{c=_K2McgzXNY7k=xYC)1}hiW;ql{1 z=tE?cUYQg@9-P(Dd|$sePX-Ti<-Qdt*GV>ORHtu@zkW2XK;1XLWocFf?X18Qq`xsH z)5S6?p`!XKwOT58ntjFGVs(px z`n&>#sQ~C`P}PEFP<5Q-o6`Me#xN z^;xeuuLd7>%|gb!di*V*+YyC`CzrA7B{Qq1z5pAftINcUu7BatqaFRkOEkI(tFmn} zE;HEwZ#M(|LBj53^>KDBqQp1S=eQP@Qk*a+{p}^^M97DgMLD}&zZ(80+sC=P8sZ*; zmOaVZB+vaKCBwV^CJZjt=)5aGuMU)FCXaJimDt9ekEUOV?y?f5$a3JbHA!Yb3w_>= z6$U0Q9xt0pTlDH$_1diwqB38t-q$Xhh|P`7eLT8V|8!L^YIs)-DTu*~8vhtsq0Z?! z&PF-9Je6*mp+}c=pV0CsppPHSl{IdUTYlP|g`E1Z^f5?f$0jL|;0 zd0s~o?LxE&xQUR`e8L~12A!XSOL>c&?PaiPN?o$1)}rDiko&a*F(os`C3;Uv2A@~i zBj;RICY=4K&koAU=afXwdD+5^2+uqFyL*EtC@u*Jx54WTEhgC5fXF{vuw|l_^G9LQ z@H44T{Ikl5$r%d0G@8M^F^wheBrF=XsyZ49Y1G|8s(NaLIOKt2o#F{Ukf&eh7~cS| z_@s%19g7}M_#KcJ4(if3FNe)QA9LS$lgE3JBX$`)oyVcPgc~ZpEGeg@JE^gwr#=VO;qtvR%oX(ru;k@EA+)HEb5|8b158{BqX^f^(D3#G+8W7>Jd~} zf<^fMFBW%}2mcGeB%mV65ouC@I8^jsub>cd3CMpi37GJ|F{p$n?B5tn_`h*sFk$ik z@WjRbhXMa66I4=IT;$(GNf`9Mn1l%QUp$yFO!VJ8n3#l^*uQz=5Xe940`&j20TY)H TNgha7CV)wbKH%h3eyZ|+yXm~% delta 21929 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
    @? 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 PAy{0LfP>?imeT(Lvn%$4 diff --git a/database/Benchmarks.sql b/database/Benchmarks.sql index e5212e394..dcdc6971e 100644 --- a/database/Benchmarks.sql +++ b/database/Benchmarks.sql @@ -3,7 +3,7 @@ CREATE TABLE "Organization"( short_name VARCHAR NOT NULL, uri VARCHAR, email VARCHAR, - full_name VARCHAR NOT NULL + long_name VARCHAR NOT NULL ); CREATE TABLE artifact_types diff --git a/database/Security Guidance.dmm b/database/Security Guidance.dmm index 12edb6d9d..cdd09361f 100644 --- a/database/Security Guidance.dmm +++ b/database/Security Guidance.dmm @@ -389,7 +389,7 @@ }, { "id": "25edc163-dc64-4451-b8b5-010934342c35", - "name": "full_name", + "name": "long_name", "datatype": "VARCHAR", "param": "", "pk": false, @@ -1328,7 +1328,7 @@ "keywordCase": "upper", "identiferCase": "original" }, - "lastSaved": 1702601859734 + "lastSaved": 1702603733496 }, "otherObjects": {}, "diagrams": { diff --git a/database/web/index.html b/database/web/index.html index c0c30b2f7..e397b40da 100644 --- a/database/web/index.html +++ b/database/web/index.html @@ -21,7 +21,7 @@ var projectObj = {}; var searchTerm = ""; - const projectData = {"Tables":{"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40":{"id":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","visible":true,"name":"Benchmarks","desc":"A collection of Security Benchmarks that are publied by Autors","estimatedSize":"","cols":[{"id":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","name":"benchmark_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] Autogenerated primary key of the vendor published security guidance document","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"f428635d-6ccc-4a7f-8649-0c02987ec283","name":"version","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark version number ","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"b00c4bcd-d3ba-4d03-bdcd-cd72c2e48b07","name":"release","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark release number","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"8f7d58d8-8560-4bb5-946a-6784a261d0d3","name":"release_date","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"The date that the benchmark was published by the Autor","defaultvalue":"","data":"01\\/02\\/2023","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"248ecf4a-67bc-4911-bdf4-44e371027db5","name":"status_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":false},{"id":"2da7d7d5-7ef4-4c07-a424-8b116ecd29ba","name":"type_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autoincrement] id of the benchmark type","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"a63e9906-c1c8-47b8-b628-23fd92b1ffe5","name":"product_id","datatype":"INT","param":"","pk":false,"nn":true,"comment":"[autoincrement] The int id of the product related to the benchmak","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"ff9f083a-372b-499b-8dc8-fdcf0fdc822e","name":"author_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that authored the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"df997652-f34f-45cc-9138-755f4c5ba318","name":"sponsor_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that supported the development of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"f24a7cbb-97a8-4ad6-99ef-978597b0742a","name":"status_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":true}],"relations":["663efedd-aac8-45c1-baf3-c22f9266e727","6465776d-da1f-414e-a12c-32ac13b66909","8440ea26-76c0-4269-9597-a6995d857b68","e12f9a4e-1035-45c0-bd66-a0b32b825758","3627acdc-20c5-462a-9096-da39cd6b9ed8","a2782a52-3d03-4937-8ccf-9e0a994db294"],"lines":[],"keys":[{"id":"fa60d456-7fef-4426-9a1d-b938566b8d9b","name":"Primary key","isPk":true,"cols":[{"id":"57007081-1108-49b6-bc9f-182034e7f0cf","colid":"1d76151a-b0c8-4b0a-8400-f244d48a92d6"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"ae252854-db26-47df-9077-04e929b84447":{"id":"ae252854-db26-47df-9077-04e929b84447","visible":true,"name":"benchmark_type","desc":"Describes the kind of benchmark to include:\\n - Security Technical Implementation Gudie (stig)\\n - Security Requirements Guide (srg)\\n - Center for Internet Security Benchmark (cis)\\n - Vendor Guidance (vendor)","estimatedSize":"","cols":[{"id":"6684e545-9261-4248-8a02-b11526e64fd8","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The short name name of the benchmark type","defaultvalue":"","data":"\\\"stig\\\", \\\"cis\\\", \\\"srg\\\", \\\"AWS-BP\\\", 'RH-BP'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e2f74eb2-b3b5-4c54-87ab-e131faee5c35","name":"description","datatype":"TEXT","param":"","pk":false,"nn":true,"comment":"The full text description of the guidane type","defaultvalue":"","data":"'A Security Technical Implementation Guide ....' , 'A Center for Internet Security Benchmark.....'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d","name":"benchmark_type_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autoincrement] id of the benchmark type","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"e799c237-5417-437d-a4aa-c2da58ff5de2","name":"long_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full name of the Benchmark type","defaultvalue":"","data":"'Security Technical Implementation Guide', 'Center for Internet Security Benchmark', 'Redhat Best Practices Guide', 'Amazon Best Practices Guide'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["6465776d-da1f-414e-a12c-32ac13b66909"],"lines":[],"keys":[{"id":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","name":"Primary key","isPk":true,"cols":[{"id":"d5d5d063-6b18-40f6-b91a-1dfe9de63169","colid":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"510cb49c-1f0e-4203-bd5d-80c96e661f5e":{"id":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","visible":true,"name":"Organization","desc":"List of organizations or gorups that author or manage security guidance","estimatedSize":"","cols":[{"id":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","name":"organization_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"cee2c943-546c-4f5c-a4c3-9483a4e03410","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The short text name of the author, vendor or agency","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft', 'DSCA', 'DCSA','NGA'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"3c4f5e5d-568e-4714-8c21-9390758cfbbd","name":"uri","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"The primary uri of the author, vendor or agency","defaultvalue":"","data":"'https:\\/\\/www.mitre.org','https:\\/\\/www.disa.mil','https:\\/\\/www.vmware.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"016880f0-a877-42fa-af4d-f3bc012d36a2","name":"email","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] The email of the autor","defaultvalue":"","data":"'me@you.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"25edc163-dc64-4451-b8b5-010934342c35","name":"full_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full text name of the author, vendor or agency.","defaultvalue":"","data":"'MITRE Security Automation Framework', 'Defense Information Systems Agency', 'Defense Counterintelligence Services Agency', 'National Geospatial-Intelligence Agency'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["fd560202-d9f1-4e3a-8133-4d207466a3c0","e12f9a4e-1035-45c0-bd66-a0b32b825758","3627acdc-20c5-462a-9096-da39cd6b9ed8","46831da2-6151-4803-a00f-c8b7a0fb5cf4"],"lines":[],"keys":[{"id":"b056d86c-a62c-465f-ac96-9374f6e41b3f","name":"Primary key","isPk":true,"cols":[{"id":"c53bc39a-2a2d-4167-860f-1cbbad8238a7","colid":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6e2bb99e-5664-4222-b085-611dca238bf8":{"id":"6e2bb99e-5664-4222-b085-611dca238bf8","visible":true,"name":"Artifact","desc":"Collection of file artifacts related to the Benchmark, their data and where they are stored.","estimatedSize":"","cols":[{"id":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","name":"artifact_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"4491f4ac-a271-44c9-96b8-91373e4deab9","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Filename that the artifact is stored as on the target location","defaultvalue":"","data":"'U_A10_Networks_ADC_ALG_V2R1_STIG.zip', 'rhel-9-profile.json', 'U_Red_Hat_Enterprise_Linux_7_STIG_V3R7_Manual-xccdf.xml'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e81132e3-e87c-4733-a5c4-1b7572f801d8","name":"location","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The URI path of the artifact","defaultvalue":"","data":"https:\\/\\/dl.dod.cyber.mil\\/wp-content\\/uploads\\/stigs\\/zip","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"ecaa1880-06fc-4554-b8f4-2e3fdc71c029","name":"created_at","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"568f380a-7d3b-4363-80a1-8459c0de6473","name":"secondary_location","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] A file path, uri or other location you can find the reference besides the default location.","defaultvalue":"","data":"'my_other\\/place\\/file.zip'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"59dbe73d-c74b-4b4a-b3a0-e5e566a9cd23","name":"raw_data","datatype":"BLOB","param":"","pk":false,"nn":false,"comment":"[optional] The raw data of the Artifact","defaultvalue":"","data":"XCCDF_File, Profile JSON, ","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"23ae68f2-9c16-41af-bc28-13cd4eab9a71","name":"type_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"4c828330-0377-4eee-a133-32a062c1f18b","name":"organization_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the creator or owner of the artifact","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec","4624830c-2ee0-4972-b189-2657e9b7998b","46831da2-6151-4803-a00f-c8b7a0fb5cf4"],"lines":[],"keys":[{"id":"3f97f355-6d9f-4714-8099-5b17c5f57130","name":"Primary key","isPk":true,"cols":[{"id":"ad95d426-57d4-4e67-b616-24582987192c","colid":"2d7700a1-2d99-49fe-b90c-4fd176eb8951"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"e4cfe7e8-661f-462c-b51e-401688f089aa":{"id":"e4cfe7e8-661f-462c-b51e-401688f089aa","visible":true,"name":"benchmark_artifacts","desc":"","estimatedSize":"","cols":[{"id":"16db22ec-71fe-45af-a622-ff81a5c8500a","name":"default","datatype":"INT2","param":"","pk":false,"nn":false,"comment":"[optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.","defaultvalue":"","data":"0.1,NULL","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"51e1ca41-0019-4f28-828a-baea406e7692","name":"benchmark_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] Autogenerated primary key of the vendor published security guidance document","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"75e75cd3-b681-43db-8506-a9d3dea7c1de","name":"artifact_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["a2782a52-3d03-4937-8ccf-9e0a994db294","4624830c-2ee0-4972-b189-2657e9b7998b"],"lines":[],"keys":[{"id":"39423998-e8c5-4fb5-92ac-845c28a6d1de","name":"Primary key","isPk":true,"cols":[{"id":"7cafc003-1052-4edb-8ee0-2f973c5ca745","colid":"51e1ca41-0019-4f28-828a-baea406e7692"},{"id":"9c3e011a-7328-4902-aa6d-eccc063ea7a8","colid":"75e75cd3-b681-43db-8506-a9d3dea7c1de"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6aecb762-1a99-493f-987c-133569ac56d9":{"id":"6aecb762-1a99-493f-987c-133569ac56d9","visible":true,"name":"artifact_types","desc":"A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies","estimatedSize":"","cols":[{"id":"77f4d932-64bb-4cb8-a6d4-6511cac8493a","name":"type_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The simple name of the artifact","defaultvalue":"","data":"XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9","name":"artifact_type_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autoincrement] The int id of the artifact kind","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"f86361cd-57a5-4cee-98c0-ac57ccea6a1a","name":"description","datatype":"TEXT","param":"","pk":false,"nn":false,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec"],"lines":[],"keys":[{"id":"db251232-ef40-4eb6-92ff-67f608e7f6f6","name":"Primary key","isPk":true,"cols":[{"id":"f7d1404a-15dd-4014-a49d-0fb118f6883f","colid":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"52cf2433-451e-4ba0-8b3d-8624bd967ffb":{"id":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","visible":true,"name":"Products","desc":"A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level.\\n\\nFor example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'","estimatedSize":"","cols":[{"id":"058e47d0-7551-4777-95d1-738dc4381129","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The common name of the product or service - sometimes called the 'short name' - for example:\\nRHEL for Red Hat Enterprise Linux \\nVIDM for VMware Identity Manager\\nvSphere for VMware vSphere\\n","defaultvalue":"","data":"'RHEL', 'VCF', 'VIDM', 'vSphere'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"48f5eb1d-79c8-4914-bfff-53c5d057be39","name":"version","datatype":"REAL","param":"","pk":false,"nn":true,"comment":"The version of the project","defaultvalue":"","data":"1, 7, 10.7","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"0750946d-1961-48f7-a05f-ad3ca3c6619f","name":"author_id","datatype":"INT","param":"","pk":false,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":false},{"id":"db0e76c4-1a99-4c6f-a92d-ae2e44a085c0","name":"release","datatype":"INT","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"7a5090f4-bee9-46a5-9cbf-b9b97cb5dbb7","name":"long_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same.","defaultvalue":"","data":"'Identity Manager', 'Cloud Foundation', 'vSphere'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"83427e84-109d-43a2-9c15-a1d3c444ebaa","name":"product_id","datatype":"INT","param":"","pk":true,"nn":true,"comment":"[autoincrement] The int id of the product","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"af7e3f56-16b2-463c-afa0-3393593014d8","name":"organization_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that ownes or manages the product","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["fd560202-d9f1-4e3a-8133-4d207466a3c0","8440ea26-76c0-4269-9597-a6995d857b68"],"lines":[],"keys":[{"id":"91648061-8fe5-45d6-a841-129186f7cdc0","name":"Primary key","isPk":true,"cols":[{"id":"a4289a34-9f2c-4b9c-bd69-53487fc254b3","colid":"83427e84-109d-43a2-9c15-a1d3c444ebaa"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"3042578a-ef8c-490f-86e5-4cebe82acc7d":{"id":"3042578a-ef8c-490f-86e5-4cebe82acc7d","visible":true,"name":"Statuses","desc":"Collection of statuses that can applly to a Benckmark or Artifact","estimatedSize":"","cols":[{"id":"4bc8e5d6-ec2c-44a7-940c-d75199f981af","name":"status_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"2bbc6494-a884-4eca-8769-d8aedfc02637","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Text based name for the status","defaultvalue":"","data":"'final', 'draft', 'in-review', 'sunset'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["663efedd-aac8-45c1-baf3-c22f9266e727"],"lines":[],"keys":[{"id":"83c53cd8-165d-4d51-b67e-8c74146d2572","name":"Primary key","isPk":true,"cols":[{"id":"77066e97-129c-446c-aa0c-c6d71ad508dc","colid":"4bc8e5d6-ec2c-44a7-940c-d75199f981af"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}}},"Json":{},"Relationships":{"ab7e56b9-8aa7-429c-97ac-d4e117244aec":{"id":"ab7e56b9-8aa7-429c-97ac-d4e117244aec","visible":true,"name":"type_Artifact","desc":"","type":"identifying","parent_key":"db251232-ef40-4eb6-92ff-67f608e7f6f6","parent":"6aecb762-1a99-493f-987c-133569ac56d9","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"72c50d9c-e2e7-434f-aebd-74f8ea024323","parentcol":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9","childcol":"23ae68f2-9c16-41af-bc28-13cd4eab9a71"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"fd560202-d9f1-4e3a-8133-4d207466a3c0":{"id":"fd560202-d9f1-4e3a-8133-4d207466a3c0","visible":true,"name":"organization_id_Products","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"318857a7-a606-4717-965d-87afc13b2539","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"af7e3f56-16b2-463c-afa0-3393593014d8"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"663efedd-aac8-45c1-baf3-c22f9266e727":{"id":"663efedd-aac8-45c1-baf3-c22f9266e727","visible":true,"name":"status_id_Benchmarks","desc":"","type":"identifying","parent_key":"83c53cd8-165d-4d51-b67e-8c74146d2572","parent":"3042578a-ef8c-490f-86e5-4cebe82acc7d","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"044a1194-9e1a-46f6-8bfa-d1f8352dde57","parentcol":"4bc8e5d6-ec2c-44a7-940c-d75199f981af","childcol":"f24a7cbb-97a8-4ad6-99ef-978597b0742a"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"6465776d-da1f-414e-a12c-32ac13b66909":{"id":"6465776d-da1f-414e-a12c-32ac13b66909","visible":true,"name":"benchmark_type_id_Benchmarks","desc":"","type":"identifying","parent_key":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","parent":"ae252854-db26-47df-9077-04e929b84447","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"d1e80650-fddc-4d27-8377-6c6335c1f8d0","parentcol":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d","childcol":"2da7d7d5-7ef4-4c07-a424-8b116ecd29ba"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"8440ea26-76c0-4269-9597-a6995d857b68":{"id":"8440ea26-76c0-4269-9597-a6995d857b68","visible":true,"name":"product_id_Benchmarks","desc":"","type":"identifying","parent_key":"91648061-8fe5-45d6-a841-129186f7cdc0","parent":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"67bf027e-9999-405b-b2ab-8ea0bf9c1a9b","parentcol":"83427e84-109d-43a2-9c15-a1d3c444ebaa","childcol":"a63e9906-c1c8-47b8-b628-23fd92b1ffe5"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"e12f9a4e-1035-45c0-bd66-a0b32b825758":{"id":"e12f9a4e-1035-45c0-bd66-a0b32b825758","visible":true,"name":"organization_id_Benchmarks","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"b91acfd7-91d9-4c82-b152-a0731685fc7f","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"ff9f083a-372b-499b-8dc8-fdcf0fdc822e"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"3627acdc-20c5-462a-9096-da39cd6b9ed8":{"id":"3627acdc-20c5-462a-9096-da39cd6b9ed8","visible":true,"name":"organization_id_Benchmarks","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"f6151098-8bd2-4eb5-b9e7-f25d659a5eb3","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"df997652-f34f-45cc-9138-755f4c5ba318"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"a2782a52-3d03-4937-8ccf-9e0a994db294":{"id":"a2782a52-3d03-4937-8ccf-9e0a994db294","visible":true,"name":"benchmark_id_benchmark_artifacts","desc":"","type":"identifying","parent_key":"fa60d456-7fef-4426-9a1d-b938566b8d9b","parent":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"6fced89c-1eaf-4bb5-913a-638ea22caa51","parentcol":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","childcol":"51e1ca41-0019-4f28-828a-baea406e7692"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"4624830c-2ee0-4972-b189-2657e9b7998b":{"id":"4624830c-2ee0-4972-b189-2657e9b7998b","visible":true,"name":"artifact_id_benchmark_artifacts","desc":"","type":"identifying","parent_key":"3f97f355-6d9f-4714-8099-5b17c5f57130","parent":"6e2bb99e-5664-4222-b085-611dca238bf8","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"dcf7410d-e61c-40ef-9ccc-f3961b3c3790","parentcol":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","childcol":"75e75cd3-b681-43db-8506-a9d3dea7c1de"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"46831da2-6151-4803-a00f-c8b7a0fb5cf4":{"id":"46831da2-6151-4803-a00f-c8b7a0fb5cf4","visible":true,"name":"organization_id_Artifact","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"c981600c-4d98-44cb-80d4-913c5972493f","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"4c828330-0377-4eee-a133-32a062c1f18b"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"}},"Lines":{},"Other":{},"Notes":{}} + const projectData = {"Tables":{"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40":{"id":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","visible":true,"name":"Benchmarks","desc":"A collection of Security Benchmarks that are publied by Autors","estimatedSize":"","cols":[{"id":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","name":"benchmark_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] Autogenerated primary key of the vendor published security guidance document","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"f428635d-6ccc-4a7f-8649-0c02987ec283","name":"version","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark version number ","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"b00c4bcd-d3ba-4d03-bdcd-cd72c2e48b07","name":"release","datatype":"SMALLINT","param":"","pk":false,"nn":true,"comment":"The benchmark release number","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"8f7d58d8-8560-4bb5-946a-6784a261d0d3","name":"release_date","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"The date that the benchmark was published by the Autor","defaultvalue":"","data":"01\\/02\\/2023","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"248ecf4a-67bc-4911-bdf4-44e371027db5","name":"status_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":false},{"id":"2da7d7d5-7ef4-4c07-a424-8b116ecd29ba","name":"type_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autoincrement] id of the benchmark type","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"a63e9906-c1c8-47b8-b628-23fd92b1ffe5","name":"product_id","datatype":"INT","param":"","pk":false,"nn":true,"comment":"[autoincrement] The int id of the product related to the benchmak","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"ff9f083a-372b-499b-8dc8-fdcf0fdc822e","name":"author_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that authored the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"df997652-f34f-45cc-9138-755f4c5ba318","name":"sponsor_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that supported the development of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"f24a7cbb-97a8-4ad6-99ef-978597b0742a","name":"status_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":true}],"relations":["663efedd-aac8-45c1-baf3-c22f9266e727","6465776d-da1f-414e-a12c-32ac13b66909","8440ea26-76c0-4269-9597-a6995d857b68","e12f9a4e-1035-45c0-bd66-a0b32b825758","3627acdc-20c5-462a-9096-da39cd6b9ed8","a2782a52-3d03-4937-8ccf-9e0a994db294"],"lines":[],"keys":[{"id":"fa60d456-7fef-4426-9a1d-b938566b8d9b","name":"Primary key","isPk":true,"cols":[{"id":"57007081-1108-49b6-bc9f-182034e7f0cf","colid":"1d76151a-b0c8-4b0a-8400-f244d48a92d6"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"ae252854-db26-47df-9077-04e929b84447":{"id":"ae252854-db26-47df-9077-04e929b84447","visible":true,"name":"benchmark_type","desc":"Describes the kind of benchmark to include:\\n - Security Technical Implementation Gudie (stig)\\n - Security Requirements Guide (srg)\\n - Center for Internet Security Benchmark (cis)\\n - Vendor Guidance (vendor)","estimatedSize":"","cols":[{"id":"6684e545-9261-4248-8a02-b11526e64fd8","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The short name name of the benchmark type","defaultvalue":"","data":"\\\"stig\\\", \\\"cis\\\", \\\"srg\\\", \\\"AWS-BP\\\", 'RH-BP'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e2f74eb2-b3b5-4c54-87ab-e131faee5c35","name":"description","datatype":"TEXT","param":"","pk":false,"nn":true,"comment":"The full text description of the guidane type","defaultvalue":"","data":"'A Security Technical Implementation Guide ....' , 'A Center for Internet Security Benchmark.....'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d","name":"benchmark_type_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autoincrement] id of the benchmark type","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"e799c237-5417-437d-a4aa-c2da58ff5de2","name":"long_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full name of the Benchmark type","defaultvalue":"","data":"'Security Technical Implementation Guide', 'Center for Internet Security Benchmark', 'Redhat Best Practices Guide', 'Amazon Best Practices Guide'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["6465776d-da1f-414e-a12c-32ac13b66909"],"lines":[],"keys":[{"id":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","name":"Primary key","isPk":true,"cols":[{"id":"d5d5d063-6b18-40f6-b91a-1dfe9de63169","colid":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"510cb49c-1f0e-4203-bd5d-80c96e661f5e":{"id":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","visible":true,"name":"Organization","desc":"List of organizations or gorups that author or manage security guidance","estimatedSize":"","cols":[{"id":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","name":"organization_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"cee2c943-546c-4f5c-a4c3-9483a4e03410","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The short text name of the author, vendor or agency","defaultvalue":"","data":"''MITRE SAF', 'VMWare', 'RedHat', 'DISA','Oracle','Microsoft', 'DSCA', 'DCSA','NGA'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"3c4f5e5d-568e-4714-8c21-9390758cfbbd","name":"uri","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"The primary uri of the author, vendor or agency","defaultvalue":"","data":"'https:\\/\\/www.mitre.org','https:\\/\\/www.disa.mil','https:\\/\\/www.vmware.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"016880f0-a877-42fa-af4d-f3bc012d36a2","name":"email","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] The email of the autor","defaultvalue":"","data":"'me@you.com'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"25edc163-dc64-4451-b8b5-010934342c35","name":"long_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The full text name of the author, vendor or agency.","defaultvalue":"","data":"'MITRE Security Automation Framework', 'Defense Information Systems Agency', 'Defense Counterintelligence Services Agency', 'National Geospatial-Intelligence Agency'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["fd560202-d9f1-4e3a-8133-4d207466a3c0","e12f9a4e-1035-45c0-bd66-a0b32b825758","3627acdc-20c5-462a-9096-da39cd6b9ed8","46831da2-6151-4803-a00f-c8b7a0fb5cf4"],"lines":[],"keys":[{"id":"b056d86c-a62c-465f-ac96-9374f6e41b3f","name":"Primary key","isPk":true,"cols":[{"id":"c53bc39a-2a2d-4167-860f-1cbbad8238a7","colid":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6e2bb99e-5664-4222-b085-611dca238bf8":{"id":"6e2bb99e-5664-4222-b085-611dca238bf8","visible":true,"name":"Artifact","desc":"Collection of file artifacts related to the Benchmark, their data and where they are stored.","estimatedSize":"","cols":[{"id":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","name":"artifact_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"4491f4ac-a271-44c9-96b8-91373e4deab9","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Filename that the artifact is stored as on the target location","defaultvalue":"","data":"'U_A10_Networks_ADC_ALG_V2R1_STIG.zip', 'rhel-9-profile.json', 'U_Red_Hat_Enterprise_Linux_7_STIG_V3R7_Manual-xccdf.xml'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"e81132e3-e87c-4733-a5c4-1b7572f801d8","name":"location","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The URI path of the artifact","defaultvalue":"","data":"https:\\/\\/dl.dod.cyber.mil\\/wp-content\\/uploads\\/stigs\\/zip","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"ecaa1880-06fc-4554-b8f4-2e3fdc71c029","name":"created_at","datatype":"DATE","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"568f380a-7d3b-4363-80a1-8459c0de6473","name":"secondary_location","datatype":"VARCHAR","param":"","pk":false,"nn":false,"comment":"[optional] A file path, uri or other location you can find the reference besides the default location.","defaultvalue":"","data":"'my_other\\/place\\/file.zip'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"59dbe73d-c74b-4b4a-b3a0-e5e566a9cd23","name":"raw_data","datatype":"BLOB","param":"","pk":false,"nn":false,"comment":"[optional] The raw data of the Artifact","defaultvalue":"","data":"XCCDF_File, Profile JSON, ","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"23ae68f2-9c16-41af-bc28-13cd4eab9a71","name":"type_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"4c828330-0377-4eee-a133-32a062c1f18b","name":"organization_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the creator or owner of the artifact","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec","4624830c-2ee0-4972-b189-2657e9b7998b","46831da2-6151-4803-a00f-c8b7a0fb5cf4"],"lines":[],"keys":[{"id":"3f97f355-6d9f-4714-8099-5b17c5f57130","name":"Primary key","isPk":true,"cols":[{"id":"ad95d426-57d4-4e67-b616-24582987192c","colid":"2d7700a1-2d99-49fe-b90c-4fd176eb8951"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"e4cfe7e8-661f-462c-b51e-401688f089aa":{"id":"e4cfe7e8-661f-462c-b51e-401688f089aa","visible":true,"name":"benchmark_artifacts","desc":"","estimatedSize":"","cols":[{"id":"16db22ec-71fe-45af-a622-ff81a5c8500a","name":"default","datatype":"INT2","param":"","pk":false,"nn":false,"comment":"[optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.","defaultvalue":"","data":"0.1,NULL","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"51e1ca41-0019-4f28-828a-baea406e7692","name":"benchmark_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] Autogenerated primary key of the vendor published security guidance document","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true},{"id":"75e75cd3-b681-43db-8506-a9d3dea7c1de","name":"artifact_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] The id of the artifact.","defaultvalue":"","data":"","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["a2782a52-3d03-4937-8ccf-9e0a994db294","4624830c-2ee0-4972-b189-2657e9b7998b"],"lines":[],"keys":[{"id":"39423998-e8c5-4fb5-92ac-845c28a6d1de","name":"Primary key","isPk":true,"cols":[{"id":"7cafc003-1052-4edb-8ee0-2f973c5ca745","colid":"51e1ca41-0019-4f28-828a-baea406e7692"},{"id":"9c3e011a-7328-4902-aa6d-eccc063ea7a8","colid":"75e75cd3-b681-43db-8506-a9d3dea7c1de"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"6aecb762-1a99-493f-987c-133569ac56d9":{"id":"6aecb762-1a99-493f-987c-133569ac56d9","visible":true,"name":"artifact_types","desc":"A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies","estimatedSize":"","cols":[{"id":"77f4d932-64bb-4cb8-a6d4-6511cac8493a","name":"type_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The simple name of the artifact","defaultvalue":"","data":"XCCDF Benchmark, SRG Benchmark, InSpec Profile, HDF Profile JOSN, Zip Archieve,","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9","name":"artifact_type_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autoincrement] The int id of the artifact kind","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"f86361cd-57a5-4cee-98c0-ac57ccea6a1a","name":"description","datatype":"TEXT","param":"","pk":false,"nn":false,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["ab7e56b9-8aa7-429c-97ac-d4e117244aec"],"lines":[],"keys":[{"id":"db251232-ef40-4eb6-92ff-67f608e7f6f6","name":"Primary key","isPk":true,"cols":[{"id":"f7d1404a-15dd-4014-a49d-0fb118f6883f","colid":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"52cf2433-451e-4ba0-8b3d-8624bd967ffb":{"id":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","visible":true,"name":"Products","desc":"A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level.\\n\\nFor example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'","estimatedSize":"","cols":[{"id":"058e47d0-7551-4777-95d1-738dc4381129","name":"short_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The common name of the product or service - sometimes called the 'short name' - for example:\\nRHEL for Red Hat Enterprise Linux \\nVIDM for VMware Identity Manager\\nvSphere for VMware vSphere\\n","defaultvalue":"","data":"'RHEL', 'VCF', 'VIDM', 'vSphere'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"48f5eb1d-79c8-4914-bfff-53c5d057be39","name":"version","datatype":"REAL","param":"","pk":false,"nn":true,"comment":"The version of the project","defaultvalue":"","data":"1, 7, 10.7","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"0750946d-1961-48f7-a05f-ad3ca3c6619f","name":"author_id","datatype":"INT","param":"","pk":false,"nn":true,"comment":"Integer id of the author of the benchmark","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":false},{"id":"db0e76c4-1a99-4c6f-a92d-ae2e44a085c0","name":"release","datatype":"INT","param":"","pk":false,"nn":true,"comment":"","defaultvalue":"","data":"","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"7a5090f4-bee9-46a5-9cbf-b9b97cb5dbb7","name":"long_name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same.","defaultvalue":"","data":"'Identity Manager', 'Cloud Foundation', 'vSphere'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""},{"id":"83427e84-109d-43a2-9c15-a1d3c444ebaa","name":"product_id","datatype":"INT","param":"","pk":true,"nn":true,"comment":"[autoincrement] The int id of the product","defaultvalue":"","data":"1,2,3","after":"","sqlite":{"autoincrement":true},"estimatedSize":""},{"id":"af7e3f56-16b2-463c-afa0-3393593014d8","name":"organization_id","datatype":"INTEGER","param":"","pk":false,"nn":true,"comment":"Integer id of the organization that ownes or manages the product","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":false},"estimatedSize":"","fk":true}],"relations":["fd560202-d9f1-4e3a-8133-4d207466a3c0","8440ea26-76c0-4269-9597-a6995d857b68"],"lines":[],"keys":[{"id":"91648061-8fe5-45d6-a841-129186f7cdc0","name":"Primary key","isPk":true,"cols":[{"id":"a4289a34-9f2c-4b9c-bd69-53487fc254b3","colid":"83427e84-109d-43a2-9c15-a1d3c444ebaa"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}},"3042578a-ef8c-490f-86e5-4cebe82acc7d":{"id":"3042578a-ef8c-490f-86e5-4cebe82acc7d","visible":true,"name":"Statuses","desc":"Collection of statuses that can applly to a Benckmark or Artifact","estimatedSize":"","cols":[{"id":"4bc8e5d6-ec2c-44a7-940c-d75199f981af","name":"status_id","datatype":"INTEGER","param":"","pk":true,"nn":true,"comment":"[autogenerated] id of the status type","defaultvalue":"","data":"1,2,3","after":"","collation":"","sqlite":{"autoincrement":true},"estimatedSize":"","fk":false},{"id":"2bbc6494-a884-4eca-8769-d8aedfc02637","name":"name","datatype":"VARCHAR","param":"","pk":false,"nn":true,"comment":"Text based name for the status","defaultvalue":"","data":"'final', 'draft', 'in-review', 'sunset'","after":"","sqlite":{"autoincrement":false},"estimatedSize":""}],"relations":["663efedd-aac8-45c1-baf3-c22f9266e727"],"lines":[],"keys":[{"id":"83c53cd8-165d-4d51-b67e-8c74146d2572","name":"Primary key","isPk":true,"cols":[{"id":"77066e97-129c-446c-aa0c-c6d71ad508dc","colid":"4bc8e5d6-ec2c-44a7-940c-d75199f981af"}]}],"indexes":[],"embeddable":false,"generate":true,"generateCustomCode":true,"customCode":"","beforeScript":"","afterScript":"","sqlite":{"withoutrowid":false,"strict":false}}},"Json":{},"Relationships":{"ab7e56b9-8aa7-429c-97ac-d4e117244aec":{"id":"ab7e56b9-8aa7-429c-97ac-d4e117244aec","visible":true,"name":"type_Artifact","desc":"","type":"identifying","parent_key":"db251232-ef40-4eb6-92ff-67f608e7f6f6","parent":"6aecb762-1a99-493f-987c-133569ac56d9","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"72c50d9c-e2e7-434f-aebd-74f8ea024323","parentcol":"a4c26fa6-5af9-4d31-96ab-5b068fe82fd9","childcol":"23ae68f2-9c16-41af-bc28-13cd4eab9a71"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"fd560202-d9f1-4e3a-8133-4d207466a3c0":{"id":"fd560202-d9f1-4e3a-8133-4d207466a3c0","visible":true,"name":"organization_id_Products","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"318857a7-a606-4717-965d-87afc13b2539","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"af7e3f56-16b2-463c-afa0-3393593014d8"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"663efedd-aac8-45c1-baf3-c22f9266e727":{"id":"663efedd-aac8-45c1-baf3-c22f9266e727","visible":true,"name":"status_id_Benchmarks","desc":"","type":"identifying","parent_key":"83c53cd8-165d-4d51-b67e-8c74146d2572","parent":"3042578a-ef8c-490f-86e5-4cebe82acc7d","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"044a1194-9e1a-46f6-8bfa-d1f8352dde57","parentcol":"4bc8e5d6-ec2c-44a7-940c-d75199f981af","childcol":"f24a7cbb-97a8-4ad6-99ef-978597b0742a"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"6465776d-da1f-414e-a12c-32ac13b66909":{"id":"6465776d-da1f-414e-a12c-32ac13b66909","visible":true,"name":"benchmark_type_id_Benchmarks","desc":"","type":"identifying","parent_key":"28a111ff-8ee7-4a1b-8ad5-6ceee0ba3098","parent":"ae252854-db26-47df-9077-04e929b84447","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"d1e80650-fddc-4d27-8377-6c6335c1f8d0","parentcol":"2df4ebdd-61f4-4cbc-b21e-7abd97d92e3d","childcol":"2da7d7d5-7ef4-4c07-a424-8b116ecd29ba"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"8440ea26-76c0-4269-9597-a6995d857b68":{"id":"8440ea26-76c0-4269-9597-a6995d857b68","visible":true,"name":"product_id_Benchmarks","desc":"","type":"identifying","parent_key":"91648061-8fe5-45d6-a841-129186f7cdc0","parent":"52cf2433-451e-4ba0-8b3d-8624bd967ffb","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"67bf027e-9999-405b-b2ab-8ea0bf9c1a9b","parentcol":"83427e84-109d-43a2-9c15-a1d3c444ebaa","childcol":"a63e9906-c1c8-47b8-b628-23fd92b1ffe5"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"e12f9a4e-1035-45c0-bd66-a0b32b825758":{"id":"e12f9a4e-1035-45c0-bd66-a0b32b825758","visible":true,"name":"organization_id_Benchmarks","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"b91acfd7-91d9-4c82-b152-a0731685fc7f","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"ff9f083a-372b-499b-8dc8-fdcf0fdc822e"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"3627acdc-20c5-462a-9096-da39cd6b9ed8":{"id":"3627acdc-20c5-462a-9096-da39cd6b9ed8","visible":true,"name":"organization_id_Benchmarks","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"f6151098-8bd2-4eb5-b9e7-f25d659a5eb3","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"df997652-f34f-45cc-9138-755f4c5ba318"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"a2782a52-3d03-4937-8ccf-9e0a994db294":{"id":"a2782a52-3d03-4937-8ccf-9e0a994db294","visible":true,"name":"benchmark_id_benchmark_artifacts","desc":"","type":"identifying","parent_key":"fa60d456-7fef-4426-9a1d-b938566b8d9b","parent":"c8ba4433-bd1b-468b-b33e-d5c50f1f2b40","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"6fced89c-1eaf-4bb5-913a-638ea22caa51","parentcol":"1d76151a-b0c8-4b0a-8400-f244d48a92d6","childcol":"51e1ca41-0019-4f28-828a-baea406e7692"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"4624830c-2ee0-4972-b189-2657e9b7998b":{"id":"4624830c-2ee0-4972-b189-2657e9b7998b","visible":true,"name":"artifact_id_benchmark_artifacts","desc":"","type":"identifying","parent_key":"3f97f355-6d9f-4714-8099-5b17c5f57130","parent":"6e2bb99e-5664-4222-b085-611dca238bf8","child":"e4cfe7e8-661f-462c-b51e-401688f089aa","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"dcf7410d-e61c-40ef-9ccc-f3961b3c3790","parentcol":"2d7700a1-2d99-49fe-b90c-4fd176eb8951","childcol":"75e75cd3-b681-43db-8506-a9d3dea7c1de"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"},"46831da2-6151-4803-a00f-c8b7a0fb5cf4":{"id":"46831da2-6151-4803-a00f-c8b7a0fb5cf4","visible":true,"name":"organization_id_Artifact","desc":"","type":"identifying","parent_key":"b056d86c-a62c-465f-ac96-9374f6e41b3f","parent":"510cb49c-1f0e-4203-bd5d-80c96e661f5e","child":"6e2bb99e-5664-4222-b085-611dca238bf8","c_mp":"true","c_mch":"true","c_p":"one","c_ch":"many","c_cp":"","c_cch":"","cols":[{"id":"c981600c-4d98-44cb-80d4-913c5972493f","parentcol":"4f150da9-eb0c-4e4a-bbee-6f3ea1781ec9","childcol":"4c828330-0377-4eee-a133-32a062c1f18b"}],"generate":true,"generateCustomCode":true,"customCode":"","relationColor":"transparent"}},"Lines":{},"Other":{},"Notes":{}} async function processAll() { projectObj = projectData; @@ -292,13 +292,15 @@

    - section Diagrams - start
    Benchmarks
    Key
    benchmark_id    
    INTEGER
    NN
    version    
    SMALLINT
    NN
    release    
    SMALLINT
    NN
    release_date    
    DATE
    NN
    status_id    
    INTEGER
    NN
    Key
    type_id    
    INTEGER
    NN
    Key
    product_id    
    INT
    NN
    Key
    author_id    
    INTEGER
    NN
    Key
    sponsor_id    
    INTEGER
    NN
    Key
    status_id    
    INTEGER
    NN
    A collection of Security Benchmarks that are publied by Autors
    benchmark_type
    short_name    
    VARCHAR
    NN
    description    
    TEXT
    NN
    Key
    benchmark_type_id    
    INTEGER
    NN
    long_name    
    VARCHAR
    NN
    - - -
    Benchmarks
    Key
    benchmark_id    
    INTEGER
    NN
    version    
    SMALLINT
    NN
    release    
    SMALLINT
    NN
    release_date    
    DATE
    NN
    status_id    
    INTEGER
    NN
    Key
    type_id    
    INTEGER
    NN
    Key
    product_id    
    INT
    NN
    Key
    author_id    
    INTEGER
    NN
    Key
    sponsor_id    
    INTEGER
    NN
    Key
    status_id    
    INTEGER
    NN
    A collection of Security Benchmarks that are publied by Autors
    benchmark_type
    short_name    
    VARCHAR
    NN
    description    
    TEXT
    NN
    Key
    benchmark_type_id    
    INTEGER
    NN
    long_name    
    VARCHAR
    NN
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    Organization
    Key
    organization_id    
    INTEGER
    NN
    short_name    
    VARCHAR
    NN
    uri    
    VARCHAR
    email    
    VARCHAR
    long_name    
    VARCHAR
    NN
    List of organizations or gorups that author or manage security guidance
    Artifact
    Key
    artifact_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    location    
    VARCHAR
    NN
    created_at    
    DATE
    NN
    secondary_location    
    VARCHAR
    raw_data    
    BLOB
    Key
    type_id    
    INTEGER
    NN
    Key
    organization_id    
    INTEGER
    NN
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    benchmark_artifacts
    default    
    INT2
    Key
    benchmark_id    
    INTEGER
    NN
    Key
    artifact_id    
    INTEGER
    NN
    artifact_types
    type_name    
    VARCHAR
    NN
    Key
    artifact_type_id    
    INTEGER
    NN
    description    
    TEXT
    +
    Trial
    --> + text-shadow: 0px 1px 0px #000;">Trial
    -
    Describes the kind of benchmark to include: - - Security Technical Implementation Gudie (stig) - - Security Requirements Guide (srg) - - Center for Internet Security Benchmark (cis) - - Vendor Guidance (vendor)
    Organization
    Key
    organization_id    
    INTEGER
    NN
    short_name    
    VARCHAR
    NN
    uri    
    VARCHAR
    email    
    VARCHAR
    full_name    
    VARCHAR
    NN
    List of organizations or gorups that author or manage security guidance
    Artifact
    Key
    artifact_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    location    
    VARCHAR
    NN
    created_at    
    DATE
    NN
    secondary_location    
    VARCHAR
    raw_data    
    BLOB
    Key
    type_id    
    INTEGER
    NN
    Key
    organization_id    
    INTEGER
    NN
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    benchmark_artifacts
    default    
    INT2
    Key
    benchmark_id    
    INTEGER
    NN
    Key
    artifact_id    
    INTEGER
    NN
    artifact_types
    type_name    
    VARCHAR
    NN
    Key
    artifact_type_id    
    INTEGER
    NN
    description    
    TEXT
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Products
    short_name    
    VARCHAR
    NN
    version    
    REAL
    NN
    author_id    
    INT
    NN
    release    
    INT
    NN
    long_name    
    VARCHAR
    NN
    Key
    product_id    
    INT
    NN
    Key
    organization_id    
    INTEGER
    NN
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. +
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Products
    short_name    
    VARCHAR
    NN
    version    
    REAL
    NN
    author_id    
    INT
    NN
    release    
    INT
    NN
    long_name    
    VARCHAR
    NN
    Key
    product_id    
    INT
    NN
    Key
    organization_id    
    INTEGER
    NN
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. -For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Statuses
    Key
    status_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    Collection of statuses that can applly to a Benckmark or Artifact
    
    Documentation for project Benchmarks
    Benchmarks
    Project
    Name
    Benchmarks
    Diagram
    Name
    Security Guidance
    Report
    Generated
    12/14/2023 | 8:17:07 PM
    tables
    Name
    Benchmarks
    Description
    A collection of Security Benchmarks that are publied by Autors
    Columns
    Name
    Data type
    Key
    Not Null
    benchmark_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    version
    SMALLINT
    Yes
    Description
    The benchmark version number
    release
    SMALLINT
    Yes
    Description
    The benchmark release number
    release_date
    DATE
    Yes
    Description
    The date that the benchmark was published by the Autor
    status_id
    INTEGER
    Yes
    Description
    [autogenerated] id of the status type
    type_id
    INTEGER
    Yes
    Description
    [autoincrement] id of the benchmark type
    product_id
    INT
    Yes
    Description
    [autoincrement] The int id of the product related to the benchmak
    author_id
    INTEGER
    Yes
    Description
    Integer id of the organization that authored the benchmark
    sponsor_id
    INTEGER
    Yes
    Description
    Integer id of the organization that supported the development of the benchmark
    status_id
    INTEGER
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Name
    benchmark_type
    Description
    Describes the kind of benchmark to include: +For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Statuses
    Key
    status_id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    Collection of statuses that can applly to a Benckmark or Artifact
    
    Documentation for project Benchmarks
    Benchmarks
    Project
    Name
    Benchmarks
    Diagram
    Name
    Security Guidance
    Report
    Generated
    12/14/2023 | 8:51:51 PM
    tables
    Name
    Benchmarks
    Description
    A collection of Security Benchmarks that are publied by Autors
    Columns
    Name
    Data type
    Key
    Not Null
    benchmark_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    version
    SMALLINT
    Yes
    Description
    The benchmark version number
    release
    SMALLINT
    Yes
    Description
    The benchmark release number
    release_date
    DATE
    Yes
    Description
    The date that the benchmark was published by the Autor
    status_id
    INTEGER
    Yes
    Description
    [autogenerated] id of the status type
    type_id
    INTEGER
    Yes
    Description
    [autoincrement] id of the benchmark type
    product_id
    INT
    Yes
    Description
    [autoincrement] The int id of the product related to the benchmak
    author_id
    INTEGER
    Yes
    Description
    Integer id of the organization that authored the benchmark
    sponsor_id
    INTEGER
    Yes
    Description
    Integer id of the organization that supported the development of the benchmark
    status_id
    INTEGER
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Name
    benchmark_type
    Description
    Describes the kind of benchmark to include: - Security Technical Implementation Gudie (stig) - Security Requirements Guide (srg) - Center for Internet Security Benchmark (cis) - - Vendor Guidance (vendor)
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The short name name of the benchmark type
    description
    TEXT
    Yes
    Description
    The full text description of the guidane type
    benchmark_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] id of the benchmark type
    long_name
    VARCHAR
    Yes
    Description
    The full name of the Benchmark type
    Keys
    Primary key
    Column in Primary key
    benchmark_type_id
    Name
    Organization
    Description
    List of organizations or gorups that author or manage security guidance
    Columns
    Name
    Data type
    Key
    Not Null
    organization_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    Integer id of the author of the benchmark
    short_name
    VARCHAR
    Yes
    Description
    The short text name of the author, vendor or agency
    uri
    VARCHAR
    Description
    The primary uri of the author, vendor or agency
    email
    VARCHAR
    Description
    [optional] The email of the autor
    full_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency.
    Keys
    Primary key
    Column in Primary key
    organization_id
    Name
    Artifact
    Description
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    Columns
    Name
    Data type
    Key
    Not Null
    artifact_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] The id of the artifact.
    name
    VARCHAR
    Yes
    Description
    Filename that the artifact is stored as on the target location
    location
    VARCHAR
    Yes
    Description
    The URI path of the artifact
    created_at
    DATE
    Yes
    secondary_location
    VARCHAR
    Description
    [optional] A file path, uri or other location you can find the reference besides the default location.
    raw_data
    BLOB
    Description
    [optional] The raw data of the Artifact
    type_id
    INTEGER
    Yes
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the creator or owner of the artifact
    Keys
    Primary key
    Column in Primary key
    artifact_id
    Name
    benchmark_artifacts
    Columns
    Name
    Data type
    Key
    Not Null
    default
    INT2
    Description
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    benchmark_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    artifact_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] The id of the artifact.
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Column in Primary key
    artifact_id
    Name
    artifact_types
    Description
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Columns
    Name
    Data type
    Key
    Not Null
    type_name
    VARCHAR
    Yes
    Description
    The simple name of the artifact
    artifact_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the artifact kind
    description
    TEXT
    Keys
    Primary key
    Column in Primary key
    artifact_type_id
    Relations
    Name
    Products
    Description
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. + - Vendor Guidance (vendor)
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The short name name of the benchmark type
    description
    TEXT
    Yes
    Description
    The full text description of the guidane type
    benchmark_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] id of the benchmark type
    long_name
    VARCHAR
    Yes
    Description
    The full name of the Benchmark type
    Keys
    Primary key
    Column in Primary key
    benchmark_type_id
    Name
    Organization
    Description
    List of organizations or gorups that author or manage security guidance
    Columns
    Name
    Data type
    Key
    Not Null
    organization_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    Integer id of the author of the benchmark
    short_name
    VARCHAR
    Yes
    Description
    The short text name of the author, vendor or agency
    uri
    VARCHAR
    Description
    The primary uri of the author, vendor or agency
    email
    VARCHAR
    Description
    [optional] The email of the autor
    long_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency.
    Keys
    Primary key
    Column in Primary key
    organization_id
    Name
    Artifact
    Description
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    Columns
    Name
    Data type
    Key
    Not Null
    artifact_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] The id of the artifact.
    name
    VARCHAR
    Yes
    Description
    Filename that the artifact is stored as on the target location
    location
    VARCHAR
    Yes
    Description
    The URI path of the artifact
    created_at
    DATE
    Yes
    secondary_location
    VARCHAR
    Description
    [optional] A file path, uri or other location you can find the reference besides the default location.
    raw_data
    BLOB
    Description
    [optional] The raw data of the Artifact
    type_id
    INTEGER
    Yes
    organization_id
    INTEGER
    Yes
    Description
    Integer id of the creator or owner of the artifact
    Keys
    Primary key
    Column in Primary key
    artifact_id
    Name
    benchmark_artifacts
    Columns
    Name
    Data type
    Key
    Not Null
    default
    INT2
    Description
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    benchmark_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    artifact_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] The id of the artifact.
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Column in Primary key
    artifact_id
    Name
    artifact_types
    Description
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Columns
    Name
    Data type
    Key
    Not Null
    type_name
    VARCHAR
    Yes
    Description
    The simple name of the artifact
    artifact_type_id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autoincrement] The int id of the artifact kind
    description
    TEXT
    Keys
    Primary key
    Column in Primary key
    artifact_type_id
    Relations
    Name
    Products
    Description
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Columns
    Name
    Data type
    Key
    Not Null
    short_name
    VARCHAR
    Yes
    Description
    The common name of the product or service - sometimes called the 'short name' - for example: RHEL for Red Hat Enterprise Linux From 15ab79467019fed280d1d56d56bed74820980626 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Thu, 14 Dec 2023 21:05:03 -0500 Subject: [PATCH 12/29] removed the marketing from the web index file Signed-off-by: Aaron Lippold --- database/web/index.html | 5044 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 4740 insertions(+), 304 deletions(-) diff --git a/database/web/index.html b/database/web/index.html index e397b40da..fb04173aa 100644 --- a/database/web/index.html +++ b/database/web/index.html @@ -1,348 +1,4784 @@ - - - - - - - - - - - - - - Report for Benchmarks made in Luna Modeler - - + - - -
    + +
    -
    -
    - - -
    -
    - - - -
    + +
    +
    + + + +
    - \ No newline at end of file + src="https://code.jquery.com/jquery-3.3.1.slim.min.js" + integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" + crossorigin="anonymous" + > + + From 24ec117fb03b47435715397857f55ccdc2f37887 Mon Sep 17 00:00:00 2001 From: Mo Shark Date: Fri, 15 Dec 2023 18:16:20 +0000 Subject: [PATCH 13/29] Updated schema. Changed naming for the python file and database file. Created new database based on the schema Signed-off-by: Mo Shark --- database/Benchmarks.sql | 7 ++- database_creation.py | 101 ++++++++++++++++++++++++++++++++++++ local.db | Bin 86016 -> 0 bytes secruity_guidance.db | Bin 0 -> 45056 bytes test2.py | 112 ---------------------------------------- 5 files changed, 104 insertions(+), 116 deletions(-) create mode 100644 database_creation.py delete mode 100644 local.db create mode 100644 secruity_guidance.db delete mode 100644 test2.py diff --git a/database/Benchmarks.sql b/database/Benchmarks.sql index dcdc6971e..c800da020 100644 --- a/database/Benchmarks.sql +++ b/database/Benchmarks.sql @@ -47,17 +47,16 @@ CREATE TABLE "Benchmarks"( version SMALLINT NOT NULL, "release" SMALLINT NOT NULL, release_date DATE NOT NULL, - status_id INTEGER NOT NULL, type_id INTEGER NOT NULL, product_id INT NOT NULL, author_id INTEGER NOT NULL, sponsor_id INTEGER NOT NULL, - status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - CONSTRAINT "status_id_Benchmarks" FOREIGN KEY (status_id) REFERENCES "Statuses" (status_id), + status_id INTEGER NOT NULL, CONSTRAINT "benchmark_type_id_Benchmarks" FOREIGN KEY (type_id) REFERENCES benchmark_type (benchmark_type_id), CONSTRAINT "product_id_Benchmarks" FOREIGN KEY (product_id) REFERENCES "Products" (product_id), CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (author_id) REFERENCES "Organization" (organization_id), - CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (sponsor_id) REFERENCES "Organization" (organization_id) + CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (sponsor_id) REFERENCES "Organization" (organization_id), + CONSTRAINT "status_id_Benchmarks" FOREIGN KEY (status_id) REFERENCES "Statuses" (status_id) ); CREATE TABLE benchmark_artifacts( diff --git a/database_creation.py b/database_creation.py new file mode 100644 index 000000000..2ad7971de --- /dev/null +++ b/database_creation.py @@ -0,0 +1,101 @@ +import asyncio +import os + +import libsql_client + + +async def main(): + url = os.getenv("URL", "file:secruity_guidance.db") + async with libsql_client.create_client(url) as client: + await client.batch( + [ + """ + CREATE TABLE "Organization"( + organization_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + short_name VARCHAR NOT NULL, + uri VARCHAR, + email VARCHAR, + long_name VARCHAR NOT NULL + ); + """, + + """ + CREATE TABLE artifact_types + (type_name VARCHAR NOT NULL, artifact_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, description TEXT); + """, + + """ + CREATE TABLE benchmark_type( + short_name VARCHAR NOT NULL, + description TEXT NOT NULL, + benchmark_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + long_name VARCHAR NOT NULL + ); + """, + + """ + CREATE TABLE "Artifact"( + artifact_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL, + location VARCHAR NOT NULL, + created_at DATE NOT NULL, + secondary_location VARCHAR, + raw_data BLOB, + type_id INTEGER NOT NULL, + organization_id INTEGER NOT NULL, + CONSTRAINT "type_Artifact" FOREIGN KEY (type_id) REFERENCES artifact_types (artifact_type_id), + CONSTRAINT "organization_id_Artifact" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) + ); + """, + + """ + CREATE TABLE "Products"( + short_name VARCHAR NOT NULL, + version REAL NOT NULL, + author_id INT NOT NULL, + "release" INT NOT NULL, + long_name VARCHAR NOT NULL, + product_id INT NOT NULL, + organization_id INTEGER NOT NULL, + CONSTRAINT "organization_id_Products" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) + ); + """, + + """ + CREATE TABLE "Statuses"(status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR NOT NULL); + """, + + """ + CREATE TABLE "Benchmarks"( + benchmark_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + version SMALLINT NOT NULL, + "release" SMALLINT NOT NULL, + release_date DATE NOT NULL, + type_id INTEGER NOT NULL, + product_id INT NOT NULL, + author_id INTEGER NOT NULL, + sponsor_id INTEGER NOT NULL, + status_id INTEGER NOT NULL, + CONSTRAINT "benchmark_type_id_Benchmarks" FOREIGN KEY (type_id) REFERENCES benchmark_type (benchmark_type_id), + CONSTRAINT "product_id_Benchmarks" FOREIGN KEY (product_id) REFERENCES "Products" (product_id), + CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (author_id) REFERENCES "Organization" (organization_id), + CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (sponsor_id) REFERENCES "Organization" (organization_id), + CONSTRAINT "status_id_Benchmarks" FOREIGN KEY (status_id) REFERENCES "Statuses" (status_id) + ); + """, + + """ + CREATE TABLE benchmark_artifacts( + "default" INT2, + benchmark_id INTEGER NOT NULL, + artifact_id INTEGER NOT NULL, + PRIMARY KEY(benchmark_id, artifact_id), + CONSTRAINT benchmark_id_benchmark_artifacts FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (benchmark_id), + CONSTRAINT artifact_id_benchmark_artifacts FOREIGN KEY (artifact_id) REFERENCES "Artifact" (artifact_id) + ); + """, + ] + ) + + +asyncio.run(main()) \ No newline at end of file diff --git a/local.db b/local.db deleted file mode 100644 index 2f37ff4c3d1488306a2eafad78c7829e61ec34bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86016 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 literal 0 HcmV?d00001 diff --git a/test2.py b/test2.py deleted file mode 100644 index 2cf605ea2..000000000 --- a/test2.py +++ /dev/null @@ -1,112 +0,0 @@ -import asyncio -import os - -import libsql_client - - -async def main(): - url = os.getenv("URL", "file:local.db") - async with libsql_client.create_client(url) as client: - await client.batch( - [ - """ - CREATE TABLE "Organization"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - name VARCHAR NOT NULL, - uri VARCHAR, - email VARCHAR, - CONSTRAINT "Authors_ak_1" UNIQUE(name) - ); - """, - """ - CREATE INDEX organization_index ON "Organization"(id); - """, - """ - CREATE TABLE artifact_types(type VARCHAR NOT NULL, PRIMARY KEY(type)); - """, - """ - CREATE TABLE benchmark_type( - type VARCHAR NOT NULL, - description TEXT NOT NULL, - organization_name VARCHAR NOT NULL, - PRIMARY KEY(type), - CONSTRAINT name_benchmark_type FOREIGN KEY (organization_name) REFERENCES "Organization" (name) - ); - """, - - """ - CREATE TABLE "Artifact"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - name VARCHAR NOT NULL, - location VARCHAR NOT NULL, - created_at DATE NOT NULL, - secondary_location VARCHAR, - raw_data BLOB, - type VARCHAR NOT NULL, - author_name VARCHAR NOT NULL, - CONSTRAINT "type_Artifact" FOREIGN KEY (type) REFERENCES artifact_types (type), - CONSTRAINT "name_Artifact" FOREIGN KEY (author_name) REFERENCES "Organization" (name) - ); - """, - - """ - CREATE TABLE "Products"( - name VARCHAR NOT NULL, - version REAL NOT NULL, - author_id INT NOT NULL, - "release" INT, - PRIMARY KEY(name, version), - CONSTRAINT "id_Products" FOREIGN KEY (author_id) REFERENCES "Organization" (id) - ); - """, - - """ - CREATE TABLE "Statuses"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - name VARCHAR NOT NULL, - CONSTRAINT "Statuses_ak_1" UNIQUE(id), - CONSTRAINT "Statuses_ak_2" UNIQUE(name) - ); - """, - - """ - CREATE TABLE "Benchmarks"( - id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - version SMALLINT NOT NULL, - "release" SMALLINT NOT NULL, - release_date DATE NOT NULL, - type VARCHAR NOT NULL, - product_name VARCHAR NOT NULL, - product_version REAL NOT NULL, - status VARCHAR NOT NULL, - organization_name VARCHAR NOT NULL, - sponsor_name VARCHAR, - CONSTRAINT type_type FOREIGN KEY (type) REFERENCES benchmark_type (type), - CONSTRAINT "Products_Benchmarks" FOREIGN KEY (product_name, product_version) REFERENCES "Products" (name, version), - CONSTRAINT "name_Benchmarks" FOREIGN KEY (status) REFERENCES "Statuses" (name), - CONSTRAINT "name_Benchmarks" FOREIGN KEY (organization_name) REFERENCES "Organization" (name), - CONSTRAINT "name_Benchmarks" FOREIGN KEY (sponsor_name) REFERENCES "Organization" (name) - ); - """, - - """ - CREATE TABLE benchmark_artifacts( - benchmark_id INTEGER NOT NULL, - artifact_id INTEGER NOT NULL, - "default" INT2, - PRIMARY KEY(benchmark_id, artifact_id), - CONSTRAINT id_benchmark_references FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (id), - CONSTRAINT id_benchmark_reference FOREIGN KEY (artifact_id) REFERENCES "Artifact" (id) - ); - - """, - ] - ) - - result_set = await client.execute("SELECT * from users") - print(len(result_set.rows), "rows") - for row in result_set.rows: - print(row) - - -asyncio.run(main()) \ No newline at end of file From fb098c713314b4f062872f1b734a3eaad541d558 Mon Sep 17 00:00:00 2001 From: Mo Shark Date: Fri, 15 Dec 2023 18:51:52 +0000 Subject: [PATCH 14/29] moving over update.py from other branch. added additional updates not on the other branch for blocked terms and updated logic Signed-off-by: Mo Shark --- update.py | 744 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 467 insertions(+), 277 deletions(-) diff --git a/update.py b/update.py index 92e7aca17..816757cd6 100644 --- a/update.py +++ b/update.py @@ -7,293 +7,483 @@ import re import os import xml.etree.ElementTree as ET +from io import BytesIO +import zipfile +from stig_parser import convert_stig -badTerms = ['scc', 'library', '.msi.zip', 'srg_stig_applicability_guide', 'STIGApplicabilityGuide'] -url = "https://public.cyber.mil/stigs/downloads/" -headers = { +URL = "https://public.cyber.mil/stigs/downloads/" +HEADERS = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET', 'Access-Control-Allow-Headers': 'Content-Type', 'Access-Control-Max-Age': '3600', 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0' } -stigs = [] - -with open('stigs.json', 'r') as existingSTIGsFile: - stigs = json.load(existingSTIGsFile) - -def getFilename(url): - return url.split('/')[-1] - -### Get STIGS from DISA'S site - -def updateSTIGSList(): - # If you're running behind a proxy with SSL bumping - req = requests.get(url, headers, verify=False) - # req = requests.get(url, headers) - soup = BeautifulSoup(req.content, 'html.parser') - table = soup.find_all('table')[0] # Grab the first table - - knownURLs = [] - - with open('stigs.json', 'r') as existingSTIGsFile: - existingSTIGs = json.load(existingSTIGsFile) - knownURLs.extend([stig['url'] for stig in existingSTIGs]) - - def cleanText(inputText): - return re.sub(' +', ' ', inputText.replace('\r', ' ').replace('\u200b', '').replace('\n', ' ').split('\t')[0].strip()).strip() - - for row in table.find_all('tr'): - try: - columns = row.find_all('td') - href = "" - name = "" - size = "" - for idx, column in enumerate(columns): - if idx == 2: - size = column.get_text().strip() - if idx == 1: - href = column.find('a')['href'] - name = cleanText(column.get_text()) - if (href != "" and name != "" and size != "" and ('stig' in name.lower() or 'benchmark' in name.lower() or 'stig' in href.lower() or 'benchmark' in href.lower()) and "viewer" not in name.lower()): - # Check if the similarity of the current name is similar to an existing name - newStig = True - knownIndex = 0 - hrefWithNoVersion = re.sub(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', href) - for idx, knownURL in enumerate(knownURLs): - knownURLWithNoVersion = re.sub(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', knownURL) - if SequenceMatcher(None, hrefWithNoVersion, knownURLWithNoVersion).ratio() > 0.99: - # print(f"Similarity: {SequenceMatcher(None, hrefWithNoVersion, knownURLWithNoVersion).ratio()} {hrefWithNoVersion} -> {knownURLWithNoVersion}") - knownIndex = idx - newStig = False - break - if newStig: - if (href.lower().endswith('.zip')): - knownURLs.append(href) - #print(f"Downloading {name}: {href}") - #urllib.request.urlretrieve(href, "tmp/" + getFilenameFromURL(href)) - # Get version from the file name e.g "U_IBM_MaaS360_with_Watson_v10-x_MDM_V1R2_STIG.zip" - version = re.search(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', href) - if version is not None: - stigs.append({ - 'id': str(uuid.uuid4()), - 'name': name, - 'url': href, - 'size': size, - 'version': version.group(0) - }) - else: - print(f"Version not found in {href}") - # Attempt to get version number from name, e.g "Ver 1, Rel 1" - version = re.search(r'Ver (\d?)(\d?)(\d?)(\d?), Rel (\d?)(\d?)(\d?)(\d?)', name) - if version is not None: - versionNumber = f"V{version.group(1)}{version.group(2)}{version.group(3)}{version.group(4)}R{version.group(5)}{version.group(6)}{version.group(7)}{version.group(8)}" - print(f"Version found in {href} as {versionNumber}") - stigs.append({ - 'id': str(uuid.uuid4()), - 'name': name, - 'url': href, - 'size': size, - 'version': versionNumber - }) - else: - stigs.append({ - 'id': str(uuid.uuid4()), - 'name': name, - 'url': href, - 'size': size - }) - else: - version = re.search(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', href) - if version is not None: - stigs[knownIndex]['url'] = href - stigs[knownIndex]['size'] = size - stigs[knownIndex]['version'] = version.group(0) - stigs[knownIndex]['name'] = name - elif version is None: - version = re.search(r'Ver (\d?)(\d?)(\d?)(\d?), Rel (\d?)(\d?)(\d?)(\d?)', name) - if version is not None: - versionNumber = f"V{version.group(1)}{version.group(2)}{version.group(3)}{version.group(4)}R{version.group(5)}{version.group(6)}{version.group(7)}{version.group(8)}" - print(f"Version found in '{name}' as {versionNumber}") - stigs[knownIndex]['url'] = href - stigs[knownIndex]['size'] = size - stigs[knownIndex]['version'] = versionNumber - stigs[knownIndex]['name'] = name - else: - # I've seen DISA remove the version number from the URL, so we need to remove it from the existing STIG if it's no longer there. - print(f"Version not found in {href}") - stigs[knownIndex]['url'] = href - stigs[knownIndex]['size'] = size - stigs[knownIndex]['name'] = name - if 'version' in stigs[knownIndex]: - del stigs[knownIndex]['version'] - - except KeyboardInterrupt: - exit() - except Exception as e: - print(e) - # Bad rows ignored, typicall they don't contain a download link - pass - - with open('stigs.json', 'w') as outfile: - json.dump(stigs, outfile, indent=2) - -def updateSTIGS(): - # Delete the existing STIGs - os.system("rm -rf tmp/input/*") - - ## Download the STIGs - for stig in stigs: - # Download ZIP from DISA if it doesn't contain a banned term - foundTerm = False - - for badTerm in badTerms: - if badTerm.lower() in stig['url'].lower(): - foundTerm = True - - if not foundTerm: - if 'scc' not in stig['url'].lower() and 'library' not in stig['url'].lower(): - os.system(f"wget {stig['url']} -O tmp/input/{stig['id']}.zip") - - # Unzip the STIGs - os.system("cd tmp; bash extract.sh") - -def associateSTIGFileArchives(): - # Get filenames from benchmarks folder - downloadedStigs = os.listdir('benchmarks/DISA/') - - for idx, benchmark in enumerate(stigs): - urlWithNoVersion = re.sub( - r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', getFilename(benchmark['url'])) - version = re.search( - r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', getFilename(benchmark['url'])) - if version is not None: - version = version.group(0) - highestSimilarity = 0.0 - highestSimilarityFilename = None - for filename in downloadedStigs: - filenameVersion = re.search( - r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', getFilename(filename)) - if filenameVersion is not None: - filenameVersion = filenameVersion.group(0) - similarity = SequenceMatcher( - None, urlWithNoVersion, filename).ratio() - if similarity > highestSimilarity and filenameVersion == version: - highestSimilarity = similarity - highestSimilarityFilename = filename - if highestSimilarityFilename is not None: - print(f"{getFilename(benchmark['url'])} -> {highestSimilarityFilename}") - stigs[idx]['file'] = f"https://raw.githubusercontent.com/mitre/inspec-profile-update-action/main/benchmarks/DISA/{highestSimilarityFilename}" +DOWNLOAD_DIR = "downloads" +EXTRACT_DIR = "extracted" +DB_FILE = "stigs.db" +EXCLUDE_KEYWORDS = ['scc', 'library', '.msi.zip', 'srg_stig_applicability_guide', 'stigapplicabilityguide', 'stigviewer', 'u_cci_list', 'overview', 'scap', 'ansible', 'u_draft_cci', 'srg', 'gpo', 'chef', 'dsc', 'u_apache_2-2', 'u_mot_solutions', 'u_multifunction_device', 'u_storage_area', 'u_ms_exchange', 'u_exchange', 'u_airwatch'] +OUTPUT_JSON = 'stigs_data.json' +OUTPUT_DOWNLOAD_JSON = 'stigs_download_data.json' + +EXTRACTED_ROWS = [] + +# Function to download and extract STIGs and SRGs +def download_and_extract_stigs(): + download_results = [] + response = requests.get(URL, HEADERS, verify=False) + soup = BeautifulSoup(response.content, 'html.parser') + + # Find all rows in the table and download links + rows = soup.find_all('tr') + for row in rows: + title_col = row.find('td', class_='title_column') + size_col = row.find('td', class_='size_column') + updated_col = row.find('td', class_='updated_column') + + if title_col and size_col and updated_col: + title = title_col.get_text(strip=True) + size = size_col.get_text(strip=True) + datePublished = updated_col.get_text(strip=True) + anchor = title_col.find('a') + + if anchor and 'href' in anchor.attrs: + url = anchor['href'] else: - del stigs[idx] - else: - print("No version for url: "+benchmark['url']) - - with open('stigs.json', 'w') as outfile: - json.dump(stigs, outfile, indent=2) - -""" -Gets the Profile ID from the XCCDF xml file -Example: - - - -We want "Active_Directory_Domain" from this. -""" - -def getProfileIDFromProfileXMLs(): - for stig in stigs: - if 'file' in stig: - # Get the file path from the file URL - filePath = stig['file'].split('https://raw.githubusercontent.com/mitre/inspec-profile-update-action/main/')[1] - # Get the file name from the file path - fileName = filePath.split('/')[-1] - - # Parse the XML file - tree = ET.parse(filePath) - root = tree.getroot() - - # Get the ID from the root - if 'id' in root.attrib: - if '/' not in root.attrib['id']: - stig['id'] = root.attrib['id'] + url = 'None' + + # Check if the url contains the excluded keywords, and the file is only a zip file + if url.lower().endswith('.zip') and not any(keyword in url.lower() for keyword in EXCLUDE_KEYWORDS): + download_results.append({ + 'title': title, + 'size': size, + 'datePublished': datePublished, + 'url': url, + }) + EXTRACTED_ROWS.append((title, size, datePublished, url)) + zip_filename = os.path.join(DOWNLOAD_DIR, url.split('/')[-1]) + + # Check if the file already exists + if not os.path.exists(zip_filename): + print(f"Downloading {title} - {url}") + zip_response = requests.get(url) + + # "Description": "xxxxxxx", + # Save the zip file + with open(zip_filename, 'wb') as f: + f.write(zip_response.content) + json_results = convert_stig(zip_filename) + + print("Processing STIG: " + zip_filename ) + print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release'] + " Benchmark Date: " + json_results['BenchmarkDate'] + " Source: " + json_results['Source']) + print("\n") + + # Extract only the XML files from the zip file + with zipfile.ZipFile(zip_filename) as zip_ref: + for file in zip_ref.namelist(): + if file.endswith('.xml'): + zip_ref.extract(file, EXTRACT_DIR) else: - print(f"No ID found for {fileName}") + print(f"Skipping excluded file: {title} - {url}") + + with open(OUTPUT_DOWNLOAD_JSON, 'w') as outfile: + json.dump(download_results, outfile, indent=4) + +# Function to recrusively find XML files in the directory +def find_xml_files(directory): + xml_files = [] + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith('.xml'): + xml_files.append(os.path.join(root, file)) + return xml_files + + +# Function to parse and extract info from the xml +def parse_xml_and_extract_info(): + results = [] + xml_files = find_xml_files(EXTRACT_DIR) + + # Load metadata from the download process json file that was created + with open(OUTPUT_DOWNLOAD_JSON, 'r') as infile: + download_data = json.load(infile) + + for xml_file in xml_files: + # Match the XML file to its metadata + filename = os.path.basename(xml_file) + # Matcher to identify the xml filename + xml_core_identifier = re.sub(r'(_STIG_|_SRG_|_Manual|-xccdf|.xml)', '', filename).replace('_', '') + metadata = next((item for item in download_data if xml_core_identifier in item['url'].replace('_', '').replace('.zip', '')), None) + # metadata = next((item for item in download_data if item['url'].endswith(filename)), None) + if metadata: + title, size, datePublished, url = metadata + # json_results = convert_stig(xml_file) + + # print("Processing STIG: " + file ) + # print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release']) + # print("\n") + + results.append({ + 'title': title, + 'size': size, + 'datePublished': datePublished, + 'url': url, + # 'jsonTitle': json_results['Title'], + # 'version': json_results['Version'], + # 'release': json_results['Release'], + }) + # print("Table Data:") + # print(f"Title: {title}, Size: {size}, Date Published: {datePublished}, URL: {url}") + # print('XML File: ') + # print(xml_file) + # current_benchmark = pyscap.xccdf.Benchmark.parse(xml_file) + # print("-------------------") + # print("Read benchmark") + # pytitle = current_benchmark.title + # print(pytitle) + # pyremark = current_benchmark.remark + # print(pyremark) + # pyvendor = current_benchmark.vendor + # print(pyvendor) + # pyfamily = current_benchmark.family + # print(pyfamily) + # pymodel = current_benchmark.model + # print(pymodel) + # pylevel = current_benchmark.level + # print(pylevel) + # pyversion = current_benchmark.version + # print(pyversion) + # pyversionrange = current_benchmark.version_range + # print(pyversionrange) + # print("pyscap data:") + # print(f"Title: {pytitle}, Remark: {pyremark}, Vendor: {pyvendor}, Family: {pyfamily}, Model: {pymodel}, Level: {pylevel}, Version: {pyversion}, Version Range: {pyversionrange}") + # results.append({ + # 'title': title, + # 'size': size, + # 'datePublished': datePublished, + # 'url': url, + # 'pyScapTitle': pytitle, + # 'pyRemark': pyremark, + # 'pyvendor': pyvendor, + # 'pyfamily': pyfamily, + # 'pymodel': pymodel, + # 'pylevel': pylevel, + # 'pyversion': pyversion, + # 'pyversionrange': pyversionrange, + # }) + + with open(OUTPUT_JSON, 'w') as outfile: + json.dump(results, outfile, indent=4) + + # # Store in SQLite database + # store_in_db(filename, title, name, url, size, version) + +# def store_in_db(filename, title, name, url, size, version): +# conn = sqlite3.connect(DB_FILE) +# cursor = conn.cursor() +# cursor.execute('''CREATE TABLE IF NOT EXISTS stigs (filename TEXT, title TEXT, url TEXT, size TEXT, version TEXT)''') +# cursor.execute("INSERT INTO stigs VALUES (?, ?, ?, ?, ?, ?)", (filename, title, name, url, size, version)) +# conn.commit() +# conn.close() + +def main(): + if not os.path.exists(DOWNLOAD_DIR): + os.makedirs(DOWNLOAD_DIR) + if not os.path.exists(EXTRACT_DIR): + os.makedirs(EXTRACT_DIR) - with open('stigs.json', 'w') as outfile: - json.dump(stigs, outfile, indent=2) + download_and_extract_stigs() + parse_xml_and_extract_info() + +if __name__ == "__main__": + main() + +# badTerms = ['scc', 'library', '.msi.zip', 'srg_stig_applicability_guide', 'STIGApplicabilityGuide'] +# url = "https://public.cyber.mil/stigs/downloads/" +# headers = { +# 'Access-Control-Allow-Origin': '*', +# 'Access-Control-Allow-Methods': 'GET', +# 'Access-Control-Allow-Headers': 'Content-Type', +# 'Access-Control-Max-Age': '3600', +# 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0' +# } +# stigs = [] + +# with open('stigs.json', 'r') as existingSTIGsFile: +# stigs = json.load(existingSTIGsFile) + +# def getFilename(url): +# return url.split('/')[-1] + +# ### Get STIGS from DISA'S site -def pageGenerator(): - # Delete existing generated actions - os.system("rm -rf actions/*") +# def updateSTIGSList(): +# # If you're running behind a proxy with SSL bumping +# req = requests.get(url, headers, verify=False) +# # req = requests.get(url, headers) +# soup = BeautifulSoup(req.content, 'html.parser') +# table = soup.find_all('table')[0] # Grab the first table - for stig in stigs: +# knownURLs = [] + +# with open('stigs.json', 'r') as existingSTIGsFile: +# existingSTIGs = json.load(existingSTIGsFile) +# knownURLs.extend([stig['url'] for stig in existingSTIGs]) + +# def cleanText(inputText): +# return re.sub(' +', ' ', inputText.replace('\r', ' ').replace('\u200b', '').replace('\n', ' ').split('\t')[0].strip()).strip() + +# for row in table.find_all('tr'): +# try: +# columns = row.find_all('td') +# href = "" +# name = "" +# size = "" +# for idx, column in enumerate(columns): +# if idx == 2: +# size = column.get_text().strip() +# if idx == 1: +# href = column.find('a')['href'] +# name = cleanText(column.get_text()) +# if (href != "" and name != "" and size != "" and ('stig' in name.lower() or 'benchmark' in name.lower() or 'stig' in href.lower() or 'benchmark' in href.lower()) and "viewer" not in name.lower()): +# # Check if the similarity of the current name is similar to an existing name +# newStig = True +# knownIndex = 0 +# hrefWithNoVersion = re.sub(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', href) +# for idx, knownURL in enumerate(knownURLs): +# knownURLWithNoVersion = re.sub(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', knownURL) +# if SequenceMatcher(None, hrefWithNoVersion, knownURLWithNoVersion).ratio() > 0.99: +# # print(f"Similarity: {SequenceMatcher(None, hrefWithNoVersion, knownURLWithNoVersion).ratio()} {hrefWithNoVersion} -> {knownURLWithNoVersion}") +# knownIndex = idx +# newStig = False +# break +# if newStig: +# if (href.lower().endswith('.zip')): +# knownURLs.append(href) +# #print(f"Downloading {name}: {href}") +# #urllib.request.urlretrieve(href, "tmp/" + getFilenameFromURL(href)) +# # Get version from the file name e.g "U_IBM_MaaS360_with_Watson_v10-x_MDM_V1R2_STIG.zip" +# version = re.search(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', href) +# if version is not None: +# stigs.append({ +# 'id': str(uuid.uuid4()), +# 'name': name, +# 'url': href, +# 'size': size, +# 'version': version.group(0) +# }) +# else: +# print(f"Version not found in {href}") +# # Attempt to get version number from name, e.g "Ver 1, Rel 1" +# version = re.search(r'Ver (\d?)(\d?)(\d?)(\d?), Rel (\d?)(\d?)(\d?)(\d?)', name) +# if version is not None: +# versionNumber = f"V{version.group(1)}{version.group(2)}{version.group(3)}{version.group(4)}R{version.group(5)}{version.group(6)}{version.group(7)}{version.group(8)}" +# print(f"Version found in {href} as {versionNumber}") +# stigs.append({ +# 'id': str(uuid.uuid4()), +# 'name': name, +# 'url': href, +# 'size': size, +# 'version': versionNumber +# }) +# else: +# stigs.append({ +# 'id': str(uuid.uuid4()), +# 'name': name, +# 'url': href, +# 'size': size +# }) +# else: +# version = re.search(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', href) +# if version is not None: +# stigs[knownIndex]['url'] = href +# stigs[knownIndex]['size'] = size +# stigs[knownIndex]['version'] = version.group(0) +# stigs[knownIndex]['name'] = name +# elif version is None: +# version = re.search(r'Ver (\d?)(\d?)(\d?)(\d?), Rel (\d?)(\d?)(\d?)(\d?)', name) +# if version is not None: +# versionNumber = f"V{version.group(1)}{version.group(2)}{version.group(3)}{version.group(4)}R{version.group(5)}{version.group(6)}{version.group(7)}{version.group(8)}" +# print(f"Version found in '{name}' as {versionNumber}") +# stigs[knownIndex]['url'] = href +# stigs[knownIndex]['size'] = size +# stigs[knownIndex]['version'] = versionNumber +# stigs[knownIndex]['name'] = name +# else: +# # I've seen DISA remove the version number from the URL, so we need to remove it from the existing STIG if it's no longer there. +# print(f"Version not found in {href}") +# stigs[knownIndex]['url'] = href +# stigs[knownIndex]['size'] = size +# stigs[knownIndex]['name'] = name +# if 'version' in stigs[knownIndex]: +# del stigs[knownIndex]['version'] + +# except KeyboardInterrupt: +# exit() +# except Exception as e: +# print(e) +# # Bad rows ignored, typicall they don't contain a download link +# pass + +# with open('stigs.json', 'w') as outfile: +# json.dump(stigs, outfile, indent=2) + +# def updateSTIGS(): +# # Delete the existing STIGs +# os.system("rm -rf tmp/input/*") + +# ## Download the STIGs +# for stig in stigs: +# # Download ZIP from DISA if it doesn't contain a banned term +# foundTerm = False + +# for badTerm in badTerms: +# if badTerm.lower() in stig['url'].lower(): +# foundTerm = True + +# if not foundTerm: +# if 'scc' not in stig['url'].lower() and 'library' not in stig['url'].lower(): +# os.system(f"wget {stig['url']} -O tmp/input/{stig['id']}.zip") + +# # Unzip the STIGs +# os.system("cd tmp; bash extract.sh") + +# def associateSTIGFileArchives(): +# # Get filenames from benchmarks folder +# downloadedStigs = os.listdir('benchmarks/DISA/') + +# for idx, benchmark in enumerate(stigs): +# urlWithNoVersion = re.sub( +# r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', getFilename(benchmark['url'])) +# version = re.search( +# r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', getFilename(benchmark['url'])) +# if version is not None: +# version = version.group(0) +# highestSimilarity = 0.0 +# highestSimilarityFilename = None +# for filename in downloadedStigs: +# filenameVersion = re.search( +# r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', getFilename(filename)) +# if filenameVersion is not None: +# filenameVersion = filenameVersion.group(0) +# similarity = SequenceMatcher( +# None, urlWithNoVersion, filename).ratio() +# if similarity > highestSimilarity and filenameVersion == version: +# highestSimilarity = similarity +# highestSimilarityFilename = filename +# if highestSimilarityFilename is not None: +# print(f"{getFilename(benchmark['url'])} -> {highestSimilarityFilename}") +# stigs[idx]['file'] = f"https://raw.githubusercontent.com/mitre/inspec-profile-update-action/main/benchmarks/DISA/{highestSimilarityFilename}" +# else: +# del stigs[idx] +# else: +# print("No version for url: "+benchmark['url']) + +# with open('stigs.json', 'w') as outfile: +# json.dump(stigs, outfile, indent=2) + +# """ +# Gets the Profile ID from the XCCDF xml file +# Example: +# +# + +# We want "Active_Directory_Domain" from this. +# """ + +# def getProfileIDFromProfileXMLs(): +# for stig in stigs: +# if 'file' in stig: +# # Get the file path from the file URL +# filePath = stig['file'].split('https://raw.githubusercontent.com/mitre/inspec-profile-update-action/main/')[1] +# # Get the file name from the file path +# fileName = filePath.split('/')[-1] + +# # Parse the XML file +# tree = ET.parse(filePath) +# root = tree.getroot() + +# # Get the ID from the root +# if 'id' in root.attrib: +# if '/' not in root.attrib['id']: +# stig['id'] = root.attrib['id'] +# else: +# print(f"No ID found for {fileName}") + +# with open('stigs.json', 'w') as outfile: +# json.dump(stigs, outfile, indent=2) + +# def pageGenerator(): +# # Delete existing generated actions +# os.system("rm -rf actions/*") + +# for stig in stigs: - yml = f""" -on: [push] - -jobs: -test_action: - runs-on: ubuntu-latest - name: Test inpec-profile-update action - steps: - # To use this repository's private action, - # you must check out the repository - - name: Checkout - uses: actions/checkout@v3 - # Update profile - - name: Updates profile - uses: mitre/inspec-profile-update-action@main - # Set env variables - env: - profile: {stig['id']} - # Create new branch - - name: Push changes to new PR - uses: peter-evans/create-pull-request@v4 - with: - branch: update-profile - delete-branch: true""" - - with open(f"actions/{stig['id']}.yml", "w") as f: - f.write(yml) - - html = """ - - - - STIGs List - - """ - - html += "" - for stig in stigs: - html += f""" - - - - """ - if 'version' in stig: - html += f"""""" - else: - html += f"""""" - html += f""" - - - - """ - html += "
    STIG IDNameVersionURLSizeAction
    {stig['id']}{stig['name']}{stig['version']}Download{stig['size']}Download Action
    " - - with open("index.html", "w") as f: - f.write(html) - -updateSTIGSList() -updateSTIGS() -associateSTIGFileArchives() -getProfileIDFromProfileXMLs() -pageGenerator() \ No newline at end of file +# yml = f""" +# on: [push] + +# jobs: +# test_action: +# runs-on: ubuntu-latest +# name: Test inpec-profile-update action +# steps: +# # To use this repository's private action, +# # you must check out the repository +# - name: Checkout +# uses: actions/checkout@v3 +# # Update profile +# - name: Updates profile +# uses: mitre/inspec-profile-update-action@main +# # Set env variables +# env: +# profile: {stig['id']} +# # Create new branch +# - name: Push changes to new PR +# uses: peter-evans/create-pull-request@v4 +# with: +# branch: update-profile +# delete-branch: true""" + +# with open(f"actions/{stig['id']}.yml", "w") as f: +# f.write(yml) + +# html = """ +# +# +# +# STIGs List +# +# """ + +# html += "" +# for stig in stigs: +# html += f""" +# +# +# +# """ +# if 'version' in stig: +# html += f"""""" +# else: +# html += f"""""" +# html += f""" +# +# +# +# """ +# html += "
    STIG IDNameVersionURLSizeAction
    {stig['id']}{stig['name']}{stig['version']}Download{stig['size']}Download Action
    " + +# with open("index.html", "w") as f: +# f.write(html) + +# updateSTIGSList() +# updateSTIGS() +# associateSTIGFileArchives() +# getProfileIDFromProfileXMLs() +# pageGenerator() \ No newline at end of file From 4270c59a3c6dfc0adbd43b17dcfcc2e6184d06a4 Mon Sep 17 00:00:00 2001 From: Mo Shark Date: Fri, 15 Dec 2023 20:25:18 +0000 Subject: [PATCH 15/29] fixed a typo, rebuilt database Signed-off-by: Mo Shark --- database_creation.py | 2 +- secruity_guidance.db => security_guidance.db | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename secruity_guidance.db => security_guidance.db (100%) diff --git a/database_creation.py b/database_creation.py index 2ad7971de..eea806eba 100644 --- a/database_creation.py +++ b/database_creation.py @@ -5,7 +5,7 @@ async def main(): - url = os.getenv("URL", "file:secruity_guidance.db") + url = os.getenv("URL", "file:security_guidance.db") async with libsql_client.create_client(url) as client: await client.batch( [ diff --git a/secruity_guidance.db b/security_guidance.db similarity index 100% rename from secruity_guidance.db rename to security_guidance.db From 7a2bf04a0a8d4672e4610acb6f6f4b1ad0f40171 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Fri, 15 Dec 2023 17:04:25 -0500 Subject: [PATCH 16/29] added DBML version of current database schema Signed-off-by: Aaron Lippold --- database/Benchmarks.pdf | Bin 39052 -> 38729 bytes database/Security Guidance.dmm | 88 +++++++++++++------------------- database/security_guidance.dbml | 64 +++++++++++++++++++++++ 3 files changed, 99 insertions(+), 53 deletions(-) create mode 100644 database/security_guidance.dbml diff --git a/database/Benchmarks.pdf b/database/Benchmarks.pdf index 7614b009a54822e77208e89cfb40c07527e6594e..46260bd848d534f2845f45f1e12fd43026021bb4 100644 GIT binary patch delta 11905 zcmZX)Wl&r}w>6AI2Df0r-6sq#gF|qcAi)Xl?lQQ$OK^85xJz&iE+M$P+n49o`{RDk zJwMLbwR&~cK3(0r_ujRl>flDI;o|O*KJ$DA0fF(ar2o%qpnyGKfO32Wfx#3`&WDLu(G^oDw$u>m8)TtY#t}sF$NUJT!wmaJm)f+O7B3gOJwmA2j*ZH&e zuxn=%+{U^aQUq!ZTv~Jc>=TFzGb22S%F`08SL=!7B@~f`u^DZ-r9j8 zV32r9j_Z=fd9gBfYDa83OBXY#nrP~1 zG&y)BN$GnENQw}R9{To*fq9=8%lr|_E{3Xcb=Iz8OF*|sgP8aIN5*%#+0{x)C21om z!jcbxDon6bRq+wsZw`-hIomL3H^ch%nqDgK6V?Tx!d<#=WbP;TP{Ox|sj+jYbFjfveI+If9U%b&~ehhqr(r2>5(#)kfd%(q)F0sZR=t;E>aCR~KlAFxx%4)7HC%`dFb`2#OPTqiUcPZ8U2 z^|bqc?77EwC02pIjOJb;|2Kcn2Y{}LyXI$4Vs zvP1P6a!c>dbgB)#8moQV0c^5ehorR4Iy)N@MsBknxK}Ye?Wh9OQ5BvS@J5@PuCEFO z?@;eaz%g3q>kQB;CFv@t(qvkPlKb@2j>|VJXuz#ZG+3TH-Q0oo>LceQa9-@W$zddx zNx=fR&?k%E|Mq(%0Ie~RhvNOkJWFNoA^FIZL|3EAV5}UGR;Nim{>0xzuoBUd$qE*w z+8ib?u}`fh^rbSqXDD$(DUX!lTQg3t*lxeC6~u$+Ba?QN`gI6&FUy>t=lEu}b~IO? znF`z*#DSZB!BrlQS^u|`1veR;yzZ|zt70gtqJ>yhtH7>_LqsF-8{VFPrVkw=iJ%cY zo8n0Dh`W1Z$_ldcGzJ3LfB->*Fi^qa{Rv@SE)kg~EV#0Lr&MisrJ>QB8Z5KOT^u$30b9h807)pAT^;nx zprkz?p&!`^(9l`hjvqMpwX&?Zl}ntBUV}C%u>q4Dd&W*kc5cKc;ghP#ltYTt%>77RKm)Oh{d>^&7^Ej!{<;)zBg*%<`FvUrP_^n(wRTvcnn4p$( zK3^hk5@J`@`UX578C+flt{e*bi?1vYe0#ErP3~)71!OWdMx%%AC~K_FXsJ6L10&5j zE~ZIYI&}q4e%9d`%=MYV>_>XQsHgNQI3HO8#@jsUNEGb6q%6Ldc^s~(E{@fXis&Ez z5pI2XtvB}8n(e2HO5G40lz-kRMuR33Y>48Q1m+kxc&fNtW2x1{*QNyI(OoH)OFnK8 zksA6S&FrWR*t0fmDwUyh6lmmlbgtj+lf{acSj+d|3~{!yjBhz{3y~CY$QNlEB#sUj z@z?qN6nT)KC7sdv>gP^zj`JE4T9rRry<6IWc9O)55R=K%I8ShR^j9PW=?8S?QcHzq zjmT%zvU6^5#%>kK;a~I#w&RLJ=vk|0p6&EG7sD6sGFB-FL3WOEcO>Xs?Df3z8Xw&A z>gnNJ!87>VrHLj7*YgGu6x1-HE(VAMptys5Q@t9Z)%UFRv)qR2*<{KG$gT#)`DfJe z#*kh?wdN4GJX?EIVw+C~+EBYcGBkb)7<_~VV1GbB?MQ(9mz{d@;Zita_Zvcan2y;* zMntTSFb&h}<=8j)1^7b9h&FhgSr@R#LMjikUvCV6;O`x{3zdSL(VBIHFi60Iz#*e` zRIxm}k4o>gKYLhiXfXUm;Q6OixA2RZZI+~BGBY^CxJ*DnU@wF2Y3RH}&rU}}gA}Z_ z)Tzt7!aK@=i2NuJ1<%|58Ww&D&Yx?Wc{{`p;7ZgiN(DP3&O3ggU|=OU&PIt2n-y2% z-Mouf{G@#iJA9r*mhprI(5y|gBavpv?KR@PD>^KLn?SsX`)-?!9IQMn7fJ!+uME(` zN5HAZqd?sVI0`|kfTAEOf9;}$70VOOjVd5Ni1@?Pf>PKlU1WUUT{Ubnu|LcyhR*xyxfw18;Hd3HnB3c@w^k&ahm=*>F zD~+%eU}oqR`Ur0|=*8JQK=BAHkqQ%MFn1<$QT)7ur5n^7t|G%wWlo|NKm;5bDfAx; z3vug_9dWZ^&c(NWw7>ez=FU|xIx7c^PgEacU;mq5WcjIF;M#Jf+@2X;aQ!8=-wW9~ zQ@QAa0jw!yu0lZ8+#gibbd(+VdE$o|KfPD0$ByqP(4z>^&&2?uua?rMu5E#$G#)Ir zG7J0Z+wObQ)+3;xU+-3?p@(1UD?ZB~v}w231)O{|4T~9Lx1kiUk8QVnwy*DpVXZT- zlm*Tbo7?&JULl*aa!s0N(W0VAV>D#KX@RDvdAGXN^K;u`1wHWTz_jj&)Eas>oKiZ& zOK@;HP#CxkcM|uaGb1V)kF zx1L6lJ3nj(nKyTQSt}R3M|!|alUiwsEkEYjfZj9Z0r(Um!jk@a6*)wwWZN$^~4>BI6%|| z2PK3fMRihMhq+p{L*@D|aKE=8!ExtVyh(07ghLAIiLsk@8P#V;Iww1%^st}K%|O4a z-f8u{^05=q7q{5F3(?(G(_AEKXag-O`R05LS4!9`<fMu7ZC+m#5ISSqQ#K9n28 zfmFbF4gF5?>K1aB8kF-df5%2lF>I0i34QB12sIT$oEZ9P>^!e*g738x!-!eZT#x61ckwD zY$e4Xp@bo=0*@U*@JJfGH|fcFf*8QW1XF0PI`8K zM%G3MCT0ga1ClwXl0MwFrb@C zPcVbLNCa-Mh0l#;Yow45$_(7LZ8&orFb)ru6Im+$RNMWOx<6wzB$%G6q)+*gkAH`C z968FP92$hIsqQn=uUhcdu>!hgfapcQM+BTm)LBR`j|G`IU11+C0<09}jhqjMw6*2k zP314!ZnvxW9OgTgxgi83*=(5}ARCUqlmcIK@Rx)<)nBZRaQ6^}mb@Vj?d?@WHcx=Qh$-n#Jq~cU-P=xLXOo*8ZX~~0CT-{h zkNTiB2GVJQ{DA4dvr(i1Lzof9)q5e)gB_(XP;zRPYmXrPSjMOAk;u_|700wxT^`5XWc2qkYhj*Rkemd0`!fP`(!h|%fn(; z@mc%=q?MuoA?TY%60(|yub){L=7z3|6B0N1fY5?wK8pzG)rf(CSmPA(lBY(2B0-mw z5~58LcH0iYc41<``asl6!C>$=$DDl*oYzyTsqaiWWS#Tjz#+fJ7+@ca#=yGs!OR!J zxGjpP&&tEm6imR$2kq4FzTy{Q!0J}2Poit^`C4ZLVy!h|LIE>r3@L(=`A|;PtT8)+ zEff!RUg;w|GAnHY+az1S;;4O4cc#Ol2gO1BA(eSj`0qd3rny*BrsY`5rni&gm>qvH zwja5QeY?F5M3wqO2y(!8)BS${wx@66n8z;5C`2qb-CiZe6bYy-Xmgx)Y`^7NO+NCdxV2vCYDdd(Z`llE@#oZ(Dm0 ze9Hrv4XuR^yz#aTZ=64T?pEr?H!Yd+ecmm;I8CryXGH{lDa6BQMD{)iM=`x@?$TNw zzi-aeRTMFB(i$(Uu(4ZEXFfz`u}iySCXs1hUjI>Nv@^53tpwJQM|5+Iyvz(Ei|i~< zG?_g5+lQ~Qx;y>S;}2a!J+Gv%%sY12Yx<Ej@eXBNm8uV{QM^^H|iBVWy!i$1VnsBY@LZ=EIezHZh^x*DEf55GOvQ=1x`QJBs^rd6#YtBXDsoP* ztmf0ZoG5>_qPq{=^SR>V^K-srBk7T!7=caE)0#laW#8L@vEf=T?mD#Zl4*1?*%zH7 zut<&_W70jm_lLLa%8v~3GmEv#?69xSk|KB;bgHQG!sKBG1b=CYa@YK_Ic&p0>hhr(TVRvn(^jCe!W zqFz}X&qWrxHkYs~*Eg9?R!*vw4Dh=Wyp@db!Lhbu>d-AG37oSQk>B3ZU}3r?!tIfk zb)4mk0>WV3(!1WbbQYF2tXfIRN}i9z0+!7TEFF!#T7=Sx)vISF$gZMpjqr;rsq6Q| zL}?s}r*kfC!^O>2t!KSuRnVS!AawXp21yR*lG z!D(Z5nv>X+XuVUPxTstxqx$4lq;wgUe-?V7Y`Z7(0}xa+=nu=i?MUy#3tJni#OY)NRwiaLp9KX)R49)^JWeKASt_c z|7i->@|P+RZ-A^ANHp#PWeFHpf+`A9s1`+y;#B5Ar~TpJ1ErZR?iF@apf?;eKaB23 zNZ*N;g>njT{3WZ;*ygw|W>#TKizw#84Ju%t{vm)e{d0g!x;E>i$wz>TaWeql#Pl4) zQY-{^Xx7Ts@3V6xq_6}N!_v`x5E6a7PBw4M@POLcA5~tb!VEdsxR!FUZ6@nF?zrZr zFHNSjj`r*Gr5CGg2l!dC#cP=Kf27mGM8d~sbHZHj`9u00zkd*x#R%=1Bu-;G9!jS@ zrk-28jQ^I!h|Iy>+1P7r<=El)@0^n0;a~4cy2GzOlSX*%%c%Nr@br1%T`Br=8JTiPgTDVb|*@24Bc24w~=U2kRK4AS2T29ikF$10au$8I$xPKki zY;F(M|HRtRY^B)jwyKh&jP2lAQSMfIi^nCr@*t~m#!R1t0p4)8=yb%9h1M50X9OnW zHug9X20N4oKF%NJ^Q9iyxhI897F4(`U}VuN4wq5hlNiy@4j%~8868lz`{_lq+7(}! zX!g*)CX?wXN4=_g+A;{$-Ny4n4wr}h1(LIE3eIY7eq^ub-3z|5T%Cz5Y?R$v8=anM zDXC(xhkAdkG7HI?yT4XDhVsRlk7-REUL7D=g`(TO2*)izYD$D@qellYFlQsx96Bp$ zSUVc@HtWLYgd3Y~Aa34A zvqIz4vS3`4ibFftjKrQk95S?G4k=AVI8>mZMu}kKvK5@6ceSDiR95bzra-cjOO4}@ zN>K94PyU=8>ZqyTmo`~bFW6dFn@1-kBEZq|k)lP^rz`tM^f6j^7SW4_lIPt*wxIZH zvDH$!a${)Ky13@#n^vel&@t0|_&9;>P@mZpYl!Fg0}}QS&s0;36oVHxiW1?#y($+_ajtUsQ9%K65xa_Xo22 z1^koKM4GncKd3SjJ0>^5U!5UvI-%kxnx6q*$+<*M8c3e4TQ`V$=iAn&GKhPnjc$ud z8>0?$KlYpL5G$_e1vReJ1p}mFuti=hFM3=pFK_&~bCL?m`97Z;t+mY(pyVa4M1I2Z z*WX5W?VKgx4A%Q+u$x7{mM3YR>*D92n0=up+}ExN^L41jA7V(V=16@~+)kJs3+N`6 zlS*GOCy1@?m6C@xCQX&^6C})^e1`1*{-~Xdl!R?n3uCjo#9KN|sVneN zx%qg6-FC6NA0XPwT;d~peK;B%B=5S&7))Pz`J)fgRwt$qxlGvp?@|_0*vHGZ;gW`s z1%*OshcLKa3YFJh0(Q;nFX#YqVz>)Gb<`VKW%6{qivnnkGzky9?39ZDDN%;m24IB< zLvNya=1x-l`eHyxlwo|fJfph;unUbT_)CalNZx1pxmE1$pW!u%y~_Lud07x#lxV{r zDrooo-u(dLew@x9^;x)i=4hZBnq|HZoP|){-C1T7OHGc4ei9!F)bvRTICq|1?iOyi zzNKqOks%BOsBPZ%1!yL38yF&13!{C+OVT(C7^zIKx)2wcPj(6X0++$~ji;Z_zv_~o zd&kf~_A|FL4FxWL_t2*cR|_&^nEbx7yfQ+6YfT$|e-X~!1x5SNXji`G8X{u2nNn!F z7AHk5!Wb7J$eb#-gUSnen{d{>o{dnbeous%it$&Z!{u!_^(9$Q0rzdqvM9%?3)jVPM{r|0W{l=0NBKxV zsal$=(u%IAU1O3;NcX>*X_|yP=f_P=)xN!_wo);5RmJ1FDHkmCUltEIR?vU}2A|67 zqj{+FG;{J+LH3DH1_LtrrD^)_T9MN-fP{g)HiK zAk0ne*uNG1Y?j}So4YyoO=WMo(QWZP6u((_-NKpU$#xR@>cQ%<2 z57+Y@xDi0w1@Bv;%Zi?(pVLNDfZ7DV3uX6OoA&FFj>ttR(E=ko?Gnsa_<@PXS7rFt zfAC4!DmtJFQqtv$C3X1kY}q;T-G}3I#HM zvY7>BBF{0(O3@K`W<+3o@v8XzA|=Z>OIP)cWk!xGQaj}6hA*Hh>+JIzkKcd`_NBSk_lDNf&bilr3tK)Huadjxt*kfeoTH)}pC_B> zbi>Fjd%9R!8eRk1cFf1IGZ*nmYQ7Kj8>-R( zr)p~>JZsgcW^cO&ct-<=e|)V?l1`OiQ-roiHl9QUgM%S=#(``eF>dGxG&wwxB95bT z2omotVPvi_QZ<4%MVU*fY$}Kc$vlW~35%p(v6fh4{WS+z2N8Q7VgDj|PyA{4noMtC z+cPxF0_S9w8}LgP4S~*1>_%#@*B%kL3}NfgYgB7}2{Ccp9EBP6?ay{s#fO_AVu7ZZ zqO0YPSdBN4O5_$~se=1wR=HHrdbve>I>p z%M_unHj$cZHaa&Mnh>e>-<@7$GOB+5Jzf+sW4gjsYG+!iT$Vm2HpPGH=1HrSQN8ST zmJOk5?dA7;(9Dr=OnVKJ%ctTzIEvOp3-U;J8PtVJPV<>oj!cGm=76a3MxeMEC*$}k z4VQ#if4{Z@ZL2=W7YMUh7r*ojPi{Qg(g7_ZW3yr{tiDChTDK#~cM#st2BhP(r6UHx zR5tATXBiWid-fxqO|*uU>HXbv`G}?$ z$m8S9?)UJDh5_y63KMO`82VyT9NI9y1dUu75pBY>U1k654$s1G$Sx?WQZ_7SECPgf z_SB=xGexh@LnH;iT%ES7Zih&={~2miGeac8Cacl)q}8eOqbZ#o&~>~Tf6kh+sJ*n0aY6I4EYFnQrRhw?~p=A;|>2?2_Q2f776% zy&fZAC9bc^O`bo7I?@&x&dH9-&|L3E6AutOk54D^5fz!v0T#?hUE;LHEl?&1q?tG> z89cFAIo(r6T=A_}_E=(IsM`T%-Nx|5WP-K7r=}Bm5yXMA;nKm2s4gn;*dHQj@5$jV zs8@q$mfOEwzC2;s{r3UgiKtQ_fADZeNr!%tbv+fth0 z+xQ51;Qn(IDw*NDUk0LleJunM&1*bCdpeoPz6jgiG45No42R6R|4IHRcfJ|^Oa3(f zC4XruPmF?4=56dVTWPjy5qp|zNqa_6#bDdGXkM(mT3*5U(fT8^|L=>oMGLhjSrD%r zCb<GFbLvLEYkshVMSNj=>gwu`aP zmB{&(2^0HhZ4UBD+w(4_b;g|GkH4Z5>++527~c9&proze-P1A#i5LvqtGVuYpumVX z?>ScHQHyv9Jr0Yg8arNQMB0&=xOL|0Fyd;$^Y4LROpDWkPhFpr4gP9->j9|)9l6Wc z1-^U9UHl#p24(%x`!+wEvE+)<;7K2fTx?d1R~dd-jpgh))IlubNVmI!(X{6C#N-$` z{0LrxCX;G6vof_hNXnO;P$IHee+~t4osnmnV9h6aUir+jMo}v581`q;q)~-mNqZkC z;@oT~X|R%8hh2qK|2eQH4UbhlUy%s#3>(zB^`ikUEd78lZuZQnr$FF^AMX=5X0%d> z;jpy)w~L8aax23=bHC8|a{~#@_Dke#u8LT2n&m7g5`?lKdJPGGznj>`aqysXYvp*dzKX#%wO$$z4m;>jA z*stHsH2!=n{!k>RjzfBt4m)!0Q&^q6-cp%&BJhb;Ys11moiy~0`=@>1Teh!ORfY}J z+dVg9y`o7nP;%VsDt49m%xc-48)miRZ{;<9J+DTynQsiw{qN4ekJ`B7V8t~H;~(hn z-niS3zI<8x$NSjc(j52AR!(jlZf=>$L%%SS_@@l(+Y-E|zSr`{nn&)HJJHO37oo08 zXrc()BfA#PECM9@Z+7LMnK$5>H(Q56<4iRynyuY5JuMPVt!7&T-?8P&t=t^!T9$8Y##`jbWEKSFWNclQoHbic`y(Q)S>{io8rz2rv@ zeegBAV%ssk=Yreq-*>Zpq(I1go!=9gl~+Ba~y1e+u1i zfp+x=y$U9rf7#n8JG3@BJBx@>vHhAT#3gD{aG)d8Wj5n9Nxf2^;S?d!R7?3Lb8_%uNwBr1@R`S%lt-H@ zTV!#0INZx6%k^RZn16+_@H9_U`sS1U%%10sw{#UhPCxsph7^?ODEO9XSu-f$^6mM`RR1RZu$$seF6p<*5 z-~BcHu*$8$`U2&3Bs1tZX5OY<*J+^r@&44buqTUHnj$^-OGoI_R9Kh7K#q8OZHwN@ z(_w6&1_ir_Z<%VjjiDei80KDW!F5dLeDxf+jFjqe=t}jlY35Jx=AWD(p>DL`eXDPw zl@zfoHFoD{@oD}w=<7Qxd*2!P-QG~CEdN#K@w(f(oaWoRU<6}ghd+p z`Zv+iuwv8r;;z_!z)7$plap2Ha_8qP5xP@DJ1*nVkf?3{^CU#_jzrNrdu9!Q=4Q^afJ_?z?;WV*0?!jji{XGD34q zaw;4iX0~?=Rm-gcBgXWmB^vwR5e8T_lR@8qN5=?}MrBz$(xpu9BQ-EGX96J(>7bWe z#1j>0&!6^?O}ko6lWvt9Ov37&o}l;mM4g-hs^rTi&&Ul*K;d5$3##jujq&bV)MBwj z>mui4xX=sKW`3b4NPAzpGu@BjUfsc&y{quLmPdq4+x>9#Atd(CZ8z}U2;PpweN7z5 zVG4aAfl6tm(jnhl(H<;P$cmf?6N>0EI*rw#;^Mz8Z%eg0Nj+3+BQTOvM>hitT1(kV z6{-4@pLYXv-5Zn{g8l}G-tIs9boqKObbxbGp{7ira?_MrfC38R*Bm5auPM{sxxv3? zgWqS+V+SpN7icvRx6*K+|2TWCFa2eH@y%UU<>i427UAgodc(Z6Bod60vrw+vWTPen=a&y#$)WT$w;S4|>#xtrZ8%V8eq zO-cwqF3qpFJPbT|O%p~zNe!-jEW=lqpGjiOsqy4drk5Zk8i$)ZVLge~tLCGbE!HyE z8kbG(K|X(VH>CKY6H@_!jqvs5xme1&j0oZt@4Gn-<;TBc(aPG2kH+fUvBTNYk0e6n zL*-4@&4D?KXEl5=l{Vt zIYIx8ad2^P{~wHp>;KIC=K%1(c_2>C|KUOZms1?PJY1juo5%+Q{$GsiGv9yl{)xmv r|IGt&bNwHuLEJoi|9de${AW2pJX{=~6NS?xJ^*<*0JOA{N>cwHFFDYS delta 12223 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 IjLN6~2MB|C`v3p{ diff --git a/database/Security Guidance.dmm b/database/Security Guidance.dmm index cdd09361f..a6ea6b01a 100644 --- a/database/Security Guidance.dmm +++ b/database/Security Guidance.dmm @@ -73,24 +73,6 @@ }, "estimatedSize": "" }, - { - "id": "248ecf4a-67bc-4911-bdf4-44e371027db5", - "name": "status_id", - "datatype": "INTEGER", - "param": "", - "pk": false, - "nn": true, - "comment": "[autogenerated] id of the status type", - "defaultvalue": "", - "data": "1,2,3", - "after": "", - "collation": "", - "sqlite": { - "autoincrement": false - }, - "estimatedSize": "", - "fk": false - }, { "id": "2da7d7d5-7ef4-4c07-a424-8b116ecd29ba", "name": "type_id", @@ -162,7 +144,7 @@ "fk": true }, { - "id": "f24a7cbb-97a8-4ad6-99ef-978597b0742a", + "id": "3c0c4bfd-eb57-40e8-b62e-d180f64125c3", "name": "status_id", "datatype": "INTEGER", "param": "", @@ -174,19 +156,19 @@ "after": "", "collation": "", "sqlite": { - "autoincrement": true + "autoincrement": false }, "estimatedSize": "", "fk": true } ], "relations": [ - "663efedd-aac8-45c1-baf3-c22f9266e727", "6465776d-da1f-414e-a12c-32ac13b66909", "8440ea26-76c0-4269-9597-a6995d857b68", "e12f9a4e-1035-45c0-bd66-a0b32b825758", "3627acdc-20c5-462a-9096-da39cd6b9ed8", - "a2782a52-3d03-4937-8ccf-9e0a994db294" + "a2782a52-3d03-4937-8ccf-9e0a994db294", + "22f19dfb-22c4-4bd4-9522-2e26dc83c101" ], "lines": [], "keys": [ @@ -983,7 +965,7 @@ } ], "relations": [ - "663efedd-aac8-45c1-baf3-c22f9266e727" + "22f19dfb-22c4-4bd4-9522-2e26dc83c101" ], "lines": [], "keys": [ @@ -1067,33 +1049,6 @@ "customCode": "", "relationColor": "transparent" }, - "663efedd-aac8-45c1-baf3-c22f9266e727": { - "id": "663efedd-aac8-45c1-baf3-c22f9266e727", - "visible": true, - "name": "status_id_Benchmarks", - "desc": "", - "type": "identifying", - "parent_key": "83c53cd8-165d-4d51-b67e-8c74146d2572", - "parent": "3042578a-ef8c-490f-86e5-4cebe82acc7d", - "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", - "c_mp": "true", - "c_mch": "true", - "c_p": "one", - "c_ch": "many", - "c_cp": "", - "c_cch": "", - "cols": [ - { - "id": "044a1194-9e1a-46f6-8bfa-d1f8352dde57", - "parentcol": "4bc8e5d6-ec2c-44a7-940c-d75199f981af", - "childcol": "f24a7cbb-97a8-4ad6-99ef-978597b0742a" - } - ], - "generate": true, - "generateCustomCode": true, - "customCode": "", - "relationColor": "transparent" - }, "6465776d-da1f-414e-a12c-32ac13b66909": { "id": "6465776d-da1f-414e-a12c-32ac13b66909", "visible": true, @@ -1282,6 +1237,33 @@ "generateCustomCode": true, "customCode": "", "relationColor": "transparent" + }, + "22f19dfb-22c4-4bd4-9522-2e26dc83c101": { + "id": "22f19dfb-22c4-4bd4-9522-2e26dc83c101", + "visible": true, + "name": "status_id_Benchmarks", + "desc": "", + "type": "identifying", + "parent_key": "83c53cd8-165d-4d51-b67e-8c74146d2572", + "parent": "3042578a-ef8c-490f-86e5-4cebe82acc7d", + "child": "c8ba4433-bd1b-468b-b33e-d5c50f1f2b40", + "c_mp": "true", + "c_mch": "true", + "c_p": "one", + "c_ch": "many", + "c_cp": "", + "c_cch": "", + "cols": [ + { + "id": "3bf50adc-d91b-4889-8ead-7725c9a3dd5a", + "parentcol": "4bc8e5d6-ec2c-44a7-940c-d75199f981af", + "childcol": "3c0c4bfd-eb57-40e8-b62e-d180f64125c3" + } + ], + "generate": true, + "generateCustomCode": true, + "customCode": "", + "relationColor": "transparent" } }, "notes": {}, @@ -1328,7 +1310,7 @@ "keywordCase": "upper", "identiferCase": "original" }, - "lastSaved": 1702603733496 + "lastSaved": 1702605064746 }, "otherObjects": {}, "diagrams": { @@ -1489,14 +1471,14 @@ "e4cfe7e8-661f-462c-b51e-401688f089aa", "ab7e56b9-8aa7-429c-97ac-d4e117244aec", "fd560202-d9f1-4e3a-8133-4d207466a3c0", - "663efedd-aac8-45c1-baf3-c22f9266e727", "6465776d-da1f-414e-a12c-32ac13b66909", "8440ea26-76c0-4269-9597-a6995d857b68", "e12f9a4e-1035-45c0-bd66-a0b32b825758", "3627acdc-20c5-462a-9096-da39cd6b9ed8", "a2782a52-3d03-4937-8ccf-9e0a994db294", "4624830c-2ee0-4972-b189-2657e9b7998b", - "46831da2-6151-4803-a00f-c8b7a0fb5cf4" + "46831da2-6151-4803-a00f-c8b7a0fb5cf4", + "22f19dfb-22c4-4bd4-9522-2e26dc83c101" ], "collapsedTreeItems": [], "reverseStats": {} diff --git a/database/security_guidance.dbml b/database/security_guidance.dbml new file mode 100644 index 000000000..998390809 --- /dev/null +++ b/database/security_guidance.dbml @@ -0,0 +1,64 @@ +Table Organization { + organization_id int [pk, increment, not null] + short_name varchar [not null] + uri varchar + email varchar + long_name varchar [not null] +} + +Table artifact_types { + type_name varchar [not null] + artifact_type_id int [pk, increment, not null] + description text +} + +Table benchmark_type { + short_name varchar [not null] + description text [not null] + benchmark_type_id int [pk, increment, not null] + long_name varchar [not null] +} + +Table Artifact { + artifact_id int [pk, increment, not null] + name varchar [not null] + location varchar [not null] + created_at date [not null] + secondary_location varchar + raw_data blob + type_id int [not null, ref: > artifact_types.artifact_type_id] + organization_id int [not null, ref: > Organization.organization_id] +} + +Table Products { + short_name varchar [not null] + version real [not null] + author_id int [not null] + release int [not null] + long_name varchar [not null] + product_id int [pk, not null] + organization_id int [not null, ref: > Organization.organization_id] +} + +Table Statuses { + status_id int [pk, increment, not null] + name varchar [not null] +} + +Table Benchmarks { + benchmark_id int [pk, increment, not null] + version smallint [not null] + release smallint [not null] + release_date date [not null] + status_id int [not null, ref: > Statuses.status_id] + type_id int [not null, ref: > benchmark_type.benchmark_type_id] + product_id int [not null, ref: > Products.product_id] + author_id int [not null, ref: > Organization.organization_id] + sponsor_id int [not null, ref: > Organization.organization_id] +} + +Table benchmark_artifacts { + default int2 + benchmark_id int [pk, not null, ref: > Benchmarks.benchmark_id] + artifact_id int [pk, not null, ref: > Artifact.artifact_id] +} From 21af2e69ca0e47d2d0eecda244ea78a18b34498e Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Sat, 16 Dec 2023 12:39:27 -0500 Subject: [PATCH 17/29] adding start of documentation for the database to the DBML file Signed-off-by: Aaron Lippold --- database/security_guidance.dbml | 72 ++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/database/security_guidance.dbml b/database/security_guidance.dbml index 998390809..fc589b164 100644 --- a/database/security_guidance.dbml +++ b/database/security_guidance.dbml @@ -1,5 +1,12 @@ +Project MITRE_SAF_Security_Guidance { + database_type: 'SQLite' + Note: ''' + # Security Guidance Database + **markdown content here** + ''' +} Table Organization { - organization_id int [pk, increment, not null] + organization_id int [pk, increment, not null, note: "organization identifier"] short_name varchar [not null] uri varchar email varchar @@ -41,8 +48,24 @@ Table Products { } Table Statuses { - status_id int [pk, increment, not null] - name varchar [not null] + status_id int [ + pk, + increment, + not null, + note: 'Primary Key for the status.'] + name varchar [ + not null, + note: 'Text based name of the status.'] + + Note: ''' + # Statuses Table + Collection of statuses that show the current working state of the Benchmark or Artifact. + + Valid entries are: + - 'Draft', WIP', 'In Review' + - 'Published', 'Final' + - 'Sunset' + ''' } Table Benchmarks { @@ -55,10 +78,47 @@ Table Benchmarks { product_id int [not null, ref: > Products.product_id] author_id int [not null, ref: > Organization.organization_id] sponsor_id int [not null, ref: > Organization.organization_id] + + + Note: ''' + # Benchmarks Table + Collection of Benchmarks that are stored in the database. A benchmark has a `benchmark_id` `version`, `release`, `release_date`. + + A Benchmarks `status`, `type`, `product`, `author` and `sponsor` all come from entries in the supporting database tables. + + ### Table Constraints + #### [Must be added on the SQL Code side until DBML supports them] + 1. A Benchmark should only belong to one Author, Product, Version, Release + 2. A Benchmark may have an Author, Product, Version, Release with different Status + 3. A Benchmark usually should not hae a (Product, Version, Release, Status ...) with different Authors or Sponsors + + ### Column Constraints + #### [Must be added on the SQL Code side until DBML supports them] + - (`benchmark_id`,`product_id`,'version','release') [BPVR] is UNIQUE + ''' } Table benchmark_artifacts { - default int2 - benchmark_id int [pk, not null, ref: > Benchmarks.benchmark_id] - artifact_id int [pk, not null, ref: > Artifact.artifact_id] + + default int2 [note: 'Marks the artifact as the `default` (0,NULL or 1) for the Benchmark.'] + benchmark_id int [pk, not null, ref: > Benchmarks.benchmark_id, note: '`benchmark_id` the artifact relates to.'] + artifact_id int [pk, not null, ref: > Artifact.artifact_id, note: '`artifact_id` we are linking to the referenced Benchmark.'] + + Note: ''' + # benchmark_artifacts table + #### [Linking Table between Benchmark and Artifact] + + Collection of artifacts associated with a Benchmark by (`benchmark_id`,`artifact_id`). + + ### Table Properties + - `default`: An `INT(2)` to mark an artifact as the `default` or `primary` Artifact related to this Benchmark. + + ### Table Constraints: + #### [Must be added on the SQL Code side until DBML supports them] + - (`benchmark_id`,`artifact_id`,'default') is UNIQUE as only one artifact can be the 'default' artifact for a given Benchmark. + + ### Column Constraints: + #### [Must be added on the SQL Code side until DBML supports them] + - (`benchmark_id`,`artifact_id`) is UNIQUE since an Artifact can only belong to one Benchmark. + ''' } From 9e5f635852caf9ede481d6c5780836adc2f2a6f7 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Sat, 16 Dec 2023 21:17:19 -0500 Subject: [PATCH 18/29] reorganizng, updating schema, testing Atlas for DB managment, regenerating .sql and reports Signed-off-by: Aaron Lippold --- database/Benchmarks.pdf | Bin 38729 -> 0 bytes database/Benchmarks.sql | 69 - ....dmm => mitre-saf-security-benchmarks.dmm} | 675 +- database/mitre-saf-security-benchmarks.pdf | Bin 0 -> 41513 bytes .../schema/mitre-saf-security-benchmarks.sql | 95 + database/security_guidance.dbml | 88 +- database/security_guidance.hcl | 300 + database/test.db | Bin 0 -> 49152 bytes database/web/index.html | 7552 +++++++---------- database/web/style.css | 1 + database_creation.py | 3 +- test.db | 0 12 files changed, 3921 insertions(+), 4862 deletions(-) delete mode 100644 database/Benchmarks.pdf delete mode 100644 database/Benchmarks.sql rename database/{Security Guidance.dmm => mitre-saf-security-benchmarks.dmm} (83%) create mode 100644 database/mitre-saf-security-benchmarks.pdf create mode 100644 database/schema/mitre-saf-security-benchmarks.sql create mode 100644 database/security_guidance.hcl create mode 100644 database/test.db delete mode 100644 test.db diff --git a/database/Benchmarks.pdf b/database/Benchmarks.pdf deleted file mode 100644 index 46260bd848d534f2845f45f1e12fd43026021bb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38729 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 Organization.organization_id] + author_id int [not null, ref: > Organization.organization_id] + owner_id int [not null, ref: > Organization.organization_id] + + Note: ''' + # Products Table + Collection of Product that are stored in the database. + + A Benchmarks `status`, `type`, `product`, `author` and `sponsor` all come from entries in the supporting database tables. + + ### Table Constraints + #### [Must be added on the SQL Code side until DBML supports them] + 1. A Benchmark should only belong to one Author, Product, Version, Release + 2. A Benchmark may have an Author, Product, Version, Release with different Status + 3. A Benchmark usually should not hae a (Product, Version, Release, Status ...) with different Authors or Sponsors + + ### Column Constraints + #### [Must be added on the SQL Code side until DBML supports them] + - (`benchmark_id`,`product_id`,'version','release') [BPVR] is UNIQUE + ''' } Table Statuses { @@ -69,16 +86,40 @@ Table Statuses { } Table Benchmarks { - benchmark_id int [pk, increment, not null] - version smallint [not null] - release smallint [not null] - release_date date [not null] - status_id int [not null, ref: > Statuses.status_id] - type_id int [not null, ref: > benchmark_type.benchmark_type_id] - product_id int [not null, ref: > Products.product_id] - author_id int [not null, ref: > Organization.organization_id] - sponsor_id int [not null, ref: > Organization.organization_id] - + benchmark_id int [ + pk, + increment, + not null, + note: 'The `id` of the Benchmark'] + version smallint [ + not null, + note: 'The major `version` of the published Benchmark'] + release smallint [ + not null, + note: 'The release of the published Benchmark'] + release_date date [ + not null, + note: 'The `release_date` the Benchmark was published'] + status_id int [ + not null, + ref: > Statuses.status_id, + note: 'The publication status of the Benchmark'] + type_id int [ + not null, + ref: > benchmark_type.benchmark_type_id, + note: 'The type of the Benchmark'] + product_id int [ + not null, + ref: > Products.product_id, + note: 'The Product this Benchmark is related to'] + author_id int [ + not null, + ref: > Organization.organization_id, + note: 'The authoring Team or Organization that created this Benchmark'] + sponsor_id int [ + not null, + ref: > Organization.organization_id, + note: 'The Organization that supported or sponsored the development of the Benchmark'] Note: ''' # Benchmarks Table @@ -94,15 +135,26 @@ Table Benchmarks { ### Column Constraints #### [Must be added on the SQL Code side until DBML supports them] - - (`benchmark_id`,`product_id`,'version','release') [BPVR] is UNIQUE + - (`benchmark_id`,`product_id`,'version','release') [BPVR] is UNIQUE + + ### Column Checks + #### [Must be added on the SQL Code side until DBML supports them] + - `status_id`,`type_id`,`product_id`,`author_id`,`sponsor_id` all need ''' } Table benchmark_artifacts { - default int2 [note: 'Marks the artifact as the `default` (0,NULL or 1) for the Benchmark.'] - benchmark_id int [pk, not null, ref: > Benchmarks.benchmark_id, note: '`benchmark_id` the artifact relates to.'] - artifact_id int [pk, not null, ref: > Artifact.artifact_id, note: '`artifact_id` we are linking to the referenced Benchmark.'] + default int2 [ + note: 'Marks the artifact as the `default` (0,NULL or 1) for the Benchmark'] + benchmark_id int [ + pk, + not null, ref: > Benchmarks.benchmark_id, + note: 'The `benchmark_id` the artifact relates to'] + artifact_id int [ + pk, not null, + ref: > Artifact.artifact_id, + note: 'The `artifact_id` we are linking to the referenced Benchmark'] Note: ''' # benchmark_artifacts table diff --git a/database/security_guidance.hcl b/database/security_guidance.hcl new file mode 100644 index 000000000..004fd4060 --- /dev/null +++ b/database/security_guidance.hcl @@ -0,0 +1,300 @@ +table "Artifact" { + schema = schema.main + column "artifact_id" { + null = false + type = integer + auto_increment = true + } + column "type_id" { + null = false + type = integer + } + column "owner_id" { + null = false + type = integer + } + column "name" { + null = false + type = varchar + } + column "location" { + null = false + type = varchar + } + column "secondary_location" { + null = true + type = varchar + } + column "created_at" { + null = false + type = date + } + column "raw_data" { + null = true + type = blob + } + primary_key { + columns = [column.artifact_id] + } + foreign_key "artifact_has_a_type" { + columns = [column.type_id] + ref_columns = [table.artifact_types.column.artifact_type_id] + on_update = CASCADE + on_delete = RESTRICT + } + foreign_key "artifact_has_a_owner" { + columns = [column.owner_id] + ref_columns = [table.Organization.column.organization_id] + on_update = CASCADE + on_delete = RESTRICT + } +} +table "Benchmarks" { + schema = schema.main + column "benchmark_id" { + null = false + type = integer + auto_increment = true + } + column "version" { + null = false + type = smallint + } + column "release" { + null = false + type = smallint + } + column "release_date" { + null = false + type = date + } + column "type_id" { + null = false + type = integer + } + column "product_id" { + null = false + type = int + } + column "author_id" { + null = false + type = integer + default = 0 + } + column "sponsor_id" { + null = true + type = integer + default = 0 + } + column "status_id" { + null = false + type = integer + } + primary_key { + columns = [column.benchmark_id] + } + foreign_key "benchmark_has_a_type" { + columns = [column.type_id] + ref_columns = [table.benchmark_type.column.benchmark_type_id] + on_update = CASCADE + on_delete = RESTRICT + } + foreign_key "benchmark_has_a_product" { + columns = [column.product_id] + ref_columns = [table.Products.column.product_id] + on_update = CASCADE + on_delete = RESTRICT + } + foreign_key "benchmark_has_an_author" { + columns = [column.author_id] + ref_columns = [table.Organization.column.organization_id] + on_update = CASCADE + on_delete = RESTRICT + } + foreign_key "benmark_has_a_sponsor" { + columns = [column.sponsor_id] + ref_columns = [table.Organization.column.organization_id] + on_update = CASCADE + on_delete = RESTRICT + } + foreign_key "benchmark_has_a_status" { + columns = [column.status_id] + ref_columns = [table.Statuses.column.status_id] + on_update = CASCADE + on_delete = RESTRICT + } + index "unique_product_version_release_owner" { + unique = true + columns = [column.version, column.release, column.product_id, column.author_id] + } +} +table "Organization" { + schema = schema.main + column "organization_id" { + null = false + type = integer + auto_increment = true + } + column "long_name" { + null = false + type = varchar + } + column "short_name" { + null = false + type = varchar + } + column "uri" { + null = true + type = varchar + } + column "email" { + null = true + type = varchar + } + primary_key { + columns = [column.organization_id] + } + index "unique_org_short_and_long_name" { + unique = true + columns = [column.long_name, column.short_name] + } +} +table "Products" { + schema = schema.main + column "product_id" { + null = false + type = int + } + column "long_name" { + null = false + type = varchar + } + column "short_name" { + null = false + type = varchar + } + column "version" { + null = false + type = real + } + column "release" { + null = false + type = int + } + column "owner_id" { + null = false + type = integer + } + foreign_key "product_has_a_owner" { + columns = [column.owner_id] + ref_columns = [table.Organization.column.organization_id] + on_update = CASCADE + on_delete = RESTRICT + } +} +table "Statuses" { + schema = schema.main + column "status_id" { + null = false + type = integer + auto_increment = true + } + column "name" { + null = false + type = varchar + } + primary_key { + columns = [column.status_id] + } + index "unique_status_id_name" { + unique = true + columns = [column.status_id, column.name] + } +} +table "artifact_types" { + schema = schema.main + column "artifact_type_id" { + null = false + type = integer + auto_increment = true + } + column "type_name" { + null = false + type = varchar + } + column "description" { + null = true + type = text + } + primary_key { + columns = [column.artifact_type_id] + } +} +table "benchmark_artifacts" { + schema = schema.main + column "benchmark_id" { + null = false + type = integer + } + column "artifact_id" { + null = false + type = integer + } + column "is_default" { + null = true + type = int2 + default = 0 + } + primary_key { + columns = [column.benchmark_id, column.artifact_id] + } + foreign_key "benchmark_has_an_artifact" { + columns = [column.benchmark_id] + ref_columns = [table.Benchmarks.column.benchmark_id] + on_update = CASCADE + on_delete = CASCADE + } + foreign_key "artifact_belongs_to_benchmark" { + columns = [column.artifact_id] + ref_columns = [table.Artifact.column.artifact_id] + on_update = CASCADE + on_delete = CASCADE + } + index "unique_benchmark_artificat_default" { + unique = true + columns = [column.benchmark_id, column.artifact_id, column.is_default] + } +} +table "benchmark_type" { + schema = schema.main + column "benchmark_type_id" { + null = false + type = integer + auto_increment = true + } + column "long_name" { + null = false + type = varchar + } + column "short_name" { + null = false + type = varchar + } + column "description" { + null = false + type = text + } + primary_key { + columns = [column.benchmark_type_id] + } + index "unique_bt_long_name" { + unique = true + columns = [column.long_name] + } + index "unique_bt_short_name" { + unique = true + columns = [column.short_name] + } +} +schema "main" { +} diff --git a/database/test.db b/database/test.db new file mode 100644 index 0000000000000000000000000000000000000000..c8aeed606d380710082cfccafe0bcf1379ffbe06 GIT binary patch literal 49152 zcmeI%Z)@8|90zbIO_SD1nhpwnRJbzAY8pm2GswfbiBim5IdyDU9!VGbl8DGwD#>ZH zJ!%RYd$<=c*vr}b80;PF`R*=0OD8M-6ZQwe*Nv)wr}Iyr``t;058gJsn33Zk?9-T3 zjfaM58ZQYk4C4`B*7>r`ml9t-A8qrM{FrKE%KDM$ByaHkCP(f%a(RpR;_K3 zj$MD-u}IzCwZ0>6PQiKVcS+OEz1StsQgwPgcZ;|x1RkQ;O`>!wo7)=~TN<{l6;tk@jiQQ>5$gZ_l>onTr#g-_O)X$?6rPv7ziQR0= z!m>y@{@fD#t@@i<>yUhF9nQG@il}g>X&=)5HpLbM;4&y-X=SApzmBge-qV>(~wL9e}Pt0FF zlPQiaz5^kfT}&uGME zoOXIN=4HhH`sMNEITOi|o2Tx181#nSSQXGO<(8*GsLoAxgXlaML{kgIG#*AbR*+8n zNELO`xO%RS%Ve_YKwisaE~U%NnMm0@55f~V@V=)pZxkN;w15%-z3(+sRfr7FRLSH2 z*JDc>?>`DHNu?=bNuf*|?q4UOY(uTkEuoIo2;+=8z?7g=7tx{g8uW20xnj=nO8mjL z@@x6=WAo#g9A#9_s`Y(+gi(h_<4cm&6Ww^m;4+|nJ}g|&uzO0ArZamaY41#_zIGOf^sgw~ydbQc!H(@wy1W0aQ zACR&Y>k0Ia4FaOImR-?WKfji(r5^2Sy{fmCIy`DE^`y%khi{cWvW@+qD~HI*?2@Ou zyy;`cUq|D-r&7ea!JtROODCrq{!S*V2+;*H8YjaDbA3d2? zbP~S*rM0ukDDU>Bm=uMcdE*urr{$2U9TABz_Y+7YpZQ0*QZYYWzaQ!2qQ1AHC!&6G z-oc~CqHgG&i^s1^V)h}^oApX>lhjiN6LGi3U*)Gy%}-y*u9oh^>Fs6xPSdAG_nAqn z$rrF0T`!t7$PPm<)%R4VVSVcPImf5o^#0OH`T2A6P~P(BO*&%lhWsJQGP`%Q8_%44 zCY}jf{K^WS^ZqW9=E{+cu*eZE z1Rwwb2tWV=5P$##AOHafKmY;@3W(qN@A74ZFROe}zx|8f{MGOOOMDw22tWV=5P$## zAOHafKmY;|fB*yvD1hJp3)pA~83GW100bZa0SG_<0uX=z1R$`W0OtP-f}uDBAOHaf zKmY;|fB*y_009U^JF7X(9b2tWV= z5P$##AOHafKmY;|fItBSF#j)LqakDnKmY;|fB*y_009U<00Izzz=8sp|1SuJ;t+rU z1Rwwb2tWV=5P$##AOL{^3Sj - - - - - - - - - - - - Report for Benchmarks made in Luna Modeler - - - + } - -
    -
    -
    -
    - + + -
    + +
    +
    +
    +
    + + +
    -
    - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    Benchmarks
    -
    - +
    +
    + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    Benchmarks
    +
    +
    +
    +
    +
    +
    Key
    +
    benchmark_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    -
    -
    -
    Key
    -
    - benchmark_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    -
    - version     -
    -
    SMALLINT
    -
    NN
    -
    -
    -
    -
    -
    - release     -
    -
    SMALLINT
    -
    NN
    -
    -
    -
    -
    -
    - release_date     -
    -
    DATE
    -
    NN
    -
    -
    -
    -
    -
    - status_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    Key
    -
    - type_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    Key
    -
    - product_id     -
    -
    INT
    -
    NN
    -
    -
    -
    -
    Key
    -
    - author_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    Key
    -
    - sponsor_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    Key
    -
    - status_id     -
    -
    INTEGER
    -
    NN
    -
    -
    +
    +
    +
    version    
    +
    SMALLINT
    +
    NN
    +
    +
    +
    +
    +
    release    
    +
    SMALLINT
    +
    NN
    +
    +
    +
    +
    +
    release_date    
    +
    DATE
    +
    NN
    +
    +
    +
    +
    Key
    +
    type_id    
    +
    INTEGER
    +
    NN
    +
    +
    +
    +
    Key
    +
    product_id    
    +
    INT
    +
    NN
    +
    +
    +
    +
    Key
    +
    author_id    
    +
    INTEGER
    +
    NN
    +
    +
    +
    +
    Key
    +
    sponsor_id    
    +
    INTEGER
    +
    +
    +
    +
    +
    Key
    +
    status_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    A collection of Security Benchmarks that are publied by Autors
    +
    +
    +
    Key
    +
    unique_product_version_release_owner
    +
    +
    +
    A collection of Security Benchmarks that are publied by + Autors
    +
    -
    -
    -
    -
    -
    -
    benchmark_type
    -
    - +
    +
    +
    +
    +
    +
    +
    benchmark_type
    +
    +
    +
    +
    +
    +
    Key
    +
    benchmark_type_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    -
    -
    -
    -
    - short_name     -
    -
    VARCHAR
    -
    NN
    -
    -
    -
    -
    -
    - description     -
    -
    TEXT
    -
    NN
    -
    -
    -
    -
    Key
    -
    - benchmark_type_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    -
    - long_name     -
    -
    VARCHAR
    -
    NN
    -
    -
    +
    +
    +
    long_name    
    +
    VARCHAR
    +
    NN
    +
    +
    +
    +
    +
    short_name    
    +
    VARCHAR
    +
    NN
    +
    +
    +
    +
    +
    description    
    +
    TEXT
    +
    NN
    +
    -
    -
    - Describes the kind of benchmark to include: - Security Technical Implementation Gudie (stig) - Security Requirements Guide (srg) - - Center for Internet Security Benchmark (cis) - Vendor Guidance (vendor) +
    +
    +
    Key
    +
    unique_bt_long_name
    +
    +
    +
    Key
    +
    unique_bt_short_name
    +
    +
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    +
    -
    -
    -
    -
    -
    -
    Organization
    -
    - +
    +
    +
    +
    +
    +
    +
    Organization
    +
    +
    +
    +
    +
    +
    Key
    +
    organization_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    -
    -
    -
    Key
    -
    - organization_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    -
    - short_name     -
    -
    VARCHAR
    -
    NN
    -
    -
    -
    -
    -
    - uri     -
    -
    VARCHAR
    -
    -
    -
    -
    -
    -
    - email     -
    -
    VARCHAR
    -
    -
    -
    -
    -
    -
    - long_name     -
    -
    VARCHAR
    -
    NN
    -
    -
    +
    +
    +
    long_name    
    +
    VARCHAR
    +
    NN
    +
    +
    +
    +
    +
    short_name    
    +
    VARCHAR
    +
    NN
    +
    +
    +
    +
    +
    uri    
    +
    VARCHAR
    +
    +
    +
    +
    +
    +
    email    
    +
    VARCHAR
    +
    +
    -
    -
    List of organizations or gorups that author or manage security guidance
    +
    +
    +
    Key
    +
    unique_org_short_and_long_name
    +
    -
    +
    +
    List of organizations or gorups that author or manage + security guidance
    +
    -
    -
    -
    -
    -
    -
    Artifact
    -
    - +
    +
    +
    +
    +
    +
    +
    Artifact
    +
    +
    +
    +
    +
    +
    Key
    +
    artifact_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    -
    -
    -
    Key
    -
    - artifact_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    -
    - name     -
    -
    VARCHAR
    -
    NN
    -
    -
    -
    -
    -
    - location     -
    -
    VARCHAR
    -
    NN
    -
    -
    -
    -
    -
    - created_at     -
    -
    DATE
    -
    NN
    -
    -
    -
    -
    -
    - secondary_location     -
    -
    VARCHAR
    -
    -
    -
    -
    -
    -
    - raw_data     -
    -
    BLOB
    -
    -
    -
    -
    -
    Key
    -
    - type_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    Key
    -
    - organization_id     -
    -
    INTEGER
    -
    NN
    -
    -
    +
    +
    Key
    +
    type_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    -
    - Collection of file artifacts related to the Benchmark, their data and where they are stored. +
    +
    Key
    +
    owner_id    
    +
    INTEGER
    +
    NN
    +
    +
    +
    +
    +
    name    
    +
    VARCHAR
    +
    NN
    +
    +
    +
    +
    +
    location    
    +
    VARCHAR
    +
    NN
    +
    +
    +
    +
    +
    secondary_location    
    +
    VARCHAR
    +
    +
    +
    +
    +
    +
    created_at    
    +
    DATE
    +
    NN
    +
    +
    +
    +
    +
    raw_data    
    +
    BLOB
    +
    +
    +
    +
    Collection of file artifacts related to the Benchmark, + their data and where they are stored.
    +
    -
    -
    -
    -
    -
    -
    - benchmark_artifacts +
    +
    +
    +
    +
    +
    +
    benchmark_artifacts
    +
    +
    +
    +
    +
    +
    Key
    +
    benchmark_id    
    +
    INTEGER
    +
    NN
    +
    +
    +
    +
    Key
    +
    artifact_id    
    +
    INTEGER
    +
    NN
    +
    -
    - +
    +
    +
    is_default    
    +
    INT2
    +
    +
    -
    -
    -
    -
    -
    - default     -
    -
    INT2
    -
    -
    -
    -
    -
    Key
    -
    - benchmark_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    Key
    -
    - artifact_id     -
    -
    INTEGER
    -
    NN
    -
    -
    +
    +
    +
    Key
    +
    unique_benchmark_artificat_default
    -
    +
    -
    -
    -
    -
    -
    -
    artifact_types
    -
    - +
    +
    +
    +
    +
    +
    +
    artifact_types
    +
    +
    +
    +
    +
    +
    Key
    +
    artifact_type_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    -
    -
    -
    -
    - type_name     -
    -
    VARCHAR
    -
    NN
    -
    -
    -
    -
    Key
    -
    - artifact_type_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    -
    - description     -
    -
    TEXT
    -
    -
    -
    +
    +
    +
    type_name    
    +
    VARCHAR
    +
    NN
    +
    -
    -
    -
    -
    - A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, - inspec profiles, ansible playbooks, chef recipies +
    +
    +
    description    
    +
    TEXT
    +
    +
    +
    +
    A Collection of kinds of Artifacts that vendors produce, + such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, + ansible playbooks, chef recipies
    +
    -
    -
    -
    -
    -
    -
    Products
    -
    - +
    +
    +
    +
    +
    +
    +
    Products
    +
    +
    +
    +
    +
    +
    Key
    +
    product_id    
    +
    INT
    +
    NN
    +
    -
    -
    -
    -
    -
    -
    - short_name     -
    -
    VARCHAR
    -
    NN
    -
    -
    -
    -
    -
    - version     -
    -
    REAL
    -
    NN
    -
    -
    -
    -
    -
    - author_id     -
    -
    INT
    -
    NN
    -
    -
    -
    -
    -
    - release     -
    -
    INT
    -
    NN
    -
    -
    -
    -
    -
    - long_name     -
    -
    VARCHAR
    -
    NN
    -
    -
    -
    -
    Key
    -
    - product_id     -
    -
    INT
    -
    NN
    -
    -
    -
    -
    Key
    -
    - organization_id     -
    -
    INTEGER
    -
    NN
    -
    -
    +
    +
    +
    long_name    
    +
    VARCHAR
    +
    NN
    +
    -
    -
    -
    - A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the - version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the - version + release level. For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4' +
    +
    +
    short_name    
    +
    VARCHAR
    +
    NN
    +
    +
    +
    +
    +
    version    
    +
    REAL
    +
    NN
    +
    +
    +
    +
    +
    release    
    +
    INT
    +
    NN
    +
    +
    +
    +
    Key
    +
    owner_id    
    +
    INTEGER
    +
    NN
    +
    +
    +
    A collection of products and services that are tracked + via the Benchmarks. A product is owned by an Author and is organized at the version level by + autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they + can do it at the version + release level. + + For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4' +
    +
    -
    -
    -
    -
    -
    -
    Statuses
    -
    - +
    +
    +
    +
    +
    +
    +
    Statuses
    +
    +
    +
    +
    +
    +
    Key
    +
    status_id    
    +
    INTEGER
    +
    NN
    +
    -
    -
    -
    -
    -
    Key
    -
    - status_id     -
    -
    INTEGER
    -
    NN
    -
    -
    -
    -
    -
    - name     -
    -
    VARCHAR
    -
    NN
    -
    -
    +
    +
    +
    name    
    +
    VARCHAR
    +
    NN
    +
    -
    -
    Collection of statuses that can applly to a Benckmark or Artifact
    +
    +
    +
    Key
    +
    unique_status_id_name
    +
    +
    +
    Collection of statuses that can applly to a Benckmark or + Artifact
    +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + + + - - - - - -  - -  - - - - - - - - - - - - - - - - - - - - + + + +  +  + + - - -
    + + +
    - -
    -
    Documentation for project Benchmarks
    -
    -
    Benchmarks
    - -
    -
    Project
    -
    -
    Name
    -
    Benchmarks
    -
    -
    - -
    -
    Diagram
    -
    -
    Name
    -
    Security Guidance
    +
    +
    +
    Documentation for project MITRE SAF Security Benchmarks
    +
    +
    MITRE SAF Security Benchmarks
    + +
    +
    Project
    +
    +
    Name
    +
    MITRE SAF Security Benchmarks
    +
    +
    +
    +
    Description
    -
    - -
    -
    Report
    -
    -
    Generated
    -
    12/14/2023 | 8:51:51 PM
    -
    -
    - +
    The Security Benchmarks databse is a collection of Government, Industry and Vendor + Security Guidance Benchmarks and their artiefacts.
    +
    +
    +
    +
    Diagram
    +
    +
    Name
    +
    MITRE SAF Security Guidance
    +
    +
    +
    +
    Author
    +
    +
    +
    The Security Automation Frameowrk Team
    The MITRE + Coroporation
    https://saf.mitre.org
    +
    +
    +
    +
    Report
    +
    +
    Generated
    +
    12/16/2023 | 8:58:09 PM
    +
    +
    +
    +
    +
    +
    tables
    +
    +
    +
    Name
    +
    Benchmarks
    - -
    - -
    -
    tables
    -
    -
    -
    Name
    -
    Benchmarks
    +
    +
    +
    Description
    -
    -
    -
    Description
    -
    -
    A collection of Security Benchmarks that are publied by Autors
    -
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    benchmark_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    +
    A collection of Security Benchmarks that are publied by Autors
    +
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    benchmark_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    version
    -
    SMALLINT
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The benchmark version number
    +
    [autogenerated] Autogenerated primary key of the vendor published security + guidance document
    +
    +
    +
    +
    +
    +
    version
    +
    SMALLINT
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    release
    -
    SMALLINT
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The benchmark release number
    +
    The benchmark version number
    +
    +
    +
    +
    +
    +
    release
    +
    SMALLINT
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    release_date
    -
    DATE
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The date that the benchmark was published by the Autor
    +
    The benchmark release number
    +
    +
    +
    +
    +
    +
    release_date
    +
    DATE
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    status_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    [autogenerated] id of the status type
    +
    The date that the benchmark was published by the Autor
    +
    +
    +
    +
    +
    +
    type_id
    +
    INTEGER
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    type_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    [autoincrement] id of the benchmark type
    +
    [autoincrement] id of the benchmark type
    +
    +
    +
    +
    +
    +
    product_id
    +
    INT
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    product_id
    -
    INT
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    [autoincrement] The int id of the product related to the benchmak
    +
    [autoincrement] The int id of the product related to the benchmak
    +
    +
    +
    +
    +
    +
    author_id
    +
    INTEGER
    +
    +
    Yes
    +
    +
    +
    Default value
    +
    0
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    author_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    Integer id of the organization that authored the benchmark
    +
    Integer id of the organization that authored the benchmark
    +
    +
    +
    +
    +
    +
    sponsor_id
    +
    INTEGER
    +
    +
    +
    +
    +
    Default value
    +
    0
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    sponsor_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    Integer id of the organization that supported the development of the benchmark
    +
    Integer id of the organization that supported the development of the benchmark
    - -
    - -
    -
    -
    - -
    status_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    [autogenerated] id of the status type
    +
    +
    +
    +
    +
    +
    status_id
    +
    INTEGER
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - +
    [autogenerated] id of the status type
    +
    +
    +
    +
    +
    +
    Indexes
    +
    unique_product_version_release_owner
    +
    +
    Column name
    +
    version
    +
    +
    +
    - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    benchmark_id
    +
    Column name
    +
    release
    +
    +
    +
    - -
    - -
    -
    Relations
    - - -
    -
    -
    -
    Name
    -
    benchmark_type
    -
    -
    -
    -
    Description
    +
    Column name
    +
    author_id
    +
    +
    +
    -
    - Describes the kind of benchmark to include: - Security Technical Implementation Gudie (stig) - Security Requirements Guide (srg) - Center for - Internet Security Benchmark (cis) - Vendor Guidance (vendor) +
    Unique
    +
    Yes
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    benchmark_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + -
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    short_name
    -
    VARCHAR
    -
    -
    Yes
    - +
    +
    +
    +
    Name
    +
    benchmark_type
    +
    +
    +
    +
    Description
    +
    +
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    +
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    benchmark_type_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    description
    -
    TEXT
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The full text description of the guidane type
    +
    [autoincrement] id of the benchmark type
    +
    +
    +
    +
    +
    +
    long_name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    benchmark_type_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    [autoincrement] id of the benchmark type
    +
    The full name of the Benchmark type
    +
    +
    +
    +
    +
    +
    short_name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    long_name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The full name of the Benchmark type
    +
    The short name name of the benchmark type
    +
    +
    +
    +
    +
    +
    description
    +
    TEXT
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - +
    The full text description of the guidane type
    +
    +
    +
    +
    +
    +
    Indexes
    +
    unique_bt_long_name
    +
    +
    Column name
    +
    long_name
    +
    +
    +
    - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    benchmark_type_id
    +
    Unique
    +
    Yes
    +
    +
    unique_bt_short_name
    +
    +
    Column name
    +
    short_name
    +
    +
    +
    - -
    - -
    -
    Relations
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - +
    Unique
    +
    Yes
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    benchmark_type_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    +
    +
    +
    +
    +
    Name
    +
    Organization
    -
    -
    -
    Name
    -
    Organization
    -
    -
    -
    -
    Description
    -
    -
    List of organizations or gorups that author or manage security guidance
    +
    +
    +
    Description
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    organization_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    Integer id of the author of the benchmark
    +
    List of organizations or gorups that author or manage security guidance
    +
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    organization_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    short_name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The short text name of the author, vendor or agency
    +
    Integer id of the author of the benchmark
    +
    +
    +
    +
    +
    +
    long_name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    uri
    -
    VARCHAR
    -
    -
    -
    -
    -
    -
    Description
    -
    -
    The primary uri of the author, vendor or agency
    +
    The full text name of the author, vendor or agency.
    +
    +
    +
    +
    +
    +
    short_name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    email
    -
    VARCHAR
    -
    -
    -
    -
    -
    -
    Description
    -
    -
    [optional] The email of the autor
    +
    The short text name of the author, vendor or agency
    +
    +
    +
    +
    +
    +
    uri
    +
    VARCHAR
    +
    +
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    long_name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The full text name of the author, vendor or agency.
    +
    The primary uri of the author, vendor or agency
    +
    +
    +
    +
    +
    +
    email
    +
    VARCHAR
    +
    +
    +
    +
    +
    +
    Description
    - -
    - +
    [optional] The email of the autor
    +
    +
    +
    +
    +
    +
    Indexes
    +
    unique_org_short_and_long_name
    +
    +
    Column name
    +
    long_name
    +
    +
    +
    - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    organization_id
    +
    Column name
    +
    short_name
    +
    +
    +
    - -
    - -
    -
    Relations
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    -
    -
    - - - - -
    -
    -
    - - - - -
    -
    -
    - - - - +
    Unique
    +
    Yes
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    organization_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - -
    -
    -
    -
    Name
    -
    Artifact
    -
    -
    -
    -
    Description
    + + +
    +
    +
    + -
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    Name
    +
    Artifact
    +
    +
    +
    +
    Description
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    artifact_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    [autogenerated] The id of the artifact.
    +
    Collection of file artifacts related to the Benchmark, their data and where they are + stored.
    +
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    artifact_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    Filename that the artifact is stored as on the target location
    +
    [autogenerated] The id of the artifact.
    +
    +
    +
    +
    +
    +
    type_id
    +
    INTEGER
    +
    +
    Yes
    +
    +
    +
    +
    owner_id
    +
    INTEGER
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    location
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The URI path of the artifact
    +
    Integer id of the creator or owner of the artifact
    +
    +
    +
    +
    +
    +
    name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    created_at
    -
    DATE
    -
    -
    Yes
    -
    -
    -
    - -
    secondary_location
    -
    VARCHAR
    -
    -
    -
    -
    -
    -
    Description
    -
    -
    [optional] A file path, uri or other location you can find the reference besides the default location.
    +
    Filename that the artifact is stored as on the target location
    +
    +
    +
    +
    +
    +
    location
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    raw_data
    -
    BLOB
    -
    -
    -
    -
    -
    -
    Description
    -
    -
    [optional] The raw data of the Artifact
    +
    The URI path of the artifact
    +
    +
    +
    +
    +
    +
    secondary_location
    +
    VARCHAR
    +
    +
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    type_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    - -
    organization_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    Integer id of the creator or owner of the artifact
    +
    [optional] A file path, uri or other location you can find the reference besides + the default location.
    +
    +
    +
    +
    +
    +
    created_at
    +
    DATE
    +
    +
    Yes
    +
    +
    +
    +
    raw_data
    +
    BLOB
    +
    +
    +
    +
    +
    +
    Description
    - -
    - +
    [optional] The raw data of the Artifact
    +
    +
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    artifact_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    artifact_id
    + + +
    +
    +
    + - -
    - - +
    +
    +
    +
    +
    Name
    +
    benchmark_artifacts
    -
    -
    -
    Name
    -
    benchmark_artifacts
    -
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    default
    -
    INT2
    -
    -
    -
    -
    -
    -
    Description
    -
    -
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    benchmark_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    benchmark_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    [autogenerated] Autogenerated primary key of the vendor published security guidance document
    +
    [autogenerated] Autogenerated primary key of the vendor published security + guidance document
    +
    +
    +
    +
    +
    +
    artifact_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    artifact_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    [autogenerated] The id of the artifact.
    +
    [autogenerated] The id of the artifact.
    +
    +
    +
    +
    +
    +
    is_default
    +
    INT2
    +
    +
    +
    +
    +
    Default value
    +
    0
    +
    +
    Description
    - -
    - +
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' + for the Benchmark it belongs to.
    +
    +
    +
    +
    +
    +
    Indexes
    +
    unique_benchmark_artificat_default
    +
    +
    Column name
    +
    benchmark_id
    +
    +
    +
    - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    benchmark_id
    -
    Column in Primary key
    -
    artifact_id
    +
    Column name
    +
    artifact_id
    +
    +
    +
    - -
    - -
    -
    Relations
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    -
    -
    - - - - +
    Column name
    +
    is_default
    +
    +
    +
    - -
    - -
    -
    -
    -
    Name
    -
    artifact_types
    -
    -
    -
    -
    Description
    +
    Unique
    +
    Yes
    +
    +
    Description
    -
    - A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec - profiles, ansible playbooks, chef recipies +
    Allows only one artifact to be the default artifact related to a benchmark.
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    benchmark_id
    +
    Column in Primary key
    +
    artifact_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + -
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    type_name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The simple name of the artifact
    -
    - -
    - -
    -
    -
    - -
    artifact_type_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    [autoincrement] The int id of the artifact kind
    -
    - -
    - -
    -
    -
    - -
    description
    -
    TEXT
    -
    -
    + + - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    artifact_type_id
    +
    +
    +
    + - -
    - -
    -
    Relations
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - + + - -
    - +
    +
    +
    +
    +
    +
    Name
    +
    artifact_types
    -
    -
    -
    Name
    -
    Products
    +
    +
    +
    Description
    -
    -
    -
    Description
    -
    -
    - A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level - by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. For - example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4' +
    A Collection of kinds of Artifacts that vendors produce, such as documents, security + validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    +
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    artifact_type_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    +
    +
    [autoincrement] The int id of the artifact kind
    +
    +
    +
    +
    +
    +
    type_name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    +
    +
    The simple name of the artifact
    +
    +
    +
    +
    +
    +
    description
    +
    TEXT
    +
    +
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    artifact_type_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    Name
    +
    Products
    +
    +
    +
    +
    Description
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    short_name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    - The common name of the product or service - sometimes called the 'short name' - for example: RHEL for Red Hat Enterprise Linux VIDM for - VMware Identity Manager vSphere for VMware vSphere -
    +
    A collection of products and services that are tracked via the Benchmarks. A product + is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize + benchmarks only at the version level but sometimes they can do it at the version + release level. + + For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    +
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    product_id
    +
    INT
    +
    Yes
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    version
    -
    REAL
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    The version of the project
    +
    [autoincrement] The int id of the product
    +
    +
    +
    +
    +
    +
    long_name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    author_id
    -
    INT
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    Integer id of the author of the benchmark
    +
    The long name of the product, many products have longer formal name, such as: + VMware Identity Manager 3.3.x DoD STIG Compliance and Automation or VMware Cloud Foundation 5.x. - + if there is no difference it is expected 'short_name' and 'full_name' wil be the same.
    +
    +
    +
    +
    +
    +
    short_name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    release
    -
    INT
    -
    -
    Yes
    -
    -
    -
    - -
    long_name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    - The long name of the product, many products have longer formal name, such as: VMware Identity Manager 3.3.x DoD STIG Compliance and - Automation or VMware Cloud Foundation 5.x. - if there is no difference it is expected 'short_name' and 'full_name' wil be the same. -
    +
    The common name of the product or service - sometimes called the 'short name' - + for example: + RHEL for Red Hat Enterprise Linux + VIDM for VMware Identity Manager + vSphere for VMware vSphere
    - -
    - -
    -
    -
    - -
    product_id
    -
    INT
    -
    Yes
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    [autoincrement] The int id of the product
    +
    +
    +
    +
    +
    +
    version
    +
    REAL
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    organization_id
    -
    INTEGER
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    Integer id of the organization that ownes or manages the product
    +
    The version of the project
    +
    +
    +
    +
    +
    +
    release
    +
    INT
    +
    +
    Yes
    +
    +
    +
    +
    owner_id
    +
    INTEGER
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - +
    Integer id of the organization that ownes or manages the product
    +
    +
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    product_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    product_id
    + + +
    +
    +
    + - -
    - -
    -
    Relations
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    -
    -
    - - - - -
    - -
    - + + +
    +
    +
    +
    +
    +
    Name
    +
    Statuses
    -
    -
    -
    Name
    -
    Statuses
    -
    -
    -
    -
    Description
    -
    -
    Collection of statuses that can applly to a Benckmark or Artifact
    +
    +
    +
    Description
    -
    -
    Columns
    -
    -
    Name
    -
    Data type
    -
    Key
    -
    Not Null
    -
    -
    -
    - -
    status_id
    -
    INTEGER
    -
    Yes
    -
    Yes
    -
    -
    -
    Autoincrement
    -
    Yes
    -
    -
    Description
    -
    -
    [autogenerated] id of the status type
    +
    Collection of statuses that can applly to a Benckmark or Artifact
    +
    +
    +
    Columns
    +
    +
    Name
    +
    Data type
    +
    Key
    +
    Not Null
    +
    +
    +
    +
    status_id
    +
    INTEGER
    +
    Yes
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    - -
    - -
    -
    -
    - -
    name
    -
    VARCHAR
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    Text based name for the status
    +
    [autogenerated] id of the status type
    +
    +
    +
    +
    +
    +
    name
    +
    VARCHAR
    +
    +
    Yes
    +
    +
    +
    +
    Description
    - -
    - +
    Text based name for the status
    +
    +
    +
    +
    +
    +
    Indexes
    +
    unique_status_id_name
    +
    +
    Column name
    +
    status_id
    +
    +
    +
    - -
    - -
    -
    Keys
    -
    Primary key
    -
    -
    Column in Primary key
    -
    status_id
    -
    - -
    - -
    -
    Relations
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - +
    Column name
    +
    name
    +
    +
    +
    - -
    - -
    -
    - -
    - -
    -
    relationships
    -
    -
    -
    Name
    -
    type_Artifact
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    +
    Unique
    +
    Yes
    +
    +
    Description
    - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in artifact_types
    -
    Column in Artifact
    -
    Primary key
    -
    artifact_type_id
    -
    type_id
    +
    Ensures that the tuple (status_id, name) is unique in the table, so we can only have + one status name called 'abc'
    +
    +
    +
    +
    Keys
    +
    Primary key
    +
    +
    Column in Primary key
    +
    status_id
    +
    +
    +
    +
    Relations
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    +
    +
    +
    +
    + +
    +
    relationships
    +
    +
    +
    Name
    +
    artifact_has_a_type
    -
    -
    -
    Name
    -
    organization_id_Products
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    -
    - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Organization
    -
    Column in Products
    -
    Primary key
    -
    organization_id
    -
    organization_id
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in artifact_types
    +
    Column in Artifact
    +
    Primary key
    +
    artifact_type_id
    +
    type_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    product_has_a_owner
    -
    -
    -
    Name
    -
    status_id_Benchmarks
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    -
    - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Statuses
    -
    Column in Benchmarks
    -
    Primary key
    -
    status_id
    -
    status_id
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Optional
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Organization
    +
    Column in Products
    +
    Primary key
    +
    organization_id
    +
    owner_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    benchmark_has_a_type
    -
    -
    -
    Name
    -
    benchmark_type_id_Benchmarks
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    -
    - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in benchmark_type
    -
    Column in Benchmarks
    -
    Primary key
    -
    benchmark_type_id
    -
    type_id
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in benchmark_type
    +
    Column in Benchmarks
    +
    Primary key
    +
    benchmark_type_id
    +
    type_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    benchmark_has_a_product
    -
    -
    -
    Name
    -
    product_id_Benchmarks
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    -
    - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Products
    -
    Column in Benchmarks
    -
    Primary key
    -
    product_id
    -
    product_id
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    Cardinality type:
    +
    One to
    +
    one
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Products
    +
    Column in Benchmarks
    +
    Primary key
    +
    product_id
    +
    product_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    benchmark_has_an_author
    -
    -
    -
    Name
    -
    organization_id_Benchmarks
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    -
    - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Organization
    -
    Column in Benchmarks
    -
    Primary key
    -
    organization_id
    -
    author_id
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Organization
    +
    Column in Benchmarks
    +
    Primary key
    +
    organization_id
    +
    author_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    benmark_has_a_sponsor
    -
    -
    -
    Name
    -
    organization_id_Benchmarks
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    -
    - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Organization
    -
    Column in Benchmarks
    -
    Primary key
    -
    organization_id
    -
    sponsor_id
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - + + +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Optional
    +
    Optional
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Organization
    +
    Column in Benchmarks
    +
    Primary key
    +
    organization_id
    +
    sponsor_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    benchmark_has_an_artifact
    -
    -
    -
    Name
    -
    benchmark_id_benchmark_artifacts
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Benchmarks
    -
    Column in benchmark_artifacts
    -
    Primary key
    -
    benchmark_id
    -
    benchmark_id
    + + - -
    - +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Benchmarks
    +
    Column in benchmark_artifacts
    +
    Primary key
    +
    benchmark_id
    +
    benchmark_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Cascade
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    artifact_belongs_to_benchmark
    -
    -
    -
    Name
    -
    artifact_id_benchmark_artifacts
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Artifact
    -
    Column in benchmark_artifacts
    -
    Primary key
    -
    artifact_id
    -
    artifact_id
    + + - -
    - +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Artifact
    +
    Column in benchmark_artifacts
    +
    Primary key
    +
    artifact_id
    +
    artifact_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Cascade
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    artifact_has_a_owner
    -
    -
    -
    Name
    -
    organization_id_Artifact
    -
    -
    -
    -
    Name
    -
    Source
    -
    Target
    -
    -
    -
    - - - - -
    Cardinality type:
    -
    One to
    -
    many
    -
    Ordinality:
    -
    Mandatory
    -
    Mandatory
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + - -
    - -
    -
    Key and columns
    -
    -
    Key name
    -
    Column in Organization
    -
    Column in Artifact
    -
    Primary key
    -
    organization_id
    -
    organization_id
    -
    - -
    - + + +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Organization
    +
    Column in Artifact
    +
    Primary key
    +
    organization_id
    +
    owner_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    +
    +
    +
    +
    Name
    +
    benchmark_has_a_status
    +
    +
    +
    Name
    +
    Source
    +
    Target
    +
    +
    +
    + + + +
    Cardinality type:
    +
    One to
    +
    many
    +
    Ordinality:
    +
    Mandatory
    +
    Mandatory
    +
    +
    +
    +
    Key and columns
    +
    +
    Key name
    +
    Column in Statuses
    +
    Column in Benchmarks
    +
    Primary key
    +
    status_id
    +
    status_id
    +
    +
    +
    +
    Properties
    +
    +
    Rerefential integrity - parent delete
    +
    Restrict
    +
    Referential integrity - parent update
    +
    Cascade
    +
    +
    - -
    - -
    - -
    - -
    +
    +
    +
    +
    +
    -
    -
    - - - +
    +
    + + +
    - - - +
    + + + + \ No newline at end of file diff --git a/database/web/style.css b/database/web/style.css index 063088b68..72af80379 100644 --- a/database/web/style.css +++ b/database/web/style.css @@ -460,6 +460,7 @@ path { .im-n-text a { color: #2196f3; + cursor: pointer !important; } pre.im-n-text { diff --git a/database_creation.py b/database_creation.py index eea806eba..b9d893db3 100644 --- a/database_creation.py +++ b/database_creation.py @@ -7,9 +7,10 @@ async def main(): url = os.getenv("URL", "file:security_guidance.db") async with libsql_client.create_client(url) as client: + #import ipdb; ipdb.set_trace() await client.batch( [ - """ + """ CREATE TABLE "Organization"( organization_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, short_name VARCHAR NOT NULL, diff --git a/test.db b/test.db deleted file mode 100644 index e69de29bb..000000000 From 7b2915d6ac9d563693cdbc94d021c14f556839fa Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Sun, 17 Dec 2023 15:40:10 -0500 Subject: [PATCH 19/29] added SQLAlchemy to the workflow, migrated DB upkeep to Atlas, and table introspection working Signed-off-by: Aaron Lippold --- database/database-report.pdf | Bin 39025 -> 0 bytes database_creation.py | 102 ----------------- requirements.txt | 3 +- .../mitre-saf-security-benchmarks.dbml | 0 .../mitre-saf-security-benchmarks.dmm | 57 ++++----- .../mitre-saf-security-benchmarks.hcl | 0 .../mitre-saf-security-benchmarks.pdf | Bin .../mitre-saf-security-benchmarks.sql | 108 ++++++++++++++++++ .../schema/mitre-saf-security-benchmarks.sql | 6 +- {database => scripts/database}/test.db | Bin 49152 -> 86016 bytes .../database}/web/allOf-dark.svg | 0 .../database}/web/allOf-light.svg | 0 .../database}/web/anyOf-dark.svg | 0 .../database}/web/anyOf-light.svg | 0 .../database}/web/assets/ak.svg | 0 .../database}/web/assets/fk.svg | 0 .../database}/web/assets/ik.svg | 0 .../database}/web/assets/im-line-icons.eot | Bin .../database}/web/assets/im-line-icons.svg | 0 .../database}/web/assets/im-line-icons.ttf | Bin .../database}/web/assets/im-line-icons.woff | Bin .../database}/web/assets/index.svg | 0 .../database}/web/assets/inter.svg | 0 .../database}/web/assets/linked.svg | 0 .../open-sans-v17-latin-ext_latin-600.eot | Bin .../open-sans-v17-latin-ext_latin-600.svg | 0 .../open-sans-v17-latin-ext_latin-600.ttf | Bin .../open-sans-v17-latin-ext_latin-600.woff | Bin .../open-sans-v17-latin-ext_latin-600.woff2 | Bin .../open-sans-v17-latin-ext_latin-700.eot | Bin .../open-sans-v17-latin-ext_latin-700.svg | 0 .../open-sans-v17-latin-ext_latin-700.ttf | Bin .../open-sans-v17-latin-ext_latin-700.woff | Bin .../open-sans-v17-latin-ext_latin-700.woff2 | Bin .../open-sans-v17-latin-ext_latin-regular.eot | Bin .../open-sans-v17-latin-ext_latin-regular.svg | 0 .../open-sans-v17-latin-ext_latin-regular.ttf | Bin ...open-sans-v17-latin-ext_latin-regular.woff | Bin ...pen-sans-v17-latin-ext_latin-regular.woff2 | Bin .../database}/web/assets/pfk.svg | 0 .../database}/web/assets/pk.svg | 0 .../database}/web/assets/union.svg | 0 .../database}/web/assets/watermark-meteor.svg | 0 .../database}/web/assets/watermark-moon.svg | 0 .../web/assets/watermark-perseid.svg | 0 .../database}/web/backgroundImageBricks.svg | 0 .../database}/web/backgroundImageGrid.svg | 0 .../database}/web/backgroundImageLines.svg | 0 .../database}/web/backgroundImageSquares.svg | 0 .../web/backgroundImageTriangles.svg | 0 .../database}/web/compare.css | 0 .../web/datensen-moon-modeler-report.css | 0 .../database}/web/else-dark.svg | 0 .../database}/web/else-light.svg | 0 .../database}/web/guidancedb.dbml | 0 .../database}/web/if-dark.svg | 0 .../database}/web/if-light.svg | 0 {database => scripts/database}/web/im.css | 0 {database => scripts/database}/web/index.html | 95 +++++++-------- {database => scripts/database}/web/lists.css | 0 {database => scripts/database}/web/modals.css | 0 .../database}/web/not-dark.svg | 0 .../database}/web/not-light.svg | 0 .../database}/web/oneOf-dark.svg | 0 .../database}/web/oneOf-light.svg | 0 .../database}/web/scrollbars.css | 0 .../database}/web/searchbar.css | 0 {database => scripts/database}/web/style.css | 0 .../database}/web/then-dark.svg | 0 .../database}/web/then-light.svg | 0 scripts/database_creation.py | 106 +++++++++++++++++ scripts/sqla.py | 44 +++++++ scripts/test.py | 64 +++++++++++ update.py => scripts/update.py | 0 test.py | 26 ----- .../U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip | Bin 76 files changed, 394 insertions(+), 217 deletions(-) delete mode 100644 database/database-report.pdf delete mode 100644 database_creation.py rename database/security_guidance.dbml => scripts/database/mitre-saf-security-benchmarks.dbml (100%) rename {database => scripts/database}/mitre-saf-security-benchmarks.dmm (98%) rename database/security_guidance.hcl => scripts/database/mitre-saf-security-benchmarks.hcl (100%) rename {database => scripts/database}/mitre-saf-security-benchmarks.pdf (100%) create mode 100644 scripts/database/mitre-saf-security-benchmarks.sql rename {database => scripts/database}/schema/mitre-saf-security-benchmarks.sql (95%) rename {database => scripts/database}/test.db (53%) rename {database => scripts/database}/web/allOf-dark.svg (100%) rename {database => scripts/database}/web/allOf-light.svg (100%) rename {database => scripts/database}/web/anyOf-dark.svg (100%) rename {database => scripts/database}/web/anyOf-light.svg (100%) rename {database => scripts/database}/web/assets/ak.svg (100%) rename {database => scripts/database}/web/assets/fk.svg (100%) rename {database => scripts/database}/web/assets/ik.svg (100%) rename {database => scripts/database}/web/assets/im-line-icons.eot (100%) rename {database => scripts/database}/web/assets/im-line-icons.svg (100%) rename {database => scripts/database}/web/assets/im-line-icons.ttf (100%) rename {database => scripts/database}/web/assets/im-line-icons.woff (100%) rename {database => scripts/database}/web/assets/index.svg (100%) rename {database => scripts/database}/web/assets/inter.svg (100%) rename {database => scripts/database}/web/assets/linked.svg (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-600.eot (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-600.svg (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-600.ttf (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-600.woff (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-600.woff2 (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-700.eot (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-700.svg (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-700.ttf (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-700.woff (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-700.woff2 (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-regular.eot (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-regular.svg (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-regular.ttf (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-regular.woff (100%) rename {database => scripts/database}/web/assets/open-sans-v17-latin-ext_latin-regular.woff2 (100%) rename {database => scripts/database}/web/assets/pfk.svg (100%) rename {database => scripts/database}/web/assets/pk.svg (100%) rename {database => scripts/database}/web/assets/union.svg (100%) rename {database => scripts/database}/web/assets/watermark-meteor.svg (100%) rename {database => scripts/database}/web/assets/watermark-moon.svg (100%) rename {database => scripts/database}/web/assets/watermark-perseid.svg (100%) rename {database => scripts/database}/web/backgroundImageBricks.svg (100%) rename {database => scripts/database}/web/backgroundImageGrid.svg (100%) rename {database => scripts/database}/web/backgroundImageLines.svg (100%) rename {database => scripts/database}/web/backgroundImageSquares.svg (100%) rename {database => scripts/database}/web/backgroundImageTriangles.svg (100%) rename {database => scripts/database}/web/compare.css (100%) rename {database => scripts/database}/web/datensen-moon-modeler-report.css (100%) rename {database => scripts/database}/web/else-dark.svg (100%) rename {database => scripts/database}/web/else-light.svg (100%) rename {database => scripts/database}/web/guidancedb.dbml (100%) rename {database => scripts/database}/web/if-dark.svg (100%) rename {database => scripts/database}/web/if-light.svg (100%) rename {database => scripts/database}/web/im.css (100%) rename {database => scripts/database}/web/index.html (86%) rename {database => scripts/database}/web/lists.css (100%) rename {database => scripts/database}/web/modals.css (100%) rename {database => scripts/database}/web/not-dark.svg (100%) rename {database => scripts/database}/web/not-light.svg (100%) rename {database => scripts/database}/web/oneOf-dark.svg (100%) rename {database => scripts/database}/web/oneOf-light.svg (100%) rename {database => scripts/database}/web/scrollbars.css (100%) rename {database => scripts/database}/web/searchbar.css (100%) rename {database => scripts/database}/web/style.css (100%) rename {database => scripts/database}/web/then-dark.svg (100%) rename {database => scripts/database}/web/then-light.svg (100%) create mode 100644 scripts/database_creation.py create mode 100644 scripts/sqla.py create mode 100644 scripts/test.py rename update.py => scripts/update.py (100%) delete mode 100644 test.py rename U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip => test/U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip (100%) diff --git a/database/database-report.pdf b/database/database-report.pdf deleted file mode 100644 index b6febb2a15d8c86c06ebfdecdcde9e1666536aa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39025 zcmbT71#INpmaW6oVdhlQ=`b@hGjy1t!pzLf%*;$3X2uRPQ-_&3dHvtH(#$-KMo-Tw z`?!vm*V%jf$g-+F|4B4Kq>U5M3h=iBAg>Hi2QV_|F|z8hYf}OQ?d+_8YCuD2 zb0>OMW_CJew!bGzOZ=3Tp#fN#TLJ;%KqE`rzd{*j8v|KeW1tn#fu5c2p8cdQtPB8AE1;2+gRKoc6AK;VUy-tbiGhRpzpW|Z=oK7njh&5ve`8g) zG&i9Cn-akKufyLX|4PE#)<(p@2?(GN;bLN7VrFDwWck~2GBZ;%Fp&TK{MG#p;(wR$ z@xcLYjQ=SO^M97e$N<0yM=vA`pqI0Cur{#zPZ7(16VWlT{?9Vj|CIf7w*vy`)#VK> z{^kltuk38-^sgSVzs_*>`5;#cDPyZjAF$kq*@#qhU-jfwN0^{-sq!PeRC zAL)Mt^sldf!vWC$bTF`Sv@>u3+8DXR(MtlH9Grpwn24EMIsGj?y_nVCF+_kye=jE- zy$sOC)X5CM$`v7pN?N={GUf7U(fWp zUq}1f{NvQsR9`2#lAl-aue?*s(<7CsJbYJQU)x^?ckItZUynE2pT$0(>t7#n%eQ5< zY;Rji|;>>)z-eAJv8gK zrLtFbixE;DOn2T=-(9?)>WDj)$q|q5DGLv$k@o*=E~ISf)XA}`d!6-ecbf$ zt@%tY<^-JxL3p|H6J32QYW=|fcK+6McO@?FQ?2Qg!A_%`(=hB2&A`?gH;2b*;$to2 z+a1lIhoGc9RUziP*b*FbulegZ4J-N8ZBd0t{_(M5S-qz`|7XU-;)sXV^z;aN#7~`R zqf0F)ooOJQ!PR9COjEnv#}iX3axi?C*vf-^&G~1)(zaxmqeKq99Mq&+gRX*S^p*-A zy-+o&2OCjPg83g(Um~n~EX5>Ut(656FK-s&6n*ww2(+R`Of=L4puW2asz}{}=;Dou z!--sNG;p_#d?k{Zf>5Ek$6`BRrG`?lL0wBBamC;4alvGE&i1!8sWge3D zl6jllG&OT{)FAk*b@b%zGa*I2{dkilbW|DQ^&zNL>@IhpBIS)1N7VOJS;YP=$UX=k4SDa zhZ*~ND<6Ez3&>cc5m`KXJDhc-u-R;#JFWVD8b*?!2jl@kCAATA=u*Fe4AJn_o&?xn zA+BWCNirY`Um=J|Cv{zr+kYleVNuAfs8gD8ypkD=?(i5(2?`REo#!CZ_>;=SWf-({ zA$;!XGzy}K(IZ`sViWiul@NZrJVc9+u58Sco=h6FljcWsDuXkGw;xiWg|K@F-Imwp zfN;+q9J<9km;#6P9Og#6Pq?>E`6GscXJ;;jHu3}R+;vOhJ zY>c|;8I@KL#Z0ywRsaRTu9~k|Kau8LF&wMXbABiR!HIdA3}0Xr_aCox4;#68ryNggRc{7i!otFrH{h5C!+-# zUit?8q#Is0X@mmrvagHUX?79giESi8mAQ6l2LPDTV~nCSa3~mNA6Q0M@6!Bz8^XTh z6qPwWD(S;G4Bu_o{iQ7ON#iLjGtiM}q)Aw#%j-hs2uG3Mc+Ocz27`c7>%pvyNx`|9 z?>x?wwT6PNpn9Y>hDB#py^IR-($d&|^icsM7+0aZA&sv5b(u7SkjCOh+Sr9>hD z_;#Xt4)9rfsYs+yxK$TkuF)njY|4$js9y5t_SB13NDb9GzhN}(s7%xXWk4+vSQ`%r zkc}y(g5Oq8slM51M9lqs1++>Wm)ZwH!9cC=HL;RPJ*E!$hsTDaq>`z)ee{wb%*#f2 zRivLyr73-f&c-hfEzH@JZS==h#y`f7B@YG+2!l!!@9-^#<1I!dp%Q2nlVr-GTS}vm zymJhp1`lE!;$Lw!FRVg=y;)%3VnkQxVNo44q>&kAx!?O8LXTxYIRt0?>G|Q-bo9XfC-EDCaa(cR)eMyX zrSOBgb;9#b)!H)H>Hu&Ge9Q35J5$&Zw!=P1+^DKSCzi_|Wz_c4_q2Y}aVH!$^^X_7?38!@$b6D8kjbMD94#4=@OCQF05VQelVod2QeWKj0o*} z`FU#?@Q^Mf`2=DI5JH}vghKCHRVo|O0ia&=V5J62=MexY%u_AQt3G-CY3S0D58nVq z*U5yZ7CZ@(yC$B29FS>cwr#y$&qifZU{RTPJwli`x4^Yl^%-Ro#+Zw1$Eg*Fez06} zv;?i9QHSrZeoVjRWgCzm3_ivii%n@(3rkXz*Q9DdgfO_89_5Xup;q<=FYLh1UKe3a zqsaI`hR2Jt+Ag$t2^!8{i#8-hG@@CvJgQAe#ZwODlc?FMt4!n(^`VD)xIPX9`@nc@ zQ11??ADF*(qc68Hh!~^n_o5cd%c!6LmW)ql$m3_`H?SGbZmY#Ti^mA`x5wuT_cOUF zayI1`1Z{S_j+Op4IrjUkjIiaJ3-eeAIA%sEOM3u?87m72nPSYz?Hr_~)MPT6K*$DK z&4%*b%@TXssM=xHf(skX9cTtLKg?((c*Dm#KOw9jnxytM*56QNIgkpJCch1&gWzs; z$Yfksp}t2bdB{MD2d74gCW5J$lmi09vO#xMnCF)r%hXpZQ;-6FhcNKeig{?JT8u2=(c6 zB}E%Lz=Fv@b)}E{kGL65=B>uDGAE1rdJtDWb6grOUc_O?UFyVmKLdq-GqM_-xT{%9 zR~D&uu1A>n92FG%L)l2P7$v&1Xo%O}yZD0(bXw?qJ9coGIY{ZLfQH^CGi|5Av9@^H zZwbB^TOidE$Q za>}PpLz=GY%?t?5K{A>zsq5l3m?f09GnSFHlN$K#%vSRAmdS!cwOiP}%;^qQ9nzva zJ5Emij=}Rvz12Ji8G9ZRS^nMn9q|-O|IZQNpblD3^I}Y>@0KuhGVK~4NpNLD$}8eq ziXNdM#!t9ePb~Sci{OfGL6b$Dw9heti3r_t&hkoX>%B{uL*qsNF<4FPyn48$xC*rs z)&XTzKVCy81^+(z6xFy9dC$t!%#25FM(Dfcq08v{OWP<(4CU@s?V!}lS*wZ_fMTpY zEexMB^(mFkV@eC@MBXy<>I^y0!SDqOAKt48@OAF*PiNIthno2ratYa5Vif&4lAnvRJ&$6yy!0(=LCLKiKvon zaGWz+%|Vgp@HS)8f{k6e_S}u77(G(&ft40i61aKTNefFv8Pu5J z=cEhS?pad1emdViyS7!h{JwoOK?WhMcNtYSL3FE07BKn)A5kye_r-ma;9ehs%=U(@u;JJfp#Q7S3-S1G~U(w<|Nr>PZq5f0J*= ziz6-~YfWM$#hs(FI>e7^+M*Y!(j8j7aRD?2_9h>8W~!+mrHPSr01%SyxM~Dwhxf&( zLaS6|l=V&sC@ixfv}s9VgCk@EU^Se=63>(88zMmcQ;nB@JfRF;l?EbBpa zcByzqM>_V7BrJP$?fP3_WMl=d4i$^X`qBnbJ7OV^Q7cAzL;>!pLA@III>Mq3t?!W;*QUU$T|laraDKCre6D{cZ1g81;w*EGu*nnT6Rf19dZ=;|;F3?Q~EWQu- zkR#Clq}R%6X5-ip^0rAldnoCPA}k}HD;L$9RihvSvekqRz?Wu4$H-?u3t7&xI2hX4 zSRjwz!u}zmZ8wfnTLQnm_}*?YD|l)Tu6LeFbNA7PbGlcQ z`6NCeM->=l6;R!Evd-<&knhjc*WL8)KXel6+WOLkfWDlyi;LU&wkebykQiNoOk!YK*x((v5uHsa3?gBZNFC_j->ATRY|3FQl0QVs(Kd z@#XAcXbC7c?yD}V1#dGLXe)Y+ckVHq2%w4(b>86(Ul;zC|^J>C3oBxaZhe1fn` z!nfd<%IVk}euQr;YtOH(@VwT+`m6mvJm}iPr7<9@hP_o*!M*Zx)0;{k+-jJ+G+uOQ_A!AM7_)_?|!oa_jlpDQ5R_ z5KOh8Vbit)k)m*G#i&h8(+A^K{jk>aJaj|R?`arX2 zmq4*iECjGjkSt{qm)ge8k8yMJFU7w9~| zFs4+ z1(MLEf5hCDAPJ=ggAG^sTS5#AhWf_UEU13Wr$>NgX8glTM5R#E+F2gL%SgDZF;Hp zCp8kouFsC7ZD);FKQ*2`WB8s|=XVIp1ldNMMQ~hVht*lTT-`V}=tw8Se2`~8WmBu) z(f+Hrd|xb3X!$ZXveH-5@6d4tyeVhD5R#vRT6xJM@F?O`Qm_yM1LH$e9Ikm}-!bGO z$PQi(@q$Ip79Vm(G1veT1GrFT2-0M;m{7aAcRtDA3sddL1n#MscJ&9CGe9R<){?q( z?ItClb@~O{4W&`V_lf%!K!nB<_>P8O>C<24P;R7-;#|*>|ET=AC@fzxK81zt8XTtK z4gQ2{flf-AG1Q!qeFHjIJ!`WYBwVB=7>3s^bCBC$L>{fwxVzogr`b*J)n_^Ejxm9Z z<k9c1l~>|@LK=|Q8Jyud7Zzyh*~70z z;=u3z-6LY^=)3JkEJ^eMVaL#HTp~N%aVY3_XA#GEg30<$MdYVnRKZZ(|#4Ip_AN>uMrklneLFN#y<;CnB5%AfGIlcJgLSo$BYDMZNiBpjXOk{N|*u z2RyqybE7)K;&N1!d6uJ+KXUbp64>#}NyChc`O8Uzeiu|p{9upxhLWsB%}GC$9_&YDQDARCUKG=vqHFr2OUS(q;pX(X-h1Fl3@TKD^iHCLJxz#vTH#<2@o}rPFZ@)nzV`ZsX zoH8+{cN1d;p+R}MyQ+I6q_grma`{Yo8E-;i> zQu4d^`7R}2F?!B-ns~p^x<|Y25+)4xQjc{qPI!TXwu}X3SxAiTYl5 zk2gd(08faq{!QMDc|I~&hwpKBPFRlL9?+Yed%E__LF3Ms5XrKk&($Ma3A) zk(Sf4tptpecB|Mjvq|9Z?Cd?Gi#+_zuUfGIg$JFyahKsZdI)YFh^#qnzUrkpsO3MrKUHpEvUFc-!oomp>0NV{rpFnBlF@GaS6QD;-M{ z*gqMPmpQ(Idaf3C?|)&5nzbV<|XUEKlWaZfzTtDrP5j1yebpgmTBo`ccV@9j4b9G#t(#f zJZR-&PCdkG3$FV}w?+foXVhPQM;@nDNZOyA_d6^Z%2t2pCSLW{ z!%z+jt_OL>x(Q>T=h14g&&~UXXsnxuxd9rVVR~D}>~=sbt!w>(HU`+&KDahcg1RRe zRH}k`%-2I)BlId=_y_sB&iK~@e_P3MPeBM380Vd7Uot4fm#+<#5U@s{EtkWs%6f>u zECVaZ??ni@8SW+R;yc2OzaOiY9dl#t#U?cF&hA!D8z_2m?36%U?%>NV^uhD_+n#LYw+e0@-^kp{kRu2ijR=LLsLcpD}%Zt?<7Fdu>b9 z9ly!DtaS;M`EW_Mggo(65YjQU>r!y}vcikbn_uNBPgB7_i@H|*j{Z>8;fYE28_wnU z9$<^)PdHxh+Z>{?AO0xF?OhifhVwjkrcNHZj#W6~_bT zv-mo*F(=|o*K^Ys$%3FQS)rMFb~1F+RoEj&s6~|`2N#1UwcBn)n4s=BRac*JK8Y>! zZyVejSjKsd(^tBmzOWe~J{|8lPt(C$mV*b9>BhdoIwBdFAY0ZDV#_=4Vte9*u&SBq z%T5pe8nH+QR;}iaLb`jW{eJVTCVyxF^ z{Bbh7+N^3V&61iHQtUgss+b62i?*YOJB$37aPu7{kEC_^>tM${7hA`2YpnE{55M#66ZKO1UCV2{VFb39CqaJejDg$r`;N;Lm&&0Nw2ejw3g3A?`Q2}*fmOUC zb&xyq7V(fW-Q?5ZhAbNyOGAtq5@eBimm0$8vG4>fO?4H*-ggKkW^*K*TRr7{=C2P1 z|1@il0rf_u;&j{udvFf!pG}VQ5&B^F3p!>r#Wox@D_t)69dywn_QGN%+`BW$C(`H) zuV(JzX=F$+YvV46voD22JaI`|0T5k)>88xh!3`TT8_Rx~&UG|QwAm<@F#_1PbKF*< z>^QFLCEoEPpCX$z)P+ql<=acawwmE)dC*MoP&d|TWU54wneq6!j#?;JC&;V?@w|Y- z^tAiGwskF>TVq@T7yx*hwSxg8XXN1=x#IyScrKu}=esCgobI|oTm_25Z zZ|gHM0W%>_wyF|VQQS|f4_Wesq8lSJ(hK!$A7A*uG^@(7?GM~r`T%>O#;kGhkxew( z@nJpaO5~Wl=>7AMR&Unvp71U-bURnFb|+gZS3tmsL)XQCu#&&DqT)z8>6=na5c<{` zXwf{JYahoF&x^KTMn4Dm7HF8Lco?Q;%kn!1e9}mYwizYWE9$dl9~>eGrws4ZlUZg7Yf5xEt-J?=9rV|e7$;$TNUnU z522ZtQKi5rJm634O*WaL1=)FScKyWVHizm>&OjFSR+L*=ics^yHX4hqyWPj_2q}e$i^xY(+Z(#d^;?d?cc(=Mgi?~h>(eU+`AX)Z+ z`X9p|C0VPg5JK>amE(jp>tjE&8j^~NS?LeGZd^K@uR@`^E2+A=3U^!c zdbQNBu;ZGoop(sC=H_xSuXiGwUkh3+!)JaC&fS|XqX5U`)bKGjHIp2-$9*JEv!$6d zbwuHJ1}myrfnidGZwbSUUI)(TBemu zW8UjreJd>&aN3H|K+T2uycka!aj=QM+rmhF&(OJ%X?|Wpg;g6C=pG$Q_>lEQWW703 zmvG_9te2N_{qfXkCti(5nagM6B}kCRzZ@?8?OroJ5^yf~R5U>eJrk9jn96=Z8{_T< z$SXYv)qsZ2(Va2)z`03?zdJxKW*(5O@hcY35JzKhqrDj$^5lc(v@vtyTtE~Nu?K9RY z@i_S@2JiTqcs}&45dQJJ&Gt|v!h9yX7DwKj7hGx^1(S7=0gGYE8M96pNwNHvc~dgkD4j}L!9UDIYBuL99G*i*sMS+tENo2e)S-7T*l(1xG%b9(WeW$_N=O8OlNC(D*LWtLuXzfhE-pCtYj?sku9>3*r@#ws1!?~hYCF7GM{vQMBnAJ=QDO@BAxWNFaa{8(%+uBWn&d!A|*T{Wdb@G$EKi{&svkRoNqI zv#3Re4U(T*|JHD?)IIz?q?yXJp*FA>!ka>5w`Jy8#d~GQr-ZZ<;oAR3Zn#89o5f{= z24+q|%pw}qnpxCvH2iBQbZbFOGaDoo29cKh_b9PleO}Fia2LYCR!;OA{r%3h`v*de zOjk->CX9yWWNn`MD(~CUN%53h+Eys7?|Q#kGU|qhnb_S=IYmM>aG(^z>wd-!=YQ!SGrV73*iix+yi=4WoG=lL%c2vJ7TgK(hXstCCH1Xn}MQF2y6>Xb| z_czs#%A&_~^dZU@-MI~(`V;IcJ(4=} zT$PpqF~2NN3xHNLcIJxuRoFyrNr%ke4;k+~=676qj~10yKG##0S-Xl8U5i$(Y^CfY zxA8S{*`&2r>@4Ptf8{5O(#H8V`I&G;gTb1ju5{)KDT)jb(wZM#BdWW38{J?H2kg&C;%_^seoS?(o#ajGm!?Lih%6{Z#eS?JU%ae!w zbJ_oNz;XHhu=s1v*~4b5#pT8Ne)Dj`HW2S7(=rRGN2ieLD5s+V)nJjg>qSNO<)F*< z{P`-75J|Tw%;Dv#V$*cQbGb;GqdU`eI>WO##R%h6Di)1uz3I&Ds)6>X?Y+VB;i4xJ zL%pW7gxm7X}N?q-iSuGK8@He?>B)4y?K zDP+rmv;5`gs?lXg`bX<58s+vT6{w7D)-txH7KKaf=dj(3JPrqX_MDDQ^jL+;re~}Wy>Br7 zq6ECG593vSn&tT%-!m|!X9Ur%RBKxb^&@h3WqDJ$JGV>OU-Dc<&*?eu9?yI~o_!$& zuo(YA>i*4!{Tr@h`%fTFSP($Rz{tn}NB0@qybFTbxY z_{l<7i!e4ZS08Wgj}OvfJpA{Y(+%|K7DHsAm0uCsN=Lr$%P0JwcArGgVn|9F0R|Tj z=IwN5CJLsXUp*f$+T&l(XD6xrXLovES3yk@m4lqPfs^kC_qEqOnclzp5oSp4Cq;P$ zfDq6&g+SHmw3}AMRcygNePAEtB>BND482L%RuIe=>O%-D@t7M#QE`N9`-Ev zrk8c%DscMuSA@gZZMnAoiE?%c5(*fi>{powLS6h#>tI|{{mlgdtap;3!uneEJ59tq0(P}6RP)1b*IsL#^_*A9v zpMkud&)>EkKv7_YIi@=SwF6$}$??Bsi>i}mzmf5Mi0j_~LD zeqGJSZez(@?1_n(8?S#zYI#DAW74qmB1`bgN|b?7~@Um^|89VdO^P`R}HL1GQbgn(V6(e|^%VkH;y zo#xz2_!CJQP48~Ba|4-Nv5odE)LRpN6tW1ceymb{>ic^9_EEf)_y%5nQ<{l6ZQvhg z1Z(R_;##W9Ari^l7P?HfD!fcKtMa0HRETCm3TyEa1PmS=*2V?ngASIv;Gp;cu@Q;GcF(b*-5yuwmAP)!-U-d8eOI4o65W@8>X zf&=ANf*Qfkc$qN?kR#d)A1;MhoMyJsY*4hAf*koblS&po%M1vCVJK3#)^(`q``{+< zjnrm4ZYDE|9GgQCjGJQo-=SvmB8>;b{?7Qu1lcinY1JsD2FB#26~?&{TkGHo+TsvP zQzhsgj)Ay_6^x`tOwoz0OvtdhsyU&=@i-F4pv?j&DX8Yjii4D>Cl#-6CodO(^E`pf z$6nq-(g*V<0&unFwH(=)vkQyuVAlk1EUB>-O{w9r!Ad1qH;h!(da=*v>S~4N;=ifO zobIHWMmzInUgPr;xf#`mtX+qdY)?#8x+S`ePHCMzo5a3YpX`C$gS1yMi4`IOi5l*3 zarKd;ZM7WP2~TFe1d9VHY4XuaPn1KawPCG(d=kK$BKEjJimJye_T_a*-X4i$-;NW3~`l;!;1U`uM35fy|R6Gfm&dko_3P5pcWrr{hkJ)?x1?UD0#O| zXN*3|10<4sL)fc?4{omEzB^6g|2QMnWp~UBLk?Dw>eC;A<82|%D?wZwwt`LH*=e+3#m z?eCm}lT(cB`D?YA2y6X01(na?5n1jq8BkhMbh4WyRM}t}J+L%8fPANH#(lv@Pi39K z&k0h}nCImQRiiSxH;sl40bSw#IGw421XvdgWg3DwDuM`t$zWFt6&Z=JLY(|~?SR+y zOq20ItGI(QfO-{WJq2wgwQ?&{vw-v@@UFgrL>_7yl=rJ78MVZ^aZ9ssS!vA2gbncy z^XFq*U=LO}uAa@<8YDIg=qo$`o4EVgsgEM!V~z?!l#Ri$qJ-36P>eQTA{sh!Dwkhs za)Q@SlRcb53>f9U+BB=0`fibIWeRD4+UjR+f@Gj6vZAu)E>`BhTL$$VBJ!Lg1345R zMD5$R(w%jh31_)HH||)CV!#91WF2$^VJEvG4XGVRo)-gUzyM0cwl9XA;*`OX12|B5 zEs-Pbud~^f;p}h43Tj?p4|4FO{)7=Ll0MB)3$hsGN~JHALVnnk;%J(ZGPFKR#5d1@oByDXSp*sgo3y_CE-<)IUZ!S7tI%Cn^M;qi(G#|KuF$PBOf!mNrJ9^3`4 zidi1NfbPNXhd)5fS)vYOHgf{BJO++k(b>>D%CWjY^+n#TM%jEOy_5`I6RLm5V%iUW z2{gCuVc*I-7%*9i)Sl}N5Hc~Zd#8T?K=`!q!?6PUY-&qC;p40fg=s{ym>#SJRw^*O zJn%PuL;+^hGH551zj?^wU5e})8mMWs+mX(~&|QDgo*^;e#tGJF^nmRGJZ4h!Qb&%~iKXNDhT!lI=gc^L zBe*9-Y2?i9C?I^KE>Ri3N`2|eBffnpz&%fF%Mp5#g%!bvDLTy-1iNRkDjm&!%EedN zfV`Ydh(xbUbvcuDN$cvUef#=!n-`hAFxTHPRpID;uz9#lmg|HGy_^bb^6Wf*oqQqy zdx3WKuSBE-5yzY1;49?!aPh6#?qn9^a#z%oouTWjzfd1V9P>1+xloYa?6@LnG1H!* zjY%i)q!+0pRoO3v;Q9e6Nu{~gf=)%{zvdEKws5uVOg$m>AeS~|rmca>>KoKk6Bf);g#La9?&{u|T>?ENG8YtcmP>OehhB+hE+3;GP*)dZm) zyPS3zIAsM>zJYEQZl#wjVGdIR)Kq7%Jrg$s6(`l+0;;#C|DF}$#jn^`c@ z%0EA5ROb;UlvaGqY^ZXhO;_MAcX2+YjF(^!n}>Ku>3Uo2Kc&?!_X%C3W6;>%XR{zj?TURA7$I=i573SZzn%P|nmH@b|*?WpCo zJjyNOeX_8gLqtg^`)I}4>%NU5^EDC;`(?c7%5}dv_3?+x3AHP|#CCk*YGL>7j!8H$ zr@5-Ca4@-fVD|c{1s}?3%>fcmydKZy?_VZ}`|Am8&z*qE3?MHJ+Y6H6@FU8 z5zPUj5&c#JUQfm0sx`EsR!V>g)l-)f5}z=Z^%v0Hjl6ftm6l^{&zie^RLz?!?5)d8 zw{B;M+U_2ivpP(|{yClOQnpM~NJ?9*>yMVm}jx!uei=POE$0hko}y?+Es1Gp29LV?gDG2mep|T zO=TOUl>+&S%~mg{XibFd@sdKkv(^2?7+d38kj1e#N8t4`^(iDUkb7 zNiTt(KWELJ=7MZ4a{=e~_V3)ZqseBz)Qy1dp)`u>7StkA+e|GM7d^z@nNSMn(b7@S zF3n8LvLwR2L^&5b?%Cl0u(xUmSxP~vYs72DTAvcc#u#+9Q-Q)=A_2&~`TeNq0W*P2 z+LhXYmuAw-WZW61y~`R9^VJQHO+C=|JumTD-$&uK#@Aop#M?_hDB8dCV7cQRW?Ra=~#@
    +
    +
    + + +
    +
    +
    +
    +
    Benchmarks
    Key
    id    
    INTEGER
    NN
    version    
    SMALLINT
    NN
    release    
    SMALLINT
    NN
    release_date    
    DATE
    NN
    Key
    type    
    VARCHAR
    NN
    Key
    product_name    
    VARCHAR
    NN
    Key
    product_version    
    REAL
    NN
    Key
    status    
    VARCHAR
    NN
    Key
    organization_name    
    VARCHAR
    NN
    Key
    sponsor_name    
    VARCHAR
    A collection of Security Benchmarks that are publied by Autors
    benchmark_type
    Key
    type    
    VARCHAR
    NN
    description    
    TEXT
    NN
    Key
    organization_name    
    VARCHAR
    NN
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    Organization
    Key
    id    
    INTEGER
    NN
    Key
    name    
    VARCHAR
    NN
    uri    
    VARCHAR
    email    
    VARCHAR
    List of organizations or gorups that author or manage security guidance
    Artifact
    Key
    id    
    INTEGER
    NN
    name    
    VARCHAR
    NN
    location    
    VARCHAR
    NN
    created_at    
    DATE
    NN
    secondary_location    
    VARCHAR
    raw_data    
    BLOB
    Key
    type    
    VARCHAR
    NN
    Key
    author_name    
    VARCHAR
    NN
    +
    Trial
    +
    +
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    benchmark_artifacts
    Key
    benchmark_id    
    INTEGER
    NN
    Key
    artifact_id    
    INTEGER
    NN
    default    
    INT2
    artifact_types
    Key
    type    
    VARCHAR
    NN
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Products
    Key
    name    
    VARCHAR
    NN
    Key
    version    
    REAL
    NN
    Key
    author_id    
    INT
    NN
    release    
    INT
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. + +For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Statuses
    Key
    id    
    INTEGER
    NN
    Key
    name    
    VARCHAR
    NN
    Collection of statuses that can applly to a Benckmark or Artifact
    
    Documentation for project Benchmarks
    Benchmarks
    Project
    Name
    Benchmarks
    Diagram
    Name
    Security Guidance
    Report
    Generated
    12/14/2023 | 3:26:35 PM
    tables
    Name
    benchmark_type
    Description
    Describes the kind of benchmark to include: + - Security Technical Implementation Gudie (stig) + - Security Requirements Guide (srg) + - Center for Internet Security Benchmark (cis) + - Vendor Guidance (vendor)
    Columns
    Name
    Data type
    Key
    Not Null
    type
    VARCHAR
    Yes
    Yes
    Description
    The varchar (text) name of the benchmark type
    description
    TEXT
    Yes
    Description
    The full text description of the guidane type
    organization_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency
    Keys
    Primary key
    Column in Primary key
    type
    benchmark_type_ak_1
    Name
    Organization
    Description
    List of organizations or gorups that author or manage security guidance
    Columns
    Name
    Data type
    Key
    Not Null
    id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    Integer id of the author of the benchmark
    name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency
    uri
    VARCHAR
    Description
    The primary uri of the author, vendor or agency
    email
    VARCHAR
    Description
    [optional] The email of the autor
    Keys
    Primary key
    Column in Primary key
    id
    Authors_ak_1
    Column in Authors_ak_1
    name
    Name
    Artifact
    Description
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    Columns
    Name
    Data type
    Key
    Not Null
    id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] The id of the artifact.
    name
    VARCHAR
    Yes
    Description
    Filename that the artifact is stored as on the target location
    location
    VARCHAR
    Yes
    Description
    The URI path of the artifact
    created_at
    DATE
    Yes
    secondary_location
    VARCHAR
    Description
    [optional] A file path, uri or other location you can find the reference besides the default location.
    raw_data
    BLOB
    Description
    [optional] The raw data of the Artifact
    type
    VARCHAR
    Yes
    Description
    The simple name of the artifact
    author_name
    VARCHAR
    Yes
    Description
    The full text name of the author, vendor or agency
    Keys
    Primary key
    Column in Primary key
    id
    Name
    benchmark_artifacts
    Columns
    Name
    Data type
    Key
    Not Null
    benchmark_id
    INTEGER
    Yes
    Yes
    Description
    [int, fk] Bechmarks.id
    artifact_id
    INTEGER
    Yes
    Yes
    Description
    [autogenerated] The id of the artifact.
    default
    INT2
    Description
    [optional] Boolean like indicator of if this artifact is the 'primary artifact' for the Benchmark it belongs to.
    Keys
    Primary key
    Column in Primary key
    benchmark_id
    Column in Primary key
    artifact_id
    Name
    artifact_types
    Description
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    Columns
    Name
    Data type
    Key
    Not Null
    type
    VARCHAR
    Yes
    Yes
    Description
    The simple name of the artifact
    Keys
    Primary key
    Column in Primary key
    type
    Relations
    Name
    Products
    Description
    A collection of products and services that are tracked via the Benchmarks. A product is owned by an Author and is organized at the version level by autor.id. Sometimes vendors organize benchmarks only at the version level but sometimes they can do it at the version + release level. + +For example, Author: 'RedHat', name: 'Enterprise Linux', version: '7', [optional] release: '4'
    Columns
    Name
    Data type
    Key
    Not Null
    name
    VARCHAR
    Yes
    Yes
    Description
    The name of the product or service
    version
    REAL
    Yes
    Yes
    Description
    The version of the project
    author_id
    INT
    Yes
    Description
    Integer id of the author of the benchmark
    release
    INT
    Keys
    Primary key
    Column in Primary key
    name
    Column in Primary key
    version
    Name
    Statuses
    Description
    Collection of statuses that can applly to a Benckmark or Artifact
    Columns
    Name
    Data type
    Key
    Not Null
    id
    INTEGER
    Yes
    Yes
    Autoincrement
    Yes
    Description
    [autogenerated] id of the status type
    name
    VARCHAR
    Yes
    Description
    Text based name for the status
    Keys
    Primary key
    Statuses_ak_1
    Column in Statuses_ak_1
    id
    Statuses_ak_2
    Column in Statuses_ak_2
    name
    Relations
    relationships
    Name
    type_type
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in benchmark_type
    Column in Benchmarks
    Primary key
    type
    type
    Name
    id_benchmark_references
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Benchmarks
    Column in benchmark_artifacts
    Primary key
    id
    benchmark_id
    Name
    id_Products
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Products
    Primary key
    id
    author_id
    Name
    Products_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    one
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Products
    Column in Benchmarks
    Primary key
    name
    product_name
    version
    product_version
    Name
    type_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in artifact_types
    Column in Artifact
    Primary key
    type
    type
    Name
    id_benchmark_reference
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Artifact
    Column in benchmark_artifacts
    Primary key
    id
    artifact_id
    Name
    name_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Statuses
    Column in Benchmarks
    Statuses_ak_2
    name
    status
    Name
    name_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Authors_ak_1
    name
    organization_name
    Name
    name_Artifact
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Artifact
    Authors_ak_1
    name
    author_name
    Name
    name_Benchmarks
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in Benchmarks
    Authors_ak_1
    name
    sponsor_name
    Name
    name_benchmark_type
    Name
    Source
    Target
    Cardinality type:
    One to
    many
    Ordinality:
    Mandatory
    Mandatory
    Key and columns
    Key name
    Column in Organization
    Column in benchmark_type
    Authors_ak_1
    name
    organization_name
    {5Nu5ZU-p$wf6d#;%CfA>ref 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 z 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 CSMvV= diff --git a/database_creation.py b/database_creation.py deleted file mode 100644 index b9d893db3..000000000 --- a/database_creation.py +++ /dev/null @@ -1,102 +0,0 @@ -import asyncio -import os - -import libsql_client - - -async def main(): - url = os.getenv("URL", "file:security_guidance.db") - async with libsql_client.create_client(url) as client: - #import ipdb; ipdb.set_trace() - await client.batch( - [ - """ - CREATE TABLE "Organization"( - organization_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - short_name VARCHAR NOT NULL, - uri VARCHAR, - email VARCHAR, - long_name VARCHAR NOT NULL - ); - """, - - """ - CREATE TABLE artifact_types - (type_name VARCHAR NOT NULL, artifact_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, description TEXT); - """, - - """ - CREATE TABLE benchmark_type( - short_name VARCHAR NOT NULL, - description TEXT NOT NULL, - benchmark_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - long_name VARCHAR NOT NULL - ); - """, - - """ - CREATE TABLE "Artifact"( - artifact_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - name VARCHAR NOT NULL, - location VARCHAR NOT NULL, - created_at DATE NOT NULL, - secondary_location VARCHAR, - raw_data BLOB, - type_id INTEGER NOT NULL, - organization_id INTEGER NOT NULL, - CONSTRAINT "type_Artifact" FOREIGN KEY (type_id) REFERENCES artifact_types (artifact_type_id), - CONSTRAINT "organization_id_Artifact" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) - ); - """, - - """ - CREATE TABLE "Products"( - short_name VARCHAR NOT NULL, - version REAL NOT NULL, - author_id INT NOT NULL, - "release" INT NOT NULL, - long_name VARCHAR NOT NULL, - product_id INT NOT NULL, - organization_id INTEGER NOT NULL, - CONSTRAINT "organization_id_Products" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) - ); - """, - - """ - CREATE TABLE "Statuses"(status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR NOT NULL); - """, - - """ - CREATE TABLE "Benchmarks"( - benchmark_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - version SMALLINT NOT NULL, - "release" SMALLINT NOT NULL, - release_date DATE NOT NULL, - type_id INTEGER NOT NULL, - product_id INT NOT NULL, - author_id INTEGER NOT NULL, - sponsor_id INTEGER NOT NULL, - status_id INTEGER NOT NULL, - CONSTRAINT "benchmark_type_id_Benchmarks" FOREIGN KEY (type_id) REFERENCES benchmark_type (benchmark_type_id), - CONSTRAINT "product_id_Benchmarks" FOREIGN KEY (product_id) REFERENCES "Products" (product_id), - CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (author_id) REFERENCES "Organization" (organization_id), - CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (sponsor_id) REFERENCES "Organization" (organization_id), - CONSTRAINT "status_id_Benchmarks" FOREIGN KEY (status_id) REFERENCES "Statuses" (status_id) - ); - """, - - """ - CREATE TABLE benchmark_artifacts( - "default" INT2, - benchmark_id INTEGER NOT NULL, - artifact_id INTEGER NOT NULL, - PRIMARY KEY(benchmark_id, artifact_id), - CONSTRAINT benchmark_id_benchmark_artifacts FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (benchmark_id), - CONSTRAINT artifact_id_benchmark_artifacts FOREIGN KEY (artifact_id) REFERENCES "Artifact" (artifact_id) - ); - """, - ] - ) - - -asyncio.run(main()) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index f8f3cde11..a03c9807d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,5 +2,6 @@ bs4 requests wheel ipdb -stig_parser +stig_parser==1.1.1 libsql_client +sqlalchemy diff --git a/database/security_guidance.dbml b/scripts/database/mitre-saf-security-benchmarks.dbml similarity index 100% rename from database/security_guidance.dbml rename to scripts/database/mitre-saf-security-benchmarks.dbml diff --git a/database/mitre-saf-security-benchmarks.dmm b/scripts/database/mitre-saf-security-benchmarks.dmm similarity index 98% rename from database/mitre-saf-security-benchmarks.dmm rename to scripts/database/mitre-saf-security-benchmarks.dmm index 2cd26d71e..5848cc011 100644 --- a/database/mitre-saf-security-benchmarks.dmm +++ b/scripts/database/mitre-saf-security-benchmarks.dmm @@ -90,23 +90,6 @@ "estimatedSize": "", "fk": true }, - { - "id": "a63e9906-c1c8-47b8-b628-23fd92b1ffe5", - "name": "product_id", - "datatype": "INT", - "param": "", - "pk": false, - "nn": true, - "comment": "[autoincrement] The int id of the product related to the benchmak", - "defaultvalue": "", - "data": "1,2,3", - "after": "", - "sqlite": { - "autoincrement": false - }, - "estimatedSize": "", - "fk": true - }, { "id": "ff9f083a-372b-499b-8dc8-fdcf0fdc822e", "name": "author_id", @@ -160,6 +143,23 @@ }, "estimatedSize": "", "fk": true + }, + { + "id": "e63e3fd6-0c07-4793-8e50-2b9041d02b3a", + "name": "Products_product_id", + "datatype": "INT", + "param": "", + "pk": false, + "nn": true, + "comment": "[autoincrement] The int id of the product", + "defaultvalue": "", + "data": "1,2,3", + "after": "", + "sqlite": { + "autoincrement": true + }, + "estimatedSize": "", + "fk": true } ], "relations": [ @@ -212,15 +212,6 @@ "expression": "" } }, - { - "id": "e8cf594f-88ce-4b11-81a2-cc598be224b0", - "colid": "a63e9906-c1c8-47b8-b628-23fd92b1ffe5", - "sqlite": { - "desc": false, - "collate": "", - "expression": "" - } - }, { "id": "e875a7c1-abb1-4853-96c1-efcb53d00ec5", "colid": "ff9f083a-372b-499b-8dc8-fdcf0fdc822e", @@ -936,7 +927,7 @@ { "id": "83427e84-109d-43a2-9c15-a1d3c444ebaa", "name": "product_id", - "datatype": "INT", + "datatype": "INTEGER", "param": "", "pk": true, "nn": true, @@ -1044,7 +1035,7 @@ "isPk": true, "cols": [ { - "id": "a4289a34-9f2c-4b9c-bd69-53487fc254b3", + "id": "03f9e1e7-8fcb-47b6-80d2-5f48d98d7a92", "colid": "83427e84-109d-43a2-9c15-a1d3c444ebaa" } ] @@ -1269,9 +1260,9 @@ "c_cch": "", "cols": [ { - "id": "67bf027e-9999-405b-b2ab-8ea0bf9c1a9b", + "id": "57d1aa03-3765-40c8-a275-4b9317290baa", "parentcol": "83427e84-109d-43a2-9c15-a1d3c444ebaa", - "childcol": "a63e9906-c1c8-47b8-b628-23fd92b1ffe5" + "childcol": "e63e3fd6-0c07-4793-8e50-2b9041d02b3a" } ], "generate": true, @@ -1471,7 +1462,7 @@ "replaceSpace": "_", "color": "transparent", "sideSelections": true, - "isDirty": false, + "isDirty": true, "storedin": { "major": 7, "minor": 5, @@ -1482,7 +1473,7 @@ "minor": 5, "extra": 1 }, - "writeFileParam": false, + "writeFileParam": true, "authorName": "The Security Automation Frameowrk Team", "companyDetails": "The MITRE Coroporation", "companyUrl": "https://saf.mitre.org", @@ -1500,7 +1491,7 @@ "keywordCase": "upper", "identiferCase": "lower" }, - "lastSaved": 1702778284055 + "lastSaved": 1702779462159 }, "otherObjects": {}, "diagrams": { diff --git a/database/security_guidance.hcl b/scripts/database/mitre-saf-security-benchmarks.hcl similarity index 100% rename from database/security_guidance.hcl rename to scripts/database/mitre-saf-security-benchmarks.hcl diff --git a/database/mitre-saf-security-benchmarks.pdf b/scripts/database/mitre-saf-security-benchmarks.pdf similarity index 100% rename from database/mitre-saf-security-benchmarks.pdf rename to scripts/database/mitre-saf-security-benchmarks.pdf diff --git a/scripts/database/mitre-saf-security-benchmarks.sql b/scripts/database/mitre-saf-security-benchmarks.sql new file mode 100644 index 000000000..005b83262 --- /dev/null +++ b/scripts/database/mitre-saf-security-benchmarks.sql @@ -0,0 +1,108 @@ +-- Create "Artifact" table +CREATE TABLE + `Artifact` ( + `artifact_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `type_id` integer NOT NULL, + `owner_id` integer NOT NULL, + `name` varchar NOT NULL, + `location` varchar NOT NULL, + `secondary_location` varchar NULL, + `created_at` date NOT NULL, + `raw_data` blob NULL, + CONSTRAINT `artifact_has_a_type` FOREIGN KEY (`type_id`) REFERENCES `artifact_types` (`artifact_type_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `artifact_has_a_owner` FOREIGN KEY (`owner_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT + ); + +-- Create "Benchmarks" table +CREATE TABLE + `Benchmarks` ( + `benchmark_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `version` smallint NOT NULL, + `release` smallint NOT NULL, + `release_date` date NOT NULL, + `type_id` integer NOT NULL, + `product_id` int NOT NULL, + `author_id` integer NOT NULL DEFAULT 0, + `sponsor_id` integer NULL DEFAULT 0, + `status_id` integer NOT NULL, + CONSTRAINT `benchmark_has_a_type` FOREIGN KEY (`type_id`) REFERENCES `benchmark_type` (`benchmark_type_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benchmark_has_a_product` FOREIGN KEY (`product_id`) REFERENCES `Products` (`product_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benchmark_has_an_author` FOREIGN KEY (`author_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benmark_has_a_sponsor` FOREIGN KEY (`sponsor_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benchmark_has_a_status` FOREIGN KEY (`status_id`) REFERENCES `Statuses` (`status_id`) ON UPDATE CASCADE ON DELETE RESTRICT + ); + +-- Create index "unique_product_version_release_owner" to table: "Benchmarks" +CREATE UNIQUE INDEX `unique_product_version_release_owner` ON `Benchmarks` (`version`, `release`, `product_id`, `author_id`); + +-- Create "Organization" table +CREATE TABLE + `Organization` ( + `organization_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `long_name` varchar NOT NULL, + `short_name` varchar NOT NULL, + `uri` varchar NULL, + `email` varchar NULL + ); + +-- Create index "unique_org_short_and_long_name" to table: "Organization" +CREATE UNIQUE INDEX `unique_org_short_and_long_name` ON `Organization` (`long_name`, `short_name`); + +-- Create "Products" table +CREATE TABLE + `Products` ( + `product_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `long_name` varchar NOT NULL, + `short_name` varchar NOT NULL, + `version` real NOT NULL, + `release` int NOT NULL, + `owner_id` integer NOT NULL, + CONSTRAINT `product_has_a_owner` FOREIGN KEY (`owner_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT + ); + +-- Create "Statuses" table +CREATE TABLE + `Statuses` ( + `status_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `name` varchar NOT NULL + ); + +-- Create index "unique_status_id_name" to table: "Statuses" +CREATE UNIQUE INDEX `unique_status_id_name` ON `Statuses` (`status_id`, `name`); + +-- Create "artifact_types" table +CREATE TABLE + `artifact_types` ( + `artifact_type_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `type_name` varchar NOT NULL, + `description` text NULL + ); + +-- Create "benchmark_artifacts" table +CREATE TABLE + `benchmark_artifacts` ( + `benchmark_id` integer NOT NULL, + `artifact_id` integer NOT NULL, + `is_default` int2 NULL DEFAULT 0, + PRIMARY KEY (`benchmark_id`, `artifact_id`), + CONSTRAINT `benchmark_has_an_artifact` FOREIGN KEY (`benchmark_id`) REFERENCES `Benchmarks` (`benchmark_id`) ON UPDATE CASCADE ON DELETE CASCADE, + CONSTRAINT `artifact_belongs_to_benchmark` FOREIGN KEY (`artifact_id`) REFERENCES `Artifact` (`artifact_id`) ON UPDATE CASCADE ON DELETE CASCADE + ); + +-- Create index "unique_benchmark_artificat_default" to table: "benchmark_artifacts" +CREATE UNIQUE INDEX `unique_benchmark_artificat_default` ON `benchmark_artifacts` (`benchmark_id`, `artifact_id`, `is_default`); + +-- Create "benchmark_type" table +CREATE TABLE + `benchmark_type` ( + `benchmark_type_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `long_name` varchar NOT NULL, + `short_name` varchar NOT NULL, + `description` text NOT NULL + ); + +-- Create index "unique_bt_long_name" to table: "benchmark_type" +CREATE UNIQUE INDEX `unique_bt_long_name` ON `benchmark_type` (`long_name`); + +-- Create index "unique_bt_short_name" to table: "benchmark_type" +CREATE UNIQUE INDEX `unique_bt_short_name` ON `benchmark_type` (`short_name`); \ No newline at end of file diff --git a/database/schema/mitre-saf-security-benchmarks.sql b/scripts/database/schema/mitre-saf-security-benchmarks.sql similarity index 95% rename from database/schema/mitre-saf-security-benchmarks.sql rename to scripts/database/schema/mitre-saf-security-benchmarks.sql index 4bff670e2..98ea48206 100644 --- a/database/schema/mitre-saf-security-benchmarks.sql +++ b/scripts/database/schema/mitre-saf-security-benchmarks.sql @@ -47,7 +47,7 @@ CREATE TABLE "Organization"( CREATE UNIQUE INDEX unique_org_short_and_long_name ON "Organization"(long_name, short_name); CREATE TABLE "Products"( - product_id INT NOT NULL, + product_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, long_name VARCHAR NOT NULL, short_name VARCHAR NOT NULL, version REAL NOT NULL, @@ -56,7 +56,9 @@ CREATE TABLE "Products"( CONSTRAINT product_has_a_owner FOREIGN KEY (owner_id) REFERENCES "Organization" (organization_id) ON DELETE Restrict ON UPDATE Cascade ); -CREATE TABLE "Statuses"(status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR NOT NULL); +CREATE TABLE "Statuses"( + status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + name VARCHAR NOT NULL); CREATE UNIQUE INDEX unique_status_id_name ON "Statuses"(status_id, name); diff --git a/database/test.db b/scripts/database/test.db similarity index 53% rename from database/test.db rename to scripts/database/test.db index c8aeed606d380710082cfccafe0bcf1379ffbe06..fbf6b838e59e8cbc0f2498d781fbd2c8320a30d9 100644 GIT binary patch literal 86016 zcmeI5O>f&q8plPy(UI*Y=?l~zf-)$Am~ap@HG&}6%PKNcXzR$1ETQpW~ z?%QsZ_;=lI65Arp?`6q0x%Okb=iPM&{ip9Q>y`C&?d#7Ix6}7Tg{+Z+q?KCJs$j@SUE?!r*I1S8A#Gk#yD(|-+E!zy)vVSVEh)3(^~2y^Y$u_><`_4( znpXYOM%uD$tZ6i@n^x0m)T|xDsiw@yz?C7H##X~5ma%}-xGG&Xr{Rxdws zv&Pg(yA|DY1OE$mB)U~6l=7F`=-C-X zxl?_TVxLieBwe``D&MSmDqqPX<}g~&D;F+kPcAam$o1sw1ywzAR;r*d2j@j)Ei5b! z0Fu$g1qP8X#SXrpdHb&4SJR0@uFdO}_Id4SUUmo~RuMy?Sp zQO9uc6Sr`&lS|%Ax?&CzGKZMrzPU4}SI(c;zWb87OSC1f=2TaSjMPybz7!SCo+-hH zn`^}TZofY^EBO#6XWKnDA#C#=eql~?781&rekgUC91^M#PC3}*@Bd0ZT+8K{mk^6|oGS@LW z{jigrqU6|+fq7NikG$A&290#1o~yV+RIOzdX*N5?C@C)@we6XO%G#Q?%Y>GmWnz!) z+=H%{yPZ{Jm&;tG-Y18dGYc#9Oml|*h93|B0T2KI5C8!X009sH0T2KI5CDNUl>pBF zZ>nc8E)W0#5C8!X009sH0T2KI5C8!X5Cm}k7c6iE0w4eaAOHd&00JNY0w4eaAOHey zDuFT`825SRl3AOHd&00JNY0w4eaAOHd&00PHA z0O$W>fQlwT00ck)1V8`;KmY_l00ck)1VG?~5x}4SKVc4mIUoQ6AOHd&00JNY0w4ea zAOHd&a0~=+{yzq&Xc7cK00ck)1V8`;KmY_l00ck)1Wp(M`se@W_3Ne6e_5$5{%i5F zetqHl`PsQ-_UG9vr5|U0n)`wNI=boyJ@0YH3%YyzZgk&vqr|`Kc9Yl^X?`zDw#l_0 z+dc2DJLo@se_5}ruWMg_p17U9Co1qpegh;^`-sQ8jaO<-tJ<=RR`tfFWjF;T9AmX? z$T@z`G5jF$?s<{X*lHP#_U7g#T7-{PhLS-(|n z?i!z2yT+Ok=BIw6`}Xu3B}cR^6~@%7(RRiIlue0_dI_+isA_BX5r= zNJgp}bc0JSrY7YIK8HPyW`rKKbmibqjJwcXmPH%Pm;tVW9okM?T^ z?!M<358bG{=jMdj^WtvgA0&PlI7Z?=3!Z{Tsx-?*BFOE;6E66cAU7$Af~gI zwz$LYym%=cN4rtK-L{N+W5c>*IE7UlstSi!q%O;vq!MO!n#1K&dgUDH`#wX+OY`rt zij60yz(jjv6LAWuVn}84NoA3l^OeTT*^a{AfJ8R_y{MYQlT&jJMx|fIb9A0g@?5+Z zM#-cC54|X6ZjC&*uZE+@>w9iYG(m!uniD<>yr|IJ{Pg8RW0Tir_3{%pYfPQAThTo? z@V{_JqFZ%B>7I5yIhr&r64mOpR@oeWpzD?T1#Ng+7Aa}X9%xQ<@|Z=yDyo$L|fu&PIZ;YNFCMTOHtwMnG$@sxkkM2_WNVA zk`G~Ww%v0RGNZE3i02%X`cGwajK^cz+WGPG;ja61RCr*422Jr}|C`#m#FUHr9 zVr%40iy%6RF{9X?4>BU+t5HT;7^GF^`C>~x))7nCzBaXEG}19c1OU~N+^l}dcvoOk zy4&X4C+4cWRlFP?Suu^E!UXHH_QwXs=Sl$voHB>W%@@PIa zMooEOM)v4+ww&2!H?xyzT`4 zcvi1mHMQYI`Rv+B(q{>DMO62I?@l_eD)mO^Q?)kTQ%Xl~^Y9FL2u^zcDA#*-d{?W# zGo|ya+Ozr=1r0+dRNvAox7W3!C53c$cxRh0pKM&y*As~t58s!?rzg^Xc2jw0WDTk(jP&V5dQhMQ z$)gMD{lIVa%o=Y+IAXjNQQp*$S%TLXc#T2ca-=a`dK5GExM0dth+iGdvqz(NjY0Mx z^0UPM!D|fs`+u+dwifn-00@8p2!H?xfB*=900@8p2!OzJ0{Hv?(;1-z2!H?xfB*=9 z00@8p2!H?xfB*=*?gViDf89L@`#}H%KmY_l00ck)1V8`;KmY_lU^)Su|EDuT2@n7Q Y5C8!X009sH0T2KI5C8!Xc-;y77pg#B3jhEB delta 1223 zcmb_cO=uHA6yBG=-JMM~8=E#_jhzsKh7?5t5|C2UW(}cfQez@5qRpCC8)}n~-4v>q z*n?6*XdGm`2&G;pwedu64vs} zGz}o=rQZ>x{h2I|kLFX^3}%*4(<(b)ca31@k-hkb5=;bk_x==*!m31{h>!?5-7(4P z3k0C$F|_NqW=Cc#rMU&IKCkaRp$(^~0C_LkdA(Mx=+!!n3(#vWkQ|Ei=!RxA^l8R- zH-|hzW66Cf3?ht2vzbfzTs)P@<6^abQ>&D3Yeu3HNm5h$(Ny#-uzS#QcssMK4l?TYAe2hfp5LuLc zK@Roj)SiYTHwFb#+E2h^Fh-AeYqb~*M zIa5fdQP>
    - +
    NN
    -
    -
    Key
    -
    product_id    
    -
    INT
    -
    NN
    -
    -
    Key
    @@ -405,6 +394,16 @@
    NN
    +
    +
    Key
    +
    Products_product_id    
    +
    INT
    +
    NN
    +
    +
    @@ -417,8 +416,7 @@
    A collection of Security Benchmarks that are publied by Autors
    -
    +
    @@ -496,8 +494,7 @@ - Security Requirements Guide (srg) - Center for Internet Security Benchmark (cis) - Vendor Guidance (vendor) - + @@ -576,8 +573,7 @@
    List of organizations or gorups that author or manage security guidance
    -
    + @@ -678,8 +674,7 @@
    Collection of file artifacts related to the Benchmark, their data and where they are stored.
    -
    + @@ -737,8 +732,7 @@
    unique_benchmark_artificat_default
    - + @@ -793,15 +787,15 @@
    A Collection of kinds of Artifacts that vendors produce, such as documents, security validation content, XCCDF Files, SCAP Files, inspec profiles, ansible playbooks, chef recipies
    - +
    -
    @@ -821,7 +815,7 @@
    product_id    
    -
    INT
    +
    INTEGER
    NN
    @@ -934,8 +928,7 @@
    Collection of statuses that can applly to a Benckmark or Artifact
    -
    +
    @@ -1500,7 +1493,7 @@
    Report
    Generated
    -
    12/16/2023 | 8:58:09 PM
    +
    12/17/2023 | 2:34:45 PM
    @@ -1606,21 +1599,6 @@
    -
    product_id
    -
    INT
    -
    -
    Yes
    -
    -
    -
    -
    Description
    -
    -
    [autoincrement] The int id of the product related to the benchmak
    -
    -
    -
    -
    -
    author_id
    INTEGER
    @@ -1668,6 +1646,23 @@
    [autogenerated] id of the status type
    +
    +
    +
    +
    Products_product_id
    +
    INT
    +
    +
    Yes
    +
    +
    +
    Autoincrement
    +
    Yes
    +
    +
    Description
    +
    +
    [autoincrement] The int id of the product
    +
    +
    @@ -1687,12 +1682,6 @@
    Column name
    -
    product_id
    -
    -
    -
    -
    -
    Column name
    author_id
    @@ -2515,7 +2504,7 @@
    product_id
    -
    INT
    +
    INTEGER
    Yes
    Yes
    @@ -2933,7 +2922,7 @@
    Column in Benchmarks
    Primary key
    product_id
    -
    product_id
    +
    Products_product_id
    diff --git a/database/web/lists.css b/scripts/database/web/lists.css similarity index 100% rename from database/web/lists.css rename to scripts/database/web/lists.css diff --git a/database/web/modals.css b/scripts/database/web/modals.css similarity index 100% rename from database/web/modals.css rename to scripts/database/web/modals.css diff --git a/database/web/not-dark.svg b/scripts/database/web/not-dark.svg similarity index 100% rename from database/web/not-dark.svg rename to scripts/database/web/not-dark.svg diff --git a/database/web/not-light.svg b/scripts/database/web/not-light.svg similarity index 100% rename from database/web/not-light.svg rename to scripts/database/web/not-light.svg diff --git a/database/web/oneOf-dark.svg b/scripts/database/web/oneOf-dark.svg similarity index 100% rename from database/web/oneOf-dark.svg rename to scripts/database/web/oneOf-dark.svg diff --git a/database/web/oneOf-light.svg b/scripts/database/web/oneOf-light.svg similarity index 100% rename from database/web/oneOf-light.svg rename to scripts/database/web/oneOf-light.svg diff --git a/database/web/scrollbars.css b/scripts/database/web/scrollbars.css similarity index 100% rename from database/web/scrollbars.css rename to scripts/database/web/scrollbars.css diff --git a/database/web/searchbar.css b/scripts/database/web/searchbar.css similarity index 100% rename from database/web/searchbar.css rename to scripts/database/web/searchbar.css diff --git a/database/web/style.css b/scripts/database/web/style.css similarity index 100% rename from database/web/style.css rename to scripts/database/web/style.css diff --git a/database/web/then-dark.svg b/scripts/database/web/then-dark.svg similarity index 100% rename from database/web/then-dark.svg rename to scripts/database/web/then-dark.svg diff --git a/database/web/then-light.svg b/scripts/database/web/then-light.svg similarity index 100% rename from database/web/then-light.svg rename to scripts/database/web/then-light.svg diff --git a/scripts/database_creation.py b/scripts/database_creation.py new file mode 100644 index 000000000..abc128484 --- /dev/null +++ b/scripts/database_creation.py @@ -0,0 +1,106 @@ +# import asyncio +import os + +# import libsql_client + +# atlas schema apply --to file://database/schema --dev-url "sqlite://dev?mode=memory" --url sqlite://database/test.db + +print("Install `atlas-cli`, then run: ") +print( + 'atlas schema apply --to file://database/schema --dev-url "sqlite://dev?mode=memory" --url sqlite://database/test.db"' +) + +print('Atlas can help us manage changes to the DB more easily') + +# url = os.getenv("URL", "file:security_guidance.db") +# async with libsql_client.create_client(url) as client: +# #import ipdb; ipdb.set_trace() +# await client.batch( +# [ +# """ +# CREATE TABLE "Organization"( +# organization_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +# short_name VARCHAR NOT NULL, +# uri VARCHAR, +# email VARCHAR, +# long_name VARCHAR NOT NULL +# ); +# """, + +# """ +# CREATE TABLE artifact_types +# (type_name VARCHAR NOT NULL, artifact_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, description TEXT); +# """, + +# """ +# CREATE TABLE benchmark_type( +# short_name VARCHAR NOT NULL, +# description TEXT NOT NULL, +# benchmark_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +# long_name VARCHAR NOT NULL +# ); +# """, + +# """ +# CREATE TABLE "Artifact"( +# artifact_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +# name VARCHAR NOT NULL, +# location VARCHAR NOT NULL, +# created_at DATE NOT NULL, +# secondary_location VARCHAR, +# raw_data BLOB, +# type_id INTEGER NOT NULL, +# organization_id INTEGER NOT NULL, +# CONSTRAINT "type_Artifact" FOREIGN KEY (type_id) REFERENCES artifact_types (artifact_type_id), +# CONSTRAINT "organization_id_Artifact" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) +# ); +# """, + +# """ +# CREATE TABLE "Products"( +# short_name VARCHAR NOT NULL, +# version REAL NOT NULL, +# author_id INT NOT NULL, +# "release" INT NOT NULL, +# long_name VARCHAR NOT NULL, +# product_id INT NOT NULL, +# organization_id INTEGER NOT NULL, +# CONSTRAINT "organization_id_Products" FOREIGN KEY (organization_id) REFERENCES "Organization" (organization_id) +# ); +# """, + +# """ +# CREATE TABLE "Statuses"(status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name VARCHAR NOT NULL); +# """, + +# """ +# CREATE TABLE "Benchmarks"( +# benchmark_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +# version SMALLINT NOT NULL, +# "release" SMALLINT NOT NULL, +# release_date DATE NOT NULL, +# type_id INTEGER NOT NULL, +# product_id INT NOT NULL, +# author_id INTEGER NOT NULL, +# sponsor_id INTEGER NOT NULL, +# status_id INTEGER NOT NULL, +# CONSTRAINT "benchmark_type_id_Benchmarks" FOREIGN KEY (type_id) REFERENCES benchmark_type (benchmark_type_id), +# CONSTRAINT "product_id_Benchmarks" FOREIGN KEY (product_id) REFERENCES "Products" (product_id), +# CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (author_id) REFERENCES "Organization" (organization_id), +# CONSTRAINT "organization_id_Benchmarks" FOREIGN KEY (sponsor_id) REFERENCES "Organization" (organization_id), +# CONSTRAINT "status_id_Benchmarks" FOREIGN KEY (status_id) REFERENCES "Statuses" (status_id) +# ); +# """, + +# """ +# CREATE TABLE benchmark_artifacts( +# "default" INT2, +# benchmark_id INTEGER NOT NULL, +# artifact_id INTEGER NOT NULL, +# PRIMARY KEY(benchmark_id, artifact_id), +# CONSTRAINT benchmark_id_benchmark_artifacts FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (benchmark_id), +# CONSTRAINT artifact_id_benchmark_artifacts FOREIGN KEY (artifact_id) REFERENCES "Artifact" (artifact_id) +# ); +# """, +# ] +# ) diff --git a/scripts/sqla.py b/scripts/sqla.py new file mode 100644 index 000000000..448a2b9f0 --- /dev/null +++ b/scripts/sqla.py @@ -0,0 +1,44 @@ +# https://www.youtube.com/watch?v=1Va493SMTcY&t=2637s + +from sqlalchemy.ext.automap import automap_base +from sqlalchemy.orm import Session +from sqlalchemy import create_engine +from sqlalchemy import inspect + +Base = automap_base() + +# engine, suppose it has two tables 'user' and 'address' set up +engine = create_engine("sqlite:///database/test.db") + +# reflect the tables +Base.prepare(autoload_with=engine) + +# mapped classes are now created with names by default +# matching that of the table name. + +Benchmarks = Base.classes.Benchmarks +Artifact = Base.classes.Artifact +Organization = Base.classes.Organization +Statuses = Base.classes.Statuses +Products = Base.classes.Products + +artifact_types = Base.classes.artifact_types +benchmark_artifacts = Base.classes.benchmark_artifacts +benchmark_type = Base.classes.benchmark_type + +session = Session(engine) +inspector = inspect(engine) + + +import ipdb + +ipdb.set_trace() + +# rudimentary relationships are produced +session.add(Address(email_address="foo@bar.com", user=User(name="foo"))) +session.commit() + +# collection-based relationships are by default named +# "_collection" +u1 = session.query(User).first() +print(u1.address_collection) diff --git a/scripts/test.py b/scripts/test.py new file mode 100644 index 000000000..2a39d79d0 --- /dev/null +++ b/scripts/test.py @@ -0,0 +1,64 @@ +# https://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed +# https://stackoverflow.com/questions/49515975/how-to-keep-track-of-the-files-i-read-into-a-database-in-python +# https://dunlapww.medium.com/setup-pythons-equivalent-or-ruby-s-pry-ipdb-33e98f4f847b +# https://wundergraph.com/blog/wunderbase_serverless_graphql_database_on_top_of_sqlite_firecracker_and_prisma + +import os +from stig_parser import convert_stig +from stig_parser import convert_xccdf + +## PARSE STIG ZIP FILE +file1 = "../test/U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip" +file2 = "../benchmarks/DISA/U_CAN_Ubuntu_20-04_LTS_STIG_V1R4_Manual-xccdf.xml" +# import ipdb; ipdb.set_trace() + + +def process_stig(stig, type="zip"): + """ + Process the STIG and return the JSON results. + + Args: + stig (type): The STIG to be processed. + + Returns: + dict: The JSON results of the processed STIG. + """ + json_results = "" + if type == "zip": + json_results = convert_stig(stig) + else: + try: + # import ipdb + # ipdb.set_trace() + fp = open(stig, "r") + json_results = convert_xccdf(fp.read()) + except: + print("could not open: " + file2) + print("plese check the path") + print(os.getcwd()) + + print("Processing STIG: " + stig) + print( + json_results["Title"] + + " Version: " + + json_results["Version"] + + " Release: " + + json_results["Release"] + ) + print("\n") + + return json_results + + +process_stig(file1, "zip") + +process_stig(file2, "xccdf") + +path = "/tmp" + +obj = os.scandir(path) + +print("Files and Directories in '% s':" % path) +for entry in obj: + if entry.is_dir() or entry.is_file(): + print(entry.name) diff --git a/update.py b/scripts/update.py similarity index 100% rename from update.py rename to scripts/update.py diff --git a/test.py b/test.py deleted file mode 100644 index adc7b3bd9..000000000 --- a/test.py +++ /dev/null @@ -1,26 +0,0 @@ -# https://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed -# https://stackoverflow.com/questions/49515975/how-to-keep-track-of-the-files-i-read-into-a-database-in-python -# https://dunlapww.medium.com/setup-pythons-equivalent-or-ruby-s-pry-ipdb-33e98f4f847b -# https://wundergraph.com/blog/wunderbase_serverless_graphql_database_on_top_of_sqlite_firecracker_and_prisma - -import os -from stig_parser import convert_stig - -## PARSE STIG ZIP FILE -file = "U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip" -json_results = convert_stig(file) - -# import ipdb; ipdb.set_trace() - -print("Processing STIG: " + file ) -print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release']) -print("\n") - -path = "/tmp" - -obj = os.scandir(path) - -print("Files and Directories in '% s':" % path) -for entry in obj : - if entry.is_dir() or entry.is_file(): - print(entry.name) \ No newline at end of file diff --git a/U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip b/test/U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip similarity index 100% rename from U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip rename to test/U_CAN_Ubuntu_20-04_LTS_V1R5_STIG.zip From 0385a972eca24e4527d0847d7e4176374dcef4a9 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Sun, 17 Dec 2023 23:42:28 -0500 Subject: [PATCH 20/29] started adding the bones of the SQLAlcamey classes with the kind assistance of Copilot Signed-off-by: Aaron Lippold --- SecurityGuidance.py | 470 ++++++++++++++++++++ sqlalcamey/database.py | 10 + sqlalcamey/interfaces.py | 394 +++++++++++++++++ sqlalcamey/main.py | 8 + sqlalcamey/model.py | 184 ++++++++ sqlalcamey/model2.py | 184 ++++++++ sqlalcamey/repository.py | 729 ++++++++++++++++++++++++++++++++ {scripts => sqlalcamey}/sqla.py | 0 {scripts => sqlalcamey}/test.py | 0 9 files changed, 1979 insertions(+) create mode 100644 SecurityGuidance.py create mode 100644 sqlalcamey/database.py create mode 100644 sqlalcamey/interfaces.py create mode 100644 sqlalcamey/main.py create mode 100644 sqlalcamey/model.py create mode 100644 sqlalcamey/model2.py create mode 100644 sqlalcamey/repository.py rename {scripts => sqlalcamey}/sqla.py (100%) rename {scripts => sqlalcamey}/test.py (100%) diff --git a/SecurityGuidance.py b/SecurityGuidance.py new file mode 100644 index 000000000..0e9c34c54 --- /dev/null +++ b/SecurityGuidance.py @@ -0,0 +1,470 @@ +from sqlalchemy import Column, Integer, String, Date, ForeignKey, Boolean, Float, Text +from sqlalchemy.orm import relationship +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import Session + +Base = declarative_base() + +class Artifact(Base): + """ + SQLAlchemy model class that represents the Artifact table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + artifact_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the artifact_types table. + owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + name (sqlalchemy.sql.schema.Column): Column for the name of the artifact. + location (sqlalchemy.sql.schema.Column): Column for the primary location of the artifact. + secondary_location (sqlalchemy.sql.schema.Column): Column for the secondary location of the artifact. + created_at (sqlalchemy.sql.schema.Column): Column for the creation date of the artifact. + raw_data (sqlalchemy.sql.schema.Column): Column for the raw data of the artifact. + """ + __tablename__ = "Artifact" + + artifact_id = Column(Integer, primary_key=True) + type_id = Column(Integer, ForeignKey("artifact_types.artifact_type_id")) + owner_id = Column(Integer, ForeignKey("Organization.organization_id")) + name = Column(String) + location = Column(String) + secondary_location = Column(String) + created_at = Column(Date) + raw_data = Column(Text) + +class Benchmarks(Base): + """ + SQLAlchemy model class that represents the Benchmarks table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + version (sqlalchemy.sql.schema.Column): Column for the version of the benchmark. + release (sqlalchemy.sql.schema.Column): Column for the release of the benchmark. + release_date (sqlalchemy.sql.schema.Column): Column for the release date of the benchmark. + type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the benchmark_type table. + product_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Products table. + author_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + sponsor_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + status_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Statuses table. + """ + __tablename__ = "Benchmarks" + + benchmark_id = Column(Integer, primary_key=True) + version = Column(Integer) + release = Column(Integer) + release_date = Column(Date) + type_id = Column(Integer, ForeignKey("benchmark_type.benchmark_type_id")) + product_id = Column(Integer, ForeignKey("Products.product_id")) + author_id = Column(Integer, ForeignKey("Organization.organization_id")) + sponsor_id = Column(Integer, ForeignKey("Organization.organization_id")) + status_id = Column(Integer, ForeignKey("Statuses.status_id")) + + +class Organization(Base): + """ + SQLAlchemy model class that represents the Organization table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + organization_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the organization. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the organization. + uri (sqlalchemy.sql.schema.Column): Column for the URI of the organization. + """ + + __tablename__ = "Organization" + + organization_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + uri = Column(String) + email = Column(String) + + +class Products(Base): + """ + SQLAlchemy model class that represents the Products table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + product_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the product. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the product. + version (sqlalchemy.sql.schema.Column): Column for the version of the product. + release (sqlalchemy.sql.schema.Column): Column for the release of the product. + owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + """ + + __tablename__ = "Products" + + product_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + version = Column(Float) + release = Column(Integer) + owner_id = Column(Integer, ForeignKey("Organization.organization_id")) + + +class ArtifactTypes(Base): + """ + SQLAlchemy model class that represents the artifact_types table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + artifact_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + type_name (sqlalchemy.sql.schema.Column): Column for the name of the artifact type. + description (sqlalchemy.sql.schema.Column): Column for the description of the artifact type. + """ + + __tablename__ = "artifact_types" + + artifact_type_id = Column(Integer, primary_key=True) + type_name = Column(String) + description = Column(Text) + + +class BenchmarkArtifacts(Base): + """ + SQLAlchemy model class that represents the benchmark_artifacts table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Benchmarks table, part of the composite primary key. + artifact_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Artifact table, part of the composite primary key. + is_default (sqlalchemy.sql.schema.Column): Column indicating if the artifact is the default one for the benchmark. + """ + + __tablename__ = "benchmark_artifacts" + + benchmark_id = Column( + Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True + ) + artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) + is_default = Column(Boolean) + + def add_benchmark_artifact: + + def update_benchmark_artifact: + + + +class BenchmarkType(Base): + """ + SQLAlchemy model class that represents the benchmark_type table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the benchmark type. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the benchmark type. + description (sqlalchemy.sql.schema.Column): Column for the description of the benchmark type. + """ + + __tablename__ = "benchmark_type" + + benchmark_type_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + description = Column(Text) + + +class SecurityGuidance: + @staticmethod + def get_column_by_id(session, Table, Column, id): + """ + This function retrieves a specific column value for a record in a table, given the record's ID. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + Table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. + Column (sqlalchemy.sql.schema.Column): The column in the table that you want to retrieve. + id (int): The ID of the record you want to retrieve. + + Returns: + Any: The value of the specified column for the record with the given ID. If no such record exists, returns None. + + Usage: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get the name of the status with ID 1 + name = SecurityGuidanceUtils.get_column_by_id(session, Statuses, Statuses.name, 1) + print(name) + """ + result = session.query(Column).filter(Table.status_id == id).first() + if result is not None: + return result[0] + else: + return None + + @staticmethod + def add_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Adds a new benchmark artifact to the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + new_benchmark_artifact = BenchmarkArtifacts(benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default) + session.add(new_benchmark_artifact) + session.commit() + + @staticmethod + def update_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Updates an existing benchmark artifact in the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = session.query(BenchmarkArtifacts).filter_by(benchmark_id=benchmark_id, artifact_id=artifact_id).first() + if benchmark_artifact is not None: + benchmark_artifact.is_default = is_default + session.commit() + + @staticmethod + def create_artifact(session: Session, type_id: int, owner_id: int, name: str, location: str, secondary_location: str, created_at: date, raw_data: str): + """ + Creates a new Artifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_id (int): The ID of the artifact type. + owner_id (int): The ID of the owner of the artifact. + name (str): The name of the artifact. + location (str): The primary location of the artifact. + secondary_location (str): The secondary location of the artifact. + created_at (date): The date the artifact was created. + raw_data (str): The raw data of the artifact. + + Returns: + None + """ + artifact = Artifact(type_id=type_id, owner_id=owner_id, name=name, location=location, secondary_location=secondary_location, created_at=created_at, raw_data=raw_data) + session.add(artifact) + session.commit() + + def get_artifact_by_id(session: Session, artifact_id: int): + """ + Retrieves an Artifact from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_id (int): The ID of the artifact to retrieve. + + Returns: + Artifact: The retrieved Artifact, or None if no Artifact with the given ID exists. + """ + return session.query(Artifact).filter(Artifact.artifact_id == artifact_id).first() + + def create_benchmark(session: Session, version: int, release: int, release_date: date, type_id: int, product_id: int, author_id: int, sponsor_id: int, status_id: int): + """ + Creates a new Benchmark and adds it to the database. + + Args: + session (Session): The session to use for database operations. + version (int): The version of the benchmark. + release (int): The release of the benchmark. + release_date (date): The release date of the benchmark. + type_id (int): The ID of the benchmark type. + product_id (int): The ID of the product associated with the benchmark. + author_id (int): The ID of the author of the benchmark. + sponsor_id (int): The ID of the sponsor of the benchmark. + status_id (int): The ID of the status of the benchmark. + + Returns: + None + """ + benchmark = Benchmarks(version=version, release=release, release_date=release_date, type_id=type_id, product_id=product_id, author_id=author_id, sponsor_id=sponsor_id, status_id=status_id) + session.add(benchmark) + session.commit() + + def get_benchmark_by_id(session: Session, benchmark_id: int): + """ + Retrieves a Benchmark from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark to retrieve. + + Returns: + Benchmarks: The retrieved Benchmark, or None if no Benchmark with the given ID exists. + """ + return session.query(Benchmarks).filter(Benchmarks.benchmark_id == benchmark_id).first() + + def create_organization(session: Session, long_name: str, short_name: str, uri: str, email: str): + """ + Creates a new Organization and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the organization. + short_name (str): The short name of the organization. + uri (str): The URI of the organization. + email (str): The email of the organization. + + Returns: + None + """ + organization = Organization(long_name=long_name, short_name=short_name, uri=uri, email=email) + session.add(organization) + session.commit() + + def get_organization_by_id(session: Session, organization_id: int): + """ + Retrieves an Organization from the database by its ID. + + Args: + session (Session): The session to use for database operations. + organization_id (int): The ID of the organization to retrieve. + + Returns: + Organization: The retrieved Organization, or None if no Organization with the given ID exists. + """ + return session.query(Organization).filter(Organization.organization_id == organization_id).first() + + def create_product(session: Session, long_name: str, short_name: str, version: float, release: int, owner_id: int): + """ + Creates a new Product and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the product. + short_name (str): The short name of the product. + version (float): The version of the product. + release (int): The release of the product. + owner_id (int): The ID of the owner of the product. + + Returns: + None + """ + product = Products(long_name=long_name, short_name=short_name, version=version, release=release, owner_id=owner_id) + session.add(product) + session.commit() + + def get_product_by_id(session: Session, product_id: int): + """ + Retrieves a Product from the database by its ID. + + Args: + session (Session): The session to use for database operations. + product_id (int): The ID of the product to retrieve. + + Returns: + Products: The retrieved Product, or None if no Product with the given ID exists. + """ + return session.query(Products).filter(Products.product_id == product_id).first() + + def create_artifact_type(session: Session, type_name: str, description: str): + """ + Creates a new ArtifactType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_name (str): The name of the artifact type. + description (str): The description of the artifact type. + + Returns: + None + """ + artifact_type = ArtifactTypes(type_name=type_name, description=description) + session.add(artifact_type) + session.commit() + + def get_artifact_type_by_id(session: Session, artifact_type_id: int): + """ + Retrieves an ArtifactType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_type_id (int): The ID of the artifact type to retrieve. + + Returns: + ArtifactTypes: The retrieved ArtifactType, or None if no ArtifactType with the given ID exists. + """ + return session.query(ArtifactTypes).filter(ArtifactTypes.artifact_type_id == artifact_type_id).first() + + def create_benchmark_artifact(session: Session, benchmark_id: int, artifact_id: int, is_default: bool): + """ + Creates a new BenchmarkArtifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = BenchmarkArtifacts(benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default) + session.add(benchmark_artifact) + session.commit() + + def get_benchmark_artifact_by_ids(session: Session, benchmark_id: int, artifact_id: int): + """ + Retrieves a BenchmarkArtifact from the database by its benchmark and artifact IDs. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + + Returns: + BenchmarkArtifacts: The retrieved BenchmarkArtifact, or None if no BenchmarkArtifact with the given IDs exists. + """ + return session.query(BenchmarkArtifacts).filter(BenchmarkArtifacts.benchmark_id == benchmark_id, BenchmarkArtifacts.artifact_id == artifact_id).first() + + def create_benchmark_type(session: Session, long_name: str, short_name: str, description: str): + """ + Creates a new BenchmarkType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the benchmark type. + short_name (str): The short name of the benchmark type. + description (str): The description of the benchmark type. + + Returns: + None + """ + benchmark_type = BenchmarkType(long_name=long_name, short_name=short_name, description=description) + session.add(benchmark_type) + session.commit() + + def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): + """ + Retrieves a BenchmarkType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_type_id (int): The ID of the benchmark type to retrieve. + + Returns: + BenchmarkType: The retrieved BenchmarkType, or None if no BenchmarkType with the given ID exists. + + Usage: + from sqlalchemy.orm import Session + from models import BenchmarkType + + session = Session() + benchmark_type_id = 1 + benchmark_type = get_benchmark_type_by_id(session, benchmark_type_id) + if benchmark_type is not None: + print(f"Retrieved benchmark type: {benchmark_type.long_name}") + else: + print("No benchmark type found with the given ID.") + """ + return session.query(BenchmarkType).filter(BenchmarkType.benchmark_type_id == benchmark_type_id).first() diff --git a/sqlalcamey/database.py b/sqlalcamey/database.py new file mode 100644 index 000000000..d402a2931 --- /dev/null +++ b/sqlalcamey/database.py @@ -0,0 +1,10 @@ +# database.py +from sqlalchemy import create_engine +from sqlalchemy.orm import sessionmaker + +engine = create_engine("sqlite:///benchmarks.db") +Session = sessionmaker(bind=engine) + + +def get_session(): + return Session() diff --git a/sqlalcamey/interfaces.py b/sqlalcamey/interfaces.py new file mode 100644 index 000000000..cfb0b23cb --- /dev/null +++ b/sqlalcamey/interfaces.py @@ -0,0 +1,394 @@ +class SecurityGuidance: + @staticmethod + def get_column_by_id(session, Table, Column, id): + """ + This function retrieves a specific column value for a record in a table, given the record's ID. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + Table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. + Column (sqlalchemy.sql.schema.Column): The column in the table that you want to retrieve. + id (int): The ID of the record you want to retrieve. + + Returns: + Any: The value of the specified column for the record with the given ID. If no such record exists, returns None. + + Usage: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get the name of the status with ID 1 + name = SecurityGuidanceUtils.get_column_by_id(session, Statuses, Statuses.name, 1) + print(name) + """ + result = session.query(Column).filter(Table.status_id == id).first() + if result is not None: + return result[0] + else: + return None + + @staticmethod + def add_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Adds a new benchmark artifact to the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + new_benchmark_artifact = BenchmarkArtifacts( + benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default + ) + session.add(new_benchmark_artifact) + session.commit() + + @staticmethod + def update_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Updates an existing benchmark artifact in the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = ( + session.query(BenchmarkArtifacts) + .filter_by(benchmark_id=benchmark_id, artifact_id=artifact_id) + .first() + ) + if benchmark_artifact is not None: + benchmark_artifact.is_default = is_default + session.commit() + + @staticmethod + def create_artifact( + session: Session, + type_id: int, + owner_id: int, + name: str, + location: str, + secondary_location: str, + created_at: date, + raw_data: str, + ): + """ + Creates a new Artifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_id (int): The ID of the artifact type. + owner_id (int): The ID of the owner of the artifact. + name (str): The name of the artifact. + location (str): The primary location of the artifact. + secondary_location (str): The secondary location of the artifact. + created_at (date): The date the artifact was created. + raw_data (str): The raw data of the artifact. + + Returns: + None + """ + artifact = Artifact( + type_id=type_id, + owner_id=owner_id, + name=name, + location=location, + secondary_location=secondary_location, + created_at=created_at, + raw_data=raw_data, + ) + session.add(artifact) + session.commit() + + def get_artifact_by_id(session: Session, artifact_id: int): + """ + Retrieves an Artifact from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_id (int): The ID of the artifact to retrieve. + + Returns: + Artifact: The retrieved Artifact, or None if no Artifact with the given ID exists. + """ + return ( + session.query(Artifact).filter(Artifact.artifact_id == artifact_id).first() + ) + + def create_benchmark( + session: Session, + version: int, + release: int, + release_date: date, + type_id: int, + product_id: int, + author_id: int, + sponsor_id: int, + status_id: int, + ): + """ + Creates a new Benchmark and adds it to the database. + + Args: + session (Session): The session to use for database operations. + version (int): The version of the benchmark. + release (int): The release of the benchmark. + release_date (date): The release date of the benchmark. + type_id (int): The ID of the benchmark type. + product_id (int): The ID of the product associated with the benchmark. + author_id (int): The ID of the author of the benchmark. + sponsor_id (int): The ID of the sponsor of the benchmark. + status_id (int): The ID of the status of the benchmark. + + Returns: + None + """ + benchmark = Benchmarks( + version=version, + release=release, + release_date=release_date, + type_id=type_id, + product_id=product_id, + author_id=author_id, + sponsor_id=sponsor_id, + status_id=status_id, + ) + session.add(benchmark) + session.commit() + + def get_benchmark_by_id(session: Session, benchmark_id: int): + """ + Retrieves a Benchmark from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark to retrieve. + + Returns: + Benchmarks: The retrieved Benchmark, or None if no Benchmark with the given ID exists. + """ + return ( + session.query(Benchmarks) + .filter(Benchmarks.benchmark_id == benchmark_id) + .first() + ) + + def create_organization( + session: Session, long_name: str, short_name: str, uri: str, email: str + ): + """ + Creates a new Organization and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the organization. + short_name (str): The short name of the organization. + uri (str): The URI of the organization. + email (str): The email of the organization. + + Returns: + None + """ + organization = Organization( + long_name=long_name, short_name=short_name, uri=uri, email=email + ) + session.add(organization) + session.commit() + + def get_organization_by_id(session: Session, organization_id: int): + """ + Retrieves an Organization from the database by its ID. + + Args: + session (Session): The session to use for database operations. + organization_id (int): The ID of the organization to retrieve. + + Returns: + Organization: The retrieved Organization, or None if no Organization with the given ID exists. + """ + return ( + session.query(Organization) + .filter(Organization.organization_id == organization_id) + .first() + ) + + def create_product( + session: Session, + long_name: str, + short_name: str, + version: float, + release: int, + owner_id: int, + ): + """ + Creates a new Product and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the product. + short_name (str): The short name of the product. + version (float): The version of the product. + release (int): The release of the product. + owner_id (int): The ID of the owner of the product. + + Returns: + None + """ + product = Products( + long_name=long_name, + short_name=short_name, + version=version, + release=release, + owner_id=owner_id, + ) + session.add(product) + session.commit() + + def get_product_by_id(session: Session, product_id: int): + """ + Retrieves a Product from the database by its ID. + + Args: + session (Session): The session to use for database operations. + product_id (int): The ID of the product to retrieve. + + Returns: + Products: The retrieved Product, or None if no Product with the given ID exists. + """ + return session.query(Products).filter(Products.product_id == product_id).first() + + def create_artifact_type(session: Session, type_name: str, description: str): + """ + Creates a new ArtifactType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_name (str): The name of the artifact type. + description (str): The description of the artifact type. + + Returns: + None + """ + artifact_type = ArtifactTypes(type_name=type_name, description=description) + session.add(artifact_type) + session.commit() + + def get_artifact_type_by_id(session: Session, artifact_type_id: int): + """ + Retrieves an ArtifactType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_type_id (int): The ID of the artifact type to retrieve. + + Returns: + ArtifactTypes: The retrieved ArtifactType, or None if no ArtifactType with the given ID exists. + """ + return ( + session.query(ArtifactTypes) + .filter(ArtifactTypes.artifact_type_id == artifact_type_id) + .first() + ) + + def create_benchmark_artifact( + session: Session, benchmark_id: int, artifact_id: int, is_default: bool + ): + """ + Creates a new BenchmarkArtifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = BenchmarkArtifacts( + benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default + ) + session.add(benchmark_artifact) + session.commit() + + def get_benchmark_artifact_by_ids( + session: Session, benchmark_id: int, artifact_id: int + ): + """ + Retrieves a BenchmarkArtifact from the database by its benchmark and artifact IDs. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + + Returns: + BenchmarkArtifacts: The retrieved BenchmarkArtifact, or None if no BenchmarkArtifact with the given IDs exists. + """ + return ( + session.query(BenchmarkArtifacts) + .filter( + BenchmarkArtifacts.benchmark_id == benchmark_id, + BenchmarkArtifacts.artifact_id == artifact_id, + ) + .first() + ) + + def create_benchmark_type( + session: Session, long_name: str, short_name: str, description: str + ): + """ + Creates a new BenchmarkType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the benchmark type. + short_name (str): The short name of the benchmark type. + description (str): The description of the benchmark type. + + Returns: + None + """ + benchmark_type = BenchmarkType( + long_name=long_name, short_name=short_name, description=description + ) + session.add(benchmark_type) + session.commit() + + def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): + """ + Retrieves a BenchmarkType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_type_id (int): The ID of the benchmark type to retrieve. + + Returns: + BenchmarkType: The retrieved BenchmarkType, or None if no BenchmarkType with the given ID exists. + + Usage: + from sqlalchemy.orm import Session + from models import BenchmarkType + + session = Session() + benchmark_type_id = 1 + benchmark_type = get_benchmark_type_by_id(session, benchmark_type_id) + if benchmark_type is not None: + print(f"Retrieved benchmark type: {benchmark_type.long_name}") + else: + print("No benchmark type found with the given ID.") + """ + return ( + session.query(BenchmarkType) + .filter(BenchmarkType.benchmark_type_id == benchmark_type_id) + .first() + ) diff --git a/sqlalcamey/main.py b/sqlalcamey/main.py new file mode 100644 index 000000000..7f788672b --- /dev/null +++ b/sqlalcamey/main.py @@ -0,0 +1,8 @@ +# main.py +from .database import get_session +from .repository import BenchmarksRepository + +session = get_session() +repo = BenchmarksRepository(session) + +# Perform operations... diff --git a/sqlalcamey/model.py b/sqlalcamey/model.py new file mode 100644 index 000000000..8b51b92ea --- /dev/null +++ b/sqlalcamey/model.py @@ -0,0 +1,184 @@ +from sqlalchemy import Column, Integer, String, Date, ForeignKey, Boolean, Float, Text +from sqlalchemy.orm import relationship +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import Session + +Base = declarative_base() + + +class Artifact(Base): + """ + SQLAlchemy model class that represents the Artifact table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + artifact_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the artifact_types table. + owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + name (sqlalchemy.sql.schema.Column): Column for the name of the artifact. + location (sqlalchemy.sql.schema.Column): Column for the primary location of the artifact. + secondary_location (sqlalchemy.sql.schema.Column): Column for the secondary location of the artifact. + created_at (sqlalchemy.sql.schema.Column): Column for the creation date of the artifact. + raw_data (sqlalchemy.sql.schema.Column): Column for the raw data of the artifact. + """ + + __tablename__ = "Artifact" + + artifact_id = Column(Integer, primary_key=True) + type_id = Column(Integer, ForeignKey("artifact_types.artifact_type_id")) + owner_id = Column(Integer, ForeignKey("Organization.organization_id")) + name = Column(String) + location = Column(String) + secondary_location = Column(String) + created_at = Column(Date) + raw_data = Column(Text) + + +class Benchmarks(Base): + """ + SQLAlchemy model class that represents the Benchmarks table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + version (sqlalchemy.sql.schema.Column): Column for the version of the benchmark. + release (sqlalchemy.sql.schema.Column): Column for the release of the benchmark. + release_date (sqlalchemy.sql.schema.Column): Column for the release date of the benchmark. + type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the benchmark_type table. + product_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Products table. + author_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + sponsor_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + status_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Statuses table. + """ + + __tablename__ = "Benchmarks" + + benchmark_id = Column(Integer, primary_key=True) + version = Column(Integer) + release = Column(Integer) + release_date = Column(Date) + type_id = Column(Integer, ForeignKey("benchmark_type.benchmark_type_id")) + product_id = Column(Integer, ForeignKey("Products.product_id")) + author_id = Column(Integer, ForeignKey("Organization.organization_id")) + sponsor_id = Column(Integer, ForeignKey("Organization.organization_id")) + status_id = Column(Integer, ForeignKey("Statuses.status_id")) + + +class Organization(Base): + """ + SQLAlchemy model class that represents the Organization table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + organization_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the organization. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the organization. + uri (sqlalchemy.sql.schema.Column): Column for the URI of the organization. + """ + + __tablename__ = "Organization" + + organization_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + uri = Column(String) + email = Column(String) + + +class Products(Base): + """ + SQLAlchemy model class that represents the Products table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + product_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the product. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the product. + version (sqlalchemy.sql.schema.Column): Column for the version of the product. + release (sqlalchemy.sql.schema.Column): Column for the release of the product. + owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + """ + + __tablename__ = "Products" + + product_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + version = Column(Float) + release = Column(Integer) + owner_id = Column(Integer, ForeignKey("Organization.organization_id")) + + +class Statuses(Base): + """ + Represents the 'Statuses' table in the database. + + The 'Statuses' table contains information about the different statuses that a benchmark can have. + + Attributes: + status_id (Integer): The unique identifier for the status. This is the primary key in the table. + name (String): The name of the status. + """ + + __tablename__ = "Statuses" + + status_id = Column(Integer, primary_key=True) + name = Column(String) + + +class ArtifactTypes(Base): + """ + SQLAlchemy model class that represents the artifact_types table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + artifact_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + type_name (sqlalchemy.sql.schema.Column): Column for the name of the artifact type. + description (sqlalchemy.sql.schema.Column): Column for the description of the artifact type. + """ + + __tablename__ = "artifact_types" + + artifact_type_id = Column(Integer, primary_key=True) + type_name = Column(String) + description = Column(Text) + + +class BenchmarkArtifacts(Base): + """ + SQLAlchemy model class that represents the benchmark_artifacts table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Benchmarks table, part of the composite primary key. + artifact_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Artifact table, part of the composite primary key. + is_default (sqlalchemy.sql.schema.Column): Column indicating if the artifact is the default one for the benchmark. + """ + + __tablename__ = "benchmark_artifacts" + + benchmark_id = Column( + Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True + ) + artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) + is_default = Column(Boolean) + + +class BenchmarkType(Base): + """ + SQLAlchemy model class that represents the benchmark_type table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the benchmark type. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the benchmark type. + description (sqlalchemy.sql.schema.Column): Column for the description of the benchmark type. + """ + + __tablename__ = "benchmark_type" + + benchmark_type_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + description = Column(Text) diff --git a/sqlalcamey/model2.py b/sqlalcamey/model2.py new file mode 100644 index 000000000..8b51b92ea --- /dev/null +++ b/sqlalcamey/model2.py @@ -0,0 +1,184 @@ +from sqlalchemy import Column, Integer, String, Date, ForeignKey, Boolean, Float, Text +from sqlalchemy.orm import relationship +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import Session + +Base = declarative_base() + + +class Artifact(Base): + """ + SQLAlchemy model class that represents the Artifact table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + artifact_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the artifact_types table. + owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + name (sqlalchemy.sql.schema.Column): Column for the name of the artifact. + location (sqlalchemy.sql.schema.Column): Column for the primary location of the artifact. + secondary_location (sqlalchemy.sql.schema.Column): Column for the secondary location of the artifact. + created_at (sqlalchemy.sql.schema.Column): Column for the creation date of the artifact. + raw_data (sqlalchemy.sql.schema.Column): Column for the raw data of the artifact. + """ + + __tablename__ = "Artifact" + + artifact_id = Column(Integer, primary_key=True) + type_id = Column(Integer, ForeignKey("artifact_types.artifact_type_id")) + owner_id = Column(Integer, ForeignKey("Organization.organization_id")) + name = Column(String) + location = Column(String) + secondary_location = Column(String) + created_at = Column(Date) + raw_data = Column(Text) + + +class Benchmarks(Base): + """ + SQLAlchemy model class that represents the Benchmarks table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + version (sqlalchemy.sql.schema.Column): Column for the version of the benchmark. + release (sqlalchemy.sql.schema.Column): Column for the release of the benchmark. + release_date (sqlalchemy.sql.schema.Column): Column for the release date of the benchmark. + type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the benchmark_type table. + product_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Products table. + author_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + sponsor_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + status_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Statuses table. + """ + + __tablename__ = "Benchmarks" + + benchmark_id = Column(Integer, primary_key=True) + version = Column(Integer) + release = Column(Integer) + release_date = Column(Date) + type_id = Column(Integer, ForeignKey("benchmark_type.benchmark_type_id")) + product_id = Column(Integer, ForeignKey("Products.product_id")) + author_id = Column(Integer, ForeignKey("Organization.organization_id")) + sponsor_id = Column(Integer, ForeignKey("Organization.organization_id")) + status_id = Column(Integer, ForeignKey("Statuses.status_id")) + + +class Organization(Base): + """ + SQLAlchemy model class that represents the Organization table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + organization_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the organization. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the organization. + uri (sqlalchemy.sql.schema.Column): Column for the URI of the organization. + """ + + __tablename__ = "Organization" + + organization_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + uri = Column(String) + email = Column(String) + + +class Products(Base): + """ + SQLAlchemy model class that represents the Products table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + product_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the product. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the product. + version (sqlalchemy.sql.schema.Column): Column for the version of the product. + release (sqlalchemy.sql.schema.Column): Column for the release of the product. + owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + """ + + __tablename__ = "Products" + + product_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + version = Column(Float) + release = Column(Integer) + owner_id = Column(Integer, ForeignKey("Organization.organization_id")) + + +class Statuses(Base): + """ + Represents the 'Statuses' table in the database. + + The 'Statuses' table contains information about the different statuses that a benchmark can have. + + Attributes: + status_id (Integer): The unique identifier for the status. This is the primary key in the table. + name (String): The name of the status. + """ + + __tablename__ = "Statuses" + + status_id = Column(Integer, primary_key=True) + name = Column(String) + + +class ArtifactTypes(Base): + """ + SQLAlchemy model class that represents the artifact_types table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + artifact_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + type_name (sqlalchemy.sql.schema.Column): Column for the name of the artifact type. + description (sqlalchemy.sql.schema.Column): Column for the description of the artifact type. + """ + + __tablename__ = "artifact_types" + + artifact_type_id = Column(Integer, primary_key=True) + type_name = Column(String) + description = Column(Text) + + +class BenchmarkArtifacts(Base): + """ + SQLAlchemy model class that represents the benchmark_artifacts table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Benchmarks table, part of the composite primary key. + artifact_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Artifact table, part of the composite primary key. + is_default (sqlalchemy.sql.schema.Column): Column indicating if the artifact is the default one for the benchmark. + """ + + __tablename__ = "benchmark_artifacts" + + benchmark_id = Column( + Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True + ) + artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) + is_default = Column(Boolean) + + +class BenchmarkType(Base): + """ + SQLAlchemy model class that represents the benchmark_type table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the benchmark type. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the benchmark type. + description (sqlalchemy.sql.schema.Column): Column for the description of the benchmark type. + """ + + __tablename__ = "benchmark_type" + + benchmark_type_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + description = Column(Text) diff --git a/sqlalcamey/repository.py b/sqlalcamey/repository.py new file mode 100644 index 000000000..5450ce627 --- /dev/null +++ b/sqlalcamey/repository.py @@ -0,0 +1,729 @@ +# BenchmarkRepository.py +from datetime import date +from sqlalchemy.orm import Session +from SecurityGuidance import Benchmarks +from .models import BenchmarkStatus + + +class BenchmarksRepository: + """ + A repository providing an interface for accessing and manipulating Benchmarks in the database. + + Attributes: + session (Session): The SQLAlchemy session for database operations. + + Methods: + get_benchmark_by_id(benchmark_id: int): Retrieve a benchmark by its ID. + add_benchmark(version: int, release: int, release_date: date, type_id: int, product_id: int, author_id: int, sponsor_id: int, status_id: int): Add a new benchmark to the database. + update_benchmark(benchmark_id: int, version: int, release: int, release_date: date, type_id: int, product_id: int, author_id: int, sponsor_id: int, status_id: int): Update an existing benchmark in the database. + remove_benchmark(benchmark_id: int): Remove an existing benchmark from the database. + get_all_benchmarks(): Retrieve all benchmarks from the database. + """ + + def __init__(self, session: Session): + """ + Initialize a new BenchmarksRepository. + + Args: + session (Session): The SQLAlchemy session to use for database operations. + + Usage: + # First, create a new SQLAlchemy session + from sqlalchemy import create_engine + from sqlalchemy.orm import sessionmaker + + engine = create_engine('sqlite:///benchmarks.db') + Session = sessionmaker(bind=engine) + session = Session() + + # Then, create a new instance of BenchmarksRepository using the session + repo = BenchmarksRepository(session) + """ + self.session = session + + def add_benchmark( + self, + version: int, + release: int, + release_date: date, + type_id: int, + product_id: int, + author_id: int, + status_id: int, + sponsor_id: int = None, + ): + """ + Add a new benchmark to the database. + + Args: + version (int): The version of the benchmark. + release (int): The release of the benchmark. + release_date (date): The release date of the benchmark. + type_id (int): The type ID of the benchmark. + product_id (int): The product ID of the benchmark. + author_id (int): The author ID of the benchmark. + status_id (int): The status ID of the benchmark. + sponsor_id (int, optional): The sponsor ID of the benchmark. Defaults to None. + + Returns: + Benchmarks: The newly created benchmark. + + Usage: + # Create a new instance of BenchmarksRepository + repo = BenchmarksRepository(session) + + # Add a new benchmark + new_benchmark = repo.add_benchmark( + version=1, + release=1, + release_date=date.today(), + type_id=1, + product_id=1, + author_id=1, + status_id=1, + ) + + print(f"Added new benchmark with ID {new_benchmark.benchmark_id}") + """ + new_benchmark = Benchmarks( + version=version, + release=release, + release_date=release_date, + type_id=type_id, + product_id=product_id, + author_id=author_id, + sponsor_id=sponsor_id, + status_id=status_id, + ) + self.session.add(new_benchmark) + self.session.commit() + return new_benchmark + + def get_benchmark_by_id(self, benchmark_id: int): + """ + Retrieve a benchmark by its ID. + + Args: + benchmark_id (int): The ID of the benchmark to retrieve. + + Returns: + Benchmarks: The retrieved benchmark, or None if no benchmark with the given ID exists. + + Usage: + # Create a new instance of BenchmarksRepository + repo = BenchmarksRepository(session) + + # Get a benchmark with ID 1 + benchmark = repo.get_benchmark_by_id(1) + + if benchmark is not None: + print(f"Retrieved benchmark with ID {benchmark.benchmark_id}") + else: + print("No benchmark found with the given ID") + """ + return ( + self.session.query(Benchmarks) + .filter(Benchmarks.benchmark_id == benchmark_id) + .first() + ) + + def get_all_benchmarks(self): + """ + Retrieve all benchmarks from the database. + + Returns: + List[Benchmarks]: A list of all benchmarks. + + Usage: + # Create a new instance of BenchmarksRepository + repo = BenchmarksRepository(session) + + # Get all benchmarks + all_benchmarks = repo.get_all_benchmarks() + + for benchmark in all_benchmarks: + print(f"Benchmark ID: {benchmark.benchmark_id}") + """ + return self.session.query(Benchmarks).all() + + def update_benchmark( + self, + benchmark_id: int, + version: int, + release: int, + release_date: date, + type_id: int, + product_id: int, + author_id: int, + status_id: int, + sponsor_id: int = None, + ): + """ + Update an existing benchmark in the database. + + Args: + benchmark_id (int): The ID of the benchmark to update. + version (int): The new version of the benchmark. + release (int): The new release of the benchmark. + release_date (date): The new release date of the benchmark. + type_id (int): The new type ID of the benchmark. + product_id (int): The new product ID of the benchmark. + author_id (int): The new author ID of the benchmark. + sponsor_id (int, optional): The new sponsor ID of the benchmark. Defaults to None. + status_id (int): The new status ID of the benchmark. + + Returns: + Benchmarks: The updated benchmark, or None if no benchmark with the given ID exists. + + Usage: + # Create a new instance of BenchmarksRepository + repo = BenchmarksRepository(session) + + # Update a benchmark with ID 1 + updated_benchmark = repo.update_benchmark( + benchmark_id=1, + version=1, + release=2, + release_date=date.today(), + type_id=1, + product_id=1, + author_id=1, + sponsor_id=1, + status_id=1, + ) + + if updated_benchmark is not None: + print(f"Updated benchmark with ID {updated_benchmark.benchmark_id}") + else: + print("No benchmark found with the given ID") + """ + benchmark = self.get_benchmark_by_id(benchmark_id) + if benchmark is None: + return None # or you might raise an exception + + attributes = { + "version": version, + "release": release, + "release_date": release_date, + "type_id": type_id, + "product_id": product_id, + "author_id": author_id, + "status_id": status_id, + "sponsor_id": sponsor_id, + } + + for attr, value in attributes.items(): + if value is not None: + setattr(benchmark, attr, value) + + self.session.commit() + return benchmark + + def remove_benchmark_by_id(self, benchmark_id: int): + """ + Remove an existing benchmark from the database. + + Args: + benchmark_id_by_id (benchmark_id: int): The ID of the benchmark to remove. + + Returns: + bool: True if the benchmark was removed, False otherwise. + + Usage: + # Create a new instance of BenchmarksRepository + repo = BenchmarksRepository(session) + + # Remove a benchmark with ID 1 + if repo.remove_benchmark(benchmark_id=1): + print("Benchmark removed successfully") + else: + print("No benchmark found with the given ID") + """ + benchmark = self.get_benchmark_by_id(benchmark_id) + if benchmark is None: + return False + + self.session.delete(benchmark) + self.session.commit() + return True + + +class BenchmarkStatusRepository: + def __init__(self, session): + """ + Initialize a new BenchmarkStatusRepository. + + Args: + session (Session): The SQLAlchemy session to use for database operations. + """ + self.session = session + + def get_status_by_id(self, status_id: int): + """ + Retrieve a benchmark status by its ID. + + Args: + status_id (int): The ID of the benchmark status to retrieve. + + Returns: + BenchmarkStatus: The benchmark status with the given ID, or None if no such benchmark status exists. + """ + return self.session.query(BenchmarkStatus).get(status_id) + + def add_status(self, name: str): + """ + Add a new benchmark status to the database. + + Args: + name (str): The name of the benchmark status. + + Returns: + BenchmarkStatus: The newly created benchmark status. + """ + new_status = BenchmarkStatus(name=name) + self.session.add(new_status) + self.session.commit() + return new_status + + def update_status(self, status_id: int, name: str): + """ + Update an existing benchmark status in the database. + + Args: + status_id (int): The ID of the benchmark status to update. + name (str): The new name of the benchmark status. + + Returns: + BenchmarkStatus: The updated benchmark status, or None if no benchmark status with the given ID exists. + """ + status = self.session.query(BenchmarkStatus).get(status_id) + if status is not None: + status.name = name + self.session.commit() + return status + + def remove_status(self, status_id: int): + """ + Remove an existing benchmark status from the database. + + Args: + status_id (int): The ID of the benchmark status to remove. + + Returns: + bool: True if the benchmark status was removed, False otherwise. + """ + status = self.session.query(BenchmarkStatus).get(status_id) + if status is not None: + self.session.delete(status) + self.session.commit() + return True + return False + + def get_all_statuses(self): + """ + Retrieve all benchmark statuses from the database. + + Returns: + List[BenchmarkStatus]: A list of all benchmark statuses. + """ + return self.session.query(BenchmarkStatus).all() + + +class SecurityGuidance: + @staticmethod + def get_column_by_id(session, Table, Column, id): + """ + This function retrieves a specific column value for a record in a table, given the record's ID. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + Table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. + Column (sqlalchemy.sql.schema.Column): The column in the table that you want to retrieve. + id (int): The ID of the record you want to retrieve. + + Returns: + Any: The value of the specified column for the record with the given ID. If no such record exists, returns None. + + Usage: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get the name of the status with ID 1 + name = SecurityGuidanceUtils.get_column_by_id(session, Statuses, Statuses.name, 1) + print(name) + """ + result = session.query(Column).filter(Table.status_id == id).first() + if result is not None: + return result[0] + else: + return None + + @staticmethod + def add_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Adds a new benchmark artifact to the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + new_benchmark_artifact = BenchmarkArtifacts( + benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default + ) + session.add(new_benchmark_artifact) + session.commit() + + @staticmethod + def update_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Updates an existing benchmark artifact in the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = ( + session.query(BenchmarkArtifacts) + .filter_by(benchmark_id=benchmark_id, artifact_id=artifact_id) + .first() + ) + if benchmark_artifact is not None: + benchmark_artifact.is_default = is_default + session.commit() + + @staticmethod + def create_artifact( + session: Session, + type_id: int, + owner_id: int, + name: str, + location: str, + secondary_location: str, + created_at: date, + raw_data: str, + ): + """ + Creates a new Artifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_id (int): The ID of the artifact type. + owner_id (int): The ID of the owner of the artifact. + name (str): The name of the artifact. + location (str): The primary location of the artifact. + secondary_location (str): The secondary location of the artifact. + created_at (date): The date the artifact was created. + raw_data (str): The raw data of the artifact. + + Returns: + None + """ + artifact = Artifact( + type_id=type_id, + owner_id=owner_id, + name=name, + location=location, + secondary_location=secondary_location, + created_at=created_at, + raw_data=raw_data, + ) + session.add(artifact) + session.commit() + + def get_artifact_by_id(session: Session, artifact_id: int): + """ + Retrieves an Artifact from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_id (int): The ID of the artifact to retrieve. + + Returns: + Artifact: The retrieved Artifact, or None if no Artifact with the given ID exists. + """ + return ( + session.query(Artifact).filter(Artifact.artifact_id == artifact_id).first() + ) + + def create_benchmark( + session: Session, + version: int, + release: int, + release_date: date, + type_id: int, + product_id: int, + author_id: int, + sponsor_id: int, + status_id: int, + ): + """ + Creates a new Benchmark and adds it to the database. + + Args: + session (Session): The session to use for database operations. + version (int): The version of the benchmark. + release (int): The release of the benchmark. + release_date (date): The release date of the benchmark. + type_id (int): The ID of the benchmark type. + product_id (int): The ID of the product associated with the benchmark. + author_id (int): The ID of the author of the benchmark. + sponsor_id (int): The ID of the sponsor of the benchmark. + status_id (int): The ID of the status of the benchmark. + + Returns: + None + """ + benchmark = Benchmarks( + version=version, + release=release, + release_date=release_date, + type_id=type_id, + product_id=product_id, + author_id=author_id, + sponsor_id=sponsor_id, + status_id=status_id, + ) + session.add(benchmark) + session.commit() + + def get_benchmark_by_id(session: Session, benchmark_id: int): + """ + Retrieves a Benchmark from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark to retrieve. + + Returns: + Benchmarks: The retrieved Benchmark, or None if no Benchmark with the given ID exists. + """ + return ( + session.query(Benchmarks) + .filter(Benchmarks.benchmark_id == benchmark_id) + .first() + ) + + def create_organization( + session: Session, long_name: str, short_name: str, uri: str, email: str + ): + """ + Creates a new Organization and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the organization. + short_name (str): The short name of the organization. + uri (str): The URI of the organization. + email (str): The email of the organization. + + Returns: + None + """ + organization = Organization( + long_name=long_name, short_name=short_name, uri=uri, email=email + ) + session.add(organization) + session.commit() + + def get_organization_by_id(session: Session, organization_id: int): + """ + Retrieves an Organization from the database by its ID. + + Args: + session (Session): The session to use for database operations. + organization_id (int): The ID of the organization to retrieve. + + Returns: + Organization: The retrieved Organization, or None if no Organization with the given ID exists. + """ + return ( + session.query(Organization) + .filter(Organization.organization_id == organization_id) + .first() + ) + + def create_product( + session: Session, + long_name: str, + short_name: str, + version: float, + release: int, + owner_id: int, + ): + """ + Creates a new Product and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the product. + short_name (str): The short name of the product. + version (float): The version of the product. + release (int): The release of the product. + owner_id (int): The ID of the owner of the product. + + Returns: + None + """ + product = Products( + long_name=long_name, + short_name=short_name, + version=version, + release=release, + owner_id=owner_id, + ) + session.add(product) + session.commit() + + def get_product_by_id(session: Session, product_id: int): + """ + Retrieves a Product from the database by its ID. + + Args: + session (Session): The session to use for database operations. + product_id (int): The ID of the product to retrieve. + + Returns: + Products: The retrieved Product, or None if no Product with the given ID exists. + """ + return session.query(Products).filter(Products.product_id == product_id).first() + + def create_artifact_type(session: Session, type_name: str, description: str): + """ + Creates a new ArtifactType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_name (str): The name of the artifact type. + description (str): The description of the artifact type. + + Returns: + None + """ + artifact_type = ArtifactTypes(type_name=type_name, description=description) + session.add(artifact_type) + session.commit() + + def get_artifact_type_by_id(session: Session, artifact_type_id: int): + """ + Retrieves an ArtifactType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_type_id (int): The ID of the artifact type to retrieve. + + Returns: + ArtifactTypes: The retrieved ArtifactType, or None if no ArtifactType with the given ID exists. + """ + return ( + session.query(ArtifactTypes) + .filter(ArtifactTypes.artifact_type_id == artifact_type_id) + .first() + ) + + def create_benchmark_artifact( + session: Session, benchmark_id: int, artifact_id: int, is_default: bool + ): + """ + Creates a new BenchmarkArtifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = BenchmarkArtifacts( + benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default + ) + session.add(benchmark_artifact) + session.commit() + + def get_benchmark_artifact_by_ids( + session: Session, benchmark_id: int, artifact_id: int + ): + """ + Retrieves a BenchmarkArtifact from the database by its benchmark and artifact IDs. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + + Returns: + BenchmarkArtifacts: The retrieved BenchmarkArtifact, or None if no BenchmarkArtifact with the given IDs exists. + """ + return ( + session.query(BenchmarkArtifacts) + .filter( + BenchmarkArtifacts.benchmark_id == benchmark_id, + BenchmarkArtifacts.artifact_id == artifact_id, + ) + .first() + ) + + def create_benchmark_type( + session: Session, long_name: str, short_name: str, description: str + ): + """ + Creates a new BenchmarkType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the benchmark type. + short_name (str): The short name of the benchmark type. + description (str): The description of the benchmark type. + + Returns: + None + """ + benchmark_type = BenchmarkType( + long_name=long_name, short_name=short_name, description=description + ) + session.add(benchmark_type) + session.commit() + + def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): + """ + Retrieves a BenchmarkType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_type_id (int): The ID of the benchmark type to retrieve. + + Returns: + BenchmarkType: The retrieved BenchmarkType, or None if no BenchmarkType with the given ID exists. + + Usage: + from sqlalchemy.orm import Session + from models import BenchmarkType + + session = Session() + benchmark_type_id = 1 + benchmark_type = get_benchmark_type_by_id(session, benchmark_type_id) + if benchmark_type is not None: + print(f"Retrieved benchmark type: {benchmark_type.long_name}") + else: + print("No benchmark type found with the given ID.") + """ + return ( + session.query(BenchmarkType) + .filter(BenchmarkType.benchmark_type_id == benchmark_type_id) + .first() + ) + + +class ArtifactsRepository: + pass diff --git a/scripts/sqla.py b/sqlalcamey/sqla.py similarity index 100% rename from scripts/sqla.py rename to sqlalcamey/sqla.py diff --git a/scripts/test.py b/sqlalcamey/test.py similarity index 100% rename from scripts/test.py rename to sqlalcamey/test.py From 6b6d124bfa69bbce712f2b9acbfefa7be22b8fe1 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Mon, 18 Dec 2023 01:31:08 -0500 Subject: [PATCH 21/29] further updates to the python interface, documentation, and formatting Signed-off-by: Aaron Lippold --- .gitignore | 51 ++++++ sqlalcamey/interfaces.py | 283 ++++++++++++++++++++++++++--- sqlalcamey/model2.py | 4 +- sqlalcamey/{model.py => models.py} | 7 +- sqlalcamey/repository.py | 94 ++-------- sqlalcamey/sqla.py | 1 - sqlalcamey/test.py | 8 +- sqlalcamey/utils.py | 168 +++++++++++++++++ 8 files changed, 491 insertions(+), 125 deletions(-) rename sqlalcamey/{model.py => models.py} (97%) create mode 100644 sqlalcamey/utils.py diff --git a/.gitignore b/.gitignore index e01e47e4a..1440f7b43 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,54 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +bin/ +build/ +develop-eggs/ +dist/ +eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +.tox/ +.coverage +.cache +nosetests.xml +coverage.xml + +# Translations +*.mo + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# Rope +.ropeproject + +# Django stuff: +*.log +*.pot + +# Sphinx documentation +docs/_build/ + node_modules venv .DS_Store diff --git a/sqlalcamey/interfaces.py b/sqlalcamey/interfaces.py index cfb0b23cb..76758eb04 100644 --- a/sqlalcamey/interfaces.py +++ b/sqlalcamey/interfaces.py @@ -1,32 +1,16 @@ -class SecurityGuidance: - @staticmethod - def get_column_by_id(session, Table, Column, id): - """ - This function retrieves a specific column value for a record in a table, given the record's ID. +from sqlalchemy.orm import Session +from .models import ( + BenchmarkArtifacts, + Artifact, + Benchmarks, + Organization, + Products, + ArtifactTypes, + BenchmarkType, +) - Args: - session (sqlalchemy.orm.Session): The session object used to execute database queries. - Table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. - Column (sqlalchemy.sql.schema.Column): The column in the table that you want to retrieve. - id (int): The ID of the record you want to retrieve. - - Returns: - Any: The value of the specified column for the record with the given ID. If no such record exists, returns None. - - Usage: - from sqlalchemy.orm import Session - # create a new session - session = Session() - # get the name of the status with ID 1 - name = SecurityGuidanceUtils.get_column_by_id(session, Statuses, Statuses.name, 1) - print(name) - """ - result = session.query(Column).filter(Table.status_id == id).first() - if result is not None: - return result[0] - else: - return None +class SecurityGuidance: @staticmethod def add_benchmark_artifact(session, benchmark_id, artifact_id, is_default): """ @@ -332,7 +316,8 @@ def get_benchmark_artifact_by_ids( artifact_id (int): The ID of the artifact. Returns: - BenchmarkArtifacts: The retrieved BenchmarkArtifact, or None if no BenchmarkArtifact with the given IDs exists. + BenchmarkArtifacts: The retrieved BenchmarkArtifact, or None if no BenchmarkArtifact \\ + with the given IDs exists. """ return ( session.query(BenchmarkArtifacts) @@ -373,7 +358,8 @@ def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): benchmark_type_id (int): The ID of the benchmark type to retrieve. Returns: - BenchmarkType: The retrieved BenchmarkType, or None if no BenchmarkType with the given ID exists. + BenchmarkType: The retrieved BenchmarkType, or None if no BenchmarkType \\ + with the given ID exists. Usage: from sqlalchemy.orm import Session @@ -392,3 +378,242 @@ def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): .filter(BenchmarkType.benchmark_type_id == benchmark_type_id) .first() ) + + +""" +To interact with these models: + +1. One-to-Many Relationships: +- Organization to Artifact: An organization can own multiple artifacts. +- Organization to Products: An organization can own multiple products. +- Organization to Benchmarks (as author or sponsor): An organization can author or \\ + sponsor multiple benchmarks. + +For these relationships, you might need functions to: + +- Get all artifacts owned by an organization. +- Get all products owned by an organization. +- Get all benchmarks authored or sponsored by an organization. + +2. Many-to-Many Relationships: +- Benchmarks to Artifact through BenchmarkArtifacts: A benchmark can have multiple artifacts, \\ + and an artifact can be associated with multiple benchmarks. + +For this relationship, you might need functions to: + +- Get all artifacts associated with a benchmark. +- Get all benchmarks associated with an artifact. +- Associate an artifact with a benchmark. +- Disassociate an artifact from a benchmark. +""" + + +def get_artifacts_by_organization(session: Session, organization_id: int): + """ + Retrieves all artifacts owned by a specific organization. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + organization_id (int): The ID of the organization whose artifacts you want to retrieve. + + Returns: + List[Artifact]: A list of Artifact objects owned by the organization. + If the organization does not own any artifacts, returns an empty list. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get all artifacts owned by the organization with ID 1 + artifacts = get_artifacts_by_organization(session, 1) + for artifact in artifacts: + print(artifact.name) + """ + return session.query(Artifact).filter(Artifact.owner_id == organization_id).all() + + +def get_products_by_organization(session: Session, organization_id: int): + """ + Retrieves all products owned by a specific organization. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + organization_id (int): The ID of the organization whose products you want to retrieve. + + Returns: + List[Products]: A list of Products objects owned by the organization. + If the organization does not own any products, returns an empty list. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get all products owned by the organization with ID 1 + products = get_products_by_organization(session, 1) + for product in products: + print(product.name) + """ + return session.query(Products).filter(Products.owner_id == organization_id).all() + + +def get_benchmarks_by_author(session: Session, author_id: int): + """ + Retrieves all benchmarks authored by a specific organization. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + author_id (int): The ID of the organization whose authored benchmarks you want to retrieve. + + Returns: + List[Benchmarks]: A list of Benchmarks objects authored by the organization. + If the organization has not authored any benchmarks, returns an empty list. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get all benchmarks authored by the organization with ID 1 + benchmarks = get_benchmarks_by_author(session, 1) + for benchmark in benchmarks: + print(benchmark.name) + """ + return session.query(Benchmarks).filter(Benchmarks.author_id == author_id).all() + + +def get_benchmarks_by_sponsor(session: Session, sponsor_id: int): + """ + Retrieves all benchmarks sponsored by a specific organization. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + sponsor_id (int): The ID of the organization whose sponsored benchmarks you want to retrieve. + + Returns: + List[Benchmarks]: A list of Benchmarks objects sponsored by the organization. + If the organization has not sponsored any benchmarks, returns an empty list. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get all benchmarks sponsored by the organization with ID 1 + benchmarks = get_benchmarks_by_sponsor(session, 1) + for benchmark in benchmarks: + print(benchmark.name) + """ + return session.query(Benchmarks).filter(Benchmarks.sponsor_id == sponsor_id).all() + + +def get_artifacts_by_benchmark(session: Session, benchmark_id: int): + """ + Retrieves all artifacts associated with a specific benchmark. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark whose associated artifacts you want to retrieve. + + Returns: + List[Artifact]: A list of Artifact objects associated with the benchmark. If the benchmark \\ + does not have any associated artifacts, returns an empty list. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get all artifacts associated with the benchmark with ID 1 + artifacts = get_artifacts_by_benchmark(session, 1) + for artifact in artifacts: + print(artifact.name) + """ + return ( + session.query(Artifact) + .join(BenchmarkArtifacts) + .filter(BenchmarkArtifacts.benchmark_id == benchmark_id) + .all() + ) + + +def get_benchmarks_by_artifact(session: Session, artifact_id: int): + """ + Retrieves all benchmarks associated with a specific artifact. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + artifact_id (int): The ID of the artifact whose associated benchmarks you want to retrieve. + + Returns: + List[Benchmarks]: A list of Benchmarks objects associated with the artifact. If the artifact \\ + is not associated with any benchmarks, returns an empty list. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # get all benchmarks associated with the artifact with ID 1 + benchmarks = get_benchmarks_by_artifact(session, 1) + for benchmark in benchmarks: + print(benchmark.name) + """ + return ( + session.query(Benchmarks) + .join(BenchmarkArtifacts) + .filter(BenchmarkArtifacts.artifact_id == artifact_id) + .all() + ) + + +def associate_artifact_with_benchmark( + session: Session, benchmark_id: int, artifact_id: int, is_default: bool +): + """ + Associates an artifact with a benchmark. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark with which you want to associate the artifact. + artifact_id (int): The ID of the artifact you want to associate with the benchmark. + is_default (bool): A boolean indicating whether the artifact is a default artifact for the benchmark. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # associate the artifact with ID 1 with the benchmark with ID 1, and set it as a default artifact + associate_artifact_with_benchmark(session, 1, 1, True) + """ + association = BenchmarkArtifacts( + benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default + ) + session.add(association) + session.commit() + + +def disassociate_artifact_from_benchmark( + session: Session, benchmark_id: int, artifact_id: int +): + """ + Disassociates an artifact from a benchmark. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark from which you want to disassociate the artifact. + artifact_id (int): The ID of the artifact you want to disassociate from the benchmark. + + Example: + from sqlalchemy.orm import Session + # create a new session + session = Session() + # disassociate the artifact with ID 1 from the benchmark with ID 1 + disassociate_artifact_from_benchmark(session, 1, 1) + """ + association = ( + session.query(BenchmarkArtifacts) + .filter( + BenchmarkArtifacts.benchmark_id == benchmark_id, + BenchmarkArtifacts.artifact_id == artifact_id, + ) + .first() + ) + if association: + session.delete(association) + session.commit() diff --git a/sqlalcamey/model2.py b/sqlalcamey/model2.py index 8b51b92ea..e28e26cfc 100644 --- a/sqlalcamey/model2.py +++ b/sqlalcamey/model2.py @@ -157,9 +157,7 @@ class BenchmarkArtifacts(Base): __tablename__ = "benchmark_artifacts" - benchmark_id = Column( - Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True - ) + benchmark_id = Column(Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True) artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) is_default = Column(Boolean) diff --git a/sqlalcamey/model.py b/sqlalcamey/models.py similarity index 97% rename from sqlalcamey/model.py rename to sqlalcamey/models.py index 8b51b92ea..d75b2d055 100644 --- a/sqlalcamey/model.py +++ b/sqlalcamey/models.py @@ -1,7 +1,6 @@ from sqlalchemy import Column, Integer, String, Date, ForeignKey, Boolean, Float, Text -from sqlalchemy.orm import relationship +# from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import Session Base = declarative_base() @@ -157,9 +156,7 @@ class BenchmarkArtifacts(Base): __tablename__ = "benchmark_artifacts" - benchmark_id = Column( - Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True - ) + benchmark_id = Column(Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True) artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) is_default = Column(Boolean) diff --git a/sqlalcamey/repository.py b/sqlalcamey/repository.py index 5450ce627..002981c22 100644 --- a/sqlalcamey/repository.py +++ b/sqlalcamey/repository.py @@ -1,4 +1,4 @@ -# BenchmarkRepository.py +# repository.py from datetime import date from sqlalchemy.orm import Session from SecurityGuidance import Benchmarks @@ -121,11 +121,7 @@ def get_benchmark_by_id(self, benchmark_id: int): else: print("No benchmark found with the given ID") """ - return ( - self.session.query(Benchmarks) - .filter(Benchmarks.benchmark_id == benchmark_id) - .first() - ) + return self.session.query(Benchmarks).filter(Benchmarks.benchmark_id == benchmark_id).first() def get_all_benchmarks(self): """ @@ -328,36 +324,6 @@ def get_all_statuses(self): """ return self.session.query(BenchmarkStatus).all() - -class SecurityGuidance: - @staticmethod - def get_column_by_id(session, Table, Column, id): - """ - This function retrieves a specific column value for a record in a table, given the record's ID. - - Args: - session (sqlalchemy.orm.Session): The session object used to execute database queries. - Table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. - Column (sqlalchemy.sql.schema.Column): The column in the table that you want to retrieve. - id (int): The ID of the record you want to retrieve. - - Returns: - Any: The value of the specified column for the record with the given ID. If no such record exists, returns None. - - Usage: - from sqlalchemy.orm import Session - # create a new session - session = Session() - # get the name of the status with ID 1 - name = SecurityGuidanceUtils.get_column_by_id(session, Statuses, Statuses.name, 1) - print(name) - """ - result = session.query(Column).filter(Table.status_id == id).first() - if result is not None: - return result[0] - else: - return None - @staticmethod def add_benchmark_artifact(session, benchmark_id, artifact_id, is_default): """ @@ -393,9 +359,7 @@ def update_benchmark_artifact(session, benchmark_id, artifact_id, is_default): None """ benchmark_artifact = ( - session.query(BenchmarkArtifacts) - .filter_by(benchmark_id=benchmark_id, artifact_id=artifact_id) - .first() + session.query(BenchmarkArtifacts).filter_by(benchmark_id=benchmark_id, artifact_id=artifact_id).first() ) if benchmark_artifact is not None: benchmark_artifact.is_default = is_default @@ -451,9 +415,7 @@ def get_artifact_by_id(session: Session, artifact_id: int): Returns: Artifact: The retrieved Artifact, or None if no Artifact with the given ID exists. """ - return ( - session.query(Artifact).filter(Artifact.artifact_id == artifact_id).first() - ) + return session.query(Artifact).filter(Artifact.artifact_id == artifact_id).first() def create_benchmark( session: Session, @@ -507,15 +469,9 @@ def get_benchmark_by_id(session: Session, benchmark_id: int): Returns: Benchmarks: The retrieved Benchmark, or None if no Benchmark with the given ID exists. """ - return ( - session.query(Benchmarks) - .filter(Benchmarks.benchmark_id == benchmark_id) - .first() - ) + return session.query(Benchmarks).filter(Benchmarks.benchmark_id == benchmark_id).first() - def create_organization( - session: Session, long_name: str, short_name: str, uri: str, email: str - ): + def create_organization(session: Session, long_name: str, short_name: str, uri: str, email: str): """ Creates a new Organization and adds it to the database. @@ -529,9 +485,7 @@ def create_organization( Returns: None """ - organization = Organization( - long_name=long_name, short_name=short_name, uri=uri, email=email - ) + organization = Organization(long_name=long_name, short_name=short_name, uri=uri, email=email) session.add(organization) session.commit() @@ -546,11 +500,7 @@ def get_organization_by_id(session: Session, organization_id: int): Returns: Organization: The retrieved Organization, or None if no Organization with the given ID exists. """ - return ( - session.query(Organization) - .filter(Organization.organization_id == organization_id) - .first() - ) + return session.query(Organization).filter(Organization.organization_id == organization_id).first() def create_product( session: Session, @@ -624,15 +574,9 @@ def get_artifact_type_by_id(session: Session, artifact_type_id: int): Returns: ArtifactTypes: The retrieved ArtifactType, or None if no ArtifactType with the given ID exists. """ - return ( - session.query(ArtifactTypes) - .filter(ArtifactTypes.artifact_type_id == artifact_type_id) - .first() - ) + return session.query(ArtifactTypes).filter(ArtifactTypes.artifact_type_id == artifact_type_id).first() - def create_benchmark_artifact( - session: Session, benchmark_id: int, artifact_id: int, is_default: bool - ): + def create_benchmark_artifact(session: Session, benchmark_id: int, artifact_id: int, is_default: bool): """ Creates a new BenchmarkArtifact and adds it to the database. @@ -651,9 +595,7 @@ def create_benchmark_artifact( session.add(benchmark_artifact) session.commit() - def get_benchmark_artifact_by_ids( - session: Session, benchmark_id: int, artifact_id: int - ): + def get_benchmark_artifact_by_ids(session: Session, benchmark_id: int, artifact_id: int): """ Retrieves a BenchmarkArtifact from the database by its benchmark and artifact IDs. @@ -674,9 +616,7 @@ def get_benchmark_artifact_by_ids( .first() ) - def create_benchmark_type( - session: Session, long_name: str, short_name: str, description: str - ): + def create_benchmark_type(session: Session, long_name: str, short_name: str, description: str): """ Creates a new BenchmarkType and adds it to the database. @@ -689,9 +629,7 @@ def create_benchmark_type( Returns: None """ - benchmark_type = BenchmarkType( - long_name=long_name, short_name=short_name, description=description - ) + benchmark_type = BenchmarkType(long_name=long_name, short_name=short_name, description=description) session.add(benchmark_type) session.commit() @@ -718,11 +656,7 @@ def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): else: print("No benchmark type found with the given ID.") """ - return ( - session.query(BenchmarkType) - .filter(BenchmarkType.benchmark_type_id == benchmark_type_id) - .first() - ) + return session.query(BenchmarkType).filter(BenchmarkType.benchmark_type_id == benchmark_type_id).first() class ArtifactsRepository: diff --git a/sqlalcamey/sqla.py b/sqlalcamey/sqla.py index 448a2b9f0..6ad87ed78 100644 --- a/sqlalcamey/sqla.py +++ b/sqlalcamey/sqla.py @@ -1,5 +1,4 @@ # https://www.youtube.com/watch?v=1Va493SMTcY&t=2637s - from sqlalchemy.ext.automap import automap_base from sqlalchemy.orm import Session from sqlalchemy import create_engine diff --git a/sqlalcamey/test.py b/sqlalcamey/test.py index 2a39d79d0..bd8cd4748 100644 --- a/sqlalcamey/test.py +++ b/sqlalcamey/test.py @@ -38,13 +38,7 @@ def process_stig(stig, type="zip"): print(os.getcwd()) print("Processing STIG: " + stig) - print( - json_results["Title"] - + " Version: " - + json_results["Version"] - + " Release: " - + json_results["Release"] - ) + print(json_results["Title"] + " Version: " + json_results["Version"] + " Release: " + json_results["Release"]) print("\n") return json_results diff --git a/sqlalcamey/utils.py b/sqlalcamey/utils.py new file mode 100644 index 000000000..4c68049e3 --- /dev/null +++ b/sqlalcamey/utils.py @@ -0,0 +1,168 @@ +# utils.py +from typing import Type, Optional, Any, Dict, List, Union +from sqlalchemy.orm import Session +from sqlalchemy.sql.schema import Column +from sqlalchemy.ext.declarative import DeclarativeMeta + + +# The `table:`` parameter is used, but it might not be immediately obvious where. + +# In SQLAlchemy, when you perform a query, you specify the model class +# (which represents a table in your database) as an argument to session.query(). +# In this function, table is used in this way. + +# The line session.query(column).filter(filter_column == id).first() is where table +# is used indirectly. Here, column and filter_column are expected to be attributes +# of an instance of table. When you pass Statuses.name and Statuses.status_id as +# column and filter_column respectively, you're actually passing attributes of +# the Statuses model, which represents a table in your database. + +# So, while table isn't explicitly mentioned in the function body, it's used to +# derive the column and filter_column parameters. The function wouldn't work correctly +# if column and filter_column weren't attributes of table. + + +def get_column_value_by_id( + session: Session, + table: Type[DeclarativeMeta], + column: Column, + filter_column: Column, + id: int, +) -> Optional[Any]: + """ + Retrieves a specific column value for a record in a table, given the record's ID. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. + column (sqlalchemy.sql.schema.Column): The column in the table that you want to retrieve. + filter_column (sqlalchemy.sql.schema.Column): The column in the table that you want to filter on. + id (int): The ID of the record you want to retrieve. + + Returns: + Any: The value of the specified column for the record with the given ID. If no such record exists, returns None. + + Example: + from sqlalchemy.orm import Session + # the table from models you want to access + from .models import Statuses + # create a new session + session = Session() + # get the name of the status with ID 1 + name = get_column_value_by_id(session, Statuses, Statuses.name, Statuses.status_id, 1) + print(name) + """ + result = session.query(column).filter(filter_column == id).first() + if result is not None: + return result[0] + else: + return None + + +def update_column_value_by_id( + session: Session, + table: Type[DeclarativeMeta], + column: Column, + filter_column: Column, + id: int, + new_value: Any, +) -> None: + """ + Updates a specific column value for a record in a table, given the record's ID. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. + column (sqlalchemy.sql.schema.Column): The column in the table that you want to update. + filter_column (sqlalchemy.sql.schema.Column): The column in the table that you want to filter on. + id (int): The ID of the record you want to update. + new_value (Any): The new value that you want to set for the specified column. + + Example: + from sqlalchemy.orm import Session + from .models import Statuses + # create a new session + session = Session() + # update the name of the status with ID 1 + update_column_value_by_id(session, Statuses, Statuses.name, Statuses.status_id, 1, 'New Name') + """ + record = session.query(table).filter(filter_column == id).first() + if record is not None: + setattr(record, column.name, new_value) + session.commit() + + +def get_values_in_row_by_id( + session: Session, + table: Type[DeclarativeMeta], + columns: Union[Dict[str, Column], List[Column]], + filter_column: Column, + id: int, +) -> Optional[Union[Dict[str, Any], List[Any]]]: + """ + Retrieves specific column values for a record in a table, given the record's ID. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. + columns (Union[Dict[str, sqlalchemy.sql.schema.Column], List[sqlalchemy.sql.schema.Column]]): Either a dictionary where the keys are the names of the columns you want to retrieve and the values are the corresponding Column objects, or a list of Column objects. + filter_column (sqlalchemy.sql.schema.Column): The column in the table that you want to filter on. + id (int): The ID of the record you want to retrieve. + + Returns: + Union[Dict[str, Any], List[Any]]: + If columns is a dictionary, returns a dictionary where the keys are the names of the columns and the values are the values of those columns for the record with the given ID. + If columns is a list, returns a list of the values of the specified columns for the record with the given ID. If no such record exists, returns None. + + Example: + from sqlalchemy.orm import Session + from .models import Statuses + # create a new session + session = Session() + + # get some values in the row with ID 1 using a dictionary of columns + values_dict = get_values_in_row_by_id(session, Statuses, {'name': Statuses.name, 'status': Statuses.status}, Statuses.status_id, 1) + print(values_dict) + + # get some values in the row with ID 1 using a list of columns + values_list = get_values_in_row_by_id(session, Statuses, [Statuses.name, Statuses.status], Statuses.status_id, 1) + print(values_list) + """ + if isinstance(columns, dict): + record = session.query(*columns.values()).filter(filter_column == id).first() + if record is not None: + return {key: value for key, value in zip(columns.keys(), record)} + elif isinstance(columns, list): + record = session.query(*columns).filter(filter_column == id).first() + if record is not None: + return list(record) + else: + return None + + +def get_all_values_in_row_by_id( + session: Session, table: Type[DeclarativeMeta], filter_column: Column, id: int +) -> Optional[DeclarativeMeta]: + """ + Retrieves all column values for a record in a table, given the record's ID. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + table (sqlalchemy.ext.declarative.api.DeclarativeMeta): The SQLAlchemy model class representing the table. + filter_column (sqlalchemy.sql.schema.Column): The column in the table that you want to filter on. + id (int): The ID of the record you want to retrieve. + + Returns: + DeclarativeMeta: An instance of the table class representing the record with the given ID. If no such record exists, returns None. + + Example: + from sqlalchemy.orm import Session + from .models import Statuses + # create a new session + session = Session() + # get all values in the row with ID 1 + row = get_all_values_in_row_by_id(session, Statuses, Statuses.status_id, 1) + print(row) + """ + record = session.query(table).filter(filter_column == id).first() + return record From 84b42ba31987047811a79b39638b96fb3ece3efa Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Mon, 18 Dec 2023 01:52:21 -0500 Subject: [PATCH 22/29] started adding tests Signed-off-by: Aaron Lippold --- requirements.txt | 1 + sqlalcamey/tests/__init__.py | 0 .../test_associate_artifact_with_benchmark.py | 25 ++++++++++++++ ...st_disassociate_artifact_from_benchmark.py | 33 +++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 sqlalcamey/tests/__init__.py create mode 100644 sqlalcamey/tests/test_associate_artifact_with_benchmark.py create mode 100644 sqlalcamey/tests/test_disassociate_artifact_from_benchmark.py diff --git a/requirements.txt b/requirements.txt index a03c9807d..558e10eda 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ ipdb stig_parser==1.1.1 libsql_client sqlalchemy +pytest diff --git a/sqlalcamey/tests/__init__.py b/sqlalcamey/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/sqlalcamey/tests/test_associate_artifact_with_benchmark.py b/sqlalcamey/tests/test_associate_artifact_with_benchmark.py new file mode 100644 index 000000000..9d0857d0c --- /dev/null +++ b/sqlalcamey/tests/test_associate_artifact_with_benchmark.py @@ -0,0 +1,25 @@ +import unittest +from unittest.mock import Mock, patch +from sqlalchemy.orm import Session +from ..interfaces import associate_artifact_with_benchmark +from ..models import BenchmarkArtifacts + + +class TestAssociateArtifactWithBenchmark(unittest.TestCase): + @patch("sqlalchemy.orm.Session") + def test_associate_artifact_with_benchmark(self, mock_session): + # Arrange + mock_association = Mock(spec=BenchmarkArtifacts) + mock_session.add.return_value = None + mock_session.commit.return_value = None + + # Act + associate_artifact_with_benchmark(mock_session, 1, 1, True) + + # Assert + mock_session.add.assert_called_once() + mock_session.commit.assert_called_once() + + +if __name__ == "__main__": + unittest.main() diff --git a/sqlalcamey/tests/test_disassociate_artifact_from_benchmark.py b/sqlalcamey/tests/test_disassociate_artifact_from_benchmark.py new file mode 100644 index 000000000..6c9415e7f --- /dev/null +++ b/sqlalcamey/tests/test_disassociate_artifact_from_benchmark.py @@ -0,0 +1,33 @@ +import unittest +from unittest.mock import Mock, patch +from sqlalchemy.orm import Session +from ..interfaces import disassociate_artifact_from_benchmark +from ..models import BenchmarkArtifacts + + +class TestDisassociateArtifactFromBenchmark(unittest.TestCase): + @patch("sqlalchemy.orm.Session") + def test_disassociate_artifact_from_benchmark(self, mock_session): + # Arrange + mock_association = Mock(spec=BenchmarkArtifacts) + mock_session.query.return_value.filter.return_value.first.return_value = ( + mock_association + ) + mock_session.delete.return_value = None + mock_session.commit.return_value = None + + # Act + disassociate_artifact_from_benchmark(mock_session, 1, 1) + + # Assert + mock_session.query.assert_called_once_with(BenchmarkArtifacts) + mock_session.query.return_value.filter.assert_called_once_with( + BenchmarkArtifacts.benchmark_id == 1, + BenchmarkArtifacts.artifact_id == 1, + ) + mock_session.delete.assert_called_once_with(mock_association) + mock_session.commit.assert_called_once() + + +if __name__ == "__main__": + unittest.main() From f974c9d220763b6f23bc85dbbce9e3a64788969e Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Tue, 19 Dec 2023 04:03:55 -0500 Subject: [PATCH 23/29] finished the models and 90% of the interfaces, still have some 1-to-1 and 1-to-many to pull from the interfaces.py Signed-off-by: Aaron Lippold --- notes-on-data-processing.txt | 69 + .../mitre-saf-security-benchmarks.sql | 108 - .../schema/mitre-saf-security-benchmarks.sql | 189 +- sqlalcamey/Makefile | 20 + sqlalcamey/TODO | 1 + sqlalcamey/_build/doctrees/environment.pickle | Bin 0 -> 18174 bytes sqlalcamey/_build/doctrees/index.doctree | Bin 0 -> 5193 bytes sqlalcamey/_build/html/.buildinfo | 4 + sqlalcamey/_build/html/_sources/index.rst.txt | 20 + sqlalcamey/_build/html/_static/alabaster.css | 703 ++++++ sqlalcamey/_build/html/_static/basic.css | 925 ++++++++ sqlalcamey/_build/html/_static/custom.css | 1 + sqlalcamey/_build/html/_static/doctools.js | 156 ++ .../html/_static/documentation_options.js | 13 + sqlalcamey/_build/html/_static/file.png | Bin 0 -> 286 bytes .../_build/html/_static/language_data.js | 199 ++ sqlalcamey/_build/html/_static/minus.png | Bin 0 -> 90 bytes sqlalcamey/_build/html/_static/plus.png | Bin 0 -> 90 bytes sqlalcamey/_build/html/_static/pygments.css | 84 + sqlalcamey/_build/html/_static/searchtools.js | 574 +++++ .../_build/html/_static/sphinx_highlight.js | 154 ++ sqlalcamey/_build/html/genindex.html | 98 + sqlalcamey/_build/html/index.html | 109 + sqlalcamey/_build/html/objects.inv | 7 + sqlalcamey/_build/html/search.html | 117 + sqlalcamey/_build/html/searchindex.js | 1 + sqlalcamey/conf.py | 26 + sqlalcamey/index.rst | 20 + sqlalcamey/interfaces.py | 44 + sqlalcamey/make.bat | 35 + sqlalcamey/models.py | 323 ++- sqlalcamey/{model2.py => models.py.old} | 153 +- sqlalcamey/move-to-classes.py | 365 ++++ sqlalcamey/repository.py | 1910 +++++++++++++---- sqlalcamey/{test.py => review_zip_or_file.py} | 0 35 files changed, 5662 insertions(+), 766 deletions(-) create mode 100644 notes-on-data-processing.txt delete mode 100644 scripts/database/mitre-saf-security-benchmarks.sql create mode 100644 sqlalcamey/Makefile create mode 100644 sqlalcamey/TODO create mode 100644 sqlalcamey/_build/doctrees/environment.pickle create mode 100644 sqlalcamey/_build/doctrees/index.doctree create mode 100644 sqlalcamey/_build/html/.buildinfo create mode 100644 sqlalcamey/_build/html/_sources/index.rst.txt create mode 100644 sqlalcamey/_build/html/_static/alabaster.css create mode 100644 sqlalcamey/_build/html/_static/basic.css create mode 100644 sqlalcamey/_build/html/_static/custom.css create mode 100644 sqlalcamey/_build/html/_static/doctools.js create mode 100644 sqlalcamey/_build/html/_static/documentation_options.js create mode 100644 sqlalcamey/_build/html/_static/file.png create mode 100644 sqlalcamey/_build/html/_static/language_data.js create mode 100644 sqlalcamey/_build/html/_static/minus.png create mode 100644 sqlalcamey/_build/html/_static/plus.png create mode 100644 sqlalcamey/_build/html/_static/pygments.css create mode 100644 sqlalcamey/_build/html/_static/searchtools.js create mode 100644 sqlalcamey/_build/html/_static/sphinx_highlight.js create mode 100644 sqlalcamey/_build/html/genindex.html create mode 100644 sqlalcamey/_build/html/index.html create mode 100644 sqlalcamey/_build/html/objects.inv create mode 100644 sqlalcamey/_build/html/search.html create mode 100644 sqlalcamey/_build/html/searchindex.js create mode 100644 sqlalcamey/conf.py create mode 100644 sqlalcamey/index.rst create mode 100644 sqlalcamey/make.bat rename sqlalcamey/{model2.py => models.py.old} (88%) create mode 100644 sqlalcamey/move-to-classes.py rename sqlalcamey/{test.py => review_zip_or_file.py} (100%) diff --git a/notes-on-data-processing.txt b/notes-on-data-processing.txt new file mode 100644 index 000000000..689eb2822 --- /dev/null +++ b/notes-on-data-processing.txt @@ -0,0 +1,69 @@ +// """ +// SQLAlchemy model class that represents the Benchmarks table. + +// Attributes: +// __tablename__ (str): The name of the table this class represents. +// benchmark_id (sqlalchemy.sql.schema.Column): The primary key column of the table. +// version (sqlalchemy.sql.schema.Column): Column for the version of the benchmark. +// release (sqlalchemy.sql.schema.Column): Column for the release of the benchmark. +// release_date (sqlalchemy.sql.schema.Column): Column for the release date of the benchmark. +// type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the benchmark_type table. +// product_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Products table. +// author_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. +// sponsor_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. +// status_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Statuses table. +// """ + + +General thought is to have a static dict in the parser module with some of these known vendors/organization +products. + +Benchmark { + file_name: 'U.....', < have this + product_name:, < generated + short_name: < have -> SHORT STIGID RHEL_8_STIG + long_name: < have -> RedHat Enterprise Linux -> { vendor } + { product } + vendor:, < generated + version:, < have + release:, < have + release_date:, < have "" vs Benchmark_date ? find out how these differ + publisher:, < adding but have + type: -> easy identificd from multiple places, title filename etc. + status: add to module: accepted +} + + + +Organization { + short_name < have this usually in the header || or 'Fixme systle value' + long_name < added later after processs-- > default to 'fixme style value' + ... +} + +Author { + +} + + +Artifact Generation: + +( each of these is a entry in the artifacts table ) + + * have association with a owner and a benchmark + 1. XCCDF File < we got it ( automated ) + 2. InSpec Profile JSON ( will make automated in py somehow ) + * lazy approach - make sure saf-cli is installed and have it create JSON + from the XCCDF-File + * med approach -> cross compline SAF JS/TS code to PY + 3. URI Location of the existing or to be made profile Stub ( github location ) + ## USER UDPATED LATER + 4. originial zip file form processing + +# would like to have for history and easy access + + 5. InSpec Profile STUBS location ( uri ) + - 1) generate single file stubs + - 2) gendrate mulitefile stub -> tar or zip -> store the tar or zip in BLOB + + +https://dassum.medium.com/building-rest-apis-using-fastapi-sqlalchemy-uvicorn-8a163ccf3aa1 \ No newline at end of file diff --git a/scripts/database/mitre-saf-security-benchmarks.sql b/scripts/database/mitre-saf-security-benchmarks.sql deleted file mode 100644 index 005b83262..000000000 --- a/scripts/database/mitre-saf-security-benchmarks.sql +++ /dev/null @@ -1,108 +0,0 @@ --- Create "Artifact" table -CREATE TABLE - `Artifact` ( - `artifact_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, - `type_id` integer NOT NULL, - `owner_id` integer NOT NULL, - `name` varchar NOT NULL, - `location` varchar NOT NULL, - `secondary_location` varchar NULL, - `created_at` date NOT NULL, - `raw_data` blob NULL, - CONSTRAINT `artifact_has_a_type` FOREIGN KEY (`type_id`) REFERENCES `artifact_types` (`artifact_type_id`) ON UPDATE CASCADE ON DELETE RESTRICT, - CONSTRAINT `artifact_has_a_owner` FOREIGN KEY (`owner_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT - ); - --- Create "Benchmarks" table -CREATE TABLE - `Benchmarks` ( - `benchmark_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, - `version` smallint NOT NULL, - `release` smallint NOT NULL, - `release_date` date NOT NULL, - `type_id` integer NOT NULL, - `product_id` int NOT NULL, - `author_id` integer NOT NULL DEFAULT 0, - `sponsor_id` integer NULL DEFAULT 0, - `status_id` integer NOT NULL, - CONSTRAINT `benchmark_has_a_type` FOREIGN KEY (`type_id`) REFERENCES `benchmark_type` (`benchmark_type_id`) ON UPDATE CASCADE ON DELETE RESTRICT, - CONSTRAINT `benchmark_has_a_product` FOREIGN KEY (`product_id`) REFERENCES `Products` (`product_id`) ON UPDATE CASCADE ON DELETE RESTRICT, - CONSTRAINT `benchmark_has_an_author` FOREIGN KEY (`author_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT, - CONSTRAINT `benmark_has_a_sponsor` FOREIGN KEY (`sponsor_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT, - CONSTRAINT `benchmark_has_a_status` FOREIGN KEY (`status_id`) REFERENCES `Statuses` (`status_id`) ON UPDATE CASCADE ON DELETE RESTRICT - ); - --- Create index "unique_product_version_release_owner" to table: "Benchmarks" -CREATE UNIQUE INDEX `unique_product_version_release_owner` ON `Benchmarks` (`version`, `release`, `product_id`, `author_id`); - --- Create "Organization" table -CREATE TABLE - `Organization` ( - `organization_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, - `long_name` varchar NOT NULL, - `short_name` varchar NOT NULL, - `uri` varchar NULL, - `email` varchar NULL - ); - --- Create index "unique_org_short_and_long_name" to table: "Organization" -CREATE UNIQUE INDEX `unique_org_short_and_long_name` ON `Organization` (`long_name`, `short_name`); - --- Create "Products" table -CREATE TABLE - `Products` ( - `product_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, - `long_name` varchar NOT NULL, - `short_name` varchar NOT NULL, - `version` real NOT NULL, - `release` int NOT NULL, - `owner_id` integer NOT NULL, - CONSTRAINT `product_has_a_owner` FOREIGN KEY (`owner_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT - ); - --- Create "Statuses" table -CREATE TABLE - `Statuses` ( - `status_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, - `name` varchar NOT NULL - ); - --- Create index "unique_status_id_name" to table: "Statuses" -CREATE UNIQUE INDEX `unique_status_id_name` ON `Statuses` (`status_id`, `name`); - --- Create "artifact_types" table -CREATE TABLE - `artifact_types` ( - `artifact_type_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, - `type_name` varchar NOT NULL, - `description` text NULL - ); - --- Create "benchmark_artifacts" table -CREATE TABLE - `benchmark_artifacts` ( - `benchmark_id` integer NOT NULL, - `artifact_id` integer NOT NULL, - `is_default` int2 NULL DEFAULT 0, - PRIMARY KEY (`benchmark_id`, `artifact_id`), - CONSTRAINT `benchmark_has_an_artifact` FOREIGN KEY (`benchmark_id`) REFERENCES `Benchmarks` (`benchmark_id`) ON UPDATE CASCADE ON DELETE CASCADE, - CONSTRAINT `artifact_belongs_to_benchmark` FOREIGN KEY (`artifact_id`) REFERENCES `Artifact` (`artifact_id`) ON UPDATE CASCADE ON DELETE CASCADE - ); - --- Create index "unique_benchmark_artificat_default" to table: "benchmark_artifacts" -CREATE UNIQUE INDEX `unique_benchmark_artificat_default` ON `benchmark_artifacts` (`benchmark_id`, `artifact_id`, `is_default`); - --- Create "benchmark_type" table -CREATE TABLE - `benchmark_type` ( - `benchmark_type_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, - `long_name` varchar NOT NULL, - `short_name` varchar NOT NULL, - `description` text NOT NULL - ); - --- Create index "unique_bt_long_name" to table: "benchmark_type" -CREATE UNIQUE INDEX `unique_bt_long_name` ON `benchmark_type` (`long_name`); - --- Create index "unique_bt_short_name" to table: "benchmark_type" -CREATE UNIQUE INDEX `unique_bt_short_name` ON `benchmark_type` (`short_name`); \ No newline at end of file diff --git a/scripts/database/schema/mitre-saf-security-benchmarks.sql b/scripts/database/schema/mitre-saf-security-benchmarks.sql index 98ea48206..80729faa0 100644 --- a/scripts/database/schema/mitre-saf-security-benchmarks.sql +++ b/scripts/database/schema/mitre-saf-security-benchmarks.sql @@ -1,97 +1,108 @@ -CREATE TABLE "Artifact"( - artifact_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - type_id INTEGER NOT NULL, - owner_id INTEGER NOT NULL, - name VARCHAR NOT NULL, - location VARCHAR NOT NULL, - secondary_location VARCHAR, - created_at DATE NOT NULL, - raw_data BLOB, - CONSTRAINT artifact_has_a_type FOREIGN KEY (type_id) REFERENCES artifact_types (artifact_type_id) ON DELETE Restrict ON UPDATE Cascade, - CONSTRAINT artifact_has_a_owner FOREIGN KEY (owner_id) REFERENCES "Organization" (organization_id) ON DELETE Restrict ON UPDATE Cascade -); +-- Create "Artifact" table +CREATE TABLE + `Artifact` ( + `artifact_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `type_id` integer NOT NULL, + `owner_id` integer NOT NULL, + `name` varchar NOT NULL, + `location` varchar NOT NULL, + `secondary_location` varchar NULL, + `created_at` date NOT NULL, + `raw_data` BLOB NULL, + CONSTRAINT `artifact_has_a_type` FOREIGN KEY (`type_id`) REFERENCES `artifact_types` (`artifact_type_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `artifact_has_a_owner` FOREIGN KEY (`owner_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT + ); -CREATE TABLE "Benchmarks"( - benchmark_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - version SMALLINT NOT NULL, - "release" SMALLINT NOT NULL, - release_date DATE NOT NULL, - type_id INTEGER NOT NULL, - product_id INT NOT NULL, - author_id INTEGER NOT NULL DEFAULT 0, - sponsor_id INTEGER DEFAULT 0, - status_id INTEGER NOT NULL, - CONSTRAINT benchmark_has_a_type FOREIGN KEY (type_id) REFERENCES benchmark_type (benchmark_type_id) ON DELETE Restrict ON UPDATE Cascade, - CONSTRAINT benchmark_has_a_product FOREIGN KEY (product_id) REFERENCES "Products" (product_id) ON DELETE Restrict ON UPDATE Cascade, - CONSTRAINT benchmark_has_an_author FOREIGN KEY (author_id) REFERENCES "Organization" (organization_id) ON DELETE Restrict ON UPDATE Cascade, - CONSTRAINT benmark_has_a_sponsor FOREIGN KEY (sponsor_id) REFERENCES "Organization" (organization_id) ON DELETE Restrict ON UPDATE Cascade, - CONSTRAINT benchmark_has_a_status FOREIGN KEY (status_id) REFERENCES "Statuses" (status_id) ON DELETE Restrict ON UPDATE Cascade -); +-- Create "Benchmarks" table +CREATE TABLE + `Benchmarks` ( + `benchmark_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `version` smallint NOT NULL, + `release` smallint NOT NULL, + `release_date` date NOT NULL, + `type_id` integer NOT NULL, + `product_id` int NOT NULL, + `author_id` integer NOT NULL DEFAULT 0, + `sponsor_id` integer NULL DEFAULT 0, + `status_id` integer NOT NULL, + CONSTRAINT `benchmark_has_a_type` FOREIGN KEY (`type_id`) REFERENCES `benchmark_type` (`benchmark_type_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benchmark_has_a_product` FOREIGN KEY (`product_id`) REFERENCES `Products` (`product_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benchmark_has_an_author` FOREIGN KEY (`author_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benmark_has_a_sponsor` FOREIGN KEY (`sponsor_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT `benchmark_has_a_status` FOREIGN KEY (`status_id`) REFERENCES `Statuses` (`status_id`) ON UPDATE CASCADE ON DELETE RESTRICT + ); - CREATE UNIQUE INDEX unique_product_version_release_owner ON "Benchmarks"( - version, - "release", - product_id, - author_id - ); - - -CREATE TABLE "Organization"( - organization_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - long_name VARCHAR NOT NULL, - short_name VARCHAR NOT NULL, - uri VARCHAR, - email VARCHAR -); +-- Create index "unique_product_version_release_owner" to table: "Benchmarks" +CREATE UNIQUE INDEX `unique_product_version_release_owner` ON `Benchmarks` (`version`, `release`, `product_id`, `author_id`); - CREATE UNIQUE INDEX unique_org_short_and_long_name ON "Organization"(long_name, short_name); - -CREATE TABLE "Products"( - product_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - long_name VARCHAR NOT NULL, - short_name VARCHAR NOT NULL, - version REAL NOT NULL, - "release" INT NOT NULL, - owner_id INTEGER NOT NULL, - CONSTRAINT product_has_a_owner FOREIGN KEY (owner_id) REFERENCES "Organization" (organization_id) ON DELETE Restrict ON UPDATE Cascade -); +-- Create "Organization" table +CREATE TABLE + `Organization` ( + `organization_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `long_name` varchar NOT NULL, + `short_name` varchar NOT NULL, + `uri` varchar NULL, + `email` varchar NULL + ); -CREATE TABLE "Statuses"( - status_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - name VARCHAR NOT NULL); +-- Create index "unique_org_short_and_long_name" to table: "Organization" +CREATE UNIQUE INDEX `unique_org_short_and_long_name` ON `Organization` (`long_name`, `short_name`); - CREATE UNIQUE INDEX unique_status_id_name ON "Statuses"(status_id, name); - -CREATE TABLE artifact_types( - artifact_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - type_name VARCHAR NOT NULL, - description TEXT -); +-- Create "Products" table +CREATE TABLE + `Products` ( + `product_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `long_name` varchar NOT NULL, + `short_name` varchar NOT NULL, + `version` real NOT NULL, + `release` int NOT NULL, + `owner_id` integer NOT NULL, + CONSTRAINT `product_has_a_owner` FOREIGN KEY (`owner_id`) REFERENCES `Organization` (`organization_id`) ON UPDATE CASCADE ON DELETE RESTRICT + ); -CREATE TABLE benchmark_artifacts( - benchmark_id INTEGER NOT NULL, - artifact_id INTEGER NOT NULL, - is_default INT2 DEFAULT 0, - PRIMARY KEY(benchmark_id, artifact_id), - CONSTRAINT benchmark_has_an_artifact FOREIGN KEY (benchmark_id) REFERENCES "Benchmarks" (benchmark_id) ON DELETE Cascade ON UPDATE Cascade, - CONSTRAINT artifact_belongs_to_benchmark FOREIGN KEY (artifact_id) REFERENCES "Artifact" (artifact_id) ON DELETE Cascade ON UPDATE Cascade -); +-- Create "Statuses" table +CREATE TABLE + `Statuses` ( + `status_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `name` varchar NOT NULL + ); - CREATE UNIQUE INDEX unique_benchmark_artificat_default ON benchmark_artifacts( - benchmark_id, - artifact_id, - is_default - ); - - -CREATE TABLE benchmark_type( - benchmark_type_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - long_name VARCHAR NOT NULL, - short_name VARCHAR NOT NULL, - description TEXT NOT NULL -); +-- Create index "unique_status_id_name" to table: "Statuses" +CREATE UNIQUE INDEX `unique_status_id_name` ON `Statuses` (`status_id`, `name`); - CREATE UNIQUE INDEX unique_bt_long_name ON benchmark_type(long_name); - - CREATE UNIQUE INDEX unique_bt_short_name ON benchmark_type(short_name); - \ No newline at end of file +-- Create "artifact_types" table +CREATE TABLE + `artifact_types` ( + `artifact_type_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `type_name` varchar NOT NULL, + `description` text NULL + ); + +-- Create "benchmark_artifacts" table +CREATE TABLE + `benchmark_artifacts` ( + `benchmark_id` integer NOT NULL, + `artifact_id` integer NOT NULL, + `is_default` int2 NULL DEFAULT 0, + PRIMARY KEY (`benchmark_id`, `artifact_id`), + CONSTRAINT `benchmark_has_an_artifact` FOREIGN KEY (`benchmark_id`) REFERENCES `Benchmarks` (`benchmark_id`) ON UPDATE CASCADE ON DELETE CASCADE, + CONSTRAINT `artifact_belongs_to_benchmark` FOREIGN KEY (`artifact_id`) REFERENCES `Artifact` (`artifact_id`) ON UPDATE CASCADE ON DELETE CASCADE + ); + +-- Create index "unique_benchmark_artificat_default" to table: "benchmark_artifacts" +CREATE UNIQUE INDEX `unique_benchmark_artificat_default` ON `benchmark_artifacts` (`benchmark_id`, `artifact_id`, `is_default`); + +-- Create "benchmark_type" table +CREATE TABLE + `benchmark_type` ( + `benchmark_type_id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, + `long_name` varchar NOT NULL, + `short_name` varchar NOT NULL, + `description` text NOT NULL + ); + +-- Create index "unique_bt_long_name" to table: "benchmark_type" +CREATE UNIQUE INDEX `unique_bt_long_name` ON `benchmark_type` (`long_name`); + +-- Create index "unique_bt_short_name" to table: "benchmark_type" +CREATE UNIQUE INDEX `unique_bt_short_name` ON `benchmark_type` (`short_name`); \ No newline at end of file diff --git a/sqlalcamey/Makefile b/sqlalcamey/Makefile new file mode 100644 index 000000000..d4bb2cbb9 --- /dev/null +++ b/sqlalcamey/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/sqlalcamey/TODO b/sqlalcamey/TODO new file mode 100644 index 000000000..dfce6e224 --- /dev/null +++ b/sqlalcamey/TODO @@ -0,0 +1 @@ +# https://github.com/vikpe/python-package-starter diff --git a/sqlalcamey/_build/doctrees/environment.pickle b/sqlalcamey/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..9048f06f8a932572301e4ecf2bea424f34107b68 GIT binary patch literal 18174 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 RG^-&+y)r;h-Ievb{{=$b#<~Ci literal 0 HcmV?d00001 diff --git a/sqlalcamey/_build/html/.buildinfo b/sqlalcamey/_build/html/.buildinfo new file mode 100644 index 000000000..e7bd17b7e --- /dev/null +++ b/sqlalcamey/_build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: ba27abf035787a10a65f9674097a6490 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/sqlalcamey/_build/html/_sources/index.rst.txt b/sqlalcamey/_build/html/_sources/index.rst.txt new file mode 100644 index 000000000..8e57a483a --- /dev/null +++ b/sqlalcamey/_build/html/_sources/index.rst.txt @@ -0,0 +1,20 @@ +.. MITRE SAF Security Guidance Database documentation master file, created by + sphinx-quickstart on Mon Dec 18 01:56:18 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to MITRE SAF Security Guidance Database's documentation! +================================================================ + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/sqlalcamey/_build/html/_static/alabaster.css b/sqlalcamey/_build/html/_static/alabaster.css new file mode 100644 index 000000000..517d0b29c --- /dev/null +++ b/sqlalcamey/_build/html/_static/alabaster.css @@ -0,0 +1,703 @@ +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: Georgia, serif; + font-size: 17px; + background-color: #fff; + color: #000; + margin: 0; + padding: 0; +} + + +div.document { + width: 940px; + margin: 30px auto 0 auto; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 220px; +} + +div.sphinxsidebar { + width: 220px; + font-size: 14px; + line-height: 1.5; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.body { + background-color: #fff; + color: #3E4349; + padding: 0 30px 0 30px; +} + +div.body > .section { + text-align: left; +} + +div.footer { + width: 940px; + margin: 20px auto 30px auto; + font-size: 14px; + color: #888; + text-align: right; +} + +div.footer a { + color: #888; +} + +p.caption { + font-family: inherit; + font-size: inherit; +} + + +div.relations { + display: none; +} + + +div.sphinxsidebar a { + color: #444; + text-decoration: none; + border-bottom: 1px dotted #999; +} + +div.sphinxsidebar a:hover { + border-bottom: 1px solid #999; +} + +div.sphinxsidebarwrapper { + padding: 18px 10px; +} + +div.sphinxsidebarwrapper p.logo { + padding: 0; + margin: -10px 0 0 0px; + text-align: center; +} + +div.sphinxsidebarwrapper h1.logo { + margin-top: -10px; + text-align: center; + margin-bottom: 5px; + text-align: left; +} + +div.sphinxsidebarwrapper h1.logo-name { + margin-top: 0px; +} + +div.sphinxsidebarwrapper p.blurb { + margin-top: 0; + font-style: normal; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: Georgia, serif; + color: #444; + font-size: 24px; + font-weight: normal; + margin: 0 0 5px 0; + padding: 0; +} + +div.sphinxsidebar h4 { + font-size: 20px; +} + +div.sphinxsidebar h3 a { + color: #444; +} + +div.sphinxsidebar p.logo a, +div.sphinxsidebar h3 a, +div.sphinxsidebar p.logo a:hover, +div.sphinxsidebar h3 a:hover { + border: none; +} + +div.sphinxsidebar p { + color: #555; + margin: 10px 0; +} + +div.sphinxsidebar ul { + margin: 10px 0; + padding: 0; + color: #000; +} + +div.sphinxsidebar ul li.toctree-l1 > a { + font-size: 120%; +} + +div.sphinxsidebar ul li.toctree-l2 > a { + font-size: 110%; +} + +div.sphinxsidebar input { + border: 1px solid #CCC; + font-family: Georgia, serif; + font-size: 1em; +} + +div.sphinxsidebar hr { + border: none; + height: 1px; + color: #AAA; + background: #AAA; + + text-align: left; + margin-left: 0; + width: 50%; +} + +div.sphinxsidebar .badge { + border-bottom: none; +} + +div.sphinxsidebar .badge:hover { + border-bottom: none; +} + +/* To address an issue with donation coming after search */ +div.sphinxsidebar h3.donation { + margin-top: 10px; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #004B6B; + text-decoration: underline; +} + +a:hover { + color: #6D4100; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: Georgia, serif; + font-weight: normal; + margin: 30px 0px 10px 0px; + padding: 0; +} + +div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } +div.body h2 { font-size: 180%; } +div.body h3 { font-size: 150%; } +div.body h4 { font-size: 130%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #DDD; + padding: 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + color: #444; + background: #EAEAEA; +} + +div.body p, div.body dd, div.body li { + line-height: 1.4em; +} + +div.admonition { + margin: 20px 0px; + padding: 10px 30px; + background-color: #EEE; + border: 1px solid #CCC; +} + +div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fafafa; +} + +div.admonition p.admonition-title { + font-family: Georgia, serif; + font-weight: normal; + font-size: 24px; + margin: 0 0 10px 0; + padding: 0; + line-height: 1; +} + +div.admonition p.last { + margin-bottom: 0; +} + +div.highlight { + background-color: #fff; +} + +dt:target, .highlight { + background: #FAF3E8; +} + +div.warning { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.danger { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.error { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.caution { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.attention { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.important { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.note { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.tip { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.hint { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.seealso { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.topic { + background-color: #EEE; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre, tt, code { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.9em; +} + +.hll { + background-color: #FFC; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +img.screenshot { +} + +tt.descname, tt.descclassname, code.descname, code.descclassname { + font-size: 0.95em; +} + +tt.descname, code.descname { + padding-right: 0.08em; +} + +img.screenshot { + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils { + border: 1px solid #888; + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils td, table.docutils th { + border: 1px solid #888; + padding: 0.25em 0.7em; +} + +table.field-list, table.footnote { + border: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +table.footnote { + margin: 15px 0; + width: 100%; + border: 1px solid #EEE; + background: #FDFDFD; + font-size: 0.9em; +} + +table.footnote + table.footnote { + margin-top: -15px; + border-top: none; +} + +table.field-list th { + padding: 0 0.8em 0 0; +} + +table.field-list td { + padding: 0; +} + +table.field-list p { + margin-bottom: 0.8em; +} + +/* Cloned from + * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 + */ +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +table.footnote td.label { + width: .1px; + padding: 0.3em 0 0.3em 0.5em; +} + +table.footnote td { + padding: 0.3em 0.5em; +} + +dl { + margin-left: 0; + margin-right: 0; + margin-top: 0; + padding: 0; +} + +dl dd { + margin-left: 30px; +} + +blockquote { + margin: 0 0 0 30px; + padding: 0; +} + +ul, ol { + /* Matches the 30px from the narrow-screen "li > ul" selector below */ + margin: 10px 0 10px 30px; + padding: 0; +} + +pre { + background: #EEE; + padding: 7px 30px; + margin: 15px 0px; + line-height: 1.3em; +} + +div.viewcode-block:target { + background: #ffd; +} + +dl pre, blockquote pre, li pre { + margin-left: 0; + padding-left: 30px; +} + +tt, code { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ +} + +tt.xref, code.xref, a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fff; +} + +a.reference { + text-decoration: none; + border-bottom: 1px dotted #004B6B; +} + +/* Don't put an underline on images */ +a.image-reference, a.image-reference:hover { + border-bottom: none; +} + +a.reference:hover { + border-bottom: 1px solid #6D4100; +} + +a.footnote-reference { + text-decoration: none; + font-size: 0.7em; + vertical-align: top; + border-bottom: 1px dotted #004B6B; +} + +a.footnote-reference:hover { + border-bottom: 1px solid #6D4100; +} + +a:hover tt, a:hover code { + background: #EEE; +} + + +@media screen and (max-width: 870px) { + + div.sphinxsidebar { + display: none; + } + + div.document { + width: 100%; + + } + + div.documentwrapper { + margin-left: 0; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + } + + div.bodywrapper { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + } + + ul { + margin-left: 0; + } + + li > ul { + /* Matches the 30px from the "ul, ol" selector above */ + margin-left: 30px; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .bodywrapper { + margin: 0; + } + + .footer { + width: auto; + } + + .github { + display: none; + } + + + +} + + + +@media screen and (max-width: 875px) { + + body { + margin: 0; + padding: 20px 30px; + } + + div.documentwrapper { + float: none; + background: #fff; + } + + div.sphinxsidebar { + display: block; + float: none; + width: 102.5%; + margin: 50px -30px -20px -30px; + padding: 10px 20px; + background: #333; + color: #FFF; + } + + div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, + div.sphinxsidebar h3 a { + color: #fff; + } + + div.sphinxsidebar a { + color: #AAA; + } + + div.sphinxsidebar p.logo { + display: none; + } + + div.document { + width: 100%; + margin: 0; + } + + div.footer { + display: none; + } + + div.bodywrapper { + margin: 0; + } + + div.body { + min-height: 0; + padding: 0; + } + + .rtd_doc_footer { + display: none; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .footer { + width: auto; + } + + .github { + display: none; + } +} + + +/* misc. */ + +.revsys-inline { + display: none!important; +} + +/* Make nested-list/multi-paragraph items look better in Releases changelog + * pages. Without this, docutils' magical list fuckery causes inconsistent + * formatting between different release sub-lists. + */ +div#changelog > div.section > ul > li > p:only-child { + margin-bottom: 0; +} + +/* Hide fugly table cell borders in ..bibliography:: directive output */ +table.docutils.citation, table.docutils.citation td, table.docutils.citation th { + border: none; + /* Below needed in some edge cases; if not applied, bottom shadows appear */ + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + + +/* relbar */ + +.related { + line-height: 30px; + width: 100%; + font-size: 0.9rem; +} + +.related.top { + border-bottom: 1px solid #EEE; + margin-bottom: 20px; +} + +.related.bottom { + border-top: 1px solid #EEE; +} + +.related ul { + padding: 0; + margin: 0; + list-style: none; +} + +.related li { + display: inline; +} + +nav#rellinks { + float: right; +} + +nav#rellinks li+li:before { + content: "|"; +} + +nav#breadcrumbs li+li:before { + content: "\00BB"; +} + +/* Hide certain items when printing */ +@media print { + div.related { + display: none; + } +} \ No newline at end of file diff --git a/sqlalcamey/_build/html/_static/basic.css b/sqlalcamey/_build/html/_static/basic.css new file mode 100644 index 000000000..30fee9d0f --- /dev/null +++ b/sqlalcamey/_build/html/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/sqlalcamey/_build/html/_static/custom.css b/sqlalcamey/_build/html/_static/custom.css new file mode 100644 index 000000000..2a924f1d6 --- /dev/null +++ b/sqlalcamey/_build/html/_static/custom.css @@ -0,0 +1 @@ +/* This file intentionally left blank. */ diff --git a/sqlalcamey/_build/html/_static/doctools.js b/sqlalcamey/_build/html/_static/doctools.js new file mode 100644 index 000000000..d06a71d75 --- /dev/null +++ b/sqlalcamey/_build/html/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/sqlalcamey/_build/html/_static/documentation_options.js b/sqlalcamey/_build/html/_static/documentation_options.js new file mode 100644 index 000000000..7e4c114f2 --- /dev/null +++ b/sqlalcamey/_build/html/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/sqlalcamey/_build/html/_static/file.png b/sqlalcamey/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/sqlalcamey/_build/html/_static/language_data.js b/sqlalcamey/_build/html/_static/language_data.js new file mode 100644 index 000000000..250f5665f --- /dev/null +++ b/sqlalcamey/_build/html/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/sqlalcamey/_build/html/_static/minus.png b/sqlalcamey/_build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/sqlalcamey/_build/html/_static/plus.png b/sqlalcamey/_build/html/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/sqlalcamey/_build/html/_static/pygments.css b/sqlalcamey/_build/html/_static/pygments.css new file mode 100644 index 000000000..57c7df37b --- /dev/null +++ b/sqlalcamey/_build/html/_static/pygments.css @@ -0,0 +1,84 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #8f5902; font-style: italic } /* Comment */ +.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ +.highlight .g { color: #000000 } /* Generic */ +.highlight .k { color: #004461; font-weight: bold } /* Keyword */ +.highlight .l { color: #000000 } /* Literal */ +.highlight .n { color: #000000 } /* Name */ +.highlight .o { color: #582800 } /* Operator */ +.highlight .x { color: #000000 } /* Other */ +.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ +.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #8f5902 } /* Comment.Preproc */ +.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #a40000 } /* Generic.Deleted */ +.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .ges { color: #000000 } /* Generic.EmphStrong */ +.highlight .gr { color: #ef2929 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #745334 } /* Generic.Prompt */ +.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ +.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #000000 } /* Literal.Date */ +.highlight .m { color: #990000 } /* Literal.Number */ +.highlight .s { color: #4e9a06 } /* Literal.String */ +.highlight .na { color: #c4a000 } /* Name.Attribute */ +.highlight .nb { color: #004461 } /* Name.Builtin */ +.highlight .nc { color: #000000 } /* Name.Class */ +.highlight .no { color: #000000 } /* Name.Constant */ +.highlight .nd { color: #888888 } /* Name.Decorator */ +.highlight .ni { color: #ce5c00 } /* Name.Entity */ +.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #000000 } /* Name.Function */ +.highlight .nl { color: #f57900 } /* Name.Label */ +.highlight .nn { color: #000000 } /* Name.Namespace */ +.highlight .nx { color: #000000 } /* Name.Other */ +.highlight .py { color: #000000 } /* Name.Property */ +.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #000000 } /* Name.Variable */ +.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ +.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ +.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ +.highlight .mb { color: #990000 } /* Literal.Number.Bin */ +.highlight .mf { color: #990000 } /* Literal.Number.Float */ +.highlight .mh { color: #990000 } /* Literal.Number.Hex */ +.highlight .mi { color: #990000 } /* Literal.Number.Integer */ +.highlight .mo { color: #990000 } /* Literal.Number.Oct */ +.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ +.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ +.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ +.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ +.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ +.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ +.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ +.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ +.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ +.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ +.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ +.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ +.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #000000 } /* Name.Function.Magic */ +.highlight .vc { color: #000000 } /* Name.Variable.Class */ +.highlight .vg { color: #000000 } /* Name.Variable.Global */ +.highlight .vi { color: #000000 } /* Name.Variable.Instance */ +.highlight .vm { color: #000000 } /* Name.Variable.Magic */ +.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/sqlalcamey/_build/html/_static/searchtools.js b/sqlalcamey/_build/html/_static/searchtools.js new file mode 100644 index 000000000..7918c3fab --- /dev/null +++ b/sqlalcamey/_build/html/_static/searchtools.js @@ -0,0 +1,574 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/sqlalcamey/_build/html/_static/sphinx_highlight.js b/sqlalcamey/_build/html/_static/sphinx_highlight.js new file mode 100644 index 000000000..8a96c69a1 --- /dev/null +++ b/sqlalcamey/_build/html/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/sqlalcamey/_build/html/genindex.html b/sqlalcamey/_build/html/genindex.html new file mode 100644 index 000000000..da08c1eb1 --- /dev/null +++ b/sqlalcamey/_build/html/genindex.html @@ -0,0 +1,98 @@ + + + + + + + Index — MITRE SAF Security Guidance Database documentation + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + + +

    Index

    + +
    + +
    + + +
    + +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/sqlalcamey/_build/html/index.html b/sqlalcamey/_build/html/index.html new file mode 100644 index 000000000..e74457d52 --- /dev/null +++ b/sqlalcamey/_build/html/index.html @@ -0,0 +1,109 @@ + + + + + + + + Welcome to MITRE SAF Security Guidance Database’s documentation! — MITRE SAF Security Guidance Database documentation + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + +
    +

    Welcome to MITRE SAF Security Guidance Database’s documentation!¶

    +
    +
    +
    +
    +

    Indices and tables¶

    + +
    + + +
    + +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/sqlalcamey/_build/html/objects.inv b/sqlalcamey/_build/html/objects.inv new file mode 100644 index 000000000..d61444880 --- /dev/null +++ b/sqlalcamey/_build/html/objects.inv @@ -0,0 +1,7 @@ +# Sphinx inventory version 2 +# Project: MITRE SAF Security Guidance Database +# Version: +# The remainder of this file is compressed using zlib. +xÚ…ŽM +Â0…÷=Åx€ +nÝ þÐEA¬àzš m ÉH3»ó^Ï“hIÅwÃ{ï{óòÆkºA½¶X“…|ͨ.[qŠá̾1ÍjM²Š0”Åù´ƒj³‡ŠTìŒôpˆF£W[¬1Ðóþðn‰Ž¼ ö‹Ì±þ1äÚç#}*YGK㤉û;öÒ²ŸÓ°SíLZbªä±¡ì Zi2 \ No newline at end of file diff --git a/sqlalcamey/_build/html/search.html b/sqlalcamey/_build/html/search.html new file mode 100644 index 000000000..d03aa0eed --- /dev/null +++ b/sqlalcamey/_build/html/search.html @@ -0,0 +1,117 @@ + + + + + + + Search — MITRE SAF Security Guidance Database documentation + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + +

    Search

    + + + + +

    + Searching for multiple words only shows matches that contain + all words. +

    + + +
    + + + +
    + + + +
    + +
    + + +
    + +
    +
    + +
    +
    + + + + + + + \ No newline at end of file diff --git a/sqlalcamey/_build/html/searchindex.js b/sqlalcamey/_build/html/searchindex.js new file mode 100644 index 000000000..45de81fd7 --- /dev/null +++ b/sqlalcamey/_build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["Welcome to MITRE SAF Security Guidance Database\u2019s documentation!"], "terms": {"index": 0, "modul": 0, "search": 0, "page": 0}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"welcom": 0, "mitr": 0, "saf": 0, "secur": 0, "guidanc": 0, "databas": 0, "": 0, "document": 0, "indic": 0, "tabl": 0}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Welcome to MITRE SAF Security Guidance Database\u2019s documentation!": [[0, "welcome-to-mitre-saf-security-guidance-database-s-documentation"]], "Indices and tables": [[0, "indices-and-tables"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/sqlalcamey/conf.py b/sqlalcamey/conf.py new file mode 100644 index 000000000..7a413451c --- /dev/null +++ b/sqlalcamey/conf.py @@ -0,0 +1,26 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = "MITRE SAF Security Guidance Database" +copyright = "2023, Aaron Lippold " +author = "Aaron Lippold " + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [] + +templates_path = ["_templates"] +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = "alabaster" +html_static_path = ["_static"] diff --git a/sqlalcamey/index.rst b/sqlalcamey/index.rst new file mode 100644 index 000000000..8e57a483a --- /dev/null +++ b/sqlalcamey/index.rst @@ -0,0 +1,20 @@ +.. MITRE SAF Security Guidance Database documentation master file, created by + sphinx-quickstart on Mon Dec 18 01:56:18 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to MITRE SAF Security Guidance Database's documentation! +================================================================ + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/sqlalcamey/interfaces.py b/sqlalcamey/interfaces.py index 76758eb04..9dcd17694 100644 --- a/sqlalcamey/interfaces.py +++ b/sqlalcamey/interfaces.py @@ -617,3 +617,47 @@ def disassociate_artifact_from_benchmark( if association: session.delete(association) session.commit() + + +def get_all_artifacts_associated_with_benchmark(session: Session, benchmark_id: int): + """ + Retrieves all artifacts associated with a specific benchmark. + + This function queries the BenchmarkArtifacts table for all rows with the given benchmark_id. + Then, for each of these BenchmarkArtifacts, it queries the Artifact table for the Artifact + with the artifact_id from the BenchmarkArtifacts. The result is a list of all Artifact objects + associated with the given benchmark. + + Args: + session (Session): The session to use for making the database queries. + benchmark_id (int): The ID of the benchmark to retrieve artifacts for. + + Returns: + list[Artifact]: A list of Artifact objects associated with the given benchmark. + + Example: + >>> from sqlalchemy import create_engine + >>> from sqlalchemy.orm import sessionmaker + >>> engine = create_engine('sqlite:///example.db') + >>> Session = sessionmaker(bind=engine) + >>> session = Session() + >>> benchmark_id = 1 + >>> artifacts = get_all_artifacts_associated_with_benchmark(session, benchmark_id) + >>> print(artifacts) + [, ] + """ + # Query for all BenchmarkArtifacts with the given benchmark_id + benchmark_artifacts = ( + session.query(BenchmarkArtifacts) + .filter(BenchmarkArtifacts.benchmark_id == benchmark_id) + .all() + ) + + # Now, for each BenchmarkArtifacts, get the associated Artifact + artifacts = [ + session.query(Artifact).get(ba.artifact_id) for ba in benchmark_artifacts + ] + + return artifacts + + diff --git a/sqlalcamey/make.bat b/sqlalcamey/make.bat new file mode 100644 index 000000000..32bb24529 --- /dev/null +++ b/sqlalcamey/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/sqlalcamey/models.py b/sqlalcamey/models.py index d75b2d055..2406cc0f4 100644 --- a/sqlalcamey/models.py +++ b/sqlalcamey/models.py @@ -1,181 +1,318 @@ -from sqlalchemy import Column, Integer, String, Date, ForeignKey, Boolean, Float, Text -# from sqlalchemy.orm import relationship +from sqlalchemy import Column,Integer,String,Date,ForeignKey +from sqlalchemy import Boolean, Float, LargeBinary, UniqueConstraint + +from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() +# TODO: Add indexes to the correct tables in both this interface and the SQL class Artifact(Base): """ - SQLAlchemy model class that represents the Artifact table. + The Artifact class represents the Artifact table in the database. Attributes: - __tablename__ (str): The name of the table this class represents. - artifact_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the artifact_types table. - owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. - name (sqlalchemy.sql.schema.Column): Column for the name of the artifact. - location (sqlalchemy.sql.schema.Column): Column for the primary location of the artifact. - secondary_location (sqlalchemy.sql.schema.Column): Column for the secondary location of the artifact. - created_at (sqlalchemy.sql.schema.Column): Column for the creation date of the artifact. - raw_data (sqlalchemy.sql.schema.Column): Column for the raw data of the artifact. + artifact_id (int): The primary key for this table. + type_id (int): A foreign key that refers to the artifact_type_id in the artifact_types table. + owner_id (int): A foreign key that refers to the organization_id in the Organization table. + name (str): The name of the artifact. This field is required. + location (str): The location of the artifact. This field is required. + secondary_location (str): The secondary location of the artifact. This field is optional. + created_at (date): The date when the artifact was created. This field is required. + raw_data (LargeBinary): The raw data of the artifact. This field is optional. + + Relationships: + artifact_type: A relationship to the ArtifactType model object associated with this artifact. + organization: A relationship to the Organization model object associated with this artifact. """ + def __repr__(self): + """ + Returns a string representation of this Artifact. + + Returns: + str: A string representation of this Artifact. + """ + return f"" + __tablename__ = "Artifact" - artifact_id = Column(Integer, primary_key=True) - type_id = Column(Integer, ForeignKey("artifact_types.artifact_type_id")) - owner_id = Column(Integer, ForeignKey("Organization.organization_id")) - name = Column(String) - location = Column(String) + artifact_id = Column(Integer, primary_key=True, autoincrement=True) + type_id = Column(Integer, ForeignKey("artifact_types.artifact_type_id"), nullable=False) + owner_id = Column(Integer, ForeignKey("Organization.organization_id"), nullable=False) + name = Column(String, nullable=False) + location = Column(String, nullable=False) secondary_location = Column(String) - created_at = Column(Date) - raw_data = Column(Text) + created_at = Column(Date, nullable=False) + raw_data = Column(LargeBinary) + + # Define relationships + artifact_type = relationship("ArtifactType", back_populates="artifacts") + organization = relationship("Organization", back_populates="artifacts") class Benchmarks(Base): """ - SQLAlchemy model class that represents the Benchmarks table. + The Benchmarks class represents the Benchmarks table in the database. Attributes: - __tablename__ (str): The name of the table this class represents. - benchmark_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - version (sqlalchemy.sql.schema.Column): Column for the version of the benchmark. - release (sqlalchemy.sql.schema.Column): Column for the release of the benchmark. - release_date (sqlalchemy.sql.schema.Column): Column for the release date of the benchmark. - type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the benchmark_type table. - product_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Products table. - author_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. - sponsor_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. - status_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Statuses table. + benchmark_id (int): The primary key for this table. + version (int): The version of the benchmark. This field is required. + release (int): The release number of the benchmark. This field is required. + release_date (date): The date when the benchmark was released. This field is required. + type_id (int): A foreign key that refers to the benchmark_type_id in the benchmark_type table. This field is required. + product_id (int): A foreign key that refers to the product_id in the Products table. This field is required. + author_id (int): A foreign key that refers to the organization_id in the Organization table. This field is required and defaults to 0. + sponsor_id (int): A foreign key that refers to the organization_id in the Organization table. This field defaults to 0. + status_id (int): A foreign key that refers to the status_id in the Statuses table. This field is required. + + Relationships: + benchmark_type: A relationship to the BenchmarkType model object associated with this benchmark. + product: A relationship to the Product model object associated with this benchmark. + author: A relationship to the Organization model object that authored this benchmark. + sponsor: A relationship to the Organization model object that sponsored this benchmark. + status: A relationship to the Status model object associated with this benchmark. """ __tablename__ = "Benchmarks" - benchmark_id = Column(Integer, primary_key=True) - version = Column(Integer) - release = Column(Integer) - release_date = Column(Date) - type_id = Column(Integer, ForeignKey("benchmark_type.benchmark_type_id")) - product_id = Column(Integer, ForeignKey("Products.product_id")) - author_id = Column(Integer, ForeignKey("Organization.organization_id")) - sponsor_id = Column(Integer, ForeignKey("Organization.organization_id")) - status_id = Column(Integer, ForeignKey("Statuses.status_id")) + benchmark_id = Column(Integer, primary_key=True, autoincrement=True) + version = Column(Integer, nullable=False) + release = Column(Integer, nullable=False) + release_date = Column(Date, nullable=False) + type_id = Column(Integer, ForeignKey("benchmark_type.benchmark_type_id"), nullable=False) + product_id = Column(Integer, ForeignKey("Products.product_id"), nullable=False) + author_id = Column(Integer, ForeignKey("Organization.organization_id"), nullable=False, default=0) + sponsor_id = Column(Integer, ForeignKey("Organization.organization_id"), default=0) + status_id = Column(Integer, ForeignKey("Statuses.status_id"), nullable=False) + + # Define relationships + benchmark_type = relationship("BenchmarkType", back_populates="benchmarks") + product = relationship("Product", back_populates="benchmarks") + author = relationship("Organization", back_populates="authored_benchmarks") + sponsor = relationship("Organization", back_populates="sponsored_benchmarks") + status = relationship("Status", back_populates="benchmarks") + + __table_args__ = ( + UniqueConstraint( + "version", + "release", + "product_id", + "author_id", + name="unique_product_version_release_owner", + ), + ) + + def __repr__(self): + """ + Returns a string representation of this Benchmarks. + + Returns: + str: A string representation of this Benchmarks. + """ + return f"" class Organization(Base): """ - SQLAlchemy model class that represents the Organization table. + The Organization class represents the Organization table in the database. Attributes: - __tablename__ (str): The name of the table this class represents. - organization_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - long_name (sqlalchemy.sql.schema.Column): Column for the long name of the organization. - short_name (sqlalchemy.sql.schema.Column): Column for the short name of the organization. - uri (sqlalchemy.sql.schema.Column): Column for the URI of the organization. + organization_id (int): The primary key for this table. + long_name (str): The full name of the organization. This field is required. + short_name (str): The abbreviated name of the organization. This field is required. + uri (str): The URI of the organization. This field is optional. + email (str): The email of the organization. This field is optional. + + Constraints: + UniqueConstraint: Ensures that the combination of long_name and short_name is unique across all organizations. + """ __tablename__ = "Organization" - organization_id = Column(Integer, primary_key=True) - long_name = Column(String) - short_name = Column(String) + organization_id = Column(Integer, primary_key=True, autoincrement=True) + long_name = Column(String, nullable=False) + short_name = Column(String, nullable=False) uri = Column(String) email = Column(String) + __table_args__ = (UniqueConstraint("long_name", "short_name", name="unique_org_short_and_long_name"),) + + def __repr__(self): + """ + Returns a string representation of this Organization. + + Returns: + str: A string representation of this Organization. + """ + return f"" + class Products(Base): """ - SQLAlchemy model class that represents the Products table. + The Products class represents the Products table in the database. Attributes: - __tablename__ (str): The name of the table this class represents. - product_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - long_name (sqlalchemy.sql.schema.Column): Column for the long name of the product. - short_name (sqlalchemy.sql.schema.Column): Column for the short name of the product. - version (sqlalchemy.sql.schema.Column): Column for the version of the product. - release (sqlalchemy.sql.schema.Column): Column for the release of the product. - owner_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. + product_id (int): The primary key for this table. + long_name (str): The full name of the product. This field is required. + short_name (str): The abbreviated name of the product. This field is required. + version (float): The version number of the product. This field is required. + release (int): The release number of the product. This field is required. + owner_id (int): A foreign key that refers to the organization_id in the Organization table. This field is required. + + Relationships: + owner: A relationship to the Organization model object that owns this product. """ __tablename__ = "Products" - product_id = Column(Integer, primary_key=True) - long_name = Column(String) - short_name = Column(String) - version = Column(Float) - release = Column(Integer) - owner_id = Column(Integer, ForeignKey("Organization.organization_id")) + product_id = Column(Integer, primary_key=True, autoincrement=True) + long_name = Column(String, nullable=False) + short_name = Column(String, nullable=False) + version = Column(Float, nullable=False) + release = Column(Integer, nullable=False) + owner_id = Column(Integer, ForeignKey("Organization.organization_id"), nullable=False) + + # Define relationships + owner = relationship("Organization", back_populates="products") + + def __repr__(self): + """ + Returns a string representation of this Products. + + Returns: + str: A string representation of this Products. + """ + return f"" class Statuses(Base): """ - Represents the 'Statuses' table in the database. - - The 'Statuses' table contains information about the different statuses that a benchmark can have. + The Statuses class represents the Statuses table in the database. Attributes: - status_id (Integer): The unique identifier for the status. This is the primary key in the table. - name (String): The name of the status. + status_id (int): The primary key for this table. + name (str): The name of the status. This field is required. + + Constraints: + UniqueConstraint: Ensures that the combination of status_id and name is unique across all statuses. """ __tablename__ = "Statuses" - status_id = Column(Integer, primary_key=True) - name = Column(String) + status_id = Column(Integer, primary_key=True, autoincrement=True) + name = Column(String, nullable=False) + + __table_args__ = (UniqueConstraint("status_id", "name", name="unique_status_id_name"),) + + def __repr__(self): + """ + Returns a string representation of this Statuses. + + Returns: + str: A string representation of this Statuses. + """ + return f"" class ArtifactTypes(Base): """ - SQLAlchemy model class that represents the artifact_types table. + The ArtifactTypes class represents the ArtifactTypes table in the database. Attributes: - __tablename__ (str): The name of the table this class represents. - artifact_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - type_name (sqlalchemy.sql.schema.Column): Column for the name of the artifact type. - description (sqlalchemy.sql.schema.Column): Column for the description of the artifact type. + artifact_type_id (int): The primary key for this table. + type_name (str): The name of the artifact type. This field is required. + description (str): The description of the artifact type. This field is optional. + """ __tablename__ = "artifact_types" - artifact_type_id = Column(Integer, primary_key=True) - type_name = Column(String) - description = Column(Text) + artifact_type_id = Column(Integer, primary_key=True, autoincrement=True) + type_name = Column(String, nullable=False) + description = Column(String) + + def __repr__(self): + """ + Returns a string representation of this ArtifactTypes. + + Returns: + str: A string representation of this ArtifactTypes. + """ + return f"" class BenchmarkArtifacts(Base): """ - SQLAlchemy model class that represents the benchmark_artifacts table. + The BenchmarkArtifacts class represents the BenchmarkArtifacts table in the database. Attributes: - __tablename__ (str): The name of the table this class represents. - benchmark_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Benchmarks table, part of the composite primary key. - artifact_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Artifact table, part of the composite primary key. - is_default (sqlalchemy.sql.schema.Column): Column indicating if the artifact is the default one for the benchmark. + benchmark_id (int): A foreign key that refers to the benchmark_id in the Benchmarks table. This field is part of the primary key for this table. + artifact_id (int): A foreign key that refers to the artifact_id in the Artifact table. This field is part of the primary key for this table. + is_default (bool): A flag indicating whether this artifact is the default for the associated benchmark. This field defaults to False. + + Constraints: + UniqueConstraint: Ensures that the combination of benchmark_id, artifact_id, and is_default is unique across all benchmark artifacts. """ __tablename__ = "benchmark_artifacts" benchmark_id = Column(Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True) artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) - is_default = Column(Boolean) + is_default = Column(Boolean, default=False) + + __table_args__ = ( + UniqueConstraint( + "benchmark_id", + "artifact_id", + "is_default", + name="unique_benchmark_artificat_default", + ), + ) + + def __repr__(self): + """ + Returns a string representation of this BenchmarkArtifacts. + + Returns: + str: A string representation of this BenchmarkArtifacts. + """ + return f"" class BenchmarkType(Base): """ - SQLAlchemy model class that represents the benchmark_type table. + The BenchmarkType class represents the BenchmarkType table in the database. Attributes: - __tablename__ (str): The name of the table this class represents. - benchmark_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - long_name (sqlalchemy.sql.schema.Column): Column for the long name of the benchmark type. - short_name (sqlalchemy.sql.schema.Column): Column for the short name of the benchmark type. - description (sqlalchemy.sql.schema.Column): Column for the description of the benchmark type. + benchmark_type_id (int): The primary key for this table. + long_name (str): The full name of the benchmark type. This field is required. + short_name (str): The abbreviated name of the benchmark type. This field is required. + description (str): The description of the benchmark type. This field is required. + + Constraints: + UniqueConstraint: Ensures that the long_name and short_name are unique across all benchmark types. """ __tablename__ = "benchmark_type" - benchmark_type_id = Column(Integer, primary_key=True) - long_name = Column(String) - short_name = Column(String) - description = Column(Text) + benchmark_type_id = Column(Integer, primary_key=True, autoincrement=True) + long_name = Column(String, nullable=False) + short_name = Column(String, nullable=False) + description = Column(String, nullable=False) + + __table_args__ = ( + UniqueConstraint("long_name", name="unique_bt_long_name"), + UniqueConstraint("short_name", name="unique_bt_short_name"), + ) + + def __repr__(self): + """ + Returns a string representation of this BenchmarkType. + + Returns: + str: A string representation of this BenchmarkType. + """ + return f"" diff --git a/sqlalcamey/model2.py b/sqlalcamey/models.py.old similarity index 88% rename from sqlalcamey/model2.py rename to sqlalcamey/models.py.old index e28e26cfc..1e4b6f4f8 100644 --- a/sqlalcamey/model2.py +++ b/sqlalcamey/models.py.old @@ -1,7 +1,18 @@ -from sqlalchemy import Column, Integer, String, Date, ForeignKey, Boolean, Float, Text -from sqlalchemy.orm import relationship +from sqlalchemy import ( + Column, + Integer, + String, + Date, + ForeignKey, + Boolean, + Float, + Text, + LargeBinary, +) + +# from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import Session +from sqlalchemy.orm import relationship Base = declarative_base() @@ -24,14 +35,40 @@ class Artifact(Base): __tablename__ = "Artifact" - artifact_id = Column(Integer, primary_key=True) - type_id = Column(Integer, ForeignKey("artifact_types.artifact_type_id")) - owner_id = Column(Integer, ForeignKey("Organization.organization_id")) - name = Column(String) - location = Column(String) + artifact_id = Column(Integer, primary_key=True, autoincrement=True) + type_id = Column( + Integer, ForeignKey("artifact_types.artifact_type_id"), nullable=False + ) + owner_id = Column( + Integer, ForeignKey("Organization.organization_id"), nullable=False + ) + name = Column(String, nullable=False) + location = Column(String, nullable=False) secondary_location = Column(String) - created_at = Column(Date) - raw_data = Column(Text) + created_at = Column(Date, nullable=False) + raw_data = Column(LargeBinary) + + # Define relationships + artifact_type = relationship("ArtifactType", back_populates="artifacts") + organization = relationship("Organization", back_populates="artifacts") + + +class ArtifactTypes(Base): + """ + SQLAlchemy model class that represents the artifact_types table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + artifact_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + type_name (sqlalchemy.sql.schema.Column): Column for the name of the artifact type. + description (sqlalchemy.sql.schema.Column): Column for the description of the artifact type. + """ + + __tablename__ = "artifact_types" + + artifact_type_id = Column(Integer, primary_key=True) + type_name = Column(String) + description = Column(Text) class Benchmarks(Base): @@ -64,6 +101,46 @@ class Benchmarks(Base): status_id = Column(Integer, ForeignKey("Statuses.status_id")) +class BenchmarkArtifacts(Base): + """ + SQLAlchemy model class that represents the benchmark_artifacts table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Benchmarks table, part of the composite primary key. + artifact_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Artifact table, part of the composite primary key. + is_default (sqlalchemy.sql.schema.Column): Column indicating if the artifact is the default one for the benchmark. + """ + + __tablename__ = "benchmark_artifacts" + + benchmark_id = Column( + Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True + ) + artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) + is_default = Column(Boolean) + + +class BenchmarkType(Base): + """ + SQLAlchemy model class that represents the benchmark_type table. + + Attributes: + __tablename__ (str): The name of the table this class represents. + benchmark_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. + long_name (sqlalchemy.sql.schema.Column): Column for the long name of the benchmark type. + short_name (sqlalchemy.sql.schema.Column): Column for the short name of the benchmark type. + description (sqlalchemy.sql.schema.Column): Column for the description of the benchmark type. + """ + + __tablename__ = "benchmark_type" + + benchmark_type_id = Column(Integer, primary_key=True) + long_name = Column(String) + short_name = Column(String) + description = Column(Text) + + class Organization(Base): """ SQLAlchemy model class that represents the Organization table. @@ -124,59 +201,3 @@ class Statuses(Base): status_id = Column(Integer, primary_key=True) name = Column(String) - - -class ArtifactTypes(Base): - """ - SQLAlchemy model class that represents the artifact_types table. - - Attributes: - __tablename__ (str): The name of the table this class represents. - artifact_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - type_name (sqlalchemy.sql.schema.Column): Column for the name of the artifact type. - description (sqlalchemy.sql.schema.Column): Column for the description of the artifact type. - """ - - __tablename__ = "artifact_types" - - artifact_type_id = Column(Integer, primary_key=True) - type_name = Column(String) - description = Column(Text) - - -class BenchmarkArtifacts(Base): - """ - SQLAlchemy model class that represents the benchmark_artifacts table. - - Attributes: - __tablename__ (str): The name of the table this class represents. - benchmark_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Benchmarks table, part of the composite primary key. - artifact_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Artifact table, part of the composite primary key. - is_default (sqlalchemy.sql.schema.Column): Column indicating if the artifact is the default one for the benchmark. - """ - - __tablename__ = "benchmark_artifacts" - - benchmark_id = Column(Integer, ForeignKey("Benchmarks.benchmark_id"), primary_key=True) - artifact_id = Column(Integer, ForeignKey("Artifact.artifact_id"), primary_key=True) - is_default = Column(Boolean) - - -class BenchmarkType(Base): - """ - SQLAlchemy model class that represents the benchmark_type table. - - Attributes: - __tablename__ (str): The name of the table this class represents. - benchmark_type_id (sqlalchemy.sql.schema.Column): The primary key column of the table. - long_name (sqlalchemy.sql.schema.Column): Column for the long name of the benchmark type. - short_name (sqlalchemy.sql.schema.Column): Column for the short name of the benchmark type. - description (sqlalchemy.sql.schema.Column): Column for the description of the benchmark type. - """ - - __tablename__ = "benchmark_type" - - benchmark_type_id = Column(Integer, primary_key=True) - long_name = Column(String) - short_name = Column(String) - description = Column(Text) diff --git a/sqlalcamey/move-to-classes.py b/sqlalcamey/move-to-classes.py new file mode 100644 index 000000000..9748a3e6d --- /dev/null +++ b/sqlalcamey/move-to-classes.py @@ -0,0 +1,365 @@ +@staticmethod + def add_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Adds a new benchmark artifact to the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + new_benchmark_artifact = BenchmarkArtifacts( + benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default + ) + session.add(new_benchmark_artifact) + session.commit() + + @staticmethod + def update_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + """ + Updates an existing benchmark artifact in the benchmark_artifacts table. + + Args: + session (sqlalchemy.orm.Session): The session object used to execute database queries. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = ( + session.query(BenchmarkArtifacts) + .filter_by(benchmark_id=benchmark_id, artifact_id=artifact_id) + .first() + ) + if benchmark_artifact is not None: + benchmark_artifact.is_default = is_default + session.commit() + + @staticmethod + def create_artifact( + session: Session, + type_id: int, + owner_id: int, + name: str, + location: str, + secondary_location: str, + created_at: date, + raw_data: str, + ): + """ + Creates a new Artifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_id (int): The ID of the artifact type. + owner_id (int): The ID of the owner of the artifact. + name (str): The name of the artifact. + location (str): The primary location of the artifact. + secondary_location (str): The secondary location of the artifact. + created_at (date): The date the artifact was created. + raw_data (str): The raw data of the artifact. + + Returns: + None + """ + artifact = Artifact( + type_id=type_id, + owner_id=owner_id, + name=name, + location=location, + secondary_location=secondary_location, + created_at=created_at, + raw_data=raw_data, + ) + session.add(artifact) + session.commit() + + def get_artifact_by_id(session: Session, artifact_id: int): + """ + Retrieves an Artifact from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_id (int): The ID of the artifact to retrieve. + + Returns: + Artifact: The retrieved Artifact, or None if no Artifact with the given ID exists. + """ + return ( + session.query(Artifact).filter(Artifact.artifact_id == artifact_id).first() + ) + + def create_benchmark( + session: Session, + version: int, + release: int, + release_date: date, + type_id: int, + product_id: int, + author_id: int, + sponsor_id: int, + status_id: int, + ): + """ + Creates a new Benchmark and adds it to the database. + + Args: + session (Session): The session to use for database operations. + version (int): The version of the benchmark. + release (int): The release of the benchmark. + release_date (date): The release date of the benchmark. + type_id (int): The ID of the benchmark type. + product_id (int): The ID of the product associated with the benchmark. + author_id (int): The ID of the author of the benchmark. + sponsor_id (int): The ID of the sponsor of the benchmark. + status_id (int): The ID of the status of the benchmark. + + Returns: + None + """ + benchmark = Benchmarks( + version=version, + release=release, + release_date=release_date, + type_id=type_id, + product_id=product_id, + author_id=author_id, + sponsor_id=sponsor_id, + status_id=status_id, + ) + session.add(benchmark) + session.commit() + + def get_benchmark_by_id(session: Session, benchmark_id: int): + """ + Retrieves a Benchmark from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark to retrieve. + + Returns: + Benchmarks: The retrieved Benchmark, or None if no Benchmark with the given ID exists. + """ + return ( + session.query(Benchmarks) + .filter(Benchmarks.benchmark_id == benchmark_id) + .first() + ) + + def create_organization( + session: Session, long_name: str, short_name: str, uri: str, email: str + ): + """ + Creates a new Organization and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the organization. + short_name (str): The short name of the organization. + uri (str): The URI of the organization. + email (str): The email of the organization. + + Returns: + None + """ + organization = Organization( + long_name=long_name, short_name=short_name, uri=uri, email=email + ) + session.add(organization) + session.commit() + + def get_organization_by_id(session: Session, organization_id: int): + """ + Retrieves an Organization from the database by its ID. + + Args: + session (Session): The session to use for database operations. + organization_id (int): The ID of the organization to retrieve. + + Returns: + Organization: The retrieved Organization, or None if no Organization with the given ID exists. + """ + return ( + session.query(Organization) + .filter(Organization.organization_id == organization_id) + .first() + ) + + def create_product( + session: Session, + long_name: str, + short_name: str, + version: float, + release: int, + owner_id: int, + ): + """ + Creates a new Product and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the product. + short_name (str): The short name of the product. + version (float): The version of the product. + release (int): The release of the product. + owner_id (int): The ID of the owner of the product. + + Returns: + None + """ + product = Products( + long_name=long_name, + short_name=short_name, + version=version, + release=release, + owner_id=owner_id, + ) + session.add(product) + session.commit() + + def get_product_by_id(session: Session, product_id: int): + """ + Retrieves a Product from the database by its ID. + + Args: + session (Session): The session to use for database operations. + product_id (int): The ID of the product to retrieve. + + Returns: + Products: The retrieved Product, or None if no Product with the given ID exists. + """ + return session.query(Products).filter(Products.product_id == product_id).first() + + def create_artifact_type(session: Session, type_name: str, description: str): + """ + Creates a new ArtifactType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + type_name (str): The name of the artifact type. + description (str): The description of the artifact type. + + Returns: + None + """ + artifact_type = ArtifactTypes(type_name=type_name, description=description) + session.add(artifact_type) + session.commit() + + def get_artifact_type_by_id(session: Session, artifact_type_id: int): + """ + Retrieves an ArtifactType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + artifact_type_id (int): The ID of the artifact type to retrieve. + + Returns: + ArtifactTypes: The retrieved ArtifactType, or None if no ArtifactType with the given ID exists. + """ + return ( + session.query(ArtifactTypes) + .filter(ArtifactTypes.artifact_type_id == artifact_type_id) + .first() + ) + + def create_benchmark_artifact( + session: Session, benchmark_id: int, artifact_id: int, is_default: bool + ): + """ + Creates a new BenchmarkArtifact and adds it to the database. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + is_default (bool): Whether the artifact is the default one for the benchmark. + + Returns: + None + """ + benchmark_artifact = BenchmarkArtifacts( + benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default + ) + session.add(benchmark_artifact) + session.commit() + + def get_benchmark_artifact_by_ids( + session: Session, benchmark_id: int, artifact_id: int + ): + """ + Retrieves a BenchmarkArtifact from the database by its benchmark and artifact IDs. + + Args: + session (Session): The session to use for database operations. + benchmark_id (int): The ID of the benchmark. + artifact_id (int): The ID of the artifact. + + Returns: + BenchmarkArtifacts: The retrieved BenchmarkArtifact, or None if no BenchmarkArtifact with the given IDs exists. + """ + return ( + session.query(BenchmarkArtifacts) + .filter( + BenchmarkArtifacts.benchmark_id == benchmark_id, + BenchmarkArtifacts.artifact_id == artifact_id, + ) + .first() + ) + + def create_benchmark_type( + session: Session, long_name: str, short_name: str, description: str + ): + """ + Creates a new BenchmarkType and adds it to the database. + + Args: + session (Session): The session to use for database operations. + long_name (str): The long name of the benchmark type. + short_name (str): The short name of the benchmark type. + description (str): The description of the benchmark type. + + Returns: + None + """ + benchmark_type = BenchmarkType( + long_name=long_name, short_name=short_name, description=description + ) + session.add(benchmark_type) + session.commit() + + def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): + """ + Retrieves a BenchmarkType from the database by its ID. + + Args: + session (Session): The session to use for database operations. + benchmark_type_id (int): The ID of the benchmark type to retrieve. + + Returns: + BenchmarkType: The retrieved BenchmarkType, or None if no BenchmarkType with the given ID exists. + + Usage: + from sqlalchemy.orm import Session + from models import BenchmarkType + + session = Session() + benchmark_type_id = 1 + benchmark_type = get_benchmark_type_by_id(session, benchmark_type_id) + if benchmark_type is not None: + print(f"Retrieved benchmark type: {benchmark_type.long_name}") + else: + print("No benchmark type found with the given ID.") + """ + return ( + session.query(BenchmarkType) + .filter(BenchmarkType.benchmark_type_id == benchmark_type_id) + .first() + ) \ No newline at end of file diff --git a/sqlalcamey/repository.py b/sqlalcamey/repository.py index 002981c22..3d77f7206 100644 --- a/sqlalcamey/repository.py +++ b/sqlalcamey/repository.py @@ -1,89 +1,544 @@ # repository.py from datetime import date from sqlalchemy.orm import Session -from SecurityGuidance import Benchmarks -from .models import BenchmarkStatus +from sqlalchemy.exc import IntegrityError +from .models import ( + Artifact, + ArtifactTypes, + Benchmarks, + BenchmarkArtifacts, + BenchmarkType, + Statuses, + BenchmarkType, + Organization, + Products, +) + + +class ArtifactRepository: + """ + A repository for managing Artifact entities in a database. + + This class provides methods for creating, retrieving, updating, and deleting Artifact entities, as well as retrieving associated ArtifactType and Organization entities. + + Attributes: + session (Session): The SQLAlchemy session that will be used for database operations. + + Methods: + __init__(self, session: Session): Initialize a new instance of the ArtifactRepository class. + get_all(self): Retrieve all Artifact entities from the database. + get_by_id(self, artifact_id: int): Retrieve an Artifact entity by its ID. + create(self, **kwargs): Create a new Artifact entity and save it to the database. + update(self, artifact_id: int, **kwargs): Update an Artifact entity with the given ID. + delete(self, artifact_id: int): Delete an Artifact entity by its ID. + get_artifact_type(self, artifact_id: int): Retrieve the ArtifactType associated with an Artifact entity. + get_organization(self, artifact_id: int): Retrieve the Organization associated with an Artifact entity. + get_raw_data(self, artifact_id: int): Retrieve the raw_data of an Artifact entity by its ID. + get_created_date(self, artifact_id: int): Retrieve the created_at date of an Artifact entity by its ID. + update_raw_data(self, artifact_id: int, new_raw_data: bytes): Update the raw_data of an Artifact entity by its ID. + get_artifacts_by_type(self, type_id: int): Retrieve all Artifact entities with a specific ArtifactType. + get_artifacts_by_organization(self, organization_id: int): Retrieve all Artifact entities belonging to a specific Organization. + + Example: + from sqlalchemy.orm import Session + from sqlalchemy import create_engine + + engine = create_engine('sqlite:///example.db') + Session = sessionmaker(bind=engine) + session = Session() + + repo = ArtifactRepository(session) + + # Create a new artifact + artifact = repo.create(name='Artifact 1', location='Location 1', created_at=date.today(), type_id=1, owner_id=1) + print(artifact.artifact_id) # Outputs the ID of the newly created artifact + + # Retrieve all artifacts + artifacts = repo.get_all() + for artifact in artifacts: + print(artifact.name) # Outputs the name of each artifact + + # Retrieve an artifact by ID + artifact = repo.get_by_id(1) + if artifact: + print(artifact.name) # Outputs the name of the artifact + + # Update an artifact + repo.update(1, name='Updated Artifact') + updated_artifact = repo.get_by_id(1) + print(updated_artifact.name) # Outputs 'Updated Artifact' + + # Delete an artifact + repo.delete(1) + deleted_artifact = repo.get_by_id(1) + print(deleted_artifact) # Outputs 'None' + + # Retrieve the artifact type of an artifact + artifact_type = repo.get_artifact_type(1) + if artifact_type: + print(artifact_type.type_name) # Outputs the type name of the artifact type + + # Retrieve the organization of an artifact + organization = repo.get_organization(1) + if organization: + print(organization.name) # Outputs the name of the organization + + # Retrieve the raw data of an artifact + raw_data = repo.get_raw_data(1) + if raw_data: + print(raw_data) # Outputs the raw data of the artifact + + # Retrieve the created date of an artifact + created_date = repo.get_created_date(1) + if created_date: + print(created_date) # Outputs the created date of the artifact + + # Update the raw data of an artifact + success = repo.update_raw_data(1, b'New raw data') + print(success) # Outputs 'True' if the update was successful, 'False' otherwise + + # Retrieve all artifacts of a specific type + artifacts_by_type = repo.get_artifacts_by_type(1) + for artifact in artifacts_by_type: + print(artifact.name) # Outputs the name of each artifact + + # Retrieve all artifacts of a specific organization + artifacts_by_organization = repo.get_artifacts_by_organization(1) + for artifact in artifacts_by_organization: + print(artifact.name) # Outputs the name of each artifact + """ + + def __init__(self, session: Session): + self.session = session + + def get_all(self): + """ + Retrieve all Artifact entities from the database. + + Returns: + list[Artifact]: A list of all Artifact entities. + + Example: + repo = ArtifactRepository(session) + artifacts = repo.get_all() + for artifact in artifacts: + print(artifact.name) # Outputs the name of each artifact + """ + return self.session.query(Artifact).all() + + def get_by_id(self, artifact_id: int): + """ + Retrieve an Artifact entity by its ID. + + Args: + artifact_id (int): The ID of the Artifact entity to retrieve. + + Returns: + Artifact: The Artifact entity with the given ID, or None if not found. + + Example: + repo = ArtifactRepository(session) + artifact = repo.get_by_id(1) + if artifact: + print(artifact.name) # Outputs the name of the artifact + """ + return self.session.query(Artifact).get(artifact_id) + + def create(self, **kwargs): + """ + Create a new Artifact entity and save it to the database. + + Args: + **kwargs: The properties of the Artifact entity to create. + - type_id (int): The ID of the artifact type. + - owner_id (int): The ID of the owner of the artifact. + - name (str): The name of the artifact. + - location (str): The primary location of the artifact. + - secondary_location (str): The secondary location of the artifact. + - created_at (date): The date the artifact was created. + - raw_data (LargeBinary): The raw data of the artifact. This field is optional. + + Returns: + Artifact: The newly created Artifact entity. + + Example: + repo = ArtifactRepository(session) + artifact = repo.create(name='New Artifact', location='Location', created_at=date.today(), type_id=1, owner_id=1) + print(artifact.artifact_id) # Outputs the ID of the newly created artifact + """ + + # Check for invalid arguments + valid_args = { + "type_id", + "owner_id", + "name", + "location", + "secondary_location", + "created_at", + "raw_data", + } + if not set(kwargs.keys()).issubset(valid_args): + print("Invalid arguments provided.") + return None + + artifact = Artifact(**kwargs) + try: + self.session.add(artifact) + self.session.commit() + return artifact + except Exception as e: + print(f"Failed to create Artifact: {e}") + self.session.rollback() + return None + + def update(self, artifact_id: int, **kwargs): + """ + Update an Artifact entity with the given ID. + + Args: + artifact_id (int): The ID of the Artifact entity to update. + **kwargs: The properties to update. + + Example: + repo = ArtifactRepository(session) + repo.update(1, name='Updated Artifact') # Updates the name of the artifact with ID 1 + """ + # Check for invalid arguments + valid_args = { + "type_id", + "owner_id", + "name", + "location", + "secondary_location", + "created_at", + "raw_data", + } + if not set(kwargs.keys()).issubset(valid_args): + print("Invalid arguments provided.") + return None + + artifact = self.session.query(Artifact).get(artifact_id) + if artifact: + for key, value in kwargs.items(): + setattr(artifact, key, value) + try: + self.session.commit() + except Exception as e: + print(f"Failed to update Artifact: {e}") + self.session.rollback() + return None + else: + print(f"No Artifact found with ID {artifact_id}") + return None + + def delete(self, artifact_id: int): + """ + Delete an Artifact entity by its ID. + + Args: + artifact_id (int): The ID of the Artifact entity to delete. + + Example: + repo = ArtifactRepository(session) + repo.delete(1) # Deletes the artifact with ID 1 + """ + artifact = self.session.query(Artifact).get(artifact_id) + if artifact: + self.session.delete(artifact) + self.session.commit() + + def get_artifact_type(self, artifact_id: int): + """ + Retrieve the ArtifactType associated with an Artifact entity. + + Args: + artifact_id (int): The ID of the Artifact entity. + + Returns: + ArtifactType: The ArtifactType associated with the Artifact entity, or None if not found. + + Example: + repo = ArtifactRepository(session) + artifact_type = repo.get_artifact_type(1) + if artifact_type: + print(artifact_type.type_name) # Outputs the type name of the artifact type + """ + artifact = self.session.query(Artifact).get(artifact_id) + return artifact.artifact_type if artifact else None + + def get_organization(self, artifact_id: int): + """ + Retrieve the Organization associated with an Artifact entity. + + Args: + artifact_id (int): The ID of the Artifact entity. + + Returns: + Organization: The Organization associated with the Artifact entity, or None if not found. + + Example: + repo = ArtifactRepository(session) + organization = repo.get_organization(1) + if organization: + print(organization.name) # Outputs the name of the organization + """ + artifact = self.session.query(Artifact).get(artifact_id) + return artifact.organization if artifact else None + + def get_raw_data(self, artifact_id: int): + """ + Retrieve the raw_data of an Artifact entity by its ID. + + Args: + artifact_id (int): The ID of the Artifact entity. + + Returns: + bytes: The raw_data of the Artifact entity. + """ + artifact = self.session.query(Artifact).get(artifact_id) + if artifact: + return artifact.raw_data + else: + return None + + def get_created_date(self, artifact_id: int): + """ + Retrieve the created_at date of an Artifact entity by its ID. + + Args: + artifact_id (int): The ID of the Artifact entity. + + Returns: + date: The created_at date of the Artifact entity. + """ + artifact = self.session.query(Artifact).get(artifact_id) + if artifact: + return artifact.created_at + else: + return None + + def update_raw_data(self, artifact_id: int, new_raw_data: bytes): + """ + Update the raw_data of an Artifact entity by its ID. + + Args: + artifact_id (int): The ID of the Artifact entity. + new_raw_data (bytes): The new raw_data to update the Artifact entity with. + + Returns: + bool: True if the update was successful, False otherwise. + """ + artifact = self.session.query(Artifact).get(artifact_id) + if artifact: + artifact.raw_data = new_raw_data + self.session.commit() + return True + else: + return False + + def get_artifacts_by_type(self, type_id: int): + """ + Retrieve all Artifact entities with a specific ArtifactType. + + Args: + type_id (int): The ID of the ArtifactType. + + Returns: + List[Artifact]: A list of Artifact entities with the specified ArtifactType. + """ + artifacts = self.session.query(Artifact).filter(Artifact.type_id == type_id).all() + return artifacts + + def get_artifacts_by_organization(self, organization_id: int): + """ + Retrieve all Artifact entities belonging to a specific Organization. + + Args: + organization_id (int): The ID of the Organization. + + Returns: + List[Artifact]: A list of Artifact entities belonging to the specified Organization. + """ + artifacts = self.session.query(Artifact).filter(Artifact.owner_id == organization_id).all() + return artifacts class BenchmarksRepository: """ - A repository providing an interface for accessing and manipulating Benchmarks in the database. + A repository for managing Benchmarks entities in a database. Attributes: - session (Session): The SQLAlchemy session for database operations. + session (Session): The SQLAlchemy session that will be used for database operations. Methods: - get_benchmark_by_id(benchmark_id: int): Retrieve a benchmark by its ID. - add_benchmark(version: int, release: int, release_date: date, type_id: int, product_id: int, author_id: int, sponsor_id: int, status_id: int): Add a new benchmark to the database. - update_benchmark(benchmark_id: int, version: int, release: int, release_date: date, type_id: int, product_id: int, author_id: int, sponsor_id: int, status_id: int): Update an existing benchmark in the database. - remove_benchmark(benchmark_id: int): Remove an existing benchmark from the database. - get_all_benchmarks(): Retrieve all benchmarks from the database. + __init__(self, session: Session): Initialize a new instance of the BenchmarksRepository class. + get_all(self): Retrieve all Benchmarks entities from the database. + get_by_id(self, benchmark_id: int): Retrieve a Benchmarks entity by its ID. + create(self, **kwargs): Create a new Benchmarks entity and save it to the database. + update(self, benchmark_id: int, **kwargs): Update a Benchmarks entity with the given ID. + delete(self, benchmark_id: int): Delete a Benchmarks entity by its ID. + add_product(self, benchmark_id, product_id): Associates a product with a benchmark. + get_associated_entities(self, benchmark_id: int): Retrieve the associated entities of a Benchmarks entity. + get_benchmarks_by_type(self, type_id): Retrieve all Benchmarks entities associated with a specific BenchmarkType. + get_benchmarks_by_product(self, product_id): Retrieve all Benchmarks entities associated with a specific Product. + get_benchmarks_by_author(self, author_id): Retrieve all Benchmarks entities associated with a specific author Organization. + get_benchmarks_by_sponsor(self, sponsor_id): Retrieve all Benchmarks entities associated with a specific sponsor Organization. + get_benchmarks_by_status(self, status_id): Retrieve all Benchmarks entities associated with a specific Status. + + Example: + from sqlalchemy.orm import Session + from sqlalchemy import create_engine + + engine = create_engine('sqlite:///example.db') + Session = sessionmaker(bind=engine) + session = Session() + + repo = BenchmarksRepository(session) + + # Create a new benchmark + benchmark = repo.create(version='1.0', name='Benchmark 1', description='This is a benchmark.') + print(benchmark.id) # Outputs the ID of the newly created benchmark + + # Retrieve all benchmarks + benchmarks = repo.get_all() + for benchmark in benchmarks: + print(benchmark.version) # Outputs the version of each benchmark + + # Retrieve a benchmark by ID + benchmark = repo.get_by_id(1) + if benchmark: + print(benchmark.version) # Outputs the version of the benchmark + + # Update a benchmark + repo.update(1, version='1.1', name='Updated Benchmark') + updated_benchmark = repo.get_by_id(1) + print(updated_benchmark.version) # Outputs '1.1' + print(updated_benchmark.name) # Outputs 'Updated Benchmark' + + # Delete a benchmark + repo.delete(1) + deleted_benchmark = repo.get_by_id(1) + print(deleted_benchmark) # Outputs 'None' + + # Retrieve the associated entities of a benchmark + entities = repo.get_associated_entities(1) + print(entities) # Outputs the associated entities + + # Retrieve all benchmarks associated with a specific BenchmarkType + benchmarks = repo.get_benchmarks_by_type(1) + for benchmark in benchmarks: + print(benchmark.version) # Outputs the version of each benchmark + + # Retrieve all benchmarks associated with a specific Product + benchmarks = repo.get_benchmarks_by_product(1) + for benchmark in benchmarks: + print(benchmark.version) # Outputs the version of each benchmark + + # Retrieve all benchmarks associated with a specific author Organization + benchmarks = repo.get_benchmarks_by_author(1) + for benchmark in benchmarks: + print(benchmark.version) # Outputs the version of each benchmark + + # Retrieve all benchmarks associated with a specific sponsor Organization + benchmarks = repo.get_benchmarks_by_sponsor(1) + for benchmark in benchmarks: + print(benchmark.version) # Outputs the version of each benchmark + + # Retrieve all benchmarks associated with a specific Status + benchmarks = repo.get_benchmarks_by_status(1) + for benchmark in benchmarks: + print(benchmark.version) # Outputs the version of each benchmark """ def __init__(self, session: Session): """ - Initialize a new BenchmarksRepository. + Initialize a new instance of the BenchmarksRepository class. Args: - session (Session): The SQLAlchemy session to use for database operations. + session (Session): The SQLAlchemy session that will be used for database operations. - Usage: - # First, create a new SQLAlchemy session + Example: + from sqlalchemy.orm import Session from sqlalchemy import create_engine - from sqlalchemy.orm import sessionmaker - engine = create_engine('sqlite:///benchmarks.db') + engine = create_engine('sqlite:///example.db') Session = sessionmaker(bind=engine) session = Session() - # Then, create a new instance of BenchmarksRepository using the session repo = BenchmarksRepository(session) """ self.session = session - def add_benchmark( + def get_all(self): + """ + Retrieve all Benchmarks entities from the database. + + Returns: + list[Benchmarks]: A list of all Benchmarks entities. + + Example: + repo = BenchmarksRepository(session) + benchmarks = repo.get_all() + for benchmark in benchmarks: + print(benchmark.version) # Outputs the version of each benchmark + """ + return self.session.query(Benchmarks).all() + + def get_by_id(self, benchmark_id: int): + """ + Retrieve a Benchmarks entity by its ID. + + Args: + benchmark_id (int): The ID of the Benchmarks entity to retrieve. + + Returns: + Benchmarks: The Benchmarks entity with the given ID, or None if not found. + + Example: + repo = BenchmarksRepository(session) + benchmark = repo.get_by_id(1) + if benchmark: + print(benchmark.version) # Outputs the version of the benchmark + """ + return self.session.query(Benchmarks).get(benchmark_id) + + def create( self, - version: int, - release: int, - release_date: date, - type_id: int, - product_id: int, - author_id: int, - status_id: int, - sponsor_id: int = None, + version, + release, + release_date, + type_id, + product_id, + author_id, + status_id, + sponsor_id=None, ): """ - Add a new benchmark to the database. + Creates a new benchmark. Args: - version (int): The version of the benchmark. - release (int): The release of the benchmark. + version (str): The version of the benchmark. + release (str): The release of the benchmark. release_date (date): The release date of the benchmark. - type_id (int): The type ID of the benchmark. - product_id (int): The product ID of the benchmark. - author_id (int): The author ID of the benchmark. - status_id (int): The status ID of the benchmark. - sponsor_id (int, optional): The sponsor ID of the benchmark. Defaults to None. + type_id (int): The ID of the benchmark type. + product_id (int): The ID of the product. + author_id (int): The ID of the authoring organization. + status_id (int): The ID of the status. + sponsor_id (int, optional): The ID of the sponsoring organization. Returns: - Benchmarks: The newly created benchmark. + Benchmark: The newly created Benchmark object. - Usage: - # Create a new instance of BenchmarksRepository + Raises: + ValueError: If a benchmark with the same version, release, product_id, and author_id already exists. + + Example: repo = BenchmarksRepository(session) - # Add a new benchmark - new_benchmark = repo.add_benchmark( - version=1, - release=1, - release_date=date.today(), - type_id=1, - product_id=1, - author_id=1, - status_id=1, - ) + # Create a new benchmark + benchmark = repo.create('1.0', 'A', date.today(), 1, 2, 3, 4, 5) - print(f"Added new benchmark with ID {new_benchmark.benchmark_id}") + print(benchmark.version) # Outputs: '1.0' """ new_benchmark = Benchmarks( version=version, @@ -92,572 +547,1207 @@ def add_benchmark( type_id=type_id, product_id=product_id, author_id=author_id, - sponsor_id=sponsor_id, status_id=status_id, + sponsor_id=sponsor_id, ) self.session.add(new_benchmark) - self.session.commit() - return new_benchmark + try: + self.session.commit() + return new_benchmark + except IntegrityError: + self.session.rollback() + raise ValueError("A benchmark with this version, release, product_id, and author_id already exists.") - def get_benchmark_by_id(self, benchmark_id: int): + def update(self, benchmark_id, **kwargs): """ - Retrieve a benchmark by its ID. + Updates a benchmark. Args: - benchmark_id (int): The ID of the benchmark to retrieve. + benchmark_id (int): The ID of the benchmark to update. + **kwargs: Arbitrary keyword arguments. Each argument represents a field to update on the benchmark. Returns: - Benchmarks: The retrieved benchmark, or None if no benchmark with the given ID exists. + Benchmark: The updated Benchmark object, or None if no benchmark with the provided ID was found. - Usage: - # Create a new instance of BenchmarksRepository + Raises: + ValueError: If updating the benchmark would result in a duplicate version, release, product_id, and author_id. + + Example: repo = BenchmarksRepository(session) - # Get a benchmark with ID 1 - benchmark = repo.get_benchmark_by_id(1) + # Update the version of a benchmark with ID 1 + benchmark = repo.update(1, version='1.1') + + print(benchmark.version) # Outputs: '1.1' + """ + benchmark = self.get_by_id(benchmark_id) + if benchmark: + for key, value in kwargs.items(): + setattr(benchmark, key, value) + try: + self.session.commit() + return benchmark + except IntegrityError: + self.session.rollback() + raise ValueError("A benchmark with this version, release, product_id, and author_id already exists.") + + def delete(self, benchmark_id: int): + """ + Delete a Benchmarks entity by its ID. + + Args: + benchmark_id (int): The ID of the Benchmarks entity to delete. - if benchmark is not None: - print(f"Retrieved benchmark with ID {benchmark.benchmark_id}") - else: - print("No benchmark found with the given ID") + Example: + repo = BenchmarksRepository(session) + repo.delete(1) + deleted_benchmark = repo.get_by_id(1) + print(deleted_benchmark) # Outputs 'None' """ - return self.session.query(Benchmarks).filter(Benchmarks.benchmark_id == benchmark_id).first() + benchmark = self.session.query(Benchmarks).get(benchmark_id) + if benchmark: + self.session.delete(benchmark) + self.session.commit() - def get_all_benchmarks(self): + def add_product(self, benchmark_id, product_id): """ - Retrieve all benchmarks from the database. + Associates a product with a benchmark. + + This method sets the product_id foreign key in the Benchmarks table to the provided product_id, + effectively associating the product with the benchmark. + + Args: + benchmark_id (int): The ID of the benchmark. + product_id (int): The ID of the product to associate with the benchmark. Returns: - List[Benchmarks]: A list of all benchmarks. + Benchmark: The updated benchmark object, or None if no benchmark with the provided ID was found. - Usage: - # Create a new instance of BenchmarksRepository + Raises: + IntegrityError: If the provided product_id does not exist in the Products table. + + Example: repo = BenchmarksRepository(session) - # Get all benchmarks - all_benchmarks = repo.get_all_benchmarks() + # Assume we have a benchmark with ID 1 and a product with ID 2 + benchmark = repo.add_product(1, 2) - for benchmark in all_benchmarks: - print(f"Benchmark ID: {benchmark.benchmark_id}") + print(benchmark.product_id) # Outputs: 2 """ - return self.session.query(Benchmarks).all() + benchmark = self.get_by_id(benchmark_id) + if benchmark: + try: + benchmark.product = product_id + self.session.commit() + except IntegrityError: + self.session.rollback() + raise ValueError("The provided product_id does not exist in the Products table.") + return benchmark - def update_benchmark( - self, - benchmark_id: int, - version: int, - release: int, - release_date: date, - type_id: int, - product_id: int, - author_id: int, - status_id: int, - sponsor_id: int = None, - ): + def get_associated_entities(self, benchmark_id: int): """ - Update an existing benchmark in the database. + Retrieve the associated entities of a Benchmark entity. Args: - benchmark_id (int): The ID of the benchmark to update. - version (int): The new version of the benchmark. - release (int): The new release of the benchmark. - release_date (date): The new release date of the benchmark. - type_id (int): The new type ID of the benchmark. - product_id (int): The new product ID of the benchmark. - author_id (int): The new author ID of the benchmark. - sponsor_id (int, optional): The new sponsor ID of the benchmark. Defaults to None. - status_id (int): The new status ID of the benchmark. + benchmark_id (int): The ID of the Benchmark entity. Returns: - Benchmarks: The updated benchmark, or None if no benchmark with the given ID exists. + dict: A dictionary containing the associated entities. - Usage: - # Create a new instance of BenchmarksRepository + Example: repo = BenchmarksRepository(session) + entities = repo.get_associated_entities(1) + print(entities) # Outputs the associated entities + """ + benchmark = self.session.query(Benchmarks).get(benchmark_id) + if benchmark: + return { + "benchmark_type": benchmark.benchmark_type, + "product": benchmark.product, + "author": benchmark.author, + "sponsor": benchmark.sponsor, + "status": benchmark.status, + } + return None + + def get_benchmarks_by_type(self, type_id): + """ + Retrieves all benchmarks of a specific type. - # Update a benchmark with ID 1 - updated_benchmark = repo.update_benchmark( - benchmark_id=1, - version=1, - release=2, - release_date=date.today(), - type_id=1, - product_id=1, - author_id=1, - sponsor_id=1, - status_id=1, - ) + Args: + type_id (int): The ID of the benchmark type. - if updated_benchmark is not None: - print(f"Updated benchmark with ID {updated_benchmark.benchmark_id}") - else: - print("No benchmark found with the given ID") - """ - benchmark = self.get_benchmark_by_id(benchmark_id) - if benchmark is None: - return None # or you might raise an exception + Returns: + List[Benchmark]: A list of Benchmark objects with the specified type_id. - attributes = { - "version": version, - "release": release, - "release_date": release_date, - "type_id": type_id, - "product_id": product_id, - "author_id": author_id, - "status_id": status_id, - "sponsor_id": sponsor_id, - } + Example: + repo = BenchmarksRepository(session) - for attr, value in attributes.items(): - if value is not None: - setattr(benchmark, attr, value) + # Assume we have benchmarks of type 1 + benchmarks = repo.get_benchmarks_by_type(1) - self.session.commit() - return benchmark + for benchmark in benchmarks: + print(benchmark.type_id) # Outputs: 1 + """ + return self.session.query(Benchmarks).filter(Benchmarks.type_id == type_id).all() - def remove_benchmark_by_id(self, benchmark_id: int): + def get_benchmarks_by_product(self, product_id): """ - Remove an existing benchmark from the database. + Retrieves all benchmarks for a specific product. Args: - benchmark_id_by_id (benchmark_id: int): The ID of the benchmark to remove. + product_id (int): The ID of the product. Returns: - bool: True if the benchmark was removed, False otherwise. + List[Benchmark]: A list of Benchmark objects for the specified product_id. - Usage: - # Create a new instance of BenchmarksRepository + Example: repo = BenchmarksRepository(session) - # Remove a benchmark with ID 1 - if repo.remove_benchmark(benchmark_id=1): - print("Benchmark removed successfully") - else: - print("No benchmark found with the given ID") - """ - benchmark = self.get_benchmark_by_id(benchmark_id) - if benchmark is None: - return False - - self.session.delete(benchmark) - self.session.commit() - return True + # Assume we have benchmarks for product 2 + benchmarks = repo.get_benchmarks_by_product(2) + for benchmark in benchmarks: + print(benchmark.product_id) # Outputs: 2 + """ + return self.session.query(Benchmarks).filter(Benchmarks.product_id == product_id).all() -class BenchmarkStatusRepository: - def __init__(self, session): + def get_benchmarks_by_author(self, author_id): """ - Initialize a new BenchmarkStatusRepository. + Retrieves all benchmarks authored by a specific organization. Args: - session (Session): The SQLAlchemy session to use for database operations. + author_id (int): The ID of the authoring organization. + + Returns: + List[Benchmark]: A list of Benchmark objects authored by the specified organization. + + Example: + repo = BenchmarksRepository(session) + + # Assume we have benchmarks authored by organization 3 + benchmarks = repo.get_benchmarks_by_author(3) + + for benchmark in benchmarks: + print(benchmark.author_id) # Outputs: 3 """ - self.session = session + return self.session.query(Benchmarks).filter(Benchmarks.author_id == author_id).all() - def get_status_by_id(self, status_id: int): + def get_benchmarks_by_sponsor(self, sponsor_id): """ - Retrieve a benchmark status by its ID. + Retrieves all benchmarks sponsored by a specific organization. Args: - status_id (int): The ID of the benchmark status to retrieve. + sponsor_id (int): The ID of the sponsoring organization. Returns: - BenchmarkStatus: The benchmark status with the given ID, or None if no such benchmark status exists. + List[Benchmark]: A list of Benchmark objects sponsored by the specified organization. + + Example: + repo = BenchmarksRepository(session) + + # Assume we have benchmarks sponsored by organization 4 + benchmarks = repo.get_benchmarks_by_sponsor(4) + + for benchmark in benchmarks: + print(benchmark.sponsor_id) # Outputs: 4 """ - return self.session.query(BenchmarkStatus).get(status_id) + return self.session.query(Benchmarks).filter(Benchmarks.sponsor_id == sponsor_id).all() - def add_status(self, name: str): + def get_benchmarks_by_status(self, status_id): """ - Add a new benchmark status to the database. + Retrieves all benchmarks with a specific status. Args: - name (str): The name of the benchmark status. + status_id (int): The ID of the status. Returns: - BenchmarkStatus: The newly created benchmark status. + List[Benchmark]: A list of Benchmark objects with the specified status_id. + + Example: + repo = BenchmarksRepository(session) + + # Assume we have benchmarks with status 5 + benchmarks = repo.get_benchmarks_by_status(5) + + for benchmark in benchmarks: + print(benchmark.status_id) # Outputs: 5 """ - new_status = BenchmarkStatus(name=name) + return self.session.query(Benchmarks).filter(Benchmarks.status_id == status_id).all() + + +class StatusesRepository: + """ + A repository for managing Statuses entities in a database. + + Attributes: + session (Session): The SQLAlchemy session that will be used for database operations. + + Methods: + __init__(self, session: Session): Initialize a new instance of the StatusesRepository class. + get_all(self): Retrieve all Statuses entities from the database. + get_by_id(self, status_id: int): Retrieve a Statuses entity by its ID. + create(self, name: str): Create a new Statuses entity and save it to the database. + update(self, status_id: int, name: str): Update a Statuses entity with the given ID. + delete(self, status_id: int): Delete a Statuses entity by its ID. + + Example: + from sqlalchemy.orm import Session + from sqlalchemy import create_engine + + engine = create_engine('sqlite:///example.db') + Session = sessionmaker(bind=engine) + session = Session() + + repo = StatusesRepository(session) + + # Create a new status + status = repo.create(name='New Status') + print(status.status_id) # Outputs the ID of the newly created status + + # Retrieve all statuses + statuses = repo.get_all() + for status in statuses: + print(status.name) # Outputs the name of each status + + # Retrieve a status by ID + status = repo.get_by_id(1) + if status: + print(status.name) # Outputs the name of the status + + # Update a status + repo.update(1, name='Updated Status') + updated_status = repo.get_by_id(1) + print(updated_status.name) # Outputs 'Updated Status' + + # Delete a status + repo.delete(1) + deleted_status = repo.get_by_id(1) + print(deleted_status) # Outputs 'None' + """ + + def __init__(self, session: Session): + self.session = session + + def get_all(self): + return self.session.query(Statuses).all() + + def get_by_id(self, status_id): + return self.session.query(Statuses).get(status_id) + + def create(self, name): + new_status = Statuses(name=name) self.session.add(new_status) self.session.commit() return new_status - def update_status(self, status_id: int, name: str): + def update(self, status_id, name): + status = self.get_by_id(status_id) + if status: + status.name = name + self.session.commit() + return status + + def delete(self, status_id): + status = self.get_by_id(status_id) + if status: + self.session.delete(status) + self.session.commit() + + +class OrganizationRepository: + """ + A repository for managing Organization entities in a database. + + Attributes: + session (Session): The SQLAlchemy session that will be used for database operations. + + Methods: + __init__(self, session: Session): Initialize a new instance of the OrganizationRepository class. + get_all(self): Retrieve all Organization entities from the database. + get_by_id(self, organization_id: int): Retrieve an Organization entity by its ID. + create(self, long_name: str, short_name: str, uri: str, email: str): Create a new Organization entity and save it to the database. + update(self, organization_id: int, **kwargs): Update an Organization entity with the given ID. + delete(self, organization_id: int): Delete an Organization entity by its ID. + + Example: + from sqlalchemy.orm import Session + from sqlalchemy import create_engine + + engine = create_engine('sqlite:///example.db') + Session = sessionmaker(bind=engine) + session = Session() + + repo = OrganizationRepository(session) + + # Create a new organization + organization = repo.create(long_name='New Organization', short_name='NO', uri='http://example.com', email='info@example.com') + print(organization.organization_id) # Outputs the ID of the newly created organization + + # Retrieve all organizations + organizations = repo.get_all() + for organization in organizations: + print(organization.long_name) # Outputs the long_name of each organization + + # Retrieve an organization by ID + organization = repo.get_by_id(1) + if organization: + print(organization.long_name) # Outputs the long_name of the organization + + # Update an organization + repo.update(1, long_name='Updated Organization', short_name='UO') + updated_organization = repo.get_by_id(1) + print(updated_organization.long_name) # Outputs 'Updated Organization' + + # Delete an organization + repo.delete(1) + deleted_organization = repo.get_by_id(1) + print(deleted_organization) # Outputs 'None' + """ + + def __init__(self, session: Session): + self.session = session + + def get_all(self): + return self.session.query(Organization).all() + + def get_by_id(self, organization_id): + return self.session.query(Organization).get(organization_id) + + def create(self, long_name, short_name, uri, email): + new_organization = Organization(long_name=long_name, short_name=short_name, uri=uri, email=email) + self.session.add(new_organization) + try: + self.session.commit() + return new_organization + except IntegrityError: + self.session.rollback() + raise ValueError("An organization with this long_name and short_name already exists.") + + def update(self, organization_id, **kwargs): + organization = self.get_by_id(organization_id) + if organization: + for key, value in kwargs.items(): + setattr(organization, key, value) + try: + self.session.commit() + return organization + except IntegrityError: + self.session.rollback() + raise ValueError("An organization with this long_name and short_name already exists.") + + def delete(self, organization_id): + organization = self.get_by_id(organization_id) + if organization: + self.session.delete(organization) + self.session.commit() + + +class ProductRepository: + """ + A repository providing an interface for accessing and manipulating Product entities in the database. + + Methods: + + __init__(self, session: Session): Initialize a new instance of the ProductRepository class. + + create(session: Session, long_name: str, short_name: str, version: float, release: int, owner_id: int) -> Products: + Create a new entity and add it to the database. + + get_by_id(session: Session, id: int) -> Products: + Get an entity by its ID. + + get_all(session: Session) -> list[Products]: + Get all entities. + + update(session: Session, id: int, short_name: str, version: float, release: int, owner_id: int, long_name: str = None) -> None: + Update an entity. + + delete(session: Session, id: int) -> None: + Delete an entity. + + Examples: + >>> repo = Repository() + >>> new_entity = repo.create(session, 'Long Name', 'Short Name', 1.0, 1, 1) + >>> print(new_entity.long_name) + 'Long Name' + >>> entity = repo.get_by_id(session, 1) + >>> print(entity.long_name) + 'Long Name' + >>> entities = repo.get_all(session) + >>> for entity in entities: + ... print(entity.long_name) + 'Entity 1' + 'Entity 2' + 'Entity 3' + >>> repo.update(session, 1, 'New Short Name', 1.1, 2, 2, 'New Long Name') + >>> updated_entity = repo.get_by_id(session, 1) + >>> print(updated_entity.short_name) + 'New Short Name' + >>> repo.delete(session, 1) + >>> deleted_entity = repo.get_by_id(session, 1) + >>> print(deleted_entity) + None + """ + + def __init__(self, session: Session): """ - Update an existing benchmark status in the database. + Initialize a new instance of the ProductRepository class. Args: - status_id (int): The ID of the benchmark status to update. - name (str): The new name of the benchmark status. + session (Session): The SQLAlchemy session for database operations. + """ + self.session = session + + def create( + self, + session: Session, + long_name: str, + short_name: str, + version: float, + release: int, + owner_id: int, + ) -> Products: + """ + Create a new entity and add it to the database. + + Args: + long_name (str): The long name of the entity. + short_name (str): The short name of the entity. + version (float): The version of the entity. + release (int): The release of the entity. + owner_id (int): The ID of the organization that owns the entity. Returns: - BenchmarkStatus: The updated benchmark status, or None if no benchmark status with the given ID exists. + Products: The created entity. + + Examples: + >>> repo = Repository(session) + >>> new_entity = repo.create('Long Name', 'Short Name', 1.0, 1, 1) + >>> print(new_entity.long_name) + 'Long Name' """ - status = self.session.query(BenchmarkStatus).get(status_id) - if status is not None: - status.name = name - self.session.commit() - return status + entity = Products( + long_name=long_name, + short_name=short_name, + version=version, + release=release, + owner_id=owner_id, + ) + session.add(entity) + session.commit() + return entity - def remove_status(self, status_id: int): + def get_by_id(session: Session, id: int) -> Products: """ - Remove an existing benchmark status from the database. + Get an entity by its ID. Args: - status_id (int): The ID of the benchmark status to remove. + id (int): The ID of the entity to get. Returns: - bool: True if the benchmark status was removed, False otherwise. + Products: The entity with the given ID, or None if no such entity exists. + + Examples: + >>> repo = Repository(session) + >>> entity = repo.get_by_id(1) + >>> print(entity.long_name) + 'Long Name' """ - status = self.session.query(BenchmarkStatus).get(status_id) - if status is not None: - self.session.delete(status) - self.session.commit() - return True - return False + return session.query(Products).filter(Products.product_id == id).first() - def get_all_statuses(self): + def get_all(session: Session) -> list[Products]: """ - Retrieve all benchmark statuses from the database. + Get all entities. Returns: - List[BenchmarkStatus]: A list of all benchmark statuses. + list[Products]: A list of all entities. + + Examples: + >>> repo = Repository(session) + >>> entities = repo.get_all() + >>> for entity in entities: + ... print(entity.long_name) + 'Entity 1' + 'Entity 2' + 'Entity 3' """ - return self.session.query(BenchmarkStatus).all() + return session.query(Products).all() - @staticmethod - def add_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + def update( + session: Session, + id: int, + short_name: str, + version: float, + release: int, + owner_id: int, + long_name: str = None, + ) -> None: """ - Adds a new benchmark artifact to the benchmark_artifacts table. + Update an entity. Args: - session (sqlalchemy.orm.Session): The session object used to execute database queries. - benchmark_id (int): The ID of the benchmark. - artifact_id (int): The ID of the artifact. - is_default (bool): Whether the artifact is the default one for the benchmark. - - Returns: - None + id (int): The ID of the entity to update. + short_name (str): The new short name of the entity. + version (float): The new version of the entity. + release (int): The new release of the entity. + owner_id (int): The new owner ID of the entity. + long_name (str, optional): The new long name of the entity. Defaults to None. + + Examples: + >>> repo = Repository(session) + >>> repo.update(1, 'New Short Name', 1.1, 2, 2, 'New Long Name') + >>> updated_entity = repo.get_by_id(1) + >>> print(updated_entity.short_name) + 'New Short Name' """ - new_benchmark_artifact = BenchmarkArtifacts( - benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default - ) - session.add(new_benchmark_artifact) + + entity = get_by_id(session, id) + if entity is not None: + attributes = { + "long_name": long_name, + "short_name": short_name, + "version": version, + "release": release, + "owner_id": owner_id, + } + for attr, value in attributes.items(): + if value is not None: + setattr(entity, attr, value) session.commit() - @staticmethod - def update_benchmark_artifact(session, benchmark_id, artifact_id, is_default): + def delete(session: Session, id: int) -> None: """ - Updates an existing benchmark artifact in the benchmark_artifacts table. + Delete an entity. Args: - session (sqlalchemy.orm.Session): The session object used to execute database queries. - benchmark_id (int): The ID of the benchmark. - artifact_id (int): The ID of the artifact. - is_default (bool): Whether the artifact is the default one for the benchmark. + id (int): The ID of the entity to delete. - Returns: + Examples: + >>> repo = Repository(session) + >>> repo.delete(1) + >>> deleted_entity = repo.get_by_id(1) + >>> print(deleted_entity) None """ - benchmark_artifact = ( - session.query(BenchmarkArtifacts).filter_by(benchmark_id=benchmark_id, artifact_id=artifact_id).first() - ) - if benchmark_artifact is not None: - benchmark_artifact.is_default = is_default + entity = get_by_id(session, id) + if entity is not None: + session.delete(entity) session.commit() - @staticmethod - def create_artifact( - session: Session, - type_id: int, - owner_id: int, - name: str, - location: str, - secondary_location: str, - created_at: date, - raw_data: str, - ): + +class ArtifactTypesRepository: + """ + A repository providing an interface for accessing and manipulating ArtifactTypes entities in the database. + + Attributes: + session (Session): The SQLAlchemy session for database operations. + + Methods: + __init__(self, session: Session): Initialize a new instance of the ArtifactTypesRepository class. + get_by_id(artifact_type_id: int): Retrieve an ArtifactTypes entity by its ID. + add(type_name: str, description: str): Add a new ArtifactTypes entity to the database. + update(artifact_type_id: int, type_name: str, description: str): Update an existing ArtifactTypes entity in the database. + remove(artifact_type_id: int): Remove an existing ArtifactTypes entity from the database. + get_all(): Retrieve all ArtifactTypes entities from the database. + """ + + def __init__(self, session): """ - Creates a new Artifact and adds it to the database. + Initialize the ArtifactTypesRepository with a SQLAlchemy session. Args: - session (Session): The session to use for database operations. - type_id (int): The ID of the artifact type. - owner_id (int): The ID of the owner of the artifact. - name (str): The name of the artifact. - location (str): The primary location of the artifact. - secondary_location (str): The secondary location of the artifact. - created_at (date): The date the artifact was created. - raw_data (str): The raw data of the artifact. + session (Session): The SQLAlchemy session for database operations. + + Example: + >>> from sqlalchemy import create_engine, sessionmaker + >>> from sqlalchemy.orm import Session + >>> engine = create_engine('sqlite:///:memory:') + >>> Session = sessionmaker(bind=engine) + >>> session = Session() + >>> repo = ArtifactTypesRepository(session) + """ + self.session = session + + def get_by_id(self, artifact_type_id): + """ + Retrieve an ArtifactTypes entity by its ID. + + Args: + artifact_type_id (int): The ID of the ArtifactTypes entity. Returns: - None + ArtifactTypes: The ArtifactTypes entity with the given ID. + + Example: + >>> artifact_type = repo.get_by_id(1) + >>> print(artifact_type.type_name) + 'Type1' """ - artifact = Artifact( - type_id=type_id, - owner_id=owner_id, - name=name, - location=location, - secondary_location=secondary_location, - created_at=created_at, - raw_data=raw_data, - ) - session.add(artifact) - session.commit() + return self.session.query(ArtifactTypes).get(artifact_type_id) - def get_artifact_by_id(session: Session, artifact_id: int): + def add(self, type_name, description): """ - Retrieves an Artifact from the database by its ID. + Add a new ArtifactTypes entity to the database. Args: - session (Session): The session to use for database operations. - artifact_id (int): The ID of the artifact to retrieve. + type_name (str): The name of the new ArtifactTypes entity. + description (str): The description of the new ArtifactTypes entity. Returns: - Artifact: The retrieved Artifact, or None if no Artifact with the given ID exists. + ArtifactTypes: The newly created ArtifactTypes entity. + + Example: + >>> new_type = repo.add('Type2', 'Description for Type2') + >>> print(new_type.type_name) + 'Type2' """ - return session.query(Artifact).filter(Artifact.artifact_id == artifact_id).first() + new_type = ArtifactTypes(type_name=type_name, description=description) + self.session.add(new_type) + self.session.commit() + return new_type - def create_benchmark( - session: Session, - version: int, - release: int, - release_date: date, - type_id: int, - product_id: int, - author_id: int, - sponsor_id: int, - status_id: int, - ): + def update(self, artifact_type_id, type_name, description): """ - Creates a new Benchmark and adds it to the database. + Update an existing ArtifactTypes entity in the database. Args: - session (Session): The session to use for database operations. - version (int): The version of the benchmark. - release (int): The release of the benchmark. - release_date (date): The release date of the benchmark. - type_id (int): The ID of the benchmark type. - product_id (int): The ID of the product associated with the benchmark. - author_id (int): The ID of the author of the benchmark. - sponsor_id (int): The ID of the sponsor of the benchmark. - status_id (int): The ID of the status of the benchmark. + artifact_type_id (int): The ID of the ArtifactTypes entity to update. + type_name (str): The new name of the ArtifactTypes entity. + description (str): The new description of the ArtifactTypes entity. Returns: - None + ArtifactTypes: The updated ArtifactTypes entity, or None if no entity with the given ID was found. + + Example: + >>> updated_type = repo.update(1, 'UpdatedType', 'Updated description') + >>> print(updated_type.type_name) + 'UpdatedType' """ - benchmark = Benchmarks( - version=version, - release=release, - release_date=release_date, - type_id=type_id, - product_id=product_id, - author_id=author_id, - sponsor_id=sponsor_id, - status_id=status_id, - ) - session.add(benchmark) - session.commit() + artifact_type = self.get_by_id(artifact_type_id) + if artifact_type is not None: + artifact_type.type_name = type_name + artifact_type.description = description + self.session.commit() + return artifact_type - def get_benchmark_by_id(session: Session, benchmark_id: int): + def remove(self, artifact_type_id): """ - Retrieves a Benchmark from the database by its ID. + Remove an existing ArtifactTypes entity from the database. Args: - session (Session): The session to use for database operations. - benchmark_id (int): The ID of the benchmark to retrieve. + artifact_type_id (int): The ID of the ArtifactTypes entity to remove. Returns: - Benchmarks: The retrieved Benchmark, or None if no Benchmark with the given ID exists. + bool: True if the entity was removed, False otherwise. + + Example: + >>> result = repo.remove(1) + >>> print(result) + True """ - return session.query(Benchmarks).filter(Benchmarks.benchmark_id == benchmark_id).first() + artifact_type = self.get_by_id(artifact_type_id) + if artifact_type is not None: + self.session.delete(artifact_type) + self.session.commit() + return True + return False - def create_organization(session: Session, long_name: str, short_name: str, uri: str, email: str): + def get_all(self): + """ + Retrieve all ArtifactTypes entities from the database. + + Returns: + list[ArtifactTypes]: A list of all ArtifactTypes entities. + + Example: + >>> all_types = repo.get_all() + >>> for artifact_type in all_types: + ... print(artifact_type.type_name) + 'Type1' + 'Type2' """ - Creates a new Organization and adds it to the database. + return self.session.query(ArtifactTypes).all() + + +class BenchmarkArtifactsRepository: + """ + A repository providing an interface for accessing and manipulating BenchmarkArtifacts entities in the database. + + Attributes: + session (Session): The SQLAlchemy session for database operations. + + Methods: + __init__(self, session: Session): Initialize a new instance of the BenchmarkArtifactsRepository class. + get_by_ids(benchmark_id: int, artifact_id: int): Retrieve a BenchmarkArtifacts entity by its benchmark_id and artifact_id. + add(benchmark_id: int, artifact_id: int, is_default: bool = False): Add a new BenchmarkArtifacts entity to the database. + update(benchmark_id: int, artifact_id: int, is_default: bool): Update an existing BenchmarkArtifacts entity in the database. + remove(benchmark_id: int, artifact_id: int): Remove an existing BenchmarkArtifacts entity from the database. + get_all_artifacts(self): Retrieves all BenchmarkArtifacts entities. + get_all_for_benchmark: Retrieves all BenchmarkArtifacts entities for a specific benchmark. + get_default(benchmark_id: int): Retrieve the default BenchmarkArtifacts entity for a given benchmark_id from the database. + update_default(benchmark_id: int, new_default_artifact_id: int): Update the default BenchmarkArtifacts entity for a given benchmark_id in the database. + toggle_default(benchmark_id: int, artifact_id: int): Toggle the is_default status of a BenchmarkArtifacts entity in the database. + get_default_artifact_of_benchmark(self, benchmark_id: int): Retrieve the default BenchmarkArtifact entity of a specific benchmark. + + Examples: + # First, create a new SQLAlchemy session + from sqlalchemy import create_engine + from sqlalchemy.orm import sessionmaker + + engine = create_engine('sqlite:///benchmarks.db') + Session = sessionmaker(bind=engine) + session = Session() + + # Then, create a new instance of BenchmarkArtifactsRepository using the session + repo = BenchmarkArtifactsRepository(session) + + # Add a new benchmark artifact + new_artifact = repo.add(1, 1) + print(new_artifact.is_default) # Outputs: False + + # Get a benchmark artifact by its IDs + artifact = repo.get_by_ids(1, 1) + print(artifact.is_default) # Outputs: False + + # Toggle the is_default status of a benchmark artifact + toggled_artifact = repo.toggle_default(1, 1) + print(toggled_artifact.is_default) # Outputs: True + + # Update a benchmark artifact + updated_artifact = repo.update(1, 1, False) + print(updated_artifact.is_default) # Outputs: False + + # Remove a benchmark artifact + result = repo.remove(1, 1) + print(result) # Outputs: True + + # Get all artifacts for a specific benchmark + artifacts = repo.get_all_for_benchmark(1) + for artifact in artifacts: + print(artifact.artifact_id) # Outputs: 1, 2, 3, etc. + + # Get the default benchmark artifact + default_artifact = repo.get_default(1) + print(default_artifact.artifact_id) # Outputs: 1 + + # Update the default benchmark artifact + result = repo.update_default(1, 2) + print(result) # Outputs: True + + # Retrieve the default artifact of a specific benchmark + default_artifact = repo.get_default_artifact_of_benchmark(1) + if default_artifact: + print(default_artifact.name) # Outputs the name of the default artifact + """ + + def __init__(self, session): + """ + Initialize the BenchmarkArtifactsRepository with a SQLAlchemy session. Args: - session (Session): The session to use for database operations. - long_name (str): The long name of the organization. - short_name (str): The short name of the organization. - uri (str): The URI of the organization. - email (str): The email of the organization. + session (Session): The SQLAlchemy session for database operations. + + Example: + >>> from sqlalchemy import create_engine + >>> from sqlalchemy.orm import sessionmaker + >>> engine = create_engine('sqlite:///benchmarks.db') + >>> Session = sessionmaker(bind=engine) + >>> session = Session() + >>> repo = BenchmarkArtifactsRepository(session) + """ + self.session = session + + def update(self, benchmark_id, artifact_id, is_default): + """ + Update an existing entity in the database. + + Args: + benchmark_id (int): The benchmark_id of the entity to update. + artifact_id (int): The artifact_id of the entity to update. + is_default (bool): The new is_default status of the entity. Returns: - None + BenchmarkArtifacts: The updated entity, or None if no entity with the given benchmark_id and artifact_id was found. + + Example: + >>> updated = repo.update(1, 1, False) + >>> print(updated.is_default) + False """ - organization = Organization(long_name=long_name, short_name=short_name, uri=uri, email=email) - session.add(organization) - session.commit() - def get_organization_by_id(session: Session, organization_id: int): + artifact = self.get_by_ids(benchmark_id, artifact_id) + if artifact is not None: + artifact.is_default = is_default + self.session.commit() + return artifact + + def get_by_ids(self, benchmark_id, artifact_id): """ - Retrieves an Organization from the database by its ID. + Retrieve a BenchmarkArtifacts entity by its benchmark_id and artifact_id. Args: - session (Session): The session to use for database operations. - organization_id (int): The ID of the organization to retrieve. + benchmark_id (int): The benchmark_id of the BenchmarkArtifacts entity. + artifact_id (int): The artifact_id of the BenchmarkArtifacts entity. Returns: - Organization: The retrieved Organization, or None if no Organization with the given ID exists. + BenchmarkArtifacts: The BenchmarkArtifacts entity with the given benchmark_id and artifact_id. + + Example: + >>> artifact = repo.get_by_ids(1, 1) + >>> print(artifact.is_default) + True """ - return session.query(Organization).filter(Organization.organization_id == organization_id).first() + return self.session.query(BenchmarkArtifacts).get((benchmark_id, artifact_id)) - def create_product( - session: Session, - long_name: str, - short_name: str, - version: float, - release: int, - owner_id: int, - ): + def add(self, benchmark_id, artifact_id, is_default=False): """ - Creates a new Product and adds it to the database. + Add a new BenchmarkArtifacts entity to the database. + + This method creates a new BenchmarkArtifacts record with the provided benchmark_id, artifact_id, and is_default status. + It then adds this record to the database. Args: - session (Session): The session to use for database operations. - long_name (str): The long name of the product. - short_name (str): The short name of the product. - version (float): The version of the product. - release (int): The release of the product. - owner_id (int): The ID of the owner of the product. + benchmark_id (int): The ID of the benchmark to associate with the artifact. + artifact_id (int): The ID of the artifact to associate with the benchmark. + is_default (bool, optional): Whether the artifact is the default for the benchmark. Defaults to False. Returns: - None + BenchmarkArtifacts: The newly created BenchmarkArtifacts entity. + + Raises: + IntegrityError: If a BenchmarkArtifacts record with the same benchmark_id, artifact_id, and is_default status already exists. + + Example: + repo = BenchmarkArtifactsRepository(session) + + # Add a new BenchmarkArtifacts record + new_artifact = repo.add(1, 1, True) + + print(new_artifact.is_default) # Outputs: True + print(new_artifact.benchmark_id) # Outputs: 1 + print(new_artifact.artifact_id) # Outputs: 1 """ - product = Products( - long_name=long_name, - short_name=short_name, - version=version, - release=release, - owner_id=owner_id, - ) - session.add(product) - session.commit() + try: + artifact = BenchmarkArtifacts( + benchmark_id=benchmark_id, + artifact_id=artifact_id, + is_default=is_default, + ) + self.session.add(artifact) + self.session.commit() + except IntegrityError: + self.session.rollback() + raise ValueError("This operation would violate a database constraint.") - def get_product_by_id(session: Session, product_id: int): + def remove(self, benchmark_id, artifact_id): """ - Retrieves a Product from the database by its ID. + Remove an existing entity from the database. Args: - session (Session): The session to use for database operations. - product_id (int): The ID of the product to retrieve. + benchmark_id (int): The benchmark_id of the entity to remove. + artifact_id (int): The artifact_id of the entity to remove. + + Returns: + bool: True if the entity was removed, False otherwise. + + Example: + >>> result = repo.remove(1, 1) + >>> print(result) + True + """ + artifact = self.get_by_ids(benchmark_id, artifact_id) + if artifact is not None: + self.session.delete(artifact) + self.session.commit() + return True + return False + + def get_all_artifacts(self): + """ + Retrieve all entries from the database. Returns: - Products: The retrieved Product, or None if no Product with the given ID exists. + list[BenchmarkArtifacts]: A list of all entities. + + Example: + >>> entities = repo.get_all_artifacts() + >>> for entity in entities: + ... print(entity.benchmark_id, entity.artifact_id) + 1 1 + 2 2 + 3 3 """ - return session.query(Products).filter(Products.product_id == product_id).first() + return self.session.query(BenchmarkArtifacts).all() - def create_artifact_type(session: Session, type_name: str, description: str): + def toggle_default(self, benchmark_id, artifact_id): """ - Creates a new ArtifactType and adds it to the database. + Toggle the is_default status of an entity in the database. Args: - session (Session): The session to use for database operations. - type_name (str): The name of the artifact type. - description (str): The description of the artifact type. + benchmark_id (int): The benchmark_id of the entity to update. + artifact_id (int): The artifact_id of the entity to update. Returns: - None + BenchmarkArtifacts: The updated entity, or None if no entity with the given benchmark_id and artifact_id was found. + + Example: + >>> entity = repo.get_by_ids(1, 1) + >>> print(entity.is_default) + True + >>> toggled = repo.toggle_default(1, 1) + >>> print(toggled.is_default) + False """ - artifact_type = ArtifactTypes(type_name=type_name, description=description) - session.add(artifact_type) - session.commit() + artifact = self.get_by_ids(benchmark_id, artifact_id) + if artifact is not None: + artifact.is_default = not artifact.is_default + self.session.commit() + return artifact - def get_artifact_type_by_id(session: Session, artifact_type_id: int): + def get_all_for_benchmark(self, benchmark_id): """ - Retrieves an ArtifactType from the database by its ID. + Retrieve all Artifact entities for a given benchmark_id from the database. Args: - session (Session): The session to use for database operations. - artifact_type_id (int): The ID of the artifact type to retrieve. + benchmark_id (int): The benchmark_id of the entities. Returns: - ArtifactTypes: The retrieved ArtifactType, or None if no ArtifactType with the given ID exists. + list[BenchmarkArtifacts]: A list of all entities for the given benchmark_id. + + Example: + >>> entities = repo.get_all_for_benchmark(1) + >>> for entity in entities: + ... print(entity.artifact_id) + 1 + 2 + 3 """ - return session.query(ArtifactTypes).filter(ArtifactTypes.artifact_type_id == artifact_type_id).first() + return self.session.query(BenchmarkArtifacts).filter_by(benchmark_id=benchmark_id).all() - def create_benchmark_artifact(session: Session, benchmark_id: int, artifact_id: int, is_default: bool): + def get_default(self, benchmark_id): """ - Creates a new BenchmarkArtifact and adds it to the database. + Retrieve the default entity for a given benchmark_id from the database. Args: - session (Session): The session to use for database operations. - benchmark_id (int): The ID of the benchmark. - artifact_id (int): The ID of the artifact. - is_default (bool): Whether the artifact is the default one for the benchmark. + benchmark_id (int): The benchmark_id of the entity. Returns: - None + BenchmarkArtifacts: The default entity for the given benchmark_id, or None if no default entity was found. + + Example: + >>> default = repo.get_default(1) + >>> print(default.artifact_id) + 1 """ - benchmark_artifact = BenchmarkArtifacts( - benchmark_id=benchmark_id, artifact_id=artifact_id, is_default=is_default - ) - session.add(benchmark_artifact) - session.commit() + return self.session.query(BenchmarkArtifacts).filter_by(benchmark_id=benchmark_id, is_default=True).first() - def get_benchmark_artifact_by_ids(session: Session, benchmark_id: int, artifact_id: int): + def update_default(self, benchmark_id, new_default_id): """ - Retrieves a BenchmarkArtifact from the database by its benchmark and artifact IDs. + Update the default entity for a given benchmark_id in the database. + + Args: + benchmark_id (int): The benchmark_id of the entity to update. + new_default_id (int): The artifact_id of the new default entity. + + Returns: + bool: True if the default entity was updated, False otherwise. + + Example: + >>> result = repo.update_default(1, 2) + >>> print(result) + True + """ + current_default = self.get_default(benchmark_id) + if current_default is not None: + self.toggle_default(benchmark_id, current_default.artifact_id) + + new_default = self.get_by_ids(benchmark_id, new_default_id) + if new_default is not None: + self.toggle_default(benchmark_id, new_default_id) + return True + + return False + + def get_default_artifact_of_benchmark(self, benchmark_id: int): + """ + Retrieve the default BenchmarkArtifact entity of a specific benchmark. Args: - session (Session): The session to use for database operations. benchmark_id (int): The ID of the benchmark. - artifact_id (int): The ID of the artifact. Returns: - BenchmarkArtifacts: The retrieved BenchmarkArtifact, or None if no BenchmarkArtifact with the given IDs exists. + BenchmarkArtifact: The default BenchmarkArtifact entity of the specified benchmark, or None if no default artifact is found. """ - return ( - session.query(BenchmarkArtifacts) - .filter( - BenchmarkArtifacts.benchmark_id == benchmark_id, - BenchmarkArtifacts.artifact_id == artifact_id, - ) + default_artifact = ( + self.session.query(Artifact) + .filter(Artifact.is_default == True, Artifact.benchmark_id == benchmark_id) .first() ) + return default_artifact + + +class BenchmarkTypeRepository: + """ + A repository providing an interface for accessing and manipulating BenchmarkType entities in the database. + + Attributes: + session (Session): The SQLAlchemy session for database operations. + + Methods: + __init__(self, session: Session): Initialize a new instance of the BenchmarkTypeRepository class. + get_by_id(benchmark_type_id: int): Retrieve a BenchmarkType entity by its benchmark_type_id. + add(long_name: str, short_name: str, description: str): Add a new BenchmarkType entity to the database. + update(benchmark_type_id: int, long_name: str, short_name: str, description: str): Update an existing BenchmarkType entity in the database. + remove(benchmark_type_id: int): Remove an existing BenchmarkType entity from the database. + get_all(): Retrieve all BenchmarkType entities from the database. + + Examples: + # First, create a new SQLAlchemy session + from sqlalchemy import create_engine + from sqlalchemy.orm import sessionmaker + + engine = create_engine('sqlite:///benchmarks.db') + Session = sessionmaker(bind=engine) + session = Session() + + # Then, create a new instance of BenchmarkTypeRepository using the session + repo = BenchmarkTypeRepository(session) + + # Add a new benchmark type + new_type = repo.add('Long Name', 'Short', 'This is a description.') + print(new_type.long_name) # Outputs: 'Long Name' + + # Get a benchmark type by its ID + type = repo.get_by_id(1) + print(type.short_name) # Outputs: 'Short' + + # Update a benchmark type + updated_type = repo.update(1, 'New Long Name', 'New Short', 'This is a new description.') + print(updated_type.long_name) # Outputs: 'New Long Name' + + # Remove a benchmark type + result = repo.remove(1) + print(result) # Outputs: True + + # Get all benchmark types + types = repo.get_all() + for type in types: + print(type.benchmark_type_id) # Outputs: 1, 2, 3, etc. + """ + + def __init__(self, session): + """ + Initialize the BenchmarkTypeRepository with a database session. + + Args: + session (Session): The SQLAlchemy session for database operations. + + Example: + repo = BenchmarkTypeRepository(session) + """ + self.session = session - def create_benchmark_type(session: Session, long_name: str, short_name: str, description: str): + def get_by_id(self, benchmark_type_id): """ - Creates a new BenchmarkType and adds it to the database. + Retrieve a BenchmarkType entity by its benchmark_type_id. Args: - session (Session): The session to use for database operations. - long_name (str): The long name of the benchmark type. - short_name (str): The short name of the benchmark type. - description (str): The description of the benchmark type. + benchmark_type_id (int): The ID of the BenchmarkType entity to retrieve. Returns: - None + BenchmarkType: The BenchmarkType entity with the given benchmark_type_id, or None if no such entity exists. + + Example: + type = repo.get_by_id(1) + print(type.short_name) # Outputs: 'Short' """ - benchmark_type = BenchmarkType(long_name=long_name, short_name=short_name, description=description) - session.add(benchmark_type) - session.commit() + return self.session.query(BenchmarkType).get(benchmark_type_id) - def get_benchmark_type_by_id(session: Session, benchmark_type_id: int): + def add(self, long_name, short_name, description): """ - Retrieves a BenchmarkType from the database by its ID. + Add a new BenchmarkType entity to the database. Args: - session (Session): The session to use for database operations. - benchmark_type_id (int): The ID of the benchmark type to retrieve. + long_name (str): The long name for the new BenchmarkType entity. + short_name (str): The short name for the new BenchmarkType entity. + description (str): The description for the new BenchmarkType entity. Returns: - BenchmarkType: The retrieved BenchmarkType, or None if no BenchmarkType with the given ID exists. + BenchmarkType: The newly created BenchmarkType entity. - Usage: - from sqlalchemy.orm import Session - from models import BenchmarkType + Example: + new_type = repo.add('Long Name', 'Short', 'This is a description.') + print(new_type.long_name) # Outputs: 'Long Name' + """ + try: + benchmark_type = BenchmarkType(long_name=long_name, short_name=short_name, description=description) + self.session.add(benchmark_type) + self.session.commit() + except IntegrityError: + self.session.rollback() + raise ValueError("A BenchmarkType with this long_name or short_name already exists.") - session = Session() - benchmark_type_id = 1 - benchmark_type = get_benchmark_type_by_id(session, benchmark_type_id) - if benchmark_type is not None: - print(f"Retrieved benchmark type: {benchmark_type.long_name}") - else: - print("No benchmark type found with the given ID.") + def update(self, benchmark_type_id, long_name, short_name, description): + """ + Update an existing BenchmarkType entity in the database. + + Args: + benchmark_type_id (int): The ID of the BenchmarkType entity to update. + long_name (str): The new long name for the BenchmarkType entity. + short_name (str): The new short name for the BenchmarkType entity. + description (str): The new description for the BenchmarkType entity. + + Returns: + BenchmarkType: The updated BenchmarkType entity, or None if no entity with the given benchmark_type_id was found. + + Example: + updated_type = repo.update(1, 'New Long Name', 'New Short', 'This is a new description.') + print(updated_type.long_name) # Outputs: 'New Long Name' """ - return session.query(BenchmarkType).filter(BenchmarkType.benchmark_type_id == benchmark_type_id).first() + type = self.get_by_id(benchmark_type_id) + if type is not None: + try: + type.long_name = long_name + type.short_name = short_name + type.description = description + self.session.commit() + except IntegrityError: + self.session.rollback() + raise ValueError("A BenchmarkType with this long_name or short_name already exists.") + return type + + def remove(self, benchmark_type_id): + """ + Remove an existing BenchmarkType entity from the database. + + Args: + benchmark_type_id (int): The ID of the BenchmarkType entity to remove. + + Returns: + bool: True if the BenchmarkType entity was removed successfully, False otherwise. + + Example: + result = repo.remove(1) + print(result) # Outputs: True + """ + type = self.get_by_id(benchmark_type_id) + if type is not None: + self.session.delete(type) + self.session.commit() + return True + return False + def get_all(self): + """ + Retrieve all BenchmarkType entities from the database. -class ArtifactsRepository: - pass + Returns: + list[BenchmarkType]: A list of all BenchmarkType entities. + + Example: + types = repo.get_all() + for type in types: + print(type.benchmark_type_id) # Outputs: 1, 2, 3, etc. + """ + return self.session.query(BenchmarkType).all() diff --git a/sqlalcamey/test.py b/sqlalcamey/review_zip_or_file.py similarity index 100% rename from sqlalcamey/test.py rename to sqlalcamey/review_zip_or_file.py From fdb579e14b2b84cf85372cc4be5b882236daa2ba Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Wed, 20 Dec 2023 17:21:08 -0500 Subject: [PATCH 24/29] Test Signed-off-by: Aaron Lippold --- notes-on-data-processing.md | 82 ++++++++++++++++++++++++++++++++++++ notes-on-data-processing.txt | 69 ------------------------------ 2 files changed, 82 insertions(+), 69 deletions(-) create mode 100644 notes-on-data-processing.md delete mode 100644 notes-on-data-processing.txt diff --git a/notes-on-data-processing.md b/notes-on-data-processing.md new file mode 100644 index 000000000..9b12c69e5 --- /dev/null +++ b/notes-on-data-processing.md @@ -0,0 +1,82 @@ +# Things to review + +- https://github.com/agronholm/sqlacodegen +- https://github.com/graphql-python/graphene-sqlalchemy/tree/master/examples/flask_sqlalchemy + +// """ +// SQLAlchemy model class that represents the Benchmarks table. + +// Attributes: +// **tablename** (str): The name of the table this class represents. +// benchmark_id (sqlalchemy.sql.schema.Column): The primary key column of the table. +// version (sqlalchemy.sql.schema.Column): Column for the version of the benchmark. +// release (sqlalchemy.sql.schema.Column): Column for the release of the benchmark. +// release_date (sqlalchemy.sql.schema.Column): Column for the release date of the benchmark. +// type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the benchmark_type table. +// product_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Products table. +// author_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. +// sponsor_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. +// status_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Statuses table. +// """ + +General thought is to have a static dict in the parser module with some of these known vendors/organization +products. + +```json +Benchmark { + file_name: 'U.....', < have this + product_name:, < generated + short_name: < have -> SHORT STIGID RHEL_8_STIG + long_name: < have -> RedHat Enterprise Linux -> { vendor } + { product } + vendor:, < generated + version:, < have + release:, < have + release_date:, < have "" vs Benchmark_date ? find out how these differ + publisher:, < adding but have + type: -> easy identificd from multiple places, title filename etc. + status: add to module: accepted +} +``` + +```json +Organization { + short_name < have this usually in the header || or 'Fixme systle value' + long_name < added later after processs-- > default to 'fixme style value' + ... +} + +Author { + +} +``` + +Artifact Generation: + +( each of these is a entry in the artifacts table ) + +- have association with a owner and a benchmark + +1. XCCDF File < we got it ( automated ) +2. InSpec Profile JSON ( will make automated in py somehow ) + + + * lazy approach - make sure saf-cli is installed and have it create JSON + from the XCCDF-File + * med approach -> cross compline SAF JS/TS code to PY + +3. URI Location of the existing or to be made profile Stub ( github location ) + + + ## USER UDPATED LATER + +4. originial zip file form processing + +# would like to have for history and easy access + +5. InSpec Profile STUBS location ( uri ) + + + - 1) generate single file stubs + - 2) gendrate mulitefile stub -> tar or zip -> store the tar or zip in BLOB + +https://dassum.medium.com/building-rest-apis-using-fastapi-sqlalchemy-uvicorn-8a163ccf3aa1 diff --git a/notes-on-data-processing.txt b/notes-on-data-processing.txt deleted file mode 100644 index 689eb2822..000000000 --- a/notes-on-data-processing.txt +++ /dev/null @@ -1,69 +0,0 @@ -// """ -// SQLAlchemy model class that represents the Benchmarks table. - -// Attributes: -// __tablename__ (str): The name of the table this class represents. -// benchmark_id (sqlalchemy.sql.schema.Column): The primary key column of the table. -// version (sqlalchemy.sql.schema.Column): Column for the version of the benchmark. -// release (sqlalchemy.sql.schema.Column): Column for the release of the benchmark. -// release_date (sqlalchemy.sql.schema.Column): Column for the release date of the benchmark. -// type_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the benchmark_type table. -// product_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Products table. -// author_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. -// sponsor_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Organization table. -// status_id (sqlalchemy.sql.schema.Column): Foreign key column referencing the Statuses table. -// """ - - -General thought is to have a static dict in the parser module with some of these known vendors/organization -products. - -Benchmark { - file_name: 'U.....', < have this - product_name:, < generated - short_name: < have -> SHORT STIGID RHEL_8_STIG - long_name: < have -> RedHat Enterprise Linux -> { vendor } + { product } - vendor:, < generated - version:, < have - release:, < have - release_date:, < have "" vs Benchmark_date ? find out how these differ - publisher:, < adding but have - type: -> easy identificd from multiple places, title filename etc. - status: add to module: accepted -} - - - -Organization { - short_name < have this usually in the header || or 'Fixme systle value' - long_name < added later after processs-- > default to 'fixme style value' - ... -} - -Author { - -} - - -Artifact Generation: - -( each of these is a entry in the artifacts table ) - - * have association with a owner and a benchmark - 1. XCCDF File < we got it ( automated ) - 2. InSpec Profile JSON ( will make automated in py somehow ) - * lazy approach - make sure saf-cli is installed and have it create JSON - from the XCCDF-File - * med approach -> cross compline SAF JS/TS code to PY - 3. URI Location of the existing or to be made profile Stub ( github location ) - ## USER UDPATED LATER - 4. originial zip file form processing - -# would like to have for history and easy access - - 5. InSpec Profile STUBS location ( uri ) - - 1) generate single file stubs - - 2) gendrate mulitefile stub -> tar or zip -> store the tar or zip in BLOB - - -https://dassum.medium.com/building-rest-apis-using-fastapi-sqlalchemy-uvicorn-8a163ccf3aa1 \ No newline at end of file From 9aaae6bdfeb6bba4392bf3ad0755b9beb54074b2 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Wed, 20 Dec 2023 22:36:23 -0500 Subject: [PATCH 25/29] added the prisma.schema version of the DB, added unique contraint to benchmark type long+short Signed-off-by: Aaron Lippold --- scripts/database/prisma.schema | 286 ++++++++++++++++++ .../schema/mitre-saf-security-benchmarks.sql | 6 +- scripts/database/test.db | Bin 86016 -> 86016 bytes 3 files changed, 291 insertions(+), 1 deletion(-) create mode 100644 scripts/database/prisma.schema diff --git a/scripts/database/prisma.schema b/scripts/database/prisma.schema new file mode 100644 index 000000000..d4f7967aa --- /dev/null +++ b/scripts/database/prisma.schema @@ -0,0 +1,286 @@ +/// The Artifact model represents a single artifact. +/// Each artifact has a unique identifier, a type_id, an owner_id, a name, a location, +/// a secondary location (optional), a creation timestamp, and raw data (optional). +/// The model has relations to the ArtifactTypes and Organization models. +model Artifact { + /// The unique identifier for an artifact. + artifact_id Int @id @default(autoincrement()) + + /// The unique identifier for the type of the artifact. + /// see ArtifactTypes to understand the expected types + type_id Int + + /// The unique identifier for the owner of the artifact. + owner_id Int + + /// The name of the artifact. + name String + + /// The primary location of the artifact. + /// example: 'http://...','','s3://location' + location String + + /// The secondary location of the artifact, if any. + /// example: backup location, or alt download site + secondary_location String @default("") + + /// The timestamp when the artifact was created. + /// Usually a 'published date' style concept, not 'disk/upload create time' + created_at DateTime + + /// The raw data of the artifact, if any. + raw_data Bytes @default("") + + /// The relation to the ArtifactTypes model. + artifact_types ArtifactTypes @relation(fields: [type_id], references: [artifact_type_id]) + + /// The relation to the Organization model. + Organization Organization @relation(fields: [owner_id], references: [organization_id]) + BenchmarkArtifacts BenchmarkArtifacts[] +} + +/// The Benchmarks model represents the different benchmarks. +/// Each benchmark has a unique identifier, a version number, a release number, +/// a release date, type_id, product_id, author_id, sponsor_id (optional) and status_id. +model Benchmarks { + /// The unique identifier for a benchmark. + benchmark_id Int @id @default(autoincrement()) + + /// The version number of the benchmark. + version Int + + /// The release number of the benchmark. + release Int + + /// The release date of the benchmark. + release_date DateTime + + /// The unique identifier for the type of the benchmark. + type_id Int + + /// The unique identifier for the product associated with the benchmark. + product_id Int + + /// The unique identifier for the author of the benchmark. + author_id Int @default(0) + + /// The unique identifier for the sponsor of the benchmark. + sponsor_id Int @default(0) + + /// The unique identifier for the status of the benchmark. + status_id Int + + /// The relation to the BenchmarkType model. + benchmark_type BenchmarkType @relation(fields: [type_id], references: [benchmark_type_id]) + + /// The relation to the Products model. + Products Products @relation(fields: [product_id], references: [product_id]) + + /// The relation to the Organization model for the author. + Author Organization @relation("AuthorRelation", fields: [author_id], references: [organization_id]) + + /// The relation to the Organization model for the sponsor. + Sponsor Organization @relation("SponsorRelation", fields: [sponsor_id], references: [organization_id]) + + /// The relation to the Statuses model. + Status Statuses @relation(fields: [status_id], references: [status_id]) + + /// The relation to the BenchmarkArtifacts model. + /// This field represents a list of all BenchmarkArtifacts associated with this model. + BenchmarkArtifacts BenchmarkArtifacts[] + + /// A unique constraint ensuring that the combination of version, release, product_id, and author_id is unique. + @@unique([version, release, product_id, author_id], name: "unique_product_version_release_owner") +} + +/// The Organization model represents different organizations. +/// Each organization has a unique identifier, a long name, a short name, a URI, and an email. +/// An organization can be an author or a sponsor of multiple benchmarks. +/// A unique constraint ensures that the combination of long_name and short_name is unique. +model Organization { + /// The unique identifier for an organization. + organization_id Int @id @default(autoincrement()) + + /// The long name of the organization. + /// example: + /// - 'The MITRE Corporation', + /// - 'Broadcom/VMWare Corporation', + /// - 'Defense Information Systems Agency' + /// - 'International Business Machines, Corporation' + long_name String + + /// The short name of the organization. + /// example: 'MITRE','VMWare','DISA', IBM + short_name String + + /// The URI of the organization. + uri String @default("None") + + /// The email of the organization. + email String @default("None") + + /// The benchmarks for which the organization is the author. + Authors Benchmarks[] @relation("AuthorRelation") + + /// The benchmarks for which the organization is the sponsor. + Sponsors Benchmarks[] @relation("SponsorRelation") + + /// The artifacts owned by the organization. + Artifact Artifact[] + + /// The products owned by the organization. + Products Products[] + + /// A unique constraint ensuring that the combination of long_name and short_name is unique. + @@unique([long_name, short_name], name: "unique_org_short_and_long_name") +} + +/// +/// The Products model represents the different products. +/// Each product has a unique identifier, a long name, a short name, +/// a version number, and a release number. +/// +/// A product is owned by an Organization and is organized at the version level. +/// Sometimes vendors organize benchmarks only at the version level but sometimes +// they can do it at the version + release level. +/// +/// - Owner: 'RedHat', +/// - name: 'Enterprise Linux', +/// - version: '7', +/// - [optional] release: '4' +/// +/// Some Products are tracked at the Major version only and then version should be 'x' or '' +/// Postres SQL 12.x, for example +/// +model Products { + /// The unique identifier for a product. + product_id Int @id @default(autoincrement()) + + /// The long name of the product. + /// examples: 'Identity Manager', 'Cloud Foundation', 'vSphere' + long_name String + + /// The short name of the product. + /// examples: 'RHEL', 'VCF', 'VIDM', 'vSphere' + /// These will also be used in 'hash / search keys' to help identify products + short_name String + + /// The version number of the product. + version Float + + /// The release number of the product. + release Int + + /// The unique identifier for the organization that owns the product. + owner_id Int + + /// The relation to the Organization model. + /// This field represents the Organization that owns this Product. + Organization Organization @relation(fields: [owner_id], references: [organization_id]) + + /// The relation to the Benchmarks model. + /// This field represents a list of all Benchmarks associated with this Product. + Benchmarks Benchmarks[] +} + +/// The Statuses model represents the different statuses that can be assigned. +/// Each status has a unique identifier and a name. +/// A unique constraint ensures that the combination of status_id and name is unique. +model Statuses { + /// The unique identifier for a status. + status_id Int @id @default(autoincrement()) + + /// The name of the status. + /// example: 'final', 'draft', 'in-review', 'sunset' + name String + + /// The relation to the Benchmarks model. + /// This field represents a list of all Benchmarks associated with this Status. + Benchmarks Benchmarks[] + + /// A unique constraint ensuring that the combination of status_id and name is unique. + @@unique([status_id, name], name: "unique_status_id_name") +} + +/// The ArtifactTypes model represents the different types of artifacts. +/// Each artifact type has a unique identifier, a name, and a description. +model ArtifactTypes { + /// The unique identifier for an artifact type. + artifact_type_id Int @id @default(autoincrement()) + + /// The name of the artifact type. + /// example: XCCDF-File, JSON-File, Zip-Archieve, tar.gz-File, XML-File, SCAP-File + type_name String + + /// A description of the artifact type. + description String @default("") + + /// The relation to the Artifact model. + /// This field represents a list of all Artifacts associated with this ArtifactType. + Artifact Artifact[] +} + +/// The BenchmarkArtifacts model represents the relationship between benchmarks and artifacts. +/// Each BenchmarkArtifacts record has a unique identifier for a benchmark and an artifact. +/// A flag indicates if the artifact is the default for the benchmark. +/// The model has relations to the Benchmarks and Artifact models. +/// The composite primary key for the BenchmarkArtifacts model is a combination of benchmark_id and artifact_id. +/// A unique constraint ensures that a benchmark can only have one default artifact. +model BenchmarkArtifacts { + /// The unique identifier for a benchmark. + benchmark_id Int @default(0) + + /// The unique identifier for an artifact. + artifact_id Int @default(0) + + /// A flag indicating if the artifact is the default for the benchmark. + /// If we move to a real database this should be a BOOL + is_default Int @default(0) + + /// The relation to the Benchmarks model. + Benchmarks Benchmarks @relation(fields: [benchmark_id], references: [benchmark_id]) + + /// The relation to the Artifact model. + Artifact Artifact @relation(fields: [artifact_id], references: [artifact_id]) + + /// The composite primary key for the BenchmarkArtifacts model. + @@id([benchmark_id, artifact_id]) + /// A unique constraint ensuring that a benchmark can only have one default artifact. + @@unique([benchmark_id, artifact_id, is_default], name: "unique_benchmark_artifact_default") +} + +/// The BenchmarkType model represents the different types of benchmarks. +/// Each benchmark type has a unique identifier, a long name, a short name, and a description. +/// The 'long_name' is likely a registered trademark, so it should be unique. +/// The 'short_name' is intended to be used as a lookup key, so it should also be unique. +/// Each BenchmarkType should have a unique combination of 'short_name' and 'long_name'. +model BenchmarkType { + /// The unique identifier for a benchmark type. + benchmark_type_id Int @id @default(autoincrement()) + + /// The long name of the benchmark type. + /// example: + /// - 'Security Technical Implementation Guide' + /// - 'Center for Internet Security Benchmark' + /// - 'Vendor Security/Administration Guide' + /// - 'Best Practice Guide' + long_name String + + /// The short name of the benchmark type. + /// example: 'STIG','CIS','Vendor', 'BP' + short_name String + + /// A description of the benchmark type. + description String + + /// The relation to the Benchmarks model. + /// This field represents a list of all Benchmarks associated with this BenchmarkType. + Benchmarks Benchmarks[] + + /// The 'long_name' is likely a registered trademark, so it should be unique. + @@unique([long_name], name: "unique_bt_long_name") + /// The 'short_name' is intended to be used as a lookup key, so it should also be unique. + @@unique([short_name], name: "unique_bt_short_name") + /// Each Benchmark should have a unique combination of 'short_name' and 'long_name'. + @@unique([long_name, short_name], name: "unique_long_short_name") +} diff --git a/scripts/database/schema/mitre-saf-security-benchmarks.sql b/scripts/database/schema/mitre-saf-security-benchmarks.sql index 80729faa0..0b1cbf6a6 100644 --- a/scripts/database/schema/mitre-saf-security-benchmarks.sql +++ b/scripts/database/schema/mitre-saf-security-benchmarks.sql @@ -83,6 +83,7 @@ CREATE TABLE `benchmark_artifacts` ( `benchmark_id` integer NOT NULL, `artifact_id` integer NOT NULL, + -- this should become a BOOL if we move off sqlite `is_default` int2 NULL DEFAULT 0, PRIMARY KEY (`benchmark_id`, `artifact_id`), CONSTRAINT `benchmark_has_an_artifact` FOREIGN KEY (`benchmark_id`) REFERENCES `Benchmarks` (`benchmark_id`) ON UPDATE CASCADE ON DELETE CASCADE, @@ -105,4 +106,7 @@ CREATE TABLE CREATE UNIQUE INDEX `unique_bt_long_name` ON `benchmark_type` (`long_name`); -- Create index "unique_bt_short_name" to table: "benchmark_type" -CREATE UNIQUE INDEX `unique_bt_short_name` ON `benchmark_type` (`short_name`); \ No newline at end of file +CREATE UNIQUE INDEX `unique_bt_short_name` ON `benchmark_type` (`short_name`); + +-- Create index "unique_long_short_name" on table: "benchmark_type" +CREATE UNIQUE INDEX unique_long_short_name ON `benchmark_type` (`long_name`, `short_name`); \ No newline at end of file diff --git a/scripts/database/test.db b/scripts/database/test.db index fbf6b838e59e8cbc0f2498d781fbd2c8320a30d9..4183276628eebe57406e24bb6db0d2fa57871931 100644 GIT binary patch delta 155 zcmZozz}m2Yb%L~@0s{ksC=hc3F(VLrPt-AHRM?oXynbQ;%VzF|pY<|4Y|#w-DZHn6 zt$7Y`|KPmKIgR5I`xEv|w%2UYn*{}|*-RRFh1kU{H5nUSGxJhXD@yY+3rkbubMo`j z=Eb7GD4W From 017afc67164c5b127fe090535f7c130519461885 Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Wed, 20 Dec 2023 22:39:06 -0500 Subject: [PATCH 26/29] renamed file to standard convention Signed-off-by: Aaron Lippold --- scripts/database/{prisma.schema => schema.prisma} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/database/{prisma.schema => schema.prisma} (100%) diff --git a/scripts/database/prisma.schema b/scripts/database/schema.prisma similarity index 100% rename from scripts/database/prisma.schema rename to scripts/database/schema.prisma From 6e5e4da2db2b9b768a57ed33cfe5d6b66c6f6b8c Mon Sep 17 00:00:00 2001 From: Aaron Lippold Date: Wed, 20 Dec 2023 22:54:12 -0500 Subject: [PATCH 27/29] added a datasource to the schema.prisma file Signed-off-by: Aaron Lippold --- scripts/database/schema.prisma | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/database/schema.prisma b/scripts/database/schema.prisma index d4f7967aa..aa8049d58 100644 --- a/scripts/database/schema.prisma +++ b/scripts/database/schema.prisma @@ -1,3 +1,11 @@ +/// The datasource block defines the database connection. +/// In this case, we're using SQLite as the provider and the database file is `test.db`. +datasource db { + provider = "sqlite" + /// The url field points to the location of the database file. + /// If the file doesn't exist, Prisma will create it when you run `prisma migrate dev` or `prisma db push`. + url = "file:./test.db" +} /// The Artifact model represents a single artifact. /// Each artifact has a unique identifier, a type_id, an owner_id, a name, a location, /// a secondary location (optional), a creation timestamp, and raw data (optional). From f686bf6647052791a3d0e5b3c27b25f52722239b Mon Sep 17 00:00:00 2001 From: Mo Shark Date: Mon, 1 Jan 2024 22:03:07 +0000 Subject: [PATCH 28/29] cleaning up file Signed-off-by: Mo Shark --- scripts/update.py | 408 ++-------------------------------------------- 1 file changed, 14 insertions(+), 394 deletions(-) diff --git a/scripts/update.py b/scripts/update.py index 816757cd6..8df8be562 100644 --- a/scripts/update.py +++ b/scripts/update.py @@ -2,14 +2,12 @@ from bs4 import BeautifulSoup from difflib import SequenceMatcher import re -import json -import uuid -import re import os import xml.etree.ElementTree as ET from io import BytesIO import zipfile from stig_parser import convert_stig +import sqlite3 URL = "https://public.cyber.mil/stigs/downloads/" HEADERS = { @@ -22,9 +20,8 @@ DOWNLOAD_DIR = "downloads" EXTRACT_DIR = "extracted" DB_FILE = "stigs.db" +SQLITE_DB_FILE = 'security_guidance.db' EXCLUDE_KEYWORDS = ['scc', 'library', '.msi.zip', 'srg_stig_applicability_guide', 'stigapplicabilityguide', 'stigviewer', 'u_cci_list', 'overview', 'scap', 'ansible', 'u_draft_cci', 'srg', 'gpo', 'chef', 'dsc', 'u_apache_2-2', 'u_mot_solutions', 'u_multifunction_device', 'u_storage_area', 'u_ms_exchange', 'u_exchange', 'u_airwatch'] -OUTPUT_JSON = 'stigs_data.json' -OUTPUT_DOWNLOAD_JSON = 'stigs_download_data.json' EXTRACTED_ROWS = [] @@ -76,7 +73,9 @@ def download_and_extract_stigs(): print("Processing STIG: " + zip_filename ) print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release'] + " Benchmark Date: " + json_results['BenchmarkDate'] + " Source: " + json_results['Source']) - print("\n") + print("\n") + + insert_data_into_db() # Extract only the XML files from the zip file with zipfile.ZipFile(zip_filename) as zip_ref: @@ -85,106 +84,18 @@ def download_and_extract_stigs(): zip_ref.extract(file, EXTRACT_DIR) else: print(f"Skipping excluded file: {title} - {url}") - - with open(OUTPUT_DOWNLOAD_JSON, 'w') as outfile: - json.dump(download_results, outfile, indent=4) - -# Function to recrusively find XML files in the directory -def find_xml_files(directory): - xml_files = [] - for root, dirs, files in os.walk(directory): - for file in files: - if file.endswith('.xml'): - xml_files.append(os.path.join(root, file)) - return xml_files +def insert_data_into_db(title, size, datePublished, url, longName, description, version, release, source, publisher, shortName): + conn = sqlite3.connect(SQLITE_DB_FILE) + cursor = conn.cursor() -# Function to parse and extract info from the xml -def parse_xml_and_extract_info(): - results = [] - xml_files = find_xml_files(EXTRACT_DIR) - - # Load metadata from the download process json file that was created - with open(OUTPUT_DOWNLOAD_JSON, 'r') as infile: - download_data = json.load(infile) - - for xml_file in xml_files: - # Match the XML file to its metadata - filename = os.path.basename(xml_file) - # Matcher to identify the xml filename - xml_core_identifier = re.sub(r'(_STIG_|_SRG_|_Manual|-xccdf|.xml)', '', filename).replace('_', '') - metadata = next((item for item in download_data if xml_core_identifier in item['url'].replace('_', '').replace('.zip', '')), None) - # metadata = next((item for item in download_data if item['url'].endswith(filename)), None) - if metadata: - title, size, datePublished, url = metadata - # json_results = convert_stig(xml_file) - - # print("Processing STIG: " + file ) - # print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release']) - # print("\n") - - results.append({ - 'title': title, - 'size': size, - 'datePublished': datePublished, - 'url': url, - # 'jsonTitle': json_results['Title'], - # 'version': json_results['Version'], - # 'release': json_results['Release'], - }) - # print("Table Data:") - # print(f"Title: {title}, Size: {size}, Date Published: {datePublished}, URL: {url}") - # print('XML File: ') - # print(xml_file) - # current_benchmark = pyscap.xccdf.Benchmark.parse(xml_file) - # print("-------------------") - # print("Read benchmark") - # pytitle = current_benchmark.title - # print(pytitle) - # pyremark = current_benchmark.remark - # print(pyremark) - # pyvendor = current_benchmark.vendor - # print(pyvendor) - # pyfamily = current_benchmark.family - # print(pyfamily) - # pymodel = current_benchmark.model - # print(pymodel) - # pylevel = current_benchmark.level - # print(pylevel) - # pyversion = current_benchmark.version - # print(pyversion) - # pyversionrange = current_benchmark.version_range - # print(pyversionrange) - # print("pyscap data:") - # print(f"Title: {pytitle}, Remark: {pyremark}, Vendor: {pyvendor}, Family: {pyfamily}, Model: {pymodel}, Level: {pylevel}, Version: {pyversion}, Version Range: {pyversionrange}") - # results.append({ - # 'title': title, - # 'size': size, - # 'datePublished': datePublished, - # 'url': url, - # 'pyScapTitle': pytitle, - # 'pyRemark': pyremark, - # 'pyvendor': pyvendor, - # 'pyfamily': pyfamily, - # 'pymodel': pymodel, - # 'pylevel': pylevel, - # 'pyversion': pyversion, - # 'pyversionrange': pyversionrange, - # }) - - with open(OUTPUT_JSON, 'w') as outfile: - json.dump(results, outfile, indent=4) - - # # Store in SQLite database - # store_in_db(filename, title, name, url, size, version) + # SQL query to insert data + query = "INSERT INTO my_table (title, size, datePublished, url, longName, description, version, release, source, publisher, shortName) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + cursor.execute(query, (title, size, datePublished, url, longName, description, version, release, source, publisher, shortName)) -# def store_in_db(filename, title, name, url, size, version): -# conn = sqlite3.connect(DB_FILE) -# cursor = conn.cursor() -# cursor.execute('''CREATE TABLE IF NOT EXISTS stigs (filename TEXT, title TEXT, url TEXT, size TEXT, version TEXT)''') -# cursor.execute("INSERT INTO stigs VALUES (?, ?, ?, ?, ?, ?)", (filename, title, name, url, size, version)) -# conn.commit() -# conn.close() + # Commit changes and close connection + conn.commit() + conn.close() def main(): if not os.path.exists(DOWNLOAD_DIR): @@ -193,297 +104,6 @@ def main(): os.makedirs(EXTRACT_DIR) download_and_extract_stigs() - parse_xml_and_extract_info() if __name__ == "__main__": main() - -# badTerms = ['scc', 'library', '.msi.zip', 'srg_stig_applicability_guide', 'STIGApplicabilityGuide'] -# url = "https://public.cyber.mil/stigs/downloads/" -# headers = { -# 'Access-Control-Allow-Origin': '*', -# 'Access-Control-Allow-Methods': 'GET', -# 'Access-Control-Allow-Headers': 'Content-Type', -# 'Access-Control-Max-Age': '3600', -# 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0' -# } -# stigs = [] - -# with open('stigs.json', 'r') as existingSTIGsFile: -# stigs = json.load(existingSTIGsFile) - -# def getFilename(url): -# return url.split('/')[-1] - -# ### Get STIGS from DISA'S site - -# def updateSTIGSList(): -# # If you're running behind a proxy with SSL bumping -# req = requests.get(url, headers, verify=False) -# # req = requests.get(url, headers) -# soup = BeautifulSoup(req.content, 'html.parser') -# table = soup.find_all('table')[0] # Grab the first table - -# knownURLs = [] - -# with open('stigs.json', 'r') as existingSTIGsFile: -# existingSTIGs = json.load(existingSTIGsFile) -# knownURLs.extend([stig['url'] for stig in existingSTIGs]) - -# def cleanText(inputText): -# return re.sub(' +', ' ', inputText.replace('\r', ' ').replace('\u200b', '').replace('\n', ' ').split('\t')[0].strip()).strip() - -# for row in table.find_all('tr'): -# try: -# columns = row.find_all('td') -# href = "" -# name = "" -# size = "" -# for idx, column in enumerate(columns): -# if idx == 2: -# size = column.get_text().strip() -# if idx == 1: -# href = column.find('a')['href'] -# name = cleanText(column.get_text()) -# if (href != "" and name != "" and size != "" and ('stig' in name.lower() or 'benchmark' in name.lower() or 'stig' in href.lower() or 'benchmark' in href.lower()) and "viewer" not in name.lower()): -# # Check if the similarity of the current name is similar to an existing name -# newStig = True -# knownIndex = 0 -# hrefWithNoVersion = re.sub(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', href) -# for idx, knownURL in enumerate(knownURLs): -# knownURLWithNoVersion = re.sub(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', knownURL) -# if SequenceMatcher(None, hrefWithNoVersion, knownURLWithNoVersion).ratio() > 0.99: -# # print(f"Similarity: {SequenceMatcher(None, hrefWithNoVersion, knownURLWithNoVersion).ratio()} {hrefWithNoVersion} -> {knownURLWithNoVersion}") -# knownIndex = idx -# newStig = False -# break -# if newStig: -# if (href.lower().endswith('.zip')): -# knownURLs.append(href) -# #print(f"Downloading {name}: {href}") -# #urllib.request.urlretrieve(href, "tmp/" + getFilenameFromURL(href)) -# # Get version from the file name e.g "U_IBM_MaaS360_with_Watson_v10-x_MDM_V1R2_STIG.zip" -# version = re.search(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', href) -# if version is not None: -# stigs.append({ -# 'id': str(uuid.uuid4()), -# 'name': name, -# 'url': href, -# 'size': size, -# 'version': version.group(0) -# }) -# else: -# print(f"Version not found in {href}") -# # Attempt to get version number from name, e.g "Ver 1, Rel 1" -# version = re.search(r'Ver (\d?)(\d?)(\d?)(\d?), Rel (\d?)(\d?)(\d?)(\d?)', name) -# if version is not None: -# versionNumber = f"V{version.group(1)}{version.group(2)}{version.group(3)}{version.group(4)}R{version.group(5)}{version.group(6)}{version.group(7)}{version.group(8)}" -# print(f"Version found in {href} as {versionNumber}") -# stigs.append({ -# 'id': str(uuid.uuid4()), -# 'name': name, -# 'url': href, -# 'size': size, -# 'version': versionNumber -# }) -# else: -# stigs.append({ -# 'id': str(uuid.uuid4()), -# 'name': name, -# 'url': href, -# 'size': size -# }) -# else: -# version = re.search(r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', href) -# if version is not None: -# stigs[knownIndex]['url'] = href -# stigs[knownIndex]['size'] = size -# stigs[knownIndex]['version'] = version.group(0) -# stigs[knownIndex]['name'] = name -# elif version is None: -# version = re.search(r'Ver (\d?)(\d?)(\d?)(\d?), Rel (\d?)(\d?)(\d?)(\d?)', name) -# if version is not None: -# versionNumber = f"V{version.group(1)}{version.group(2)}{version.group(3)}{version.group(4)}R{version.group(5)}{version.group(6)}{version.group(7)}{version.group(8)}" -# print(f"Version found in '{name}' as {versionNumber}") -# stigs[knownIndex]['url'] = href -# stigs[knownIndex]['size'] = size -# stigs[knownIndex]['version'] = versionNumber -# stigs[knownIndex]['name'] = name -# else: -# # I've seen DISA remove the version number from the URL, so we need to remove it from the existing STIG if it's no longer there. -# print(f"Version not found in {href}") -# stigs[knownIndex]['url'] = href -# stigs[knownIndex]['size'] = size -# stigs[knownIndex]['name'] = name -# if 'version' in stigs[knownIndex]: -# del stigs[knownIndex]['version'] - -# except KeyboardInterrupt: -# exit() -# except Exception as e: -# print(e) -# # Bad rows ignored, typicall they don't contain a download link -# pass - -# with open('stigs.json', 'w') as outfile: -# json.dump(stigs, outfile, indent=2) - -# def updateSTIGS(): -# # Delete the existing STIGs -# os.system("rm -rf tmp/input/*") - -# ## Download the STIGs -# for stig in stigs: -# # Download ZIP from DISA if it doesn't contain a banned term -# foundTerm = False - -# for badTerm in badTerms: -# if badTerm.lower() in stig['url'].lower(): -# foundTerm = True - -# if not foundTerm: -# if 'scc' not in stig['url'].lower() and 'library' not in stig['url'].lower(): -# os.system(f"wget {stig['url']} -O tmp/input/{stig['id']}.zip") - -# # Unzip the STIGs -# os.system("cd tmp; bash extract.sh") - -# def associateSTIGFileArchives(): -# # Get filenames from benchmarks folder -# downloadedStigs = os.listdir('benchmarks/DISA/') - -# for idx, benchmark in enumerate(stigs): -# urlWithNoVersion = re.sub( -# r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', '', getFilename(benchmark['url'])) -# version = re.search( -# r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', getFilename(benchmark['url'])) -# if version is not None: -# version = version.group(0) -# highestSimilarity = 0.0 -# highestSimilarityFilename = None -# for filename in downloadedStigs: -# filenameVersion = re.search( -# r'V\d(\d?)(\d?)(\d?)(\d?)R\d(\d?)(\d?)(\d?)(\d?)', getFilename(filename)) -# if filenameVersion is not None: -# filenameVersion = filenameVersion.group(0) -# similarity = SequenceMatcher( -# None, urlWithNoVersion, filename).ratio() -# if similarity > highestSimilarity and filenameVersion == version: -# highestSimilarity = similarity -# highestSimilarityFilename = filename -# if highestSimilarityFilename is not None: -# print(f"{getFilename(benchmark['url'])} -> {highestSimilarityFilename}") -# stigs[idx]['file'] = f"https://raw.githubusercontent.com/mitre/inspec-profile-update-action/main/benchmarks/DISA/{highestSimilarityFilename}" -# else: -# del stigs[idx] -# else: -# print("No version for url: "+benchmark['url']) - -# with open('stigs.json', 'w') as outfile: -# json.dump(stigs, outfile, indent=2) - -# """ -# Gets the Profile ID from the XCCDF xml file -# Example: -# -# - -# We want "Active_Directory_Domain" from this. -# """ - -# def getProfileIDFromProfileXMLs(): -# for stig in stigs: -# if 'file' in stig: -# # Get the file path from the file URL -# filePath = stig['file'].split('https://raw.githubusercontent.com/mitre/inspec-profile-update-action/main/')[1] -# # Get the file name from the file path -# fileName = filePath.split('/')[-1] - -# # Parse the XML file -# tree = ET.parse(filePath) -# root = tree.getroot() - -# # Get the ID from the root -# if 'id' in root.attrib: -# if '/' not in root.attrib['id']: -# stig['id'] = root.attrib['id'] -# else: -# print(f"No ID found for {fileName}") - -# with open('stigs.json', 'w') as outfile: -# json.dump(stigs, outfile, indent=2) - -# def pageGenerator(): -# # Delete existing generated actions -# os.system("rm -rf actions/*") - -# for stig in stigs: - -# yml = f""" -# on: [push] - -# jobs: -# test_action: -# runs-on: ubuntu-latest -# name: Test inpec-profile-update action -# steps: -# # To use this repository's private action, -# # you must check out the repository -# - name: Checkout -# uses: actions/checkout@v3 -# # Update profile -# - name: Updates profile -# uses: mitre/inspec-profile-update-action@main -# # Set env variables -# env: -# profile: {stig['id']} -# # Create new branch -# - name: Push changes to new PR -# uses: peter-evans/create-pull-request@v4 -# with: -# branch: update-profile -# delete-branch: true""" - -# with open(f"actions/{stig['id']}.yml", "w") as f: -# f.write(yml) - -# html = """ -# -# -# -# STIGs List -# -# """ - -# html += "" -# for stig in stigs: -# html += f""" -# -# -# -# """ -# if 'version' in stig: -# html += f"""""" -# else: -# html += f"""""" -# html += f""" -# -# -# -# """ -# html += "
    STIG IDNameVersionURLSizeAction
    {stig['id']}{stig['name']}{stig['version']}Download{stig['size']}Download Action
    " - -# with open("index.html", "w") as f: -# f.write(html) - -# updateSTIGSList() -# updateSTIGS() -# associateSTIGFileArchives() -# getProfileIDFromProfileXMLs() -# pageGenerator() \ No newline at end of file From a277dd8b51baa4fbdf5943bbf23df3ce6c4d8e50 Mon Sep 17 00:00:00 2001 From: Mo Shark Date: Mon, 1 Jan 2024 23:23:14 +0000 Subject: [PATCH 29/29] reworked logic to use sqlalchemy and check if the file already exists in there. Update with additional tables and where the information needs to go to Signed-off-by: Mo Shark --- scripts/update.py | 73 ++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/scripts/update.py b/scripts/update.py index 8df8be562..4572f799d 100644 --- a/scripts/update.py +++ b/scripts/update.py @@ -3,11 +3,12 @@ from difflib import SequenceMatcher import re import os +import shutil +import tempfile import xml.etree.ElementTree as ET from io import BytesIO import zipfile from stig_parser import convert_stig -import sqlite3 URL = "https://public.cyber.mil/stigs/downloads/" HEADERS = { @@ -27,7 +28,6 @@ # Function to download and extract STIGs and SRGs def download_and_extract_stigs(): - download_results = [] response = requests.get(URL, HEADERS, verify=False) soup = BeautifulSoup(response.content, 'html.parser') @@ -51,17 +51,11 @@ def download_and_extract_stigs(): # Check if the url contains the excluded keywords, and the file is only a zip file if url.lower().endswith('.zip') and not any(keyword in url.lower() for keyword in EXCLUDE_KEYWORDS): - download_results.append({ - 'title': title, - 'size': size, - 'datePublished': datePublished, - 'url': url, - }) - EXTRACTED_ROWS.append((title, size, datePublished, url)) + existing_artifact = session.query(Artifact).filter(Artifact.location == url).first() zip_filename = os.path.join(DOWNLOAD_DIR, url.split('/')[-1]) # Check if the file already exists - if not os.path.exists(zip_filename): + if not existing_artifact: print(f"Downloading {title} - {url}") zip_response = requests.get(url) @@ -71,31 +65,50 @@ def download_and_extract_stigs(): f.write(zip_response.content) json_results = convert_stig(zip_filename) - print("Processing STIG: " + zip_filename ) - print(json_results['Title'] + " Version: " + json_results['Version'] + " Release: " + json_results['Release'] + " Benchmark Date: " + json_results['BenchmarkDate'] + " Source: " + json_results['Source']) - print("\n") + urlTitle = title + urlsize = size + urldatePublished = datePublished + urlUrl = url + id = json_results['Id'] + title = json_results['Title'] + status = json_results['Status'] + description = json_results['Description'] + version = json_results['Version'] + release = json_results['Release'] + benchmarkDate = json_results['BenchmarkDate'] + releaseInfo = json_results['ReleaseInfo'] + publisher = json_results['Publisher'] + source = json_results['Source'] + notice = json_results['Notice'] - insert_data_into_db() + insert_benchmark_data(id, title, status, description, version, release, benchmarkDate, publisher, source, notice, urlUrl) - # Extract only the XML files from the zip file - with zipfile.ZipFile(zip_filename) as zip_ref: - for file in zip_ref.namelist(): - if file.endswith('.xml'): - zip_ref.extract(file, EXTRACT_DIR) + # Extract only the XML files from the zip file + with zipfile.ZipFile(zip_filename) as zip_ref: + for file in zip_ref.namelist(): + if file.endswith('.xml'): + # Create a temporary directory + with tempfile.TemporaryDirectory() as temp_dir: + zip_ref.extract(file, temp_dir) + # Move the file to the desired directory + shutil.move(os.path.join(temp_dir, file), os.path.join(EXTRACT_DIR, os.path.basename(file))) else: print(f"Skipping excluded file: {title} - {url}") -def insert_data_into_db(title, size, datePublished, url, longName, description, version, release, source, publisher, shortName): - conn = sqlite3.connect(SQLITE_DB_FILE) - cursor = conn.cursor() - - # SQL query to insert data - query = "INSERT INTO my_table (title, size, datePublished, url, longName, description, version, release, source, publisher, shortName) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" - cursor.execute(query, (title, size, datePublished, url, longName, description, version, release, source, publisher, shortName)) - - # Commit changes and close connection - conn.commit() - conn.close() +def insert_benchmark_data(id, title, status, description, version, release, datePublished, publisher, source, notice, url): + new_benchmark = Benchmark(version=version, release=release, release_date=datePublished) + new_product = Products(long_name=title, short_name=id, version=version, release=release) + new_organizaiton = Organization(short_name=publisher) + new_statuses = Statuses(name=status) + new_artifact = Artifact(name=title, location=url) + new_artifact_type = ArtifactTypes(type_name=title, description=description) + session.add(new_benchmark) + session.add(new_product) + session.add(new_organizaiton) + session.add(new_statuses) + session.add(new_artifact) + session.add(new_artifact_type) + session.commit() def main(): if not os.path.exists(DOWNLOAD_DIR):