From 1efc9d21ffb28d0f0b8438a9de402aee74dd2c79 Mon Sep 17 00:00:00 2001 From: "Peter D. Jorgensen" Date: Sun, 31 Jan 2016 12:29:03 -0500 Subject: [PATCH 1/4] Adding .gitattributes file --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..da0d1e9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.psm1 diff +*.psd1 diff \ No newline at end of file From 91c114347fd3892313225fd61feb5586b10ac3b0 Mon Sep 17 00:00:00 2001 From: "Peter D. Jorgensen" Date: Sun, 31 Jan 2016 17:36:42 -0500 Subject: [PATCH 2/4] Converting files to UTF-8 --- .gitattributes | 3 ++- Install-SumoTools.ps1 | Bin 4390 -> 2194 bytes SumoTools.psd1 | Bin 5966 -> 2982 bytes SumoTools.psm1 | Bin 168966 -> 84484 bytes 4 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index da0d1e9..2ce8d73 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ *.psm1 diff -*.psd1 diff \ No newline at end of file +*.psd1 diff +*.ps1 diff diff --git a/Install-SumoTools.ps1 b/Install-SumoTools.ps1 index 40f32a2bbdfb722649bd900f9b3d611318c802af..7258840a8054996b3594e994f6fafc5f1d3740be 100644 GIT binary patch literal 2194 zcmcImZExE)5dJPe|KX|{u#H*v`qf2-Y<99`KvJX1W(-LY(9$_#%NLcTVjJ!L`;L?? z*-KY!!1~1o$m4T&&)q$zb**y8wSp^U9TOtWYN>Cv78X9m(cMfI0^Lts6jA6R&r5<=SxaSZ|p*E&}0<7xNrPe@;*oFxMG2pGdKzUGb~Fqn7&!PrvTv- z^d2C^kMK_s{~1So4TDr^2gkTW&n}!C5ix&rm7yRf2Vd!xDsT(m$I&t9;Ff~jb8+kd zzJuhxEx~;!yw8=~)vkpynFs`h8)en5;g41)Na^UmaSLp`bc!{f7xTE$W-W$8|!szX8JTq9( zE6%9t&)_cG5xgAxSKZBwZ_u zX$q_)A>IE{oNK1|ntJM6RH-6u4#L*wRHqe4Y)kMfG zbU2O25xA0$B{F4Ur)$`7A;62!3W2Qz0+*FG4zvLpJ78)DHi)@}G$kR=MIB~W2I02j zIJ(ua=G%Zfg1ltv5k2x3;-Ph5wM2@5!WR4k!dsNuVa6X776j#a23TZ2K=z#36Ju{n zY6DUm3R$hSAt|8RjP@+x^cc<8=@-9<*h<&#p(W}e5XF&ZG>(#U@17*o|M?oc=*as* z5njTDvNd^c=L(3}hCQlwkTO>y2%R?zgO=EaS$JR52<;al**V=LeHCa=_d=N7Fo`F_ z+(|YZ#B|!bBw@nly-#tbrDUpr145QgV7693`gTEY>m17CwcKuRD;X)9c?P>QPhmbmq$>^e9R@YjL&nd5_Z z*K4apszhb2ojrTzo!dKeX7l%76T7j64Q*vpTk5Z1=lU*m|H5YaWY*J;xt=}MwbV+X zJ-^%g_MTnZsh*6qHrD>Hg|N^a-&fYLBm2d7y%tigYwl~vaXk?3Q0r5BE!m)Jsqbqc z&9o96WoyN;w4&q2pY2)%V%si+G14CFc_NJ~;bHCPy1tb5w$>N+o1N%suW@&fzlC(n zq#vt3w9j-Mxy5b!#%}d&?9m!a(~oXdz6S}d-^(K6k^O5A8j@{6HeCu8o2H5d@t?bm zE5+_apKo=yvNJuIN#9s|l59tIUD%yH)U%;y2;Ww+2z!sDJ5zS9g^Og83f6afMv_`< z?-Tz8x3`J?%$`;JDK@@8ly>rgH$*nE1uyqU{trFvJ8~}h%pTjoUg|IS28)n=uJ251 zzxv&Oi}9as-P9(M?FeNde?V?4E=~3lm&o04U{_?!VXu0^hi7BH z&(ewH?6I!o`v3P*)z~ZzrkK=5^MPG`u$uo<=*v` zdjd9fG4`kRj(O})sUJ|0ukYx(MRWU9Uee7XKZo*ky3rn4*-^w|KC89FDi-$jJ5c3s z! z41QN?X>_2Lx;vfZU11Ymy$v=++%20DtJ=!?tuAJabm}uT&|ik$+vyOU&7_j~jI@9E z7QYGihYiCx0XSFbN2%*I?XTLAW{8$G;gl;S%?nMKO|sSVw0=tURUf%m2y-u!X3J~x zXGQ5oPeMZkgSve=hEr7*{o!z|=^>m@aW|79m5Jn?>k2x@=!r9}q)BL?T|xT>-Yc1_ z=dL^VN~RA7S;=X~u7zi`Q1sJe4tl0foX9zkZc67a?*(b%E_5Qm8r~D=5mTRjlD*i@ zxqyx<*A{Jlv-rffgF?u79Wi6H;o&RCBXigTZ+cq2k|r1wtx9|*drbdd=$9Fe8HAa0 zKWBsUsR^n)sHzINfqgI-j z%P4UYe_mn~6GJ>lL2rqX{DK~*&~%sT;Dbiyy;&tZ5Grplg>xO>ch4*00guYui?zL- z%E&3wOm@Rk%#h;DS!)f9m(EsJnEkeIh!GE-B=7L|T=A#UV0%`Z2$?;3D@E(RleuZi zrXH%3>51gegvG=(uINu$Je3V|=K^oYAe7%#n_`x{h#A}Ft+nYchfe#}!5r*Hjhe(N zxXV<{#2zayc81u`4rxq1Z?_Ug!sLGm^rgb5Al`Kg&+3Wv;Aee$D^KG0pSeL!+~3CU NyuzC1|8CUt`wx!`@>T!< diff --git a/SumoTools.psd1 b/SumoTools.psd1 index 7eb9003281331c637a99b1bbba086da34f724637..bcebc12d82db324d8363ec721b616436242f34a1 100644 GIT binary patch literal 2982 zcmbtW+iu%N5PcV*f0#fIwi}C*FL5KI1tLh1?Z8$H+e!PnB$wjCCz4gV&Vw0a#)(|je`E|R zB1(ybxnxgF=b&?@nlhtq=S~P6ivJVVrAC!1kFZ{w<~x;&2@c$pF_j>)0OHz12!Fhe zLX=@N3P-P|U=;SL1sKkL7+S1=rIc%yt=cHv&c!#3#j{zQW*U=O*AbBQ^5>XC3?U+WC$ZG>!tt4CI8kEL=OYG5!!1L{>>UJig4npMpNhd?+=0^!3AL5V2$dm=aj>zNc~|BJ#d>*_o$NIqV$R6$Ob6kkWU=M?7~LVqcb6^fla4zM76VaNi9VbDVGg6>bQ?+$j+hu>c&xs@WJ=!+7F zOme1af;vU8x#08={{DD&2;(w6JKc%gfQ;K1c)4oE+?}_&CTP(HryNsYWhJB)EaPa2 zwzEYcVp0I*OC|+(woyrjrQvrUZSUlUi}dPin0n_`=u@Be54>5Am7--_Fn6O`nF~Rz zG5k7q3#bJjR*qdQ3ifeJ93A)$2@;4?u~*#iDV?UQrT4lzA);zZ6M=<5w{?Aw9&)0>7up)Tr<3U=)fq+uyGVrBzZ(5!QHTa z6on;SKjz%A7NKnzufiQ5Gn8oq@bk0kaO02kXfNE|TgjIAcJTWX8LRN|W|?cP$~Pz@ zpiS*EUfa?oEvhS?3HWw*cD}s+n+~;5_ zyY6wwfbWUw-8*kXQ<@P|X!IMJv1b?9Y;P|{rNkGEYdPJ-Fv>dNm2=R( X7d-TD9lo=UkaFT53I0RV_`m-F-|pH9 literal 5966 zcmcJTYfl?T6o${|O8pO8@gbxQ=33fBtrQf(CCUW>rTywFSjCvwPN1s#*W13&98Y&< zy$-h`%l6Lh%$fJx-g9RE`Fp{>wy$i#3VUZm>)0ndx2{G5YubhNt*6o0Cc4wp^HF$` z&U<1!PnNjktWL)SwlFW(zJCf3}KkSA6x5NFe{jTdR&FBOfy<12a zN+uFkY|WPS{UQ9W*s6V>tOmnN`!n2$c#f>Co%(he^a6XSx9ix_(+i;;2_?2jXY};U zZPb*mV?Ar@PN~_IMiV>JI)3|_F>B36z;mdzL(R%9|Fh=TS+ya&V_{jH+Ba%*5-d2@ zPFSSS7k{+E-9q-_ zXGJR*uiIt?`IgXu!9D#Y`+zB*?YQQ}tjB%y%PZ|Lkk7~?EaCfo4%Q&b$)%fi&t<%q ztbx`S<~Yuz$0S6>3&sAjoyx{&_DL3KC@R^1S@~H;yKBRJkJnkmm%>VJoJtN^Pwx9% zcE*n-6U_G{xT}&J^P*@KW}O$?1!%|C3`689=(yT@{G=7cix_^^?{^a1;j_PE4hJIRRpdZ zIYbs+$OnaNf2uDdXJKp(`pCM4y_IY{-`3qNJ5UB;xkJq&5BpPV6~R^`Nr~22*SreX#es@>=0h_Do}P04qlHIios@uv2_a z{9H^CPi!Z6W1w7rBRtM>RokV};*swatP?ai69Qs|y3^GMv{WK&>KeGzdMj)MOQA$-VKz*06?CY_hAwy? zPk3gOUcXJ;)=537;PM!DE99A0GSYppV?&Q>BI<6q7o=?+_Pwdh5}BjVaX*G99#flo zkK9KmG^ZY5d3;7RH3qsc+AcUw5TU!?NWTeijJRGhA^oKHczD664G z*I=CA)ctIRt1Th#=z8M;m}imDbJydj&zrL9MZTss(BZ=3T*0tZ3VI)SF)}P1J{3T-3GOonuXPTeJUHN)JbH!1U&``N zvva~$@K;w@T0+>Dj4$hqHck1+E6QWwu18dlKJELc$bM=;gGFULXNlDiNm$N(NKBTw zf)Bk;ddJZYe&XaaQe8vNV|dKZBny(B;va|8WgflrymqV(?lS06uk*G1c|O&gGmFP- z?z^kdWug7uV=eA~7tA{$zP(?X=c~uYonp8P_G&K8<|u4OyufK?$CdVgJk2|Z^eLwh zJjyv6pQb%$-5Gj0J5e7?avnL66{t=TPgRThoZ1n~T?DrFE*jjfZ`ZE><2yVEi_zoF z=cQR$Abp+5aSr~r(nr3Mrb1fMQnOZIN(7 z1PABAhuR{Sbz1~)wZB(Bk6@}9^(>8GkntvaT)9I;aMRnWXNuo=Ud5{Zme6ZZC%n(f>n_>aS1;i29n$mXL~GrWbW$<* zVn2~u{INJA$F?0Xax(Tz%{%fvS?gSW-xp_aA};iP>rkVV>*n_?)zxur+^Nu8+n;nM z=0oSs$&@oW6?|9ro7kSltz=jHj;-SPocDE?ViNAgOfEv@1NArhz?6|KdBf4uJWjpz zd6!`?;_5n)82fNP@#CYE5uCYiVn@#MAEu{cB7u&|nUsG<^KsCH#-4CrIT(A;rK~0t cvKgL468OumBiEAm5CeT&n{>sj$N#c_0T;&H2LJ#7 diff --git a/SumoTools.psm1 b/SumoTools.psm1 index 20929e6041f7c6f3bf9f5e1aeaaa46d0b915cc0e..47d665295196b3cbdd41bba45f87ba5b5e04a91b 100644 GIT binary patch literal 84484 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

BK zr5e2l;&NiC9PORcovZ*C&hm5t0IB1UfSO2wn+go+ME{2zPpYW{q=hZpoA01QYaC~K zgOv-y;%OvPlvyudWm{?;KQ|9ZGE`A-)aNG6gdx;%*K4vEXLMRAd>M8nxla~xeUguT8~ zK7#L%kJ|1`&s0j`O6|ec_RMeEr-((uayR`Ao15*PaRG&V1C zWNzp48VjDKP+y^Ib%IwEpX>flq7jaX{2Xe?DjVB*c$a_yA7I`RlX<1(WWRH&pp)Ib zOa{%zwd!0BbCQhxuc_~9(B*iV6|`K}!ZfjaM)XkAK|4tFA>|e>>305sJ55;c&Ii+3EMWs{dB}Rvg5CJZttYTqW?td-p&h`naY z)y52b6kcYk?v}^0XJYD=A{=lx5<_FOVMJawx%5xua%FP8t>e{` z=R$EN^x=>QudKY(5{US4?);%{g#u|?X|SnvmC(WAai=Suu{vlA(2J-;2eI54?>9jQ z12?K)u)c2qqWrQb3};4}&jwaOQ57}IhH-s%aL_>jQ)Rg|5$EoCjb9yJt%rcz)+^}- zMr>Fu=$z&*?Mb3R(IPky`pd7-ZV`{(c3|dJ+y@z!eutoR#ip3b;S<)nn=!c`F{aYC z@Z5Fr-O{@VP+v!O`}evOIO|)DMZx3iTMbp6!-tHGf9uF@Ij1PyU{r;!c<)!P)z5#o zk=S|;gw7vpj#wA3{VVkFZs@uCoLO8#AA5UH5IFw1 z>pRVW8zSrG4#sCVsKV2aesg2dLL(0g_hY%it%moTxtD|1tE^>mU?;S6Om;Smk=+Ri zeacoNJtsA~?`o{ZZlB&Yxcsa!L=8Cz^|C5tDYP6uVT~8#vX*#Ky=anmXdlXoJxXR< ze($O2R%0azM-@y2aONzUY0-HsnGld2DFya^O!cX2n+_=@V@J%eRdFG~SWY1iqS^z_ zQHy;~U4&}IV$lRvY9xw74318HUEC|ILKXp+^^h^bG&$-FvW+yol!)oa<^7{R$>OTkc^jT&R zf&cA8)50>jN+tp_eoL(v2uU8`5a69Ck6w7)_Q!N^qtQ82=0LWoTh6UU|20VQLJwUT z#>E|wxsm<>07eKp{;%$5UX@8!9Hd9}TIA1vb|;Yk*Y-IE!8IN~e5kmb-41d$!O-N}Hhz86M%Fgi{?7Yc*D(NI z=Kh$&U}rla}gBnbgB86>IktR327G|?#GRtH{E0h8EbYB8o*RLE=5h< zVry_}sUK?>@}IqO_n-z-?&6^i{OmhVFY)stwyvkT37^{VeRKl8e)@Lzt)U)H){9(Rhc1FmYAaBy&N^%OQ3ni-0HazcC&IC)7>!1(Cf~hOD8hY<6bBI?=r3 z<^o26moVTHW1&EPFb^RlwI#_Ow|Et*pCv>s5u5omj60_St(qEAg<88_!!QlF-E|fA~Slzk}ip6ENp8oU0`q#cmiDh7rNtjq~`EdPh1aS;_ z8Tt5rA#%TYu-CL7NWi{V`fTL>yr}(#(=Qw0t4&#xpY4GiTuJcNhU-!eBA@Z>^Y&Q* zDLUsaUScpPGb^hv0?4;h(dwYpv6(ge*X12~gyHU;C&=T5Z(5o0Mo%vMz?=RzKSg-3 z+-(+zu%g_&?IverfUI+$7YK$<@Fz&T_?jVFGWkNh&ILgcwRzKe+~(hZ`*88j!`7>S zJ@>9-ikkT@7a*cQ=jQQzhpBIlcu&+b$=jyJ*=H(MWH~Cp`sVXFLf7q5{dlL_b!nrR zT5*tFw?iY=;on3IZQvE?%;rtwnpeZthx5|4`I)+^Zs$+%aAN4t_p~E~1|&YoWdt>K~v`|2jqu#$9$gaCCb;4I~NWRavt9(PSE_Jdlb>g#5+sFPc zMLq+Z^uG@$DVQtPfhzAzL7$BHoLrudx2%vrx&Y?xbtObnBqm3F5ru`M<+kmD{M#E$ z7tE*&X2Ej96lz8I>IZh%)f7f4zBVsr1TSXyZ7f+P#Vvl~vc)bgkwQtL-BjNC6saVg zAeS(+MBzULq)?jt;NLEHlq;3ZAvFj$W$9c%wU`|2&4V30_FyLeI7xT%{8$HjJ2oV} zkxy010?pEa#Cgx>j7BUw^2PY);VfC&cIC!5##1D8@p+tsf+-?F!$r=hm10`^NfIYM zX+BfxMM#dt1u8ko2cRZ_m1RNs#=R&HD6O=arr^~NiGR5c0mmYYT;Z8{fiZ zIL5On@7xgnE0;7_j~1bBeYR2UW1n;QIS4)NAn)92I>_fWGt@;PRlC==0@-o*tC%0Nk7Ogi)@R@ ziz6Nn@e=hk`kBe+H<`#rg|cb+BMKq$sJha|1r5>|jquRC?P5-l^#nC$yj(=$vE*XP z7E(o~arpB2^Tu{*zO6QLxgACs5`ewVyKZiwSd3-`%fW=TqQLT{Z0Nm6QF}` zK!;Lwf=QpgkEdodg@}&^d}qsYN=P8pi$`Zji_Tmy?DRt+@zRd_%Mqq|wQYXT{B^L1 z{MRHid;^Xvd>P=d)Hcr}lsc_JF;qAq12lP9l_X0kJae&#DRl_g2z7rHi*KK}-AqeU zw%@)zD_rT4ACN*Yg7A5T9CS(-6j{hl7Mv-$kawiFqFP&!O+i5{$j%#7+d^L-3wwil zTkKXSKShaM9I0Ay3pp{}&W)=kwV8i{F@MTCAv)3)jkEdtLr8|5AQV9FOONwuo*u~; zJ__hNtO}MNqcFH65odj6Fe?apHz^AiCjJ!!fOVHF45pgPib{ipP%SWR@P77MDj6VA z-CgQlQLJcPBp6H+AyS%YvhBQ#l?O$ojMc1fs%5M=lj>Ydv?sG!5(?yC+1}*hU#Lz(b zuK=9ImZh1htkXPKyrRBUFo@u!)OYrj(mI^C(39*{)YKNTaBT&-yvm?0GME>RE5X!H z?|->x_Q&azHS(CkktrIJ=$}($VL;`bT;puG;&Rta^*PXDrI7XKNE#aTojb+KEM;xL z3>s#ERH`rzr+|10CiDyRzu4Z^r$DxF1@?fUK=9Rc(1NzL)>vKXI33JQR45^bwAZB) zazI&q0l1QDr17629S|?}zn}mdoF=oI+4WEms z?+=fTI|m(BDub$Yqm2KFj1SY&4tmbARx7V7uy7Xh9aEj7s3tEazS})HJUILY1q?M2 zHO&AP5(Xsb3GP~>+NS$H-aXlUv46UMf|JR)%!#j$J_06f_Ig`v&b!przV3B7sx3B` zG0XBBhHGoxt_q!3r&Ey4n9HxlLiRRO>I7{RcHC z;;uDhx$j|3y9!)wZsl@egi1S0prN!8CClo|d;3q1UUc?PzC{}M-ymLQGmZ*1{b_8w zfM?2xb5-)f35>7_&vG(mPItC#VJ|?0on9Sks+lc4q8r;k|LfgI#n{3S<%g#D`pmP5W1dkl!%GE`*%q7X4*|+;H z#AT;$!=-qYAb3FICBikhSc$y|7y&x->swf;Ib&-4%B~t*oh+U>a&Z@X-*uBQEsusE zXn(IBKW%42Eeo+CL)*&bp}g6U8^s^)zmk^tf&T?n%Ij3zRa=Dx_12m|cPuiO8-vBc zS7QUtFvogMr@M_E1`EtH&F|0@tD`ez5yvRnqSlBSL&)@tm9cMO5mAV*ZKCwu+eFrA z3CZ7?AwJ{x+Hx7iyNKU#_2Wb}gCj1XUbdlH9b>TQ(EE``I~zZ=2QRgTPlMAa@aOZZ zAg*y8($1)^wdDfEg_o*M_F64M?~}w z1O6AN{s??}dv`*k81aeMyb~%Y=-|*IkCkGuSbM7kGfTXdm40*VJc&g{H+{s6%gPLX<{*CK=RFwTey+Kdl zEQAALldAJuxVW%Nx~Dp;p-btFxyt#Ct7*uPo>k_Kedj9+xqBgWgXbh$C)Gw^I>9XjVx2h_yzuH(`QNzOM@2sj}VOH;ryOHEt7G(2;O&!@4D8jB& zui<|9-IW=vqUo*`1WQs3cYDR!fD5^}Qro7=v}{t(qx@zW2{xl@nO(fOg4%LRYB@CJ0j%%zWyRS2oz$z#CiMC^PY!OV3nWprAb0j0fI!to_s7Z}8s7 zkJ)|}b&-!ZZSQB@i=fT3ZhDD!NPc&4-jXuLO}^t}cbCc2K1`RC02h2iln;u}GUgWW zN$tKyMy=Lg(|EjPi&@yI6hu0NWNX9H!q04Lex*J1Cr^V7ADe)8PPUUBqT#=CYt2)P z_L9LQtM;(>HTF?T-h8QK^u9Uo6{=&)Z9{qFx{Ir7*Sc1fJ=KOfU@V0d2uLC7fK%Jt zKQa=~x_qUa&;<>9y$&@0xtx&2-aj(`6us0Vu&Ieg6L1G{SF<0`N@WAE#rs< zjwCXSvN+7-TzICeP4JozxeaZaN0Hr?QdS={JnlSUsUyEBn>WAEXP>o|nCJ#8 zMX>-tF>=*a3KQWtL{@e;I4XVhhSPqu=ZjjP?2vr2|4-bCY$3@QbW}Cyb#dXlZ3iBC zxE<^!;5Ipz{n~t?u~fneLl6Xgj7jBXm%I&ka}>TerV$7}tvm7yk91$isztP!20jaR z4`P;_f}rQ1yFbpHhC=NXGZf_uCb`)R#qP5vac7*bopQ5DT=yBn_q8y#Zb*LKWO#X9 zUxH`=O`A^J3+f<0x&KU)c;5gs1#WH!v)LgF9J-?N8kl7?LY^=o8Stflpa0^TPeV2N z2ROm~%61{A@=fCnN^9J%um zUrk4(bW1OH%H>C_hN03+W@(`W+;H%E_Tgl`Z)IVaPZ>~G3VCiJ3;=fq{pbL%et~%! z=SYg({L|y+Z{@TMv&h=d;N?vnCpGfDG%PDAlE|l?fpW617r!_~Me4I$0S}}SyHWst zhGlemC~aWGEVE?_a)sy~lL|`VgH@CP(UKaDmGn?>i}Yncn&arIx!r8K4Hr8}c?TK6 zcgP!5>W28%rEjWrL)>i3Ri4;J(np@B&}S~Q?%6Q%SzF{x^V14_)R(!alt#eeTqswO za}UfoND(vui{+oCPf5Jp+OQ zUFve>C}vMnC`IA-p{G~AgnN?OB1U@2#FcztmQAESPa!dwu-xL#K>I=oFr>GMy6GTF z@*(W`7A)Nsp&>RKk83MfG_0VqY~-XxUdJLA5(0S=2sPIEB_NpGYH&V?`l0@eUX*I8 z@C9Z0>Iy;VG~QQs8jGi_Q~-in5OUyqvDA=WjcuD|L*RhFs$xo?*#g(TvVrahg*8#& zVWZ?e^nM@$!2cH%kCt614!sq1j_?r)_UoMJl7!vdZgC=uCwKOt$0!@KDK^VZLJa z48f+`7Kqjs!9|C=v3%rMeY0^%`Fvan`+wU(j$85U#o?DonF=`Uz%N0oY zU94c5c~vRO8@Y2`it>QE5i22V&LX$D(0t$c$$eV3htU`R3lbPnLNJGnM~g}jdxX`N zwg6QlaWAU?T^$YCm#4#Sg1XL= z1ob|c-Dye#;OtrkwIgAQ{vhq)7)YRFW7PwAWTaYv8Fkaw+oEA@L-i5AgA})n)GN_u zGPbD&6mkG7g;7+$Ku1zW@R3~oOx*n$NJ3y+vqUM)dD(q~qMRAZr*~1P6R$6@maKP4 zoLnUFbb>;FQ4g846iLiyb%E_U%1xrlu-ns}c4Ze_3^m0n$cl?5=q%-RO_SSbTCQkQ zxd0~Z*sKo{z*Wjn+o`PcM5x4NB=4c#XgnJHPxSx(&;RYhGNOtSPbA?M;6K4DbCM0p zD|EL}&=iUZymS*=hEre#Sa7T>R&f|NGZfecg$;+mWYX=up0_PM%ffB(lR4Y6wPCbY zOV>=tgMUt=ZIi$Rk4MAn)aYM09MYEw#6acSCK46{tzTT??x#huGGxjHGw>q`#>d&a0vrYwTG^@x_B zZa8ZY!ZR(#GeR8geR2GJpFlqDn5U0^{Il7>DX+9|jgZ+YMp^2sv$qMkN;ZB9Hg2+>GLI_L z+}!-jBmD1+AAjus^7(IDzvA~Ve|XUP@)bXLh!6gNPwqc>@ava9+;9Ey6+ha-C#}Ey z`s0uHzqtPw{=ueS{8spM3xjd2&wu!0`+vK!3N6^_55-RW=*!=>yx&7l0;|5HIFk6Q zqknt&3mFN5MUHjH*S6G^#|aq@=MxCRGU}UdGN8voYE_KmE00(ZRUUNGb*Cp!0^AAE zjY$W@0V*Z@8Z^-8B8J4UrJp`KJ~-IhJ>C7R!NO0Rx(4m0#4@ ztk9smktLn;RhbsRPX4jVEbhec7m%V$6FsLZHB7lKmw($u_3G(?vRn3C3 zQ-s?RSsf3LPWMr5jwjEfM_(U2XYsY8Z&7>eVE?;EkHC=p?t5G31P3G4cG8@lixf_F zt)hIo+H>11t%369PG019eO@fPZV<)pfESoXKcjMo9ug4ts)X?1hMbhsJ3l3$4)P2g zj98A{p6xv-WjNEJe1Xi}6jyQb8VAWm1e_(<6SvedR)qUjR7ey0ZR8MPQ~Q-1bZUqI zX`%<>j1&qIjg;pKPFp=txZ|#V2^|(8UQ{Xb&fmZi5)YmK5BMeMA$tI=WgFuUXUwPQIeeEa)^sYq{xutncKChoTo@) zRn)JbF{RSw01ErRvAV^*e#bhHR|&LtFbp^-;gMCg9%*!9!>^-gLh2g=1+l(`hBsW z0UOcVA$MS}!QyP2uOSs6BS(`Vjvib+0CrxN^c0Js-LQ~|SvQx&kcFs^)WC2ke%0XS z_4h$`-2iC;AzI2xw$lDg+O)C&mBsch z;~2aQ0VE>K>8eE=TD}r<&m9hZ>)n8IY(?)gm6DFZapC|bS>z2Wvl*YAPgANG{Vgyn zPJ8F4X*q&0&**~%X!8#0WdJv!v2t|VsM*|jd-JD}t z!t9KD0}4~31ZdcHHYe=Gtk;IMwa>)(Y8LC>Rl!%Eh5N!o%!=1zx-zJjScIO#%NbvR z+dKz}@(-S&55`jwhXJ|Eb|Bv@?s%*)j7P~@JtAPRArL9|yNyk=)vyz{yt+V<4S06P zKsk;F_fdN=OS{(iAU>*i9D2b$2I6pW9Kl zPSyz;1il~`DE;sZ_@lIK_F~FOs0lJ1WCONt4`j%b3?;~YW2VzU~F~!3Gw2sL#*{hy)bFyd6HO_wvqAv?_$Qb}3As#^hz&`d0;WR<(*YB;0?`X7^x7sM& zB;o`T14mD7n_M(Is;hk|gUu%V|K3wrWrN_R94a+Y6nXPc$Wd=NPYxY@L+(4p)g zTFE!i`3{bQ56aKOCkV(4(B9;@WPbf%iNNYZnPltJ&EvYihc;W zh(4aJ(ug)SU?;uga4mLi!||tt^e>kjiV#Z~?dJ!Ff1_WW zx1t^Dz+!Q7AGROu%DSFt`kb!D9cWi^3uP@^{kXStHF!M;I_Hz3j_En*B7+n}u};%VJysZhzeSE-3qH!=G#-iy=t*arg{jk>u~lbB=kl+V8`+)JLK z-`lB+^k3W!!N4g9O@w;#UJr}GNzI$oR3RYS-ZuZB%K`=-m2kQ76=esiTM2?F1ZG|y zSO^7ol&3K#JLnvl|M_#^}$bd`Zn%npok7(*1&og!LbHw z8U6}5DBv51`zD&iJzk+xi{Q_~y(r#dE;+09zN}_mm!8pqS2p-RR8PUke95u{a)NV+ zz5qZl+*P;}f8)iy$%R)PiM0fic%LBuB5?OKHqD3kAAH%m|Dg5Y;pu~ikG}Zw(S!fM z{TAP*7QcJozjJFgPdlh_gq62vTq)?6wYLbK;k3=WRttA@{uX$)1-=q$D6e4&Ez#1^ z)1w#1M++-H-BSCLES$^LW2v^%van8NvWkmfzkF;5%HR!VERB2`zm;K0jBjONN69ic zi6Br~?*k1{IOA;LCgu&MgyUG%M?V!|EjH9vn+2oVCmLC_*_2|ldY?B*M-Lb+F9$46Z3=ik z{DBq)?VvEaFHyU$XS=xAY)5?JYJZ)^PdcY3C`JnO(Q%^RS%_0)`)>gCbs`gj=z~dQ zq9+ZNw`Gc*sw%VdkN7MVrC;=MN+v|M_u!Rsa$!Sqnr-Z_vO>xY(E&Bw8%ttT?NWjM!A1(v{;cfT+KVRe zxP7jx*{BcJ&-Hr%xz19;y0!8mzyk-#N@MkX;5|^V+v{Pu&Bsl-J6D0c^AF_rXj&MR zKGMs^DlM9N=}{j(@c;ljz*h6^Q6|R=HXPq0!?9$vLFH3r(3A5rrdt~}W;TT)%F)W!)7y6Jzc&_~ zL^qmEN{PUFs5qXRstGp3Qk%;=y%$(^uE3H=bBM2lezC$5vn3w%%O+HHje20eoi*y% zQf$pFv(D_QE~*A_OID_6*6b(jx^zaSwUx%Rny%%|Q@q4$(U@e~7HcXZX-kWDrIjy5 zkuN@M_m+;@KsefYltOKk+-Nf`&W8=S>d^`jKpEbGhQ?K{S8UMAdWj*IH=)9T)>hgq zFNJCCCKm`?8)wh?^a4+Yts%R%(yYFIhs=}y%=MQw&^via#G4-wv$d=s*1-Z~7Mm8x zr@M(Y;Ulu`Ou&VF0u3g)Hf{*VA96F~KGeiZWZ=@lA0}WT(}%A(8wYrEdx7Ax46D=E zek;p2>CS|L{S!PE^-uK0E|4GGSjjAwJ%#|?kkhaL#rB{t-8D@c(j@vO2kr|6*)sO# zj`l9BnqZUva2IMTO&@BM}>Q>&VJ!qk44L|p|zwJmbMY0<>c(Tp=+on-N zfmW@|O)zg)vhRfkV$*c18MLMYMnRwm G#{T~h)zP~E literal 168966 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 Date: Sun, 31 Jan 2016 17:56:01 -0500 Subject: [PATCH 3/4] Fix HTTP 403 Issue Added logic to detect the correct Sumo Logic service region to use during the initial credential validation in `New-SumoCredential` cmdlet. The `$global:SumoBaseAPIHost` variable is updated with this information, and is saved in a text file for future sessions. This avoids HTTP 403 authentication issues on redirect, since the Sumo API will not redirect requests that are sent to the correct service region to begin with. --- SumoTools.psm1 | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/SumoTools.psm1 b/SumoTools.psm1 index 47d6652..ff01e79 100644 --- a/SumoTools.psm1 +++ b/SumoTools.psm1 @@ -6,6 +6,8 @@ NOTE: Please check out GitHub for latest revisions Link: https://github.com/ScriptAutomate/SumoTools #> +$global:SumoBaseAPIHost = Get-Content "$PSScriptRoot\SumoAPIHost" -ErrorAction SilentlyContinue + function New-SumoCredential { <# .SYNOPSIS @@ -80,7 +82,20 @@ Param } Write-Warning "Verifying credentials..." - $SumoBaseAPI = "https://api.sumologic.com/api/v1/collectors" + $global:SumoBaseAPIHost = 'https://api.sumologic.com' + $SumoBaseAPI = "$global:SumoBaseAPIHost/api/v1/collectors" + + $initReq = [System.Net.WebRequest]::Create($SumoBaseAPI) + $initReq.Credentials = $Credential + $initReq.AllowAutoRedirect = $false + $initRes = $initReq.GetResponse() + if($initRes.StatusCode -eq [System.Net.HttpStatusCode]::MovedPermanently) { + $newRegionUri = [System.Uri]$initRes.GetResponseHeader('Location') + $global:SumoBaseAPIHost = $newRegionUri.GetLeftPart([System.UriPartial]::Authority) + $global:SumoBaseAPIHost | Out-File "$ModuleLocation\SumoAPIHost" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api/v1/collectors" + } + $null = Invoke-RestMethod $SumoBaseAPI -Credential $Credential # If credentials worked, export secure string text @@ -326,7 +341,7 @@ Param break } } - $SumoBaseAPI = "https://api.sumologic.com/api" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api" if ($InputObject) { $TypeName = $InputObject | Get-Member | select-object -ExpandProperty TypeName @@ -485,7 +500,7 @@ Param break } } - $SumoBaseAPI = "https://api.sumologic.com/api" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api" } Process { @@ -793,7 +808,7 @@ Param break } } - $SumoBaseAPI = "https://api.sumologic.com/api" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api" # Confirming that -Filters input object is legal if ($Filters) { @@ -989,7 +1004,7 @@ Param break } } - $SumoBaseAPI = "https://api.sumologic.com/api" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api" } Process { @@ -1004,7 +1019,7 @@ Param Write-Verbose "REMOVING Sumo Collector Source $SourceID" Write-Verbose "Collector Name: $($SourceProperties.CollectorName)" Write-Verbose "Source Name: $($SourceProperties.Name)" - $WebPageBase = "https://api.sumologic.com/api/v1/collectors/$CollectorID/sources/$SourceID" + $WebPageBase = "$global:SumoBaseAPIHost/api/v1/collectors/$CollectorID/sources/$SourceID" $null = Invoke-RestMethod -Uri $WebPageBase -Method Delete -Credential $Credential -ErrorAction Stop Write-Warning "REMOVED Sumo Collector Source. Source Name: $($SourceProperties.Name)" } @@ -1075,7 +1090,7 @@ Param break } } - $SumoBaseAPI = "https://api.sumologic.com/api" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api" } Process { @@ -1086,7 +1101,7 @@ Param if ($PSCmdlet.ShouldProcess($Collector)) { Write-Verbose "REMOVING Sumo Collector $Collector." Write-Verbose "Name: $CollectorName" - $WebPageBase = "https://api.sumologic.com/api/v1/collectors/$Collector" + $WebPageBase = "$global:SumoBaseAPIHost/api/v1/collectors/$Collector" $null = Invoke-RestMethod -Uri $WebPageBase -Method Delete -Credential $Credential -ErrorAction Stop Write-Warning "REMOVED Sumo Collector $Collector. Name: $CollectorName" } @@ -1342,7 +1357,7 @@ Param break } } - $SumoBaseAPI = "https://api.sumologic.com/api" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api" # Confirming that -Filters input object is legal if ($Filters) { @@ -1694,7 +1709,7 @@ Param break } } - $SumoSearchAPI = "https://api.sumologic.com/api/v1/search/jobs" + $SumoSearchAPI = "$global:SumoBaseAPIHost/api/v1/search/jobs" } Process { @@ -1787,7 +1802,7 @@ param ( break } } - $SumoSearchAPI = "https://api.sumologic.com/api/v1/search/jobs" + $SumoSearchAPI = "$global:SumoBaseAPIHost/api/v1/search/jobs" # Confirming that -Filters input object is legal if ($SearchJob) { $TypeName = $SearchJob | Get-Member | select-object -ExpandProperty TypeName From 1e6d4288e645dcd28b44731a30774b9be24727c9 Mon Sep 17 00:00:00 2001 From: "Peter D. Jorgensen" Date: Sun, 31 Jan 2016 18:03:37 -0500 Subject: [PATCH 4/4] Oops, missed one --- SumoTools.psm1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SumoTools.psm1 b/SumoTools.psm1 index ff01e79..742eba6 100644 --- a/SumoTools.psm1 +++ b/SumoTools.psm1 @@ -203,7 +203,7 @@ Param break } } - $SumoBaseAPI = "https://api.sumologic.com/api" + $SumoBaseAPI = "$global:SumoBaseAPIHost/api" if ($Active -and $Inactive) { Clear-Variable Active,Inactive }