tag:blogger.com,1999:blog-56194406138387078952024-03-18T02:29:51.402+01:00BBB (BeauKey's Beemer Blog)Ranting about an R1200RT, motorcycle trips, information security and other day by day annoyances...Unknownnoreply@blogger.comBlogger120125tag:blogger.com,1999:blog-5619440613838707895.post-22965832859594843472024-03-10T09:51:00.018+01:002024-03-12T21:43:45.582+01:00Rotel RC-1570 bad flash recovery<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><p>This post is about fixing a Rotel RC-1570 bad flash due to a broken RS-232
interface. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZMbM3nlvC8D2I5kf9en-PvIuCKTOKjXbWtF5opXfbECi9NMp0p5Y2drtbmHVg4RSHM1br47wwMo0VCpJtSQgFYQboRmsDeYA_zr745UUvAvlDw2u-yXBnbwLgzln7nVLV9cfBrpJyrpOmwEbl30-ztScgokNb1RJCU-qjPs4wsYx7Os0SggvsmeF3SBc/s536/pic1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="140" data-original-width="536" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZMbM3nlvC8D2I5kf9en-PvIuCKTOKjXbWtF5opXfbECi9NMp0p5Y2drtbmHVg4RSHM1br47wwMo0VCpJtSQgFYQboRmsDeYA_zr745UUvAvlDw2u-yXBnbwLgzln7nVLV9cfBrpJyrpOmwEbl30-ztScgokNb1RJCU-qjPs4wsYx7Os0SggvsmeF3SBc/w640-h170/pic1.png" width="640" /></a></div><br />
<p><span style="color: red;">Warning/disclaimer</span>: when you start digging in
the hard- and software of your device, you may easily break the device beyond
repair. I do not and will not take any responsibility for this. You are on your
own. </p>
<p>Requirement: upgrade the firmware of the amplifier.</p>
<p>You *should* use the Rotel Firmware update software ("ROTEL YModem
Upgrade Manager V203.exe". See link below). This Windows application is a YMODEM protocol
shell to program the CPU's firmware through the RS-232 port. It tries to figure
out the Rotel device type and allows to select the new firmware from disk, and
program it. Comprehensive feedback is provided on the state of the upgrade.</p>
<p>When the Rotel Firmware software works, you are done. Nothing to see here,
walk over. In case something fails, or the amplifier is dead, read on!</p>
<p>So, I bought a second-hand Rotel RC-1570 pre-amp. Basically, an input device
selector, DAC (S/PDIF + Coax), a PC USB interface and the NE5532 opamp based
pre-amplifier. </p>
<p>I started to upgrade the firmware to the latest version. The firmware
upgrade is done using the RS-232 9 Pin D-connector at the back of the device. You
need to get a 9p D to USB adapter, which is supported by your Windows PC
(drivers). When you connect the RS-232 adapter and you configure the COM port
settings as 115200/8/n/1, you will see some output appear on the console
program.</p>
<p>Problem statement:<br />
1. The RS-232 out shows garbled characters.<br />
2. A previous flash exercise left the device in a "dead" state.</p>
<p>After the failed flash the device seems dead as a dodo. No light, no
display, no relay clicks, no nothing. Connecting a terminal emulator (PuTTY,
Tera Term) there was garbled output shown. The garbled out still showed
"readable" words.</p><h2 style="text-align: left;">Step 1: Diagnosing the garbled data</h2>
<p><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>en-NL</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0cm;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;
mso-ligatures:standardcontextual;
mso-ansi-language:#0C00;
mso-fareast-language:EN-US;}
</style>
<![endif]-->
</p><p>The garbled data with readable words is an important symptom because this
means that the CPU/software/firmware was most likely working, and that we had a
data transmission problem.</p>
<p>The RS-232 adapter is on a separate module together with other Rotel
signalling:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiidy98Ml59x9jQukm2kRj0N4_viP6dsdYJyIr_xzxhcSTY7BfUitQLove5KlMCW9cCoJNla07wXkuE0shl5edVS0QTIN6S3uRzJjjpC_Xk4xkN-0vNQqBa3ZUCIzXTV-j8O9PK4wxot2HQtoCZRhKrHfuidParDBJKZvCeYP5ncd8k3Lc8IOG2RvGp8hI/s969/pic4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="240" data-original-width="969" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiidy98Ml59x9jQukm2kRj0N4_viP6dsdYJyIr_xzxhcSTY7BfUitQLove5KlMCW9cCoJNla07wXkuE0shl5edVS0QTIN6S3uRzJjjpC_Xk4xkN-0vNQqBa3ZUCIzXTV-j8O9PK4wxot2HQtoCZRhKrHfuidParDBJKZvCeYP5ncd8k3Lc8IOG2RvGp8hI/w640-h158/pic4.png" width="640" /></a></div><br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc3MvlCr93pT3Y7AFOsQpobEK8bD4QPMbGyGqxo6iPqhvi8P5Wi4az4TrZpmDOKPs-WvnrDUk_rqAiBT-NXZZehASuGFsKK4CfgFRb9lwW9sYgc8xJRChr4T2JWsNJvnXCG1pF2RwRrFMD0mQ-0n5GIVuH0y-as9bYEaXfoPQnH1lF0V4PRAjAM020ugo/s980/pic3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="764" data-original-width="980" height="498" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc3MvlCr93pT3Y7AFOsQpobEK8bD4QPMbGyGqxo6iPqhvi8P5Wi4az4TrZpmDOKPs-WvnrDUk_rqAiBT-NXZZehASuGFsKK4CfgFRb9lwW9sYgc8xJRChr4T2JWsNJvnXCG1pF2RwRrFMD0mQ-0n5GIVuH0y-as9bYEaXfoPQnH1lF0V4PRAjAM020ugo/w640-h498/pic3.png" width="640" /></a></div> <!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>en-NL</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0cm;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;
mso-ligatures:standardcontextual;
mso-ansi-language:#0C00;
mso-fareast-language:EN-US;}
</style>
<![endif]-->
<p></p><p>The module is connected to the motherboard with connector CN207. This is the data path of the RS-232 data to the CPU of the Rotel (click to
enlarge):</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihxd8XJpb189ms3wJjm5mpW5n-OTEMjeJkbeTdbr5C01Sk_kiex_nA0dDRC2cLiJoBKUZkt86MUvTFjukp5i9xP5KcmICwHIpSv0HeHGwnNVhywmOXag8iVnlkNo92S-6eV3EwK3VzX6xcqkihHJolIGMc35U7G90TJV1LO6FM64xW_oOn4JsoSsUvcQ4/s1349/pic2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="660" data-original-width="1349" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihxd8XJpb189ms3wJjm5mpW5n-OTEMjeJkbeTdbr5C01Sk_kiex_nA0dDRC2cLiJoBKUZkt86MUvTFjukp5i9xP5KcmICwHIpSv0HeHGwnNVhywmOXag8iVnlkNo92S-6eV3EwK3VzX6xcqkihHJolIGMc35U7G90TJV1LO6FM64xW_oOn4JsoSsUvcQ4/w640-h314/pic2.png" width="640" /></a></div><p> </p><p>On the righthand side you find the RS-232 input. IC205 converts RS-232
signal voltage to 3VDC and back. The input/output signals are directly
connected to the CPU (pin 68 and 69). When we use an adapter with 3VDC
levels, we do not have to use the RS-232 board. </p>
<p>We disconnected connector CN207 and used a spare connector/cable to connect a USB-TTL adapter.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBIGsL_qcPqkRW_HkpE06cpC-0ArQnKshNzAG3YFYki1Ke64RLDrIRPMCCAxq_PXV-JAo_LlxCbVspwf6MNMPFUXHiwO3aJhD7_CHFMuejrPl4hpnWsYT3VHGnlIIjbJyN3HbYed5YyDvyEJowaohkWdVAPnTtGPoOod6hIUWQ6vwSTFnaHXTH6UiffYQ/s1347/pic5.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="758" data-original-width="1347" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBIGsL_qcPqkRW_HkpE06cpC-0ArQnKshNzAG3YFYki1Ke64RLDrIRPMCCAxq_PXV-JAo_LlxCbVspwf6MNMPFUXHiwO3aJhD7_CHFMuejrPl4hpnWsYT3VHGnlIIjbJyN3HbYed5YyDvyEJowaohkWdVAPnTtGPoOod6hIUWQ6vwSTFnaHXTH6UiffYQ/w400-h225/pic5.jpg" width="400" /></a></div><br /><p></p><p><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>en-NL</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0cm;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;
mso-ligatures:standardcontextual;
mso-ansi-language:#0C00;
mso-fareast-language:EN-US;}
</style>
<![endif]-->
</p><p>The only pins we needed are 1 (TX, Rotel out, red wire), 2 (RX, Rotel in,
white wire) and 3 (Ground, green wire). We connected a standard CH340E chip USB-TTL adapter to the
3 pins:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI2fndT1YoVyCo1jAbe-NcSg2ObKYA-V10JLbCf0boL41D2uLhRdjcfBndQ9hoRUcZylO8BzPYLGvaiJKAgXYshmrR67Zu_gwGOrvPmSLFkaDsiM3UZ9x7wo_0ynIxlu-wimRKTUdxs-kpLn-1NZ_XDDOgOuHHraYfFCGU974Awx8YXfhbv-fI9aDXPTo/s527/pic6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="226" data-original-width="527" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI2fndT1YoVyCo1jAbe-NcSg2ObKYA-V10JLbCf0boL41D2uLhRdjcfBndQ9hoRUcZylO8BzPYLGvaiJKAgXYshmrR67Zu_gwGOrvPmSLFkaDsiM3UZ9x7wo_0ynIxlu-wimRKTUdxs-kpLn-1NZ_XDDOgOuHHraYfFCGU974Awx8YXfhbv-fI9aDXPTo/s320/pic6.png" width="320" /></a></div><p><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>en-NL</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="376">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Link"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0cm;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;
mso-ligatures:standardcontextual;
mso-ansi-language:#0C00;
mso-fareast-language:EN-US;}
</style>
<![endif]-->
</p><p>After powering up the device, all console output shown was correct. Conclusion: the
RS-232 interface is broken. At this point the "ROTEL YModem Upgrade
Manager V203" software should work. The Rotel can be flashed again.</p>
<p>However, since the Rotel software is a YMODEM shell, we took a different
approach to flash the CPU.</p>
<h2 style="text-align: left;">Step 2: Flashing the firmware with YMODEM</h2><div style="text-align: left;">Terminal emulator Tera Term (see links below) has build-in YMODEM support. Still having the USB-TTL adapter connected, we powered on the Rotel. The Rotel STM32 flash menu is shown:</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjetYndvCXDfBxS2aVVX2n1ezMJWNfkGjK8xOf0LjVdlU9pv3BG6rWfxsHop-9aA3AI8PkTV_ojsxu-BMq8rtXFMTITrsW_Nr84cSF5PuzTje0kmulQZWUaEdz1mBWx7gt5mdl0qVvyCZTzcRCNeXx5mboVKfXTMOjjtU2gotFiOmw9_ahEIFf9aIZICUc/s668/pic7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="199" data-original-width="668" height="119" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjetYndvCXDfBxS2aVVX2n1ezMJWNfkGjK8xOf0LjVdlU9pv3BG6rWfxsHop-9aA3AI8PkTV_ojsxu-BMq8rtXFMTITrsW_Nr84cSF5PuzTje0kmulQZWUaEdz1mBWx7gt5mdl0qVvyCZTzcRCNeXx5mboVKfXTMOjjtU2gotFiOmw9_ahEIFf9aIZICUc/w400-h119/pic7.png" width="400" /></a></div><br /><div style="text-align: left;">Select "1" and watch "C" characters appear. This is the start of the YMODEM upload. In the Tera Term menu select File -> Transfer -> YMODEM -> Send and select the Rotel firmware (here: "RA1570-V138-Ymodem.bin"). A progress bar is shown, and after completion of the upload you will see this:</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg64DMzNTx4qfwzvvHlq7yt0qIKwquDZUX6H5YwxE93r0DZx95MigDYLZiFkqvUqf1ivyz7pRV_7xncp5inrTswhskNpkHOiq0JiEO8oDwtVCN9V_ADRfsY4fXeHNd_Y-Bn6otxmzRmS3xyuFNzRVO6NP3OcyYKQIRwEW-9WkXSos71U6fwXe6vNga4Hj0/s1186/pic8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="710" data-original-width="1186" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg64DMzNTx4qfwzvvHlq7yt0qIKwquDZUX6H5YwxE93r0DZx95MigDYLZiFkqvUqf1ivyz7pRV_7xncp5inrTswhskNpkHOiq0JiEO8oDwtVCN9V_ADRfsY4fXeHNd_Y-Bn6otxmzRmS3xyuFNzRVO6NP3OcyYKQIRwEW-9WkXSos71U6fwXe6vNga4Hj0/s320/pic8.png" width="320" /></a></div><p>After power down and power up, the Rotel came alive again! <br /></p><p>Since YMODEM is a relativly simple protocol, I guess that YMODEM upload, in this case with Tera Term, should work for al Rotel STM32 CPU related firmware updates. However, the use of the "ROTEL YModem
Upgrade Manager V203" software is perferred.<br /></p><h2 style="text-align: left;">Links:</h2><div style="text-align: left;">Rotel RC-1570:</div><div style="text-align: left;"> </div><div style="text-align: left;">Downloads:
<a class="moz-txt-link-freetext" href="https://rotel.com/en-gb/content/ra-rc-1570-main-software">https://rotel.com/en-gb/content/ra-rc-1570-main-software</a><br />
Latest firmware (2015):
<a class="moz-txt-link-freetext" href="https://rotel.com/sites/default/files/software/RA1570-V138-Ymodem.bin">https://rotel.com/sites/default/files/software/RA1570-V138-Ymodem.bin</a> <br /></div><div style="text-align: left;"> </div><div style="text-align: left;">STM32 CPU:</div><div style="text-align: left;"> </div><div style="text-align: left;">ST Microelectronics:
<a class="moz-txt-link-freetext" href="https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html">https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html</a><br />
Firmware: <a class="moz-txt-link-freetext" href="https://github.com/meegoo-tsui/stm32/tree/master/demo/iap_uart/src">https://github.com/meegoo-tsui/stm32/tree/master/demo/iap_uart/src</a><br />
Wikipedia: <a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/STM32">https://en.wikipedia.org/wiki/STM32</a></div><div style="text-align: left;"> </div><div style="text-align: left;">Tera Term: <a class="moz-txt-link-freetext" href="https://teratermproject.github.io/index-en.html">https://teratermproject.github.io/index-en.html</a></div><div style="text-align: left;"><br /></div><div style="text-align: left;">YMODEM: </div><div style="text-align: left;"> </div><div style="text-align: left;">Wikiepedia: <a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/YMODEM">https://en.wikipedia.org/wiki/YMODEM<br /></a>YMODEM standard: <a href="http://textfiles.com/programming/ymodem.txt">http://textfiles.com/programming/ymodem.txt</a> <br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-46449913068207571562023-04-03T21:12:00.112+02:002023-09-02T15:17:36.925+02:00Building an FTP server: from zero to hero in less than 3 minutes<p>Requirement: a simple FTP server, low on energy and with cheap hardware. This is my IPcam streams- and snapshot server.<br /></p><p>A secondhand Archer C7 is available for (less than) $10 or even for free. Check
your attic or eBay for compatible hardware. Make sure you have the
12VDC/2Amp power supply. You have to figure out how to put OpenWRT on the Archer C7 (or on other <a href="https://openwrt.org/supported_devices" target="_blank">compatible hardware</a>. Note: minimum 16MB flash memory is required). There are excellent webpages ready to teach you how flash a router with OpenWRT firmware.</p><br /><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHLdPCQ084_03W9OUapQH9klkbOb1_IDt1_NuRa2Pjg6cgEsIw6R3EvmgG-z_0l1GPqR7JTSGxlSjJQ7fdFqV2_h9kMX9EemuyFLYnGijUNEmicNfHibU5W25FVf-oSJvGPPNOiOmFmBapc_fC0pouF15n3_RAWJ2I96vQqqir81EoyBftxrYj7UaZ/s1091/signal-2023-04-07-105644_002.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="716" data-original-width="1091" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHLdPCQ084_03W9OUapQH9klkbOb1_IDt1_NuRa2Pjg6cgEsIw6R3EvmgG-z_0l1GPqR7JTSGxlSjJQ7fdFqV2_h9kMX9EemuyFLYnGijUNEmicNfHibU5W25FVf-oSJvGPPNOiOmFmBapc_fC0pouF15n3_RAWJ2I96vQqqir81EoyBftxrYj7UaZ/w320-h210/signal-2023-04-07-105644_002.jpg" title="TP-Link Archer C7 with USB disk" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">TP-Link Archer C7 + USB disk<br /></td></tr></tbody></table><p>FTP server build steps:</p><ol style="text-align: left;"><li>Install FTP server and disk management software;</li><li>Configure the USB disk;</li><li>Configure the FTP server.</li></ol><p>Prerequisites:</p><p></p><ol style="text-align: left;"><li>Put OpenWRT on the Archer C7;</li><li>Make sure:</li><ul><li>That the router has Internet access;<br />Tip: configure the Archer C7 WiFi adapters as a WiFi Client (<span style="font-family: courier;">Network > Wireless > Scan > Join Network > WPA passphrase > Submit > Save > Save & Apply</span>);</li><li>The USB disk is attached to the C7;</li><li> Computer to connect to the C7, to show the OpenWRT webpages and an SSH client (e.g. putty).</li></ul></ol><p>This is the webpage you need to see, to get started:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpYtvTy0_ybTJWqNoQFYsAN64-2RC8Bw_fuOFzHhqY9l3T9_EnUGA55gWLiJjnNOAx_U1UaDLU06i2cNrIo3jQY-KgT-CVba6TTchKB7lY-_fU6kxvxJsIYouRgAxgAxx4XB1PFrhPS22w1RyG-FeYDE-p-AHUouD7jIKGVyZReLlmvZpNlVJ5QEPz/s965/2023_04_06_11_54_18_OpenWrt_Overview_LuCI.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="882" data-original-width="965" height="293" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpYtvTy0_ybTJWqNoQFYsAN64-2RC8Bw_fuOFzHhqY9l3T9_EnUGA55gWLiJjnNOAx_U1UaDLU06i2cNrIo3jQY-KgT-CVba6TTchKB7lY-_fU6kxvxJsIYouRgAxgAxx4XB1PFrhPS22w1RyG-FeYDE-p-AHUouD7jIKGVyZReLlmvZpNlVJ5QEPz/w320-h293/2023_04_06_11_54_18_OpenWrt_Overview_LuCI.png" width="320" /></a></div>All done? Here we go:<br /><div><p>Logon to the Archer C7 (SSH client, e.g. putty) and install the software. Copy the script below and paste the next lines in your Putty session. You will see command responses.</p><p><i><b>WARNING: you WILL lose data on the USB disk, even if you do not want that. Don't blame me, you are on your own!</b></i> </p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #6a9955;">#--- FTPserver20230428</span></div><br /><div><span style="color: #d4d4d4;">sleep </span><span style="color: #b5cea8;">1</span></div><div><span style="color: #d4d4d4;">clear</span></div><br /><div><span style="color: #6a9955;">#--- Script start.</span></div><br /><div><span style="color: #6a9955;">#--- Check Internet connectivity...</span></div><div><span style="color: #d4d4d4;">ping </span><span style="color: #ce9178;">-c</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">4</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">9.9.9.9</span></div><br /><div><span style="color: #6a9955;">#--- Update list of available software...</span></div><div><span style="color: #d4d4d4;">opkg </span><span style="color: #ce9178;">update</span></div><br /><div><span style="color: #6a9955;">#--- Install all software and prepare disk partition...</span></div><div><span style="color: #6a9955;">#--- USB support...</span></div><div><span style="color: #d4d4d4;">opkg </span><span style="color: #ce9178;">install</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">kmod-usb-storage</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">kmod-usb-storage-uas</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">usbutils</span></div><div><span style="color: #6a9955;">#--- Storage support...</span></div><div><span style="color: #d4d4d4;">opkg </span><span style="color: #ce9178;">install</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">block-mount</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">e2fsprogs</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">f2fs-tools</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">kmod-fs-f2fs</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">kmod-fs-ext4</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">sgdisk</span></div><div><span style="color: #6a9955;">#--- FTP server...</span></div><div><span style="color: #d4d4d4;">opkg </span><span style="color: #ce9178;">install</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">vsftpd</span></div><div><span style="color: #6a9955;">#--- User account management...</span></div><div><span style="color: #d4d4d4;">opkg </span><span style="color: #ce9178;">install</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">shadow-useradd</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #6a9955;">#--- Prepare harddisk/SSD/USB disk...</span></div><div><span style="color: #d4d4d4;">lsusb </span><span style="color: #ce9178;">-t</span></div><div><span style="color: #d4d4d4;">block </span><span style="color: #ce9178;">info</span><span style="color: #d4d4d4;"> | grep </span><span style="color: #ce9178;">"/dev/sd"</span></div><div><span style="color: #d4d4d4;">sgdisk </span><span style="color: #ce9178;">-o</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/dev/sda</span></div><div><span style="color: #d4d4d4;">sgdisk </span><span style="color: #ce9178;">-N</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">1</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/dev/sda</span></div><div><span style="color: #d4d4d4;">sgdisk </span><span style="color: #ce9178;">-p</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/dev/sda</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;">sgdisk </span><span style="color: #ce9178;">-c</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">1:FTPstorage</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/dev/sda</span></div><div><span style="color: #d4d4d4;">sgdisk </span><span style="color: #ce9178;">-i</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">1</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/dev/sda</span></div><br /><div><span style="color: #6a9955;">#--- Create filesystem (choose one)...</span></div><div><span style="color: #6a9955;">#--- USB stick/SSD...</span></div><div><span style="color: #6a9955;"># echo y|mkfs.f2fs /dev/sda1</span></div><br /><div><span style="color: #6a9955;">#--- Harddisk...</span></div><div><span style="color: #d4d4d4;">echo </span><span style="color: #ce9178;">y</span><span style="color: #d4d4d4;">|mkfs.ext4 </span><span style="color: #ce9178;">/dev/sda1</span></div><br /><div><span style="color: #6a9955;">#--- Mount the disk automatically after reboot of the Archer C7...</span></div><div><span style="color: #d4d4d4;">block </span><span style="color: #ce9178;">detect</span><span style="color: #d4d4d4;"> | uci </span><span style="color: #ce9178;">import</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">fstab</span></div><div><span style="color: #d4d4d4;">uci </span><span style="color: #ce9178;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">fstab.@mount[-1].enabled="1"</span></div><div><span style="color: #d4d4d4;">uci </span><span style="color: #ce9178;">commit</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">fstab</span></div><div><span style="color: #d4d4d4;">uci </span><span style="color: #ce9178;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">fstab.@global[0].check_fs="1"</span></div><div><span style="color: #d4d4d4;">uci </span><span style="color: #ce9178;">commit</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">fstab</span></div><br /><div><span style="color: #6a9955;">#--- Mount the disk now...</span></div><div><span style="color: #d4d4d4;">block </span><span style="color: #ce9178;">mount</span></div><div><span style="color: #d4d4d4;">mount | grep </span><span style="color: #ce9178;">"/mnt/sda1"</span></div><br /><div><span style="color: #6a9955;">#--- Create the FTP account and set the password...</span></div><div><span style="color: #d4d4d4;">useradd </span><span style="color: #ce9178;">-r</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">-s</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/bin/</span><span style="color: #569cd6;">false</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">-d</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/mnt/sda1/ftp</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">ftpuser</span></div><div><span style="color: #d4d4d4;">passwd </span><span style="color: #ce9178;">ftpuser</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">-d</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;">mkdir </span><span style="color: #ce9178;">/mnt/sda1/ftp</span></div><div><span style="color: #d4d4d4;">chown </span><span style="color: #ce9178;">ftpuser</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/mnt/sda1/ftp</span></div><div><span style="color: #d4d4d4;">ls </span><span style="color: #ce9178;">-al</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">/mnt/sda1</span></div><br /><div><span style="color: #6a9955;">#--- Create FTP server configuration file...</span></div><div><span style="color: #d4d4d4;">echo </span><span style="color: #ce9178;">"</span></div><div><span style="color: #ce9178;">background=YES</span></div><div><span style="color: #ce9178;">listen=YES</span></div><div><span style="color: #ce9178;">anonymous_enable=NO</span></div><div><span style="color: #ce9178;">local_enable=YES</span></div><div><span style="color: #ce9178;">write_enable=YES</span></div><div><span style="color: #ce9178;">local_umask=022</span></div><div><span style="color: #ce9178;">check_shell=NO</span></div><div><span style="color: #ce9178;">local_root=/mnt/sda1/ftp</span></div><div><span style="color: #ce9178;">session_support=NO</span></div><div><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> > </span><span style="color: #ce9178;">/etc/vsftpd.conf</span></div><br /><div><span style="color: #6a9955;">#--- Restart the FTP server and check if the FTP server is running...</span></div><div><span style="color: #d4d4d4;">/etc/init.d/vsftpd </span><span style="color: #ce9178;">restart</span></div><div><span style="color: #d4d4d4;">ps | grep </span><span style="color: #ce9178;">ftp</span></div><br /><div><span style="color: #6a9955;">#--- Create scheduled task to remove FTP files older than 30 days...</span></div><div><span style="color: #d4d4d4;">echo </span><span style="color: #ce9178;">"#--- At midnight, delete files older than 30 days...</span></div><div><span style="color: #ce9178;">0 0 * * * find /mnt/sda1/ftp -type f -mtime +30 -exec rm -rf {} \;"</span><span style="color: #d4d4d4;">| crontab </span><span style="color: #ce9178;">-</span></div><br /><div><span style="color: #6a9955;">#--- Set hostname...</span></div><div><span style="color: #d4d4d4;">uci </span><span style="color: #ce9178;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">system.@system[0].hostname=FTPserver</span></div><div><span style="color: #d4d4d4;">uci </span><span style="color: #ce9178;">commit</span></div><div><span style="color: #d4d4d4;">echo </span><span style="color: #ce9178;">$(uci get system.@system[0].hostname)</span><span style="color: #d4d4d4;"> > </span><span style="color: #ce9178;">/proc/sys/kernel/hostname</span></div><br /><div><span style="color: #6a9955;">#--- Set FTP user password...</span></div><div><span style="color: #d4d4d4;">passwd </span><span style="color: #ce9178;">-a</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">sha512</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">ftpuser</span></div><div><span style="color: #ce9178;"> </span></div></div><div><p>That's all. It takes ~3 minutes to build this configuration.</p><p>Hardening:</p><ul style="text-align: left;"><li>You might need to configure the "LAN" interface to a fixed IP address on
your network, so that the FTP server can be accessed by other devices
on your network. Connect the Ethernet cable to port LAN1;<br /></li><li>There is NO security on this FTP server.
Anyone that knows the FTP
client username/password can access the FTP server files. Username and
password will go unencrypted over the network.We can prevent that the
FTP server has Internet access: set the Default Gateway to
127.0.0.1 or a not used IP address in your home network;</li><li>Set a password for the root user (<span style="font-family: courier;">System > Administration</span>);</li><li>Remove the WiFi client settings (<span style="font-family: courier;">Network > Wireless > Remove</span>).<br /></li></ul><p>Performance: </p><p>Upload speeds of ~10Mb/s (to a USB thumb drive) or ~19MB/s (2.5" hard disk) are possible. </p><p>Energy:</p><p>An Archer C7 with a USB hard disk consumes between 4.4W (in rest) and 6W (busy).<br /></p></div><div>Build console output:</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='334' height='266' src='https://www.blogger.com/video.g?token=AD6v5dxDl8qCui8Igqj3U5TghQwvplpo32qvDXDTOoxXJEgTR6Q1etzvOSKcEEXV-TW5WdJnsGW-nOUVazGvuZz7oA' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><p></p><p></p><p> To test the server, you can use Filezilla to connect to the FTP server and test upload/donwnload/delete:</p></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxhKCCXbmQp5u4-hBZ1DAQ4qbSC55YctfDCqiRe3bgiPV9W4_OLxgk0JpPT64vcZY0CxeQZcBOkXEGCdKyxz45QO1845eaHVKoYyFJDUEsy6Bx5UutuPwKXPUc8BSEhdL0w93Odn-TXE_JhyOd4jtNwvOfWjICdy2YcwgNiWxAQlZ1on7OlsiAM1pV/s957/Filezilla.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="511" data-original-width="957" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxhKCCXbmQp5u4-hBZ1DAQ4qbSC55YctfDCqiRe3bgiPV9W4_OLxgk0JpPT64vcZY0CxeQZcBOkXEGCdKyxz45QO1845eaHVKoYyFJDUEsy6Bx5UutuPwKXPUc8BSEhdL0w93Odn-TXE_JhyOd4jtNwvOfWjICdy2YcwgNiWxAQlZ1on7OlsiAM1pV/w640-h342/Filezilla.png" width="640" /></a></div><br /><p><br /></p><p> <br /></p><p><span style="background-color: #f3f3f3; color: white;">78:5A:F1:DC:BC:7D:14:0B:C3:F5:14:8C:FB:DF:7E:FD:7F:9C:7C:F9:BA:AA:84:0C:52:48:30:01:25:38:65:FC</span><br /></p></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-88776153655905854062023-03-19T14:21:00.007+01:002023-03-28T12:57:09.052+02:00Create (self signed) EC keys and certificates<p>There are scenarios where you want to use self signed certificates for a client-server application. A typical example is when you run OpenVPN from low performance hardware. In that case Elliptic Curve key material might improve the overall performance. </p><p>The next script produces certificates and private keys for one server and 1-n amount of clients. The script also calculates the SHA256 hash of the certificates. We need that for the project of my next post.<br /></p><p>Script usage:</p><p><span style="font-family: courier;">C:\Scripts\> createBridgeKeysAndCerts [client certificate count]</span></p><p>E.g.:</p><p><span style="font-family: courier;">C:\Scripts\> createBridgeKeysAndCerts 3</span></p><p>This will produce the next files: <br /></p><p><span style="font-family: courier;">03/19/2023 02:19 PM 684 bridgeClient1.crt<br />03/19/2023 02:19 PM 312 bridgeClient1.key<br />03/19/2023 02:19 PM 116 bridgeClient1.sha256<br />03/19/2023 02:19 PM 680 bridgeClient2.crt<br />03/19/2023 02:19 PM 312 bridgeClient2.key<br />03/19/2023 02:19 PM 116 bridgeClient2.sha256<br />03/19/2023 02:19 PM 684 bridgeClient3.crt<br />03/19/2023 02:19 PM 312 bridgeClient3.key<br />03/19/2023 02:19 PM 116 bridgeClient3.sha256<br />03/19/2023 02:19 PM 680 bridgeServer.crt<br />03/19/2023 02:19 PM 312 bridgeServer.key<br />03/19/2023 02:19 PM 116 bridgeServer.sha256</span><br /></p><p>This the script:<br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">@</span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">off</span></div><div><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">BEGIN</span></div><br /><div><span style="color: #d4d4d4;"> Script: createBridgeKeysAndCerts.bat</span></div><div><span style="color: #d4d4d4;"> Version: 1.0</span></div><div><span style="color: #d4d4d4;"> Date: 18-Mar-2023</span></div><div><span style="color: #d4d4d4;"> Prerequisite: OpenSSL (https://slproweb.com/download/Win64OpenSSL_Light-3_1_0.msi)</span></div><br /><div><span style="color: #d4d4d4;">:</span><span style="color: #569cd6;">BEGIN</span></div><div><span style="color: #569cd6;">cls</span></div><div><span style="color: #569cd6;">cd</span><span style="color: #d4d4d4;"> /D </span><span style="color: #ce9178;">"%~dp0"</span></div><br /><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** OpenVPN Bridge config builder...</span></div><br /><div><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> openssl=</span><span style="color: #ce9178;">"C:\Program Files\OpenSSL-Win64\bin\openssl.exe"</span></div><div><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> not </span><span style="color: #569cd6;">exist</span><span style="color: #d4d4d4;"> %openssl% </span><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span></div><br /><div><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> clientCertCount=</span><span style="color: #b5cea8;">1</span></div><div><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> %1.==. </span><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">START</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> %1| </span><span style="color: #569cd6;">findstr</span><span style="color: #d4d4d4;"> /r </span><span style="color: #ce9178;">"^[1-9][0-9]*$"</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> %errorlevel% equ </span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> clientCertCount=%1</span></div><div><span style="color: #d4d4d4;">:</span><span style="color: #569cd6;">START</span></div><br /><div><span style="color: #569cd6;">setlocal</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">EnableDelayedExpansion</span></div><div><span style="color: #569cd6;">pushd</span><span style="color: #d4d4d4;"> .</span></div><br /><div><span style="color: #569cd6;">md</span><span style="color: #d4d4d4;"> .\keys ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #569cd6;">cd</span><span style="color: #d4d4d4;"> .\keys</span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Generate bridgeServer and bridgeClient keys and certs...</span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;">.</span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** bridgeServer cert + key...</span></div><div><span style="color: #d4d4d4;">%openssl% ecparam -out secp384r1.pem -name secp384r1</span></div><div><span style="color: #d4d4d4;">%openssl% req -x509 -newkey ec:secp384r1.pem -keyout bridgeServer.key -out bridgeServer.crt -nodes -sha256 -days </span><span style="color: #b5cea8;">3650</span><span style="color: #d4d4d4;"> -subj </span><span style="color: #ce9178;">"/CN=bridgeServer"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;">%openssl% x509 -fingerprint -sha256 -in bridgeServer.crt -noout > bridgeServer.sha256</span></div><br /><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;">.</span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** bridgeClient certs + keys...</span></div><div><span style="color: #569cd6;">for</span><span style="color: #d4d4d4;"> /l %%i </span><span style="color: #569cd6;">in</span><span style="color: #d4d4d4;"> (1,1,%clientCertCount%) </span><span style="color: #569cd6;">do</span><span style="color: #d4d4d4;"> (</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** Processing client %%i...</span></div><div><span style="color: #d4d4d4;"> %openssl% req -x509 -newkey ec:secp384r1.pem -keyout bridgeClient%%i.key -out bridgeClient%%i.crt -nodes -sha256 -days </span><span style="color: #b5cea8;">3650</span><span style="color: #d4d4d4;"> -subj </span><span style="color: #ce9178;">"/CN=bridgeClient%%i"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> %openssl% x509 -fingerprint -sha256 -in bridgeClient%%i.crt -noout > bridgeClient%%i.sha256</span></div><br /><div><span style="color: #d4d4d4;">)</span></div><br /><br /><div><span style="color: #569cd6;">del</span><span style="color: #d4d4d4;"> /q secp384r1.pem ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;">.</span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** Keys and certs created:</span></div><div><span style="color: #569cd6;">dir</span><span style="color: #d4d4d4;"> /s | </span><span style="color: #569cd6;">find</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"bridge"</span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Calculate and display SHA256 hash of cert(s)...</span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;">.</span></div><div><span style="color: #569cd6;">for</span><span style="color: #d4d4d4;"> /f </span><span style="color: #ce9178;">"tokens=2* delims=="</span><span style="color: #d4d4d4;"> %%i </span><span style="color: #569cd6;">in</span><span style="color: #d4d4d4;"> ('%openssl% x509 -fingerprint -sha256 -in bridgeServer.crt -noout') </span><span style="color: #569cd6;">do</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> hash=%%i</span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** bridgeServer hash : %hash% </span></div><div><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;">.</span></div><div><span style="color: #569cd6;">for</span><span style="color: #d4d4d4;"> /l %%i </span><span style="color: #569cd6;">in</span><span style="color: #d4d4d4;"> (1,1,%clientCertCount%) </span><span style="color: #569cd6;">do</span><span style="color: #d4d4d4;"> (</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">for</span><span style="color: #d4d4d4;"> /f </span><span style="color: #ce9178;">"tokens=2* delims=="</span><span style="color: #d4d4d4;"> %%i </span><span style="color: #569cd6;">in</span><span style="color: #d4d4d4;"> ('%openssl% x509 -fingerprint -sha256 -in bridgeClient%%i.crt -noout') </span><span style="color: #569cd6;">do</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> hash=%%i</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** bridgeClient%%i hash: !hash!</span></div><br /><div><span style="color: #d4d4d4;">)</span></div><br /><div><span style="color: #569cd6;">setlocal</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">DisableDelayedExpansion</span></div><div><span style="color: #569cd6;">popd</span></div><br /><br /><br /></div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-64062706833390589172023-02-25T12:03:00.010+01:002023-03-13T12:52:40.208+01:00Click to run Powershell script<p>Sometimes it is more convenient to start the Powershell script by just clicking the filename in Windows Explorer. </p><p>Here are a couple of methods to start a Powershell script by clicking the filename or just typing the script name in a command shell.</p><h3 style="text-align: left;">Method 1: the Shortcut</h3><p>Create a new shortcut on the Windows desktop or in some folder with the next properties:</p><ul style="text-align: left;"><li>Create a shortcut on the desktop or in a folder with the next "Target" value:</li></ul><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile </span><span style="color: #ce9178;">"%1"</span></div></div><ul style="text-align: left;"><li>Associate PS1 files with this shortcut. <br /></li></ul><p>It will run the Powershell script but the console will be closed on completion. You may want to add a Start-Sleep or Read-Key command at the end of the script to observe the script output.</p><p><img alt="" src="data:image/png;base64,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" /> <br /></p><p> </p><h3 style="text-align: left;">Method 2: using a Batch file</h3><div style="text-align: left;"><ul style="text-align: left;"><li>Create a Batch file (c:\Scripts\psRun.bat) with the next content:</li></ul></div><div style="text-align: left;"><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">@</span><span style="color: #569cd6;">cmd</span><span style="color: #d4d4d4;"> /k </span><span style="color: #569cd6;">powershell</span><span style="color: #d4d4d4;"> -noprofile </span><span style="color: #ce9178;">"%1"</span></div></div></div><p></p><ul style="text-align: left;"><li> Associate PS1 files with this Batch file.<br /></li></ul><p></p><p>Now the script runs and leaves the Console open, so the script output can be inspected.</p><p><img alt="" src="data:image/png;base64,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" /></p><p><br /></p><h3 style="text-align: left;">Method 3: embed Powershell code in Batch file</h3><div style="text-align: left;">A Batch file will run when clicked. So when we embed the Powershell code in a Batch file we can run the Powershell script from the Batch file. In this case we do not have to change the file association of PS1 files.<br /></div><div style="text-align: left;"> </div><div style="text-align: left;">Running this Batch file:<br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">@</span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">off</span></div><div><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> outFile=%temp%\temp.ps1</span></div><div><span style="color: #569cd6;">del</span><span style="color: #d4d4d4;"> /q %outFile% ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #569cd6;">certutil</span><span style="color: #d4d4d4;"> -decode %0 %outFile% ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #569cd6;">cmd</span><span style="color: #d4d4d4;"> /k </span><span style="color: #569cd6;">powershell</span><span style="color: #d4d4d4;"> -noprofile -file %outFile% </span></div><div><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;">-----BEGIN CERTIFICATE-----</span></div><div><span style="color: #d4d4d4;">d3JpdGUtaG9zdCAiKioqIEhlbGxvIHdvcmxkIg0KU2xlZXAgMw==</span></div><div><span style="color: #d4d4d4;">-----END CERTIFICATE-----</span></div></div></div><p>Will give this output:<br /></p><p><img alt="" src="data:image/png;base64,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" /></p><p>So how does it work? The Powerschell script is converted to Base64. The Windows utility CERTUTIL is used to encode the Powershell scrip to Base64 and all the script will be between the BEGIN/END certificate markers. This is used by CERTUTIL to recognize the code that needs to be translated back to Powershell code.<br /></p><p>So the manual steps to create a script like this is:</p><p>1. Use the Batch file decoder code<br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">@</span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">off</span></div><div><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> outFile=%temp%\temp.ps1</span></div><div><span style="color: #569cd6;">del</span><span style="color: #d4d4d4;"> /q %outFile% ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #569cd6;">certutil</span><span style="color: #d4d4d4;"> -decode %0 %outFile% ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #569cd6;">cmd</span><span style="color: #d4d4d4;"> /k </span><span style="color: #569cd6;">powershell</span><span style="color: #d4d4d4;"> -noprofile -file %outFile% </span></div><div><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span><span style="color: #d4d4d4;"> </span></div></div><p></p><p>2. Convert the Powershell script to Base64</p><p><span style="font-family: courier;">C:\> <b>certutil -encode HelloWorld.ps1 HelloWorld.ps1.b64</b></span></p><p> 3. Append the <span style="font-family: courier;"><b>HelloWorld.ps1.b64</b></span> output to the decoder code and save it as <span style="font-family: courier;">helloWorld.bat</span><br /></p><p> </p><p>To automate the whole process you may use the next script. Save as: <span style="font-family: courier;">makeBatchFromPowershell.bat</span>: <br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">@</span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">off</span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Usage: %0 {filenam}.PS1</span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Variables...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> %1.==. </span><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> not </span><span style="color: #569cd6;">exist</span><span style="color: #d4d4d4;"> %1 </span><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> batchFileName=%1-.bat</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> psCodeBase64=%temp%\%random%-%random%.tmp</span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Encode the Powershell file in CERTUTIL's Base64 code...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">certutil</span><span style="color: #d4d4d4;"> -encode %1 %psCodeBase64% ></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> %errorlevel% NEQ </span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;"> (</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** Certutil error...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span></div><div><span style="color: #d4d4d4;"> ) </span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Part 1: Create batch file - decoder section...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> @echo off>%batchFileName%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> set outFile=%%temp%%\temp.ps1>>%batchFileName%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> del /q %%outFile%% ^></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> 2^></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> >>%batchFileName%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> certutil -decode %%0 %%outFile%% ^></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> >>%batchFileName%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> cmd /k powershell -noprofile -file %%outFile%% >>%batchFileName%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> goto :EOF >>%batchFileName%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;">. >>%batchFileName%</span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Part 2: Append Base64 code to batch file...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">type</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"%psCodeBase64%"</span><span style="color: #d4d4d4;"> >>%batchFileName%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">del</span><span style="color: #d4d4d4;"> /q %psCodeBase64% ></span><span style="color: #569cd6;">nul</span></div><br /><div><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Show resulting filename...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** %1 embedded into %batchFileName%</span></div></div><p></p><p> </p><p>Tying it all together:<br /></p><p><img alt="" src="data:image/png;base64,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" /> <br /></p><p>You may rename the <span style="font-family: courier;">helloWorld.ps1-.bat</span> to whatever BAT filename you want.<br /></p><p><br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-29861654156235049572023-02-21T14:49:00.006+01:002023-02-23T19:45:43.170+01:00Backup script for Xenserver/XCP-ng Virtual Machine OVA files<p>The next batch file creates a backup ("vm-export") of Xenserver and XCP-ng Virtual Machines.</p><p>Features:</p><ul style="text-align: left;"><li>On demand backups or scheduled backups</li><li>Creates logfile on local computer</li><li>Does not have credentials in the script</li><li>Will show all VMs when the script is invoked without parameters</li><li>Shows time/duration of the backup</li><li>Makes a local copy first (speed!)</li><li>Can copy to NAS other network location<br /></li></ul><p>Maybe first install the <a class="Truncate" data-turbo="false" data-view-component="true" href="https://github.com/xcp-ng/xenadmin/releases/download/v20.04.01.33/XCP-ng-Center-20.04.01.33.msi" rel="nofollow"><span class="Truncate-text text-bold" data-view-component="true">XCP-ng-Center-20.04.01.33.msi</span>
<span class="Truncate-text" data-view-component="true"></span>
</a> software.<br /></p><p>Running the script without a parameter:<br /></p><p><span style="font-family: courier;">C:\scripts><b>backupXenVM.bat</b><br />*** Tue 02/21/2023 14:38:00.02 --- Start OVA backup -------------------------------------------------------------------<br />*** Tue 02/21/2023 14:38:00.02 VMs:<br />*** Tue 02/21/2023 14:38:00.04<br /> name-label ( RW): Control domain on host: xcp-ng-abcdefg<br /> name-label ( RW): x16. Airsonic<br /> name-label ( RW): x14. mailAdmin<br /> name-label ( RW): x10. ARCHDC001<br /> name-label ( RW): x15. Roundcube<br />*** Tue 02/21/2023 14:38:00.29<br />*** Tue 02/21/2023 14:38:00.29 Usage: backupXenVM.bat "{name-label}"<br />*** Tue 02/21/2023 14:38:00.29</span></p><p> </p><p>A typical run of the script looks like:</p><p><span style="font-family: courier;">C:\scripts><b>backupXenVM.bat "x15. Roundcube"</b><br />*** Tue 02/21/2023 14:40:11.15 --- Start OVA backup -------------------------------------------------------------------<br />The command completed successfully.<br /><br />New connections will be remembered.<br /><br /><br />Status Local Remote Network<br /><br />-------------------------------------------------------------------------------<br />OK E: \\192.168.1.3\Backups\xe<br /> Microsoft Windows Network<br />The command completed successfully.<br /><br />*** Tue 02/21/2023 14:40:11.46 Tue 02/21/2023 14:40:11.44 - Backup VM: "x15. Roundcube"<br />*** Tue 02/21/2023 14:40:11.48<br />uuid ( RO) : d2dccf2b-d9d9-e801-1e3f-59f426bc0bb1<br /> name-label ( RW): x15. Roundcube<br /> power-state ( RO): running<br /><br /><br />*** Tue 02/21/2023 14:40:11.66 Shutdown VM with name-label: "x15. Roundcube"...<br />*** Tue 02/21/2023 14:40:18.56 Backup of VM with name-label: "x15. Roundcube"...<br />*** Tue 02/21/2023 14:41:39.84 Restarting VM with name-label: "x15. Roundcube"...<br />*** Tue 02/21/2023 14:41:39.89 Copying file to NAS...<br />*** Tue 02/21/2023 14:42:50.75 Backup procedure of VM "x15. Roundcube" ready.<br />02/21/2023 02:41 PM 4,969,158,144 x15. Roundcube.ova<br />*** Tue 02/21/2023 14:42:51.35 Start : Tue 02/21/2023 14:40:11.15<br />*** Tue 02/21/2023 14:42:51.35 VM up : Tue 02/21/2023 14:41:39.89<br />*** Tue 02/21/2023 14:42:51.37 End : Tue 02/21/2023 14:42:51.35<br />*** Tue 02/21/2023 14:42:51.37 Ready.</span><br /></p><p><br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">@</span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">off</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">cls</span></div><br /><div><span style="color: #6a9955;">::--- User Specific vars and constants...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">Xenserver</span><span style="color: #d4d4d4;">=192.168.1.5</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">UNC</span><span style="color: #d4d4d4;">=\\192.168.1.2\Backups\xe</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">DRV</span><span style="color: #d4d4d4;">=E:</span></div><br /><div><span style="color: #6a9955;">::--- Vars and constants...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">xe</span><span style="color: #d4d4d4;">=</span><span style="color: #ce9178;">"C:\Program Files (x86)\XCP-ng Center\xe.exe"</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">t</span><span style="color: #d4d4d4;">=</span><span style="color: #9cdcfe;">%date%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%time%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">userName</span><span style="color: #d4d4d4;">=root</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">REM</span><span style="color: #6a9955;"> --- Store the Xen server 'root' password in seperate file. Still in plain text, but not part of the script..</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">for</span><span style="color: #d4d4d4;"> /f </span><span style="color: #9cdcfe;">%%i</span><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">in</span><span style="color: #d4d4d4;"> (c:\scripts\pw.txt) </span><span style="color: #c586c0;">do</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">pw</span><span style="color: #d4d4d4;">=</span><span style="color: #9cdcfe;">%%i</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">localBackupFolder</span><span style="color: #d4d4d4;">=d:\temp\xe</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">md</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%localBackupFolder%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Remove quotes from VM label-name...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">nameLabel</span><span style="color: #d4d4d4;">=</span><span style="color: #9cdcfe;">%~1</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Set backup paths...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">localBackupFile</span><span style="color: #d4d4d4;">=</span><span style="color: #9cdcfe;">%localBackupFolder%</span><span style="color: #d4d4d4;">\</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #d4d4d4;">.ova</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">remotefileName</span><span style="color: #d4d4d4;">=</span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #ce9178;">\</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">.ova"</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> --- </span><span style="color: #569cd6;">Start</span><span style="color: #d4d4d4;"> OVA backup -------------------------------------------------------------------</span></div><br /><div><span style="color: #6a9955;">::--- No VM label-name provided...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">if</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%1</span><span style="color: #d4d4d4;">.==. (</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> VMs:</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%xe%</span><span style="color: #d4d4d4;"> -s </span><span style="color: #9cdcfe;">%Xenserver%</span><span style="color: #d4d4d4;"> -u </span><span style="color: #9cdcfe;">%userName%</span><span style="color: #d4d4d4;"> -pw </span><span style="color: #9cdcfe;">%pw%</span><span style="color: #d4d4d4;"> vm-list | </span><span style="color: #569cd6;">find</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"name-label"</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Usage: </span><span style="color: #9cdcfe;">%0</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"{name-label}"</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span></div><br /><div><span style="color: #d4d4d4;"> )</span></div><br /><br /><div><span style="color: #6a9955;">::--- Check VM label-name---</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%xe%</span><span style="color: #d4d4d4;"> -s </span><span style="color: #9cdcfe;">%Xenserver%</span><span style="color: #d4d4d4;"> -u </span><span style="color: #9cdcfe;">%userName%</span><span style="color: #d4d4d4;"> -pw </span><span style="color: #9cdcfe;">%pw%</span><span style="color: #d4d4d4;"> vm-list | </span><span style="color: #569cd6;">find</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">if</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%errorlevel%</span><span style="color: #d4d4d4;"> NEQ </span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;"> (</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> VM not found...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EndAll</span></div><br /><div><span style="color: #d4d4d4;"> ) </span></div><br /><br /><div><span style="color: #d4d4d4;">:</span><span style="color: #569cd6;">doBackup</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">setlocal</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">ENABLEDELAYEDEXPANSION</span><span style="color: #d4d4d4;"> </span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">net use</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #d4d4d4;"> /d /y ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">md</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #ce9178;">\previous"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">net use</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%unc%</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">net use</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%DRV%</span></div><br /><br /><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%date%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%time%</span><span style="color: #d4d4d4;"> - Backup VM: </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> </span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Show VM data...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%xe%</span><span style="color: #d4d4d4;"> -s </span><span style="color: #9cdcfe;">%Xenserver%</span><span style="color: #d4d4d4;"> -u </span><span style="color: #9cdcfe;">%userName%</span><span style="color: #d4d4d4;"> -pw </span><span style="color: #9cdcfe;">%pw%</span><span style="color: #d4d4d4;"> vm-list name-label=</span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> </span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Delete 'previous' backup file and move current backup to 'previous' folder ...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">del</span><span style="color: #d4d4d4;"> /q </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #ce9178;">\previous\</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">.ova"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">move</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%remoteFileName%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #ce9178;">\previous\"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Shutdown VM...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">Shutdown</span><span style="color: #d4d4d4;"> VM with name-label : </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;">...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%xe%</span><span style="color: #d4d4d4;"> -s </span><span style="color: #9cdcfe;">%Xenserver%</span><span style="color: #d4d4d4;"> -u </span><span style="color: #9cdcfe;">%userName%</span><span style="color: #d4d4d4;"> -pw </span><span style="color: #9cdcfe;">%pw%</span><span style="color: #d4d4d4;"> vm-shutdown name-label=</span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">ping</span><span style="color: #d4d4d4;"> -n </span><span style="color: #b5cea8;">3</span><span style="color: #d4d4d4;"> localhost ></span><span style="color: #569cd6;">nul</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Backup VM to local storage...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Backup of VM with name-label : </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> to </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%localBackupFile%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;">...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%xe%</span><span style="color: #d4d4d4;"> -s </span><span style="color: #9cdcfe;">%Xenserver%</span><span style="color: #d4d4d4;"> -u </span><span style="color: #9cdcfe;">%userName%</span><span style="color: #d4d4d4;"> -pw </span><span style="color: #9cdcfe;">%pw%</span><span style="color: #d4d4d4;"> vm-export name-label=</span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> filename=</span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%localBackupFile%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Restart VM...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Restarting VM with name-label: </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;">...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%xe%</span><span style="color: #d4d4d4;"> -s </span><span style="color: #9cdcfe;">%Xenserver%</span><span style="color: #d4d4d4;"> -u </span><span style="color: #9cdcfe;">%userName%</span><span style="color: #d4d4d4;"> -pw </span><span style="color: #9cdcfe;">%pw%</span><span style="color: #d4d4d4;"> vm-start name-label=</span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">set</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">VMstart</span><span style="color: #d4d4d4;">=</span><span style="color: #9cdcfe;">%date%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%time%</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">::--- Copy backup to NAS...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Copying file to NAS...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">dir</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%localBackupfile%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> | </span><span style="color: #569cd6;">find</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">xcopy</span><span style="color: #d4d4d4;"> /y </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%localBackupFile%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #d4d4d4;">\ ></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">del</span><span style="color: #d4d4d4;"> /q </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%localBackupFile%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Backup procedure of VM </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> ready.</span></div><br /><br /><div><span style="color: #d4d4d4;">:</span><span style="color: #569cd6;">EndAll</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">net use</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%DRV%</span><span style="color: #d4d4d4;"> /d /y ></span><span style="color: #569cd6;">nul</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">></span><span style="color: #569cd6;">nul</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Scripts </span><span style="color: #569cd6;">start</span><span style="color: #d4d4d4;"> : </span><span style="color: #9cdcfe;">%t%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> VM </span><span style="color: #569cd6;">start</span><span style="color: #d4d4d4;"> : </span><span style="color: #9cdcfe;">%vmstart%</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Script end : </span><span style="color: #9cdcfe;">%date%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%time%</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">call</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">print</span><span style="color: #d4d4d4;"> Ready.</span></div><br /><div><span style="color: #c586c0;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span></div><br /><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;">:</span><span style="color: #569cd6;">print</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** </span><span style="color: #9cdcfe;">%date%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%time%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%*</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">echo</span><span style="color: #d4d4d4;"> *** </span><span style="color: #9cdcfe;">%date%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%time%</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">%*</span><span style="color: #d4d4d4;"> >> </span><span style="color: #ce9178;">"c:\logs\</span><span style="color: #9cdcfe;">%nameLabel%</span><span style="color: #ce9178;">.log"</span></div><br /><div><span style="color: #c586c0;">goto</span><span style="color: #d4d4d4;"> :</span><span style="color: #569cd6;">EOF</span></div></div><p></p><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-11599532658778214192023-02-12T13:30:00.018+01:002023-02-14T21:32:56.226+01:00Make screenshot and send to email<p>The next Powershell script makes a screenshot and sends it to your email address by pressing the Control + Alt + P keys simultaniously.</p><p>Some highlights:</p><ul style="text-align: left;"><li>Secure: SMTP account password is bound to USERPROFILE and is never stored in plaintext.</li><li>Supported email servers: Google, Microsoft (SMTP and Exchange) and other SMTP servers. </li><li>Enterprise desktops: The installer will store the script and the encoded password in %LOCALAPPDATA%, so
it will work in most enterprise Windows desktops.</li><li>Install: The script has an installation procedure and password set procedure build-in. <br /></li></ul><p>Installation:</p><ul style="text-align: left;"><li>Store the Powershell code in some location (e.g.: C:\Temp\psEmailScreenshot.ps1)<br /></li><li>To install the "psEmailScreenshot" script, run the next command:</li></ul><p><span style="font-family: courier;">C:\Temp\> <b>powershell -file psEmailScreenshot.ps1 install</b></span></p><ul style="text-align: left;"><li>An icon is created on the Desktop:</li></ul><p> <img alt="" src="data:image/png;base64,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" /></p><ul style="text-align: left;"><li>To set (or change) the SMTP sender's password, issue this command:</li></ul><p><span style="font-family: courier;"> C:\Temp\> <b>powershell -file psEmailScreenshot.ps1 password</b></span></p><p>How it works: Press:
Ctrl+Alt+P keys simultaneously and click "Yes" in the Yes/No dialog. The dialog is shown for 10s. When the "No" button is pressed or when no button pressed, the screenshot will be discarded.</p><p><img alt="" src="data:image/png;base64,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" /> <br /></p><p><br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #d4d4d4;">$scriptFilename = $MyInvocation.MyCommand.Path</span></div><div><span style="color: #d4d4d4;">$scriptName = $MyInvocation.MyCommand</span></div><div><span style="color: #d4d4d4;">$scriptFolder = </span><span style="color: #ce9178;">"$home\appdata\Local\mailScreenshot"</span></div><div><span style="color: #d4d4d4;">$smtpPasswordFile = </span><span style="color: #ce9178;">"$scriptFolder\EmailPassword.txt"</span></div><br /><div><span style="color: #d4d4d4;">$MailTo = </span><span style="color: #ce9178;">"yourEmailAddress@yourEmailDomain.com"</span></div><br /><div><span style="color: #d4d4d4;">$yesNoDialog = </span><span style="color: #569cd6;">$true</span></div><br /><br /><div><span style="color: #6a9955;">#--- MAIN ------------------------------------------------------------------------------------------</span></div><br /><div><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> (!(test-path $scriptFolder)) {New-Item $scriptFolder -ItemType Directory | out-null}</span></div></div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"></div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><br /><br /><span style="color: #6a9955;">#--- Install the script and create a shortcut on the desktop...</span><div><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> (</span><span style="color: #569cd6;">$</span><span style="color: #d4d4d4;">($args[</span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">]).toLower() -EQ </span><span style="color: #ce9178;">"install"</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #d4d4d4;">{</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- Copy the PS file to $home and create a shorcut with HotKey...</span></div><div><span style="color: #d4d4d4;"> copy-item $scriptFilename </span><span style="color: #ce9178;">"$scriptFolder\$scriptName"</span><span style="color: #d4d4d4;"> -force | out-null</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- Create shortcut on desktop...</span></div><div><span style="color: #d4d4d4;"> $iconFile = </span><span style="color: #ce9178;">"$home\Desktop\Email Screenshot.lnk"</span></div><div><span style="color: #d4d4d4;"> $hotkey = </span><span style="color: #ce9178;">"CTRL+ALT+P"</span></div><div><span style="color: #d4d4d4;"> $wsh = New-Object -comObject WScript.Shell</span></div><div><span style="color: #d4d4d4;"> $Shortcut = $wsh.CreateShortcut($iconFile)</span></div><div><span style="color: #d4d4d4;"> $Shortcut.TargetPath = </span><span style="color: #ce9178;">"powershell"</span></div><div><span style="color: #d4d4d4;"> $shortcut.Arguments = </span><span style="color: #ce9178;">" -file $scriptFolder\$scriptName emailscreenshot"</span></div><div><span style="color: #d4d4d4;"> $shortcut.IconLocation = </span><span style="color: #ce9178;">"SHELL32.dll,24"</span></div><div><span style="color: #d4d4d4;"> $shortcut.HotKey = $hotkey</span></div><div><span style="color: #d4d4d4;"> $shortcut.WindowStyle = </span><span style="color: #b5cea8;">7</span><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- 7 => hidden</span></div><div><span style="color: #d4d4d4;"> $Shortcut.Save()</span></div><br /><div><span style="color: #d4d4d4;"> write-host </span><span style="color: #ce9178;">"`n*** $scriptName is installed. Keyboard shortcut: $hotkey"</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">Exit</span></div><br /><div><span style="color: #d4d4d4;">}</span></div><br /><br /><div><span style="color: #6a9955;">#--- Store the SMTP sender's password as SecureString. Note: this password is bound to the Windows Account of the logged on user...</span></div><div><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> (</span><span style="color: #569cd6;">$</span><span style="color: #d4d4d4;">($args[</span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">]).toLower() -EQ </span><span style="color: #ce9178;">"password"</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #d4d4d4;">{</span></div><br /><div><span style="color: #d4d4d4;"> $password = Read-Host -assecurestring </span><span style="color: #ce9178;">"Enter sender's email password now"</span></div><div><span style="color: #d4d4d4;"> $password = [</span><span style="color: #569cd6;">System.Runtime.InteropServices.Marshal</span><span style="color: #d4d4d4;">]::PtrToStringAuto([</span><span style="color: #569cd6;">System.Runtime.InteropServices.Marshal</span><span style="color: #d4d4d4;">]::SecureStringToBSTR($password))</span></div><div><span style="color: #d4d4d4;"> $password | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File $smtpPasswordFile</span></div><div><span style="color: #d4d4d4;"> $password = </span><span style="color: #569cd6;">$null</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">Exit</span></div><br /><div><span style="color: #d4d4d4;">} </span></div><br /><br /><div><span style="color: #6a9955;">#--- Take a screenshot...</span></div><div><span style="color: #d4d4d4;">$screenPropertiesshotFilename = </span><span style="color: #ce9178;">"</span><span style="color: #569cd6;">$(</span><span style="color: #d4d4d4;">$env:temp</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;">\"</span><span style="color: #d4d4d4;"> + $env:computername + </span><span style="color: #ce9178;">"_"</span><span style="color: #d4d4d4;"> + $env:username + </span><span style="color: #ce9178;">"_"</span><span style="color: #d4d4d4;"> + </span><span style="color: #ce9178;">"</span><span style="color: #569cd6;">$(</span><span style="color: #d4d4d4;">(get-date).tostring(</span><span style="color: #ce9178;">"yyyy.MM.dd-HH.mm.ss"</span><span style="color: #d4d4d4;">)</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;">.png"</span></div><br /><div><span style="color: #d4d4d4;">Add-Type -AssemblyName System.Windows.Forms</span></div><div><span style="color: #d4d4d4;">$screenProperties = [</span><span style="color: #569cd6;">System.Windows.Forms.Screen</span><span style="color: #d4d4d4;">]::PrimaryScreen.Bounds</span></div><div><span style="color: #d4d4d4;">$imageObject = New-Object System.Drawing.Bitmap($screenProperties.Width, $screenProperties.Height)</span></div><div><span style="color: #d4d4d4;">$graphic = [</span><span style="color: #569cd6;">System.Drawing.Graphics</span><span style="color: #d4d4d4;">]::FromImage($imageObject)</span></div><div><span style="color: #d4d4d4;">$point = New-Object System.Drawing.Point(</span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">, </span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #d4d4d4;">$graphic.CopyFromScreen($point, $point, $imageObject.Size);</span></div><div><span style="color: #d4d4d4;">$cursorBounds = New-Object System.Drawing.Rectangle([</span><span style="color: #569cd6;">System.Windows.Forms.Cursor</span><span style="color: #d4d4d4;">]::Position, [</span><span style="color: #569cd6;">System.Windows.Forms.Cursor</span><span style="color: #d4d4d4;">]::Current.Size)</span></div><div><span style="color: #d4d4d4;">[</span><span style="color: #569cd6;">System.Windows.Forms.Cursors</span><span style="color: #d4d4d4;">]::</span><span style="color: #569cd6;">Default</span><span style="color: #d4d4d4;">.Draw($graphic, $cursorBounds)</span></div><br /><br /><div><span style="color: #6a9955;">#--- Yes/No dialog...</span></div><div><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> ($yesNoDialog) {</span></div><div><span style="color: #d4d4d4;"> $wshell = New-Object -ComObject Wscript.Shell</span></div><div><span style="color: #d4d4d4;"> $answer = $wshell.Popup(</span><span style="color: #ce9178;">"Email screenshot?"</span><span style="color: #d4d4d4;">,</span><span style="color: #b5cea8;">10</span><span style="color: #d4d4d4;">,</span><span style="color: #ce9178;">"Send screenshot to: $EmailTo..."</span><span style="color: #d4d4d4;">,</span><span style="color: #b5cea8;">4</span><span style="color: #d4d4d4;">+</span><span style="color: #b5cea8;">32</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> ($answer -NE </span><span style="color: #b5cea8;">6</span><span style="color: #d4d4d4;">) {</span><span style="color: #569cd6;">Exit</span><span style="color: #d4d4d4;">}</span></div><div><span style="color: #d4d4d4;">}</span></div><br /><div><span style="color: #6a9955;">#--- Email the screenshot file...</span></div><div><span style="color: #d4d4d4;">$imageObject.Save($screenPropertiesshotFilename, [</span><span style="color: #569cd6;">System.Drawing.Imaging.ImageFormat</span><span style="color: #d4d4d4;">]::Png)</span></div><div><span style="color: #d4d4d4;">$MailSubject = </span><span style="color: #ce9178;">"Screenshot from computer: </span><span style="color: #569cd6;">$(</span><span style="color: #d4d4d4;">$env:computername</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;">, user: </span><span style="color: #569cd6;">$(</span><span style="color: #d4d4d4;">$env:username</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;">$Attachment = $screenPropertiesshotFilename</span></div><br /><br /><div><span style="color: #6a9955;">#--- Hotmail...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $SmtpServer = "smtp-mail.outlook.com"</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $MailFrom = "yourEmailAddress@hotmail.com"</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $smtpUser = $MailFrom</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $Credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $smtpUser, (Get-Content $smtpPasswordFile | ConvertTo-SecureString)</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># Send-MailMessage -To "$MailTo" -from "$MailFrom" -Subject $MailSubject -SmtpServer $SmtpServer -UseSsl -Credential $Credentials -Attachments $Attachment</span></div><br /><br /><div><span style="color: #6a9955;">#--- Gmail...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $SmtpServer = "smtp.gmail.com"</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $MailFrom = "yourEmailAddress@gmail.com"</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># # The password is an app-specific password, you MUST have 2-factor-auth enabled</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $Password = "dcobnrrnmvrfyuex" | ConvertTo-SecureString -AsPlainText -Force</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $MailFrom, $Password</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># Send-MailMessage -From $MailFrom -To $mailTo -Subject $MailSubject -SmtpServer $smtpServer -port 587 -UseSsl -Credential $Credential -Attachments $Attachment</span></div><br /><br /><div><span style="color: #6a9955;">#--- Exchange/Outlook...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $outlook = new-object -comobject outlook.application</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $email = $outlook.CreateItem(0)</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $email.To = "yourEmail@someDomain.com"</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $email.Subject = $MailSubject</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $email.Body = " "</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $email.Attachments.add($Attachment)</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $email.Send()</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;"># $outlook.Quit()</span></div><br /><br /><div><span style="color: #6a9955;">#--- hMailserver...</span></div><div><span style="color: #d4d4d4;"> $SMTPServer = </span><span style="color: #ce9178;">"mail.yourEmailDomain.com"</span></div><div><span style="color: #d4d4d4;"> $smtpUser = </span><span style="color: #ce9178;">"smtp@yourEmailDomain.com"</span></div><div><span style="color: #d4d4d4;"> $mailFrom = $smtpUser</span></div><div><span style="color: #d4d4d4;"> [</span><span style="color: #569cd6;">INT</span><span style="color: #d4d4d4;">]$SMTPport = </span><span style="color: #b5cea8;">587</span><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- STARTTLS...</span></div><div><span style="color: #d4d4d4;"> $Credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $smtpUser, (Get-Content $smtpPasswordFile | ConvertTo-SecureString)</span></div><div><span style="color: #d4d4d4;"> Send-MailMessage -To $MailTo -from $MailFrom -Subject $MailSubject -SmtpServer $SmtpServer -UseSsl -port $SMTPport -Credential $Credentials -Attachment $Attachment</span></div><br /><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #6a9955;">#--- Cleanup...</span></div><div><span style="color: #d4d4d4;">remove-item $screenPropertiesshotFilename -force</span></div><br /><div><span style="color: #d4d4d4;">start-sleep </span><span style="color: #b5cea8;">10</span></div><br /><br /></div></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-13240404646506526532022-12-26T14:46:00.015+01:002023-01-16T09:36:23.275+01:00Fritz!Box - telephony logging<p>This post describes a simple (!) data logging system for those with a Fritz!Box that is also used for wired/DECT telephony. <br /></p><p>Many Fritz!Box models have a build-in method to share the telephony data. The data can be obtained through a TCP port on the Fritz!Box. The data sharing port is (fixed to) port 1012. To enable/disable the sharing, dial the next with a phone that is connected to the Fritz!Box:</p><p>
</p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;">Enable data sharing: #96*5*</p>
<p style="font-family: Consolas; font-size: 11pt; margin: 0in;">Disable data sharing: #96*4*</p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"><br /></p><p style="font-size: 11pt; margin: 0in;"><span style="font-family: inherit;">To check if the data sharing is working, use Telnet:</span></p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"><br /></p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;">C:\> <b>telnet {IP address of Fritz!Box} 1012</b><br /></p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"> </p><p style="font-size: 11pt; margin: 0in;"><span style="font-family: inherit;">You will see a black screen. Make a phone call to the Fritz!Box and you will see something like this:</span></p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"> </p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"><b>26.12.22 14:37:00;RING;0;0610901234;+31123456091;SIP0;<br />26.12.22 14:37:01;DISCONNECT;0;0;<br />26.12.22 14:37:18;CALL;0;0;+31123456091;0610901234;SIP0;<br />26.12.22 14:37:25;CONNECT;0;0;0610901234;<br />26.12.22 14:37:34;DISCONNECT;0;8; </b><br /></p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"> </p><p style="font-size: 11pt; margin: 0in;"><span style="font-family: inherit;">RING = incoming call</span></p><p style="font-size: 11pt; margin: 0in;"><span style="font-family: inherit;">CALL = outgoing call </span></p><p style="font-size: 11pt; margin: 0in;"><span style="font-family: inherit;">CONNECT = pick up of </span><span style="font-family: inherit;">a phone connected to the Fritz!Box</span></p><p style="font-size: 11pt; margin: 0in;"><span style="font-family: inherit;">DISCONNECT = hang up of a phone connected to the Fritz!Box<br /></span></p><p style="font-size: 11pt; margin: 0in;"><span style="font-family: inherit;"> </span></p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"><span style="font-family: inherit;">Now, to log data to a log file use this Powershell script:</span><span style="white-space: normal;"> </span></p><p style="font-family: Consolas; font-size: 11pt; margin: 0in;"><span style="white-space: normal;"><br /></span></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #6a9955;"><#</span></div><div><span style="color: #6a9955;"> </span></div><div><span style="color: #6a9955;"> Date: 26-Dec-2022</span></div><div><span style="color: #6a9955;"> Purpose: Read Fritz!Box' phone data</span></div><div><span style="color: #6a9955;"> </span></div><div><span style="color: #6a9955;"> TCP port: 1012</span></div><div><span style="color: #6a9955;"> Enable port : Dial #96*5*</span></div><div><span style="color: #6a9955;"> Disable port: Dial #96*4*</span></div><br /><div><span style="color: #6a9955;">#></span></div><br /><div><span style="color: #9cdcfe;">$fritzBox</span><span style="color: #d4d4d4;"> = </span><span style="color: #ce9178;">"{Fritz!Box IP address}"</span></div><div><span style="color: #9cdcfe;">$fritzPort</span><span style="color: #d4d4d4;"> = </span><span style="color: #b5cea8;">1012</span></div><div><span style="color: #9cdcfe;">$logFile</span><span style="color: #d4d4d4;"> = </span><span style="color: #ce9178;">"{path to}\Fritz!BoxPhoneData.log"</span></div><br /><div><span style="color: #9cdcfe;">$now</span><span style="color: #d4d4d4;"> = </span><span style="color: #dcdcaa;">get-date</span><span style="color: #d4d4d4;"> -Format s</span></div><div><span style="color: #dcdcaa;">write-output</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">$now</span><span style="color: #ce9178;">;--- Start Fritz!Box telephony data logging..."</span><span style="color: #d4d4d4;"> | </span><span style="color: #dcdcaa;">out-file</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">$logFile</span><span style="color: #d4d4d4;"> -append</span></div><br /><div><span style="color: #c586c0;">while</span><span style="color: #d4d4d4;"> (</span><span style="color: #569cd6;">$true</span><span style="color: #d4d4d4;">) {</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">$tcpClient</span><span style="color: #d4d4d4;"> = </span><span style="color: #dcdcaa;">new-Object</span><span style="color: #d4d4d4;"> System.Net.Sockets.TcpClient(</span><span style="color: #9cdcfe;">$fritzBox</span><span style="color: #d4d4d4;">,</span><span style="color: #9cdcfe;">$fritzPort</span><span style="color: #d4d4d4;">)</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">$tcpStream</span><span style="color: #d4d4d4;"> = </span><span style="color: #9cdcfe;">$tcpClient</span><span style="color: #dcdcaa;">.GetStream</span><span style="color: #d4d4d4;">()</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">$reader</span><span style="color: #d4d4d4;"> = </span><span style="color: #dcdcaa;">New-Object</span><span style="color: #d4d4d4;"> System.IO.StreamReader(</span><span style="color: #9cdcfe;">$tcpStream</span><span style="color: #d4d4d4;">) </span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">while</span><span style="color: #d4d4d4;"> (</span><span style="color: #9cdcfe;">$tcpClient</span><span style="color: #dcdcaa;">.Connected</span><span style="color: #d4d4d4;">) </span></div><div><span style="color: #d4d4d4;"> {</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #c586c0;">while</span><span style="color: #d4d4d4;"> (</span><span style="color: #9cdcfe;">$tcpStream</span><span style="color: #dcdcaa;">.DataAvailable</span><span style="color: #d4d4d4;">) </span></div><div><span style="color: #d4d4d4;"> {</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">$response</span><span style="color: #d4d4d4;"> = </span><span style="color: #9cdcfe;">$reader</span><span style="color: #dcdcaa;">.ReadLine</span><span style="color: #d4d4d4;">()</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">$now</span><span style="color: #d4d4d4;"> = </span><span style="color: #dcdcaa;">get-date</span><span style="color: #d4d4d4;"> -Format s</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #dcdcaa;">write-output</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">$now</span><span style="color: #ce9178;">;</span><span style="color: #9cdcfe;">$response</span><span style="color: #ce9178;">"</span><span style="color: #d4d4d4;"> | </span><span style="color: #dcdcaa;">out-file</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">$logFile</span><span style="color: #d4d4d4;"> -append</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #dcdcaa;">write-host</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #9cdcfe;">$now</span><span style="color: #ce9178;">;</span><span style="color: #9cdcfe;">$response</span><span style="color: #ce9178;">"</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> }</span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- Poll port every 5s...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #dcdcaa;">Start-Sleep</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">5</span></div><br /><div><span style="color: #d4d4d4;"> }</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- Recover from a connection loss, e.g. Fritz!Box reboot...</span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #dcdcaa;">Start-Sleep</span><span style="color: #d4d4d4;"> </span><span style="color: #b5cea8;">60</span></div><br /><div><span style="color: #d4d4d4;">} </span></div><br /><br /></div><p><span style="font-family: inherit;">You may use a tool like NSSM to
create a Windows Service. Then the script will run in the background and
it will log all phone calls to the log file.</span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-38112495863656914502022-10-30T08:16:00.010+01:002022-12-12T06:07:22.021+01:00modifyINI.ps1: an INI file modification script<p>The next script modifies one value in one section in an INI file. The INI filename stays the same. No input validation, no backup, no fancy command line parsing, no help, no nothing...<br /></p><p>The regexp's are stolen from: <a href="https://devblogs.microsoft.com/scripting/use-powershell-to-work-with-any-ini-file/">https://devblogs.microsoft.com/scripting/use-powershell-to-work-with-any-ini-file/</a><br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #6a9955;"><#</span></div><br /><div><span style="color: #6a9955;"> Script: modifyINI.ps1</span></div><div><span style="color: #6a9955;"> Purpose: Change values in INI files</span></div><div><span style="color: #6a9955;"> Date: 20-Oct-2022</span></div><div><span style="color: #6a9955;"> Version: 0.1</span></div><div><span style="color: #6a9955;"> </span></div><div><span style="color: #6a9955;"> Usage: </span></div><div><span style="color: #6a9955;"> </span></div><div><span style="color: #6a9955;"> PS C:\> modifyINI.ps1 "INI file" "[Section]" "Key" "New value" </span></div><div><span style="color: #6a9955;"> </span></div><div><span style="color: #6a9955;"> --- c:\temp\test.ini -------------------</span></div><div><span style="color: #6a9955;"> [System]</span></div><div><span style="color: #6a9955;"> Colors=256</span></div><div><span style="color: #6a9955;"> memSize=20MB</span></div><div><span style="color: #6a9955;"> cpuCores=4</span></div><div><span style="color: #6a9955;"> ----------------------------------------</span></div><div><span style="color: #6a9955;"> </span></div><div><span style="color: #6a9955;"> PS C:\> modifyINI.ps1 "c:\temp\test.ini" "[System]" "memSize" "35MB"</span></div><br /><div><span style="color: #6a9955;"> --- c:\temp\test.ini -------------------</span></div><div><span style="color: #6a9955;"> [System]</span></div><div><span style="color: #6a9955;"> Colors=256</span></div><div><span style="color: #6a9955;"> memSize=35MB</span></div><div><span style="color: #6a9955;"> cpuCores=4</span></div><div><span style="color: #6a9955;"> ----------------------------------------</span></div><br /><div><span style="color: #6a9955;">#></span></div><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> ($args.count -NE </span><span style="color: #b5cea8;">4</span><span style="color: #d4d4d4;">) {</span><span style="color: #569cd6;">Exit</span><span style="color: #d4d4d4;">}</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $iniFile = $args[</span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">]</span></div><div><span style="color: #d4d4d4;"> $srcSection = $args[</span><span style="color: #b5cea8;">1</span><span style="color: #d4d4d4;">]</span></div><div><span style="color: #d4d4d4;"> $srcKey = $args[</span><span style="color: #b5cea8;">2</span><span style="color: #d4d4d4;">]</span></div><div><span style="color: #d4d4d4;"> $newVal = $args[</span><span style="color: #b5cea8;">3</span><span style="color: #d4d4d4;">]</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $tabChr = </span><span style="color: #ce9178;">""</span><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- Ident for val/var lines</span></div><div><span style="color: #d4d4d4;"> $spaceChr = </span><span style="color: #ce9178;">""</span><span style="color: #d4d4d4;"> </span><span style="color: #6a9955;">#--- Space before/after "=", for readability. </span></div><div><span style="color: #d4d4d4;"> $section = </span><span style="color: #569cd6;">$NULL</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $srcFile = get-content $iniFile </span></div><div><span style="color: #d4d4d4;"> $tmpFile = New-TemporaryFile</span></div><br /><br /><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">foreach</span><span style="color: #d4d4d4;"> ($line </span><span style="color: #569cd6;">in</span><span style="color: #d4d4d4;"> $srcFile) {</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $bareLine = $line.trim()</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> ($bareLine -MATCH </span><span style="color: #ce9178;">"^\[(.+)\]"</span><span style="color: #d4d4d4;">) { </span><span style="color: #6a9955;">#--- [Section]...</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $section = $bareLine</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> } </span><span style="color: #569cd6;">ELSEIF</span><span style="color: #d4d4d4;"> ($bareLine -MATCH </span><span style="color: #ce9178;">"(.+?)\s*=(.*)"</span><span style="color: #d4d4d4;">) { </span><span style="color: #6a9955;">#--- key=val...</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $key = $bareLine.split(</span><span style="color: #ce9178;">"="</span><span style="color: #d4d4d4;">)[</span><span style="color: #b5cea8;">0</span><span style="color: #d4d4d4;">].trim()</span></div><div><span style="color: #d4d4d4;"> $val = $bareLine.split(</span><span style="color: #ce9178;">"="</span><span style="color: #d4d4d4;">)[</span><span style="color: #b5cea8;">1</span><span style="color: #d4d4d4;">].trim()</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> </span><span style="color: #569cd6;">if</span><span style="color: #d4d4d4;"> (($srcSection -EQ $section) -AND ($srcKey -EQ $key)) {</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $bareLine = </span><span style="color: #ce9178;">"$tabChr$key$spaceChr=$spaceChr$newVal"</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> } </span><span style="color: #569cd6;">ELSE</span><span style="color: #d4d4d4;"> {</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> $bareLine = </span><span style="color: #ce9178;">"$tabChr$key$spaceChr=$spaceChr$val"</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> }</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> } </span><span style="color: #6a9955;">#--- ELSE do nothing $bareLine...</span></div><div><span style="color: #d4d4d4;"> </span></div><br /><div><span style="color: #d4d4d4;"> write-output </span><span style="color: #ce9178;">"$bareLine"</span><span style="color: #d4d4d4;"> | out-file $tmpFile -append</span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> } </span></div><div><span style="color: #d4d4d4;"> </span></div><div><span style="color: #d4d4d4;"> copy-item $tmpFile $iniFile -force</span></div><div><span style="color: #d4d4d4;"> remove-item $tmpFile -force</span></div><br /><div><span style="color: #d4d4d4;"> </span></div></div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-23310640122603185522022-08-06T14:55:00.004+02:002022-08-06T18:53:14.373+02:00Luidsprekerdoek vervangen<p>Ik had een paar tweedehands Mission speakers gekocht. De speakers zelf zijn picobello, maar de frontjes hadden in de zon gestaan en zijn verkleurd. Dus zelf de stoute schoenen aangetrokken om het luidspreker doek te gaan vervangen. Luidsprekerdoek besteld, maar antraciet is niet de juiste kleur. Dus even wachten op zwarte stof.</p><p></p><p>Ik besefte dat ik nul ervaring had met luidsprekerdoek vervangen *en* ik had nog een setje Sony boxen staan waar het doek ook niet helemaal fris meer was besloten om eerst maar eens ervaring op te doen<br /></p><p><br /></p><p>Doek verwijderd van frame en nieuw doek uitgeknipt:<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgoWl2w8QJFmjQd26gHpHyl8h40pJiCCm7XoTeNu5F9Tkn6TKFTP_2GSp1plNLasddQflJzqVY_qGW63VOfUqafNBt9gIbNMPIutZDmDzwhutHKmbI7mLGQd57mMfR8VDc2FiD3iQRUyDi7r-E-Xms1miEaNwkbK1bM3u6ucWs4ro37rKe-AAIWfwf/s4608/IMG_20220806_102917_2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3456" data-original-width="4608" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgoWl2w8QJFmjQd26gHpHyl8h40pJiCCm7XoTeNu5F9Tkn6TKFTP_2GSp1plNLasddQflJzqVY_qGW63VOfUqafNBt9gIbNMPIutZDmDzwhutHKmbI7mLGQd57mMfR8VDc2FiD3iQRUyDi7r-E-Xms1miEaNwkbK1bM3u6ucWs4ro37rKe-AAIWfwf/w320-h240/IMG_20220806_102917_2.jpg" width="320" /></a></div><p></p><p><br /></p><p>De zijde aan de bovenkant is hier al geplakt met Bison Tix. Om iets van voorspanning op het doek tijdens het plakken te krijgen en het doek goed te kunnen plakken, met ouderwetse knijpers en een dikke muismat een plak-span inrichting gemaakt:<br /></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaLbb67tiFGWmf-u7M4BoUWnOziAeNh2_d8BMwsk66PkPzo8Kdm4cI0U3hjqbHyFd99MvCbziAlMOaR8LCPBOInYwsut4F8-utX-YvNE9C4kIRHutuNaancm4aDBr3YYD2EkmKClYaTUW42R4nUZo5xWI_iPvrrN5Ulk1wbx_Iy3TvkgFIqiJt9tDc/s4608/IMG_20220806_112537_0.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3456" data-original-width="4608" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaLbb67tiFGWmf-u7M4BoUWnOziAeNh2_d8BMwsk66PkPzo8Kdm4cI0U3hjqbHyFd99MvCbziAlMOaR8LCPBOInYwsut4F8-utX-YvNE9C4kIRHutuNaancm4aDBr3YYD2EkmKClYaTUW42R4nUZo5xWI_iPvrrN5Ulk1wbx_Iy3TvkgFIqiJt9tDc/s320/IMG_20220806_112537_0.jpg" width="320" /></a></div><p></p><p><br /></p><p>Alle vier de kanten geplakt. Dit was makkelijk. Nu de hoeken nog afwerken.<br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH9Uxln2ZW1TB-xrWwdgtNGhL6Qq3iZd06tdwMj2IG6CLlinkKFoZoXtPXa0cXnmGz6q9uvUIUjR9Yl_0ZZhzHhCJc8rNUpCGpQW_UyR06KFqzRvPLjOAsAkw-7i1sO5EON77LdE7YqyPtNy_wVDuajMaxCfD6sVp3pOoGx2_YmaenPru-Sx872HFL/s4608/IMG_20220806_122514_9.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3456" data-original-width="4608" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH9Uxln2ZW1TB-xrWwdgtNGhL6Qq3iZd06tdwMj2IG6CLlinkKFoZoXtPXa0cXnmGz6q9uvUIUjR9Yl_0ZZhzHhCJc8rNUpCGpQW_UyR06KFqzRvPLjOAsAkw-7i1sO5EON77LdE7YqyPtNy_wVDuajMaxCfD6sVp3pOoGx2_YmaenPru-Sx872HFL/s320/IMG_20220806_122514_9.jpg" width="320" /></a></div><p><br /></p><p>De hoeken vereisen wat lijm, fingerspitzengefühl en geluk. Het is de kunst om de rekbaarheid van het doek in de hoeken te gebruiken om de stof de hoek om te laten plooien.</p><p>Hierbij het resultaat (links). Het "vlekje" is de (glimmende) tweeter, de nieuwe stof is een beetje doorzichtig.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5X9QMZ8vpeCzYSrV-JRTaAxdad5E1R5-uVLTV5Lb_191Pmx8pphFIyyGqO7REinkwg-e9ZjnrqWQftvMzIh48wPaui49W-AOozM95lPUEc2II05VoyHqsfG-3ElUUp2X1DT1tVQkELEZ43ulfg21bmjwVqoETnuUBh9i8in0WmupVp_IK9Ppx1kX9/s4608/IMG_20220806_135736_7.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3456" data-original-width="4608" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5X9QMZ8vpeCzYSrV-JRTaAxdad5E1R5-uVLTV5Lb_191Pmx8pphFIyyGqO7REinkwg-e9ZjnrqWQftvMzIh48wPaui49W-AOozM95lPUEc2II05VoyHqsfG-3ElUUp2X1DT1tVQkELEZ43ulfg21bmjwVqoETnuUBh9i8in0WmupVp_IK9Ppx1kX9/s320/IMG_20220806_135736_7.jpg" width="320" /></a></div><br /><p><br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-35702167998917801242022-05-15T07:02:00.002+02:002022-12-29T15:29:16.812+01:00Add WiFi profile by script<p> Use this Powershell script to add an SSID session to your Windows WiFi settings.</p><p>Usage (in elevated command console):</p><p><span style="font-family: courier;">C:\> Powershell -file addSSID.ps1 {SSID} {Password}</span><br /></p><p></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, 'Courier New', monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #c586c0;">param</span><span style="color: #d4d4d4;">(</span></div><div><span style="color: #d4d4d4;"> [</span><span style="color: #569cd6;">string</span><span style="color: #d4d4d4;">]</span><span style="color: #9cdcfe;">$SSID</span><span style="color: #d4d4d4;">,</span></div><div><span style="color: #d4d4d4;"> [</span><span style="color: #569cd6;">string</span><span style="color: #d4d4d4;">]</span><span style="color: #9cdcfe;">$PSK</span></div><div><span style="color: #d4d4d4;">)</span></div><div><span style="color: #9cdcfe;">$guid</span><span style="color: #d4d4d4;"> = </span><span style="color: #dcdcaa;">New-Guid</span></div><div><span style="color: #9cdcfe;">$HexArray</span><span style="color: #d4d4d4;"> = </span><span style="color: #9cdcfe;">$ssid</span><span style="color: #dcdcaa;">.ToCharArray</span><span style="color: #d4d4d4;">() | </span><span style="color: #dcdcaa;">foreach-object</span><span style="color: #d4d4d4;"> { [</span><span style="color: #569cd6;">System.String</span><span style="color: #d4d4d4;">]::Format(</span><span style="color: #ce9178;">"{0:X}"</span><span style="color: #d4d4d4;">, [</span><span style="color: #569cd6;">System.Convert</span><span style="color: #d4d4d4;">]::ToUInt32(</span><span style="color: #9cdcfe;">$_</span><span style="color: #d4d4d4;">)) }</span></div><div><span style="color: #9cdcfe;">$HexSSID</span><span style="color: #d4d4d4;"> = </span><span style="color: #9cdcfe;">$HexArray</span><span style="color: #d4d4d4;"> -join </span><span style="color: #ce9178;">""</span></div><div><span style="color: #ce9178;">@"</span></div><div><span style="color: #ce9178;"><?xml version="1.0"?></span></div><div><span style="color: #ce9178;"><WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"></span></div><div><span style="color: #ce9178;"> <name></span><span style="color: #569cd6;">$(</span><span style="color: #9cdcfe;">$SSID</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;"></name></span></div><div><span style="color: #ce9178;"> <SSIDConfig></span></div><div><span style="color: #ce9178;"> <SSID></span></div><div><span style="color: #ce9178;"> <hex></span><span style="color: #569cd6;">$(</span><span style="color: #9cdcfe;">$HexSSID</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;"></hex></span></div><div><span style="color: #ce9178;"> <name></span><span style="color: #569cd6;">$(</span><span style="color: #9cdcfe;">$SSID</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;"></name></span></div><div><span style="color: #ce9178;"> </SSID></span></div><div><span style="color: #ce9178;"> </SSIDConfig></span></div><div><span style="color: #ce9178;"> </span></div><div><span style="color: #ce9178;"> <connectionType>ESS</connectionType></span></div><div><span style="color: #ce9178;"> <connectionMode>auto</connectionMode></span></div><div><span style="color: #ce9178;"> <MSM></span></div><div><span style="color: #ce9178;"> <security></span></div><div><span style="color: #ce9178;"> <authEncryption></span></div><div><span style="color: #ce9178;"><authentication>WPA2PSK</authentication></span></div><div><span style="color: #ce9178;"> <encryption>AES</encryption></span></div><div><span style="color: #ce9178;"> <useOneX>false</useOneX></span></div><div><span style="color: #ce9178;"> </authEncryption></span></div><div><span style="color: #ce9178;"> <sharedKey></span></div><div><span style="color: #ce9178;"> <keyType>passPhrase</keyType></span></div><div><span style="color: #ce9178;"> <protected>false</protected></span></div><div><span style="color: #ce9178;"> <keyMaterial></span><span style="color: #569cd6;">$(</span><span style="color: #9cdcfe;">$PSK</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;"></keyMaterial></span></div><div><span style="color: #ce9178;"> </sharedKey></span></div><div><span style="color: #ce9178;"> </security></span></div><div><span style="color: #ce9178;"> </MSM></span></div><div><span style="color: #ce9178;"> <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3"></span></div><div><span style="color: #ce9178;"><enableRandomization>false</enableRandomization></span></div><div><span style="color: #ce9178;"><randomizationSeed>1451755948</randomizationSeed></span></div><div><span style="color: #ce9178;"> </MacRandomization></span></div><div><span style="color: #ce9178;"></WLANProfile></span></div><div><span style="color: #ce9178;">"@</span><span style="color: #d4d4d4;"> | </span><span style="color: #dcdcaa;">out-file</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #569cd6;">$(</span><span style="color: #9cdcfe;">$ENV:TEMP</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;">\</span><span style="color: #9cdcfe;">$guid</span><span style="color: #ce9178;">.SSID"</span></div><br /><div><span style="color: #d4d4d4;">netsh wlan add profile filename=</span><span style="color: #ce9178;">"</span><span style="color: #569cd6;">$(</span><span style="color: #9cdcfe;">$ENV:TEMP</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;">\</span><span style="color: #9cdcfe;">$guid</span><span style="color: #ce9178;">.SSID"</span><span style="color: #d4d4d4;"> user=all</span></div><br /><div><span style="color: #dcdcaa;">remove-item</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"</span><span style="color: #569cd6;">$(</span><span style="color: #9cdcfe;">$ENV:TEMP</span><span style="color: #569cd6;">)</span><span style="color: #ce9178;">\</span><span style="color: #9cdcfe;">$guid</span><span style="color: #ce9178;">.SSID"</span><span style="color: #d4d4d4;"> -Force</span></div></div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-19146886570725343652021-12-10T09:27:00.003+01:002021-12-15T10:11:24.712+01:00Opnieuw een gevalletje van "Capacitor Plague"Na <a href="https://beaukey.blogspot.com/2015/11/capacitor-plague.html" target="_blank">deel 1</a>, <a href="https://beaukey.blogspot.com/2018/01/capacitor-plague-deel-2.html" target="_blank">deel 2</a> en <a href="https://beaukey.blogspot.com/2020/03/capacitor-plague-deel-3.html" target="_blank">deel 3</a>, nu een 16 jaar oude videokaart. Symptoom: Windows stond "vast" na een paar minuten gebruik.<br /><p> </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0ZFYepz197xoT6Q_13KzG3r6hE-YWzaKiMxn9d-4toVflX1IjzqxtL_fdjc1Ir2PyE4n7TxsLftKt7X7OGw0tMwrg-h6iRCfBWKUuoFIBBuidzar2MfcSfOBnoCL3JHQK0CK7bYEqGps/s2048/IMG_20211210_081510_712.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1532" data-original-width="2048" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0ZFYepz197xoT6Q_13KzG3r6hE-YWzaKiMxn9d-4toVflX1IjzqxtL_fdjc1Ir2PyE4n7TxsLftKt7X7OGw0tMwrg-h6iRCfBWKUuoFIBBuidzar2MfcSfOBnoCL3JHQK0CK7bYEqGps/s320/IMG_20211210_081510_712.jpg" width="320" /></a></div><p></p><p>De elco's links van het koelblok staan bol.</p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhswRw-AuKcqZk8KjV_Ua2Sn3Ca82zY-6gRISi3B1q0N2HDED8NJPiCT3d4c8e9tKhoXQ8M_CFscwZv9tV5-AEzcIb2MA9k7k-mHEv4CJAMWhRZ-RKSax-s9x89LTQn-AmSx6hpVHIzQbc/s1600/IMG_20211210_081542_945.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhswRw-AuKcqZk8KjV_Ua2Sn3Ca82zY-6gRISi3B1q0N2HDED8NJPiCT3d4c8e9tKhoXQ8M_CFscwZv9tV5-AEzcIb2MA9k7k-mHEv4CJAMWhRZ-RKSax-s9x89LTQn-AmSx6hpVHIzQbc/s320/IMG_20211210_081542_945.jpg" width="320" /></a></div><br />Dus de defecte elco's maar even verwijderd...<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidahKC_CQup8KRxeOnbWKjyo3-9OLTmHelycSQRoAs0Sj2UVj-DvLpBUfyE3hhTOxXYi7vIp7x96r1Jja7vMwEB7-P7p4Yu33ok5IEPtkyaPpy4j4sK2lspIsWyCK0IEXCQ6eSTIw3m4g/s2048/IMG_20211210_083800_523.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1532" data-original-width="2048" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidahKC_CQup8KRxeOnbWKjyo3-9OLTmHelycSQRoAs0Sj2UVj-DvLpBUfyE3hhTOxXYi7vIp7x96r1Jja7vMwEB7-P7p4Yu33ok5IEPtkyaPpy4j4sK2lspIsWyCK0IEXCQ6eSTIw3m4g/s320/IMG_20211210_083800_523.jpg" width="320" /></a></div><p></p><p></p><p>...en nieuwe op gesoldeerd.</p><p style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiURMBXu5rblJfIC2Yqvh-m-s2ZT1VRnrgvmFI48CrAmKSgr05Ftpi4k5JUg7-rZWBDabu0bXTdjFllD1UW07oA0E9GTG4hrJHA8kjE9TJP97o3BXRi52UYN5S-O6k06Wgb4taKLU5hE88/s2048/IMG_20211210_084737_583.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1532" data-original-width="2048" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiURMBXu5rblJfIC2Yqvh-m-s2ZT1VRnrgvmFI48CrAmKSgr05Ftpi4k5JUg7-rZWBDabu0bXTdjFllD1UW07oA0E9GTG4hrJHA8kjE9TJP97o3BXRi52UYN5S-O6k06Wgb4taKLU5hE88/s320/IMG_20211210_084737_583.jpg" width="320" /></a></p><p> En de videokaart weer in de PC gezet. Groot succes!</p><p style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-BAmzeWIvWCHn7SVMxJjLWd01-tF2HjyD5Q3jXNRMnpTr6oqAtNvTzWfBQWfpFnjy4OklbQXWR4fz4zAoInZVPO0-zRu4p_F9oNuKVkUPcaBmGUwSRcxf6P7YwFjVm5stn7pEpWTjREI/s2048/IMG_20211210_085459_323.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1532" data-original-width="2048" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-BAmzeWIvWCHn7SVMxJjLWd01-tF2HjyD5Q3jXNRMnpTr6oqAtNvTzWfBQWfpFnjy4OklbQXWR4fz4zAoInZVPO0-zRu4p_F9oNuKVkUPcaBmGUwSRcxf6P7YwFjVm5stn7pEpWTjREI/s320/IMG_20211210_085459_323.jpg" width="320" /></a></p><br /><p><br /></p><p><br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-55474269178780119072021-09-18T16:16:00.080+02:002021-12-06T07:47:49.412+01:00Wireless printer server for USB printers<p>Use case: your USB printer has no network interface or the network interface of the printer can not be used (e.g. no cabled network). Or you want to place the printer in the corner of your home office without a network cable or you want to improve the Women Acceptance Factor (WAF) of a printer in your living area.</p><p>In this post I am going to tell how to use OpenWRT firmware on a WiFi Access Point (WAP). The goal was simplicity, not a super fancy or secure solution. "First enable, then improve...!". Let's go!</p><p><img alt="" height="400" src="data:image/png;base64,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" width="343" /> <br /></p><p>1. Prerequisites. </p><p>Collect the next data:</p><p>- IP address (subnet) of your home WiFi<br />- Home WiFi SSID and password</p><p>Have:<br />- A computer with wired network adapter and a network cable<br /></p><p>2. Get yourself a WiFi Access Point (WAP). Look on the attic or on eBay. Check <a href="https://openwrt.org/toh/start" target="_blank">here</a> to check if your WAP is capable of running OpenWRT and make sure that it has one (or more) USB port. Any USB port is OK. If you need more printers than available USB ports, you may use a USB hub to connect the printers to the print server. Make sure the WAP has at least 8MB Flash memory (<span style="font-family: courier;">dmesg | grep Kbytes</span> or <span style="font-family: courier;">dmesg | grep KiB </span>might tell)!<br /></p><p>I have tested here a TP-Link TL-WR710N (v1.2), TP-Link Archer C7, D-Link DIR-505, Cisco/Linksys E4200 and TP-Link TL-WR1043ND. I got those for free or (less than) EUR10.</p><p>3. Connect a computer to ethernet port #1 or port LAN of the WAP. Install OpenWRT. The installation of OpenWRT to a WAP goes beyond this post because the
installation might differ per used WAP. See <a href="https://openwrt.org/docs/guide-quick-start/factory_installation" target="_blank">here</a> for OpenWRT install
hints. You should land here:<br /></p><p><img alt="" height="195" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA78AAAEkCAYAAADn3oYzAAAgAElEQVR4nO3d63tUh2Hn8fHT/6DP7usmXMJFOE3bV85ud+UIZWm0pU5t47glhF0FbNdZd8MWGfAldWVyIU3skrCts7bsECWkJbVx3LCAiVOQ100cxRcE4iIuHjAgdBlpLtKcmXNGv31xzozOOXPmqpEQR9/P83yfFs1obpLy6OczM4r8wR/8gYiIiIiIiIjCXOT3f//3RURERERERBTmGL9EREREREQU+iK/93u/JyIiIiIiIqIwx/glIiIiIiKi0Mf4JSIiIiIiotAX+cQnPiEiIiIiIiKiMMf4JSIiIiIiotAX+d3f/V0RERERERERhbmZjd/bm7Ri2VItWbJYixfbLVmyVMtWNOn2eXDngmpatkSLFy/Wsqag0z+uFUud+7J0hT4edBkrP6bFixdr6fLbK17X7SuXaXng9RAREREREdFcVuf4/bhWLV+qT3/5OR0+eU1Jw5LN1GT8mk4efk5f/vTHtGLVzb+D/r77a0OSpfeeCxivH39Ar1x27srlV/RAwOe3vNQvSRp546ny19X0R/ry99/TL7538+8zERERERHRQi/y8Y9/XLW2avn9+vovrsqUJDOuy+/9XP/8wx/qh//8c713OW5/fOKSXn3y01q+qvbLn83u/6fz9ng9+oRu95++bp8GJFmWJalfL7X4P3+V/u5tQ5KhX3+3wnV1nZQkney6+feZiIiIiIhooVf7+F3VrB2HB2VJmoz+TE//SfF5/uTpX+iGJcka1MGOFVo1D+5oob94VZclaeDHus93WssLfbJk6OSp85IMvf1sk/dzb9+uI0OSrJN68dMVrofxS0RERERENG+K3H777aqllX/xqj6UpOE39JXW0ufb+OIpTUqyoi/r4Sbn403LtHjRIi1etlIrly3R4kWLtGjRIi1atERLl63UqqDLWrVSy5Yucc63SIsWLdaSj61Qk+d8TVq2eJEWLV2h25uWa+mSRdPnX7JUy5vc5/2K3hiRZLytZ5u8l/Hs24Y9bP/SHsiJnq96r8c5MqyBf9T9rvuzdEWTli9ZXLgvixd/VIu+1ydJ6vuefZuXNZV+rIiIiIiIiGh2q3H8NulvfjEmSTr/T/dXOO9f6l+uStKQDm9bZX9sxxENSRo6/DV97fA5jTmvFTYnrunkq1/T55au8A7gpmX6wy98U6+evKYJ034prmWMKfpvXfrSf1zmGqY77COyff9Hn/7yS3rn2qT91GuZmrj2jl768qc9A/g7vzYkjejo46umr2vV4zo6kh+2j+n1YUlDh7Vt1fTnNT37tgxJw68/5rk/fV3b9fK5cZmSLOOargzKZ1hHH7v5X2wiIiIiIqKFWmTVqlWqvv+lg9cl6bIOPFj5/F/5+YgkKfryZvtj2+2xaExMyLKS+vBXP1N398/03og9VSfe/d+6e0X+81eqefvPdNWUVDjvT3S0f8QemdcPaft/XuGc13k68tB1DVqmRvqP6ifd3frZrz5U0pJkRfXyw02F27V6r/2mVef23Vv4WNOmlxWVNPT6Y1q1apW+8WZCUlQvb87fniY9fnREUkJvfmOV5/5MTEzKHHlPP+v+iY6+d1j/8g/d6n7riiTpylvd6u7+Bz3xuVoeZyIiIiIiImpkNY7fF+Q8mVcvVHP+F+xzW+89Z//bGYvSpE69+AXXeb+gfzpvSRrTL/7aGbQr/0IvRy1Jw3rjK6s9l/uFvadlSBr7xV9rxapVKoxfWRo8+hWtdp33Efvws6KvPDB9GQ8e0GVJxq+e0UrnY/f+6Jxn2K5+8aQsSadevNP5vM16OSrJ+LW+k7+c/P0xfqP/vTr4vve9cPO/yERERERERAu9ORm/6nvB/nd+LA78oz7nP+833lRCkvG2M0i3HdaQJKvveTUvX67lnr6qnoSkRI++2rRK0+N3QD/2H2F98ucakTR0ZLvr41/Rz0fspzU/2rRKq1bdqef7LO+w/dw/asAZyCtWrdKqFf+gdy1J/Xunx3X+/vR/3zO43fed8UtERERERHTzizQ1Nan6ugrj9/mVlc+/4vnpI79NTU1qcsbi0JEdAed3hvXgQf2V63MTJ3+qF1980dc/6jcj9tjdd2+Tmpqc8Wu8rb/zX27+qdZvP+v5+O63DUnn9KN7m9S0/Bn9yrBHbEvhPA/qwGVJiePauaJJK3ceV0LS5QMPFl12oudrxfenMH5reXyJiIiIiIhoNqpx/G7VoUHZr4XdtLLCeVfq0cP2k5wHD221P+aMxVMv3hlwfmf8Dh3R9qYm7bAP5VYwrKM7mlQYv87nei43f3S27wXPx1u6TsqSoV89syJ42DY16etvJiRd18EtTdr0clTSkF7fUXzZQ0e2F98fxi8REREREdG8KbJy5UrVUuexcUmWzuz9rJaVOd+Kjz2oAx9K0riOdTofd57KPHT40eLPaX5RpyTp8it6YOVKfeol+02poi9/MeDyl2nJRz6ij3x0iXMbtumwfcHa5j+vc53qe9778Qfs1/1e/9kWfdEZtke2+z53t/3uzqde/C968ZT9NOuvB1z20OFtxbfROXLd93xtjy8RERERERE1vprH78r/cUCXLUljx/Q3/2GplgedZ/kS3fe9E5qQZF0+oP+R/3j+dbwnvqc/XO7+nBVa2mkffU28+XX7Y1+3XwNcfN6VWr60U8cTpibG/p92r1ypusbvSudo8amX9FLQsF25Uis/1aWTlpQ4/qqOJyTrZJc+FXDZjF8iIiIiIqL5XWTFihWqrTv1xOuDsiRNXDygxz71EX100WItWbpUS5cs1qKPfkSfeuyIrluSrEG9/sSd05/7qDNEres69OgdWrR4if05d6zXj8/Z7+z8+vb89Wy3/9auhvTGY5/SRxcv0dKlS7R40R16+EBUliTjN9/VnStWaMWKRwvj91H/7X10evz678vfvW1IiSENGfbrkovv67368YCkoSENSRr48b2Blz10+NHiz3XG76kX/oOWLP2Yli2v9XEmIiIiIiKiRlXH+F2hFSva9NRrH2hSksxxffCbQ9rX1aWufYf0mw/GZUqSeU2vP9Xm/TxnLFqWJZnD6ju0T137Dqlv2JRkafD1J5wxa3fnE69r0JJkJXXlrQPq6tqnQ33D9uVPnlTX5/PnrW/83vlCnyzn1cNFw9Zpe+G1x5f1yubgyw4cv19zjlxf/6X2de3Wo39687/YREREREREC7U6x69d29bn9fqp60oa+QlpanL0st597Tv6i7aAzymMxV365usDGjMsSZaMscv65ff/p2f45rvzi8/otVPXNWnmr2JS10+9pm9+3n0+5yjx8Ova7r+M7a9rWJJOdhXfnnt/rPPOsD3gH7b5nBGrxJv6WonLHn59e8Dnfl7f/eUN2Q+Npfefu/lfbCIiIiIiooVaZHnR39CdxVxHSuf0eomIiIiIiGhBx/glIiIiIiKi0BdZtmyZ5qyO/PjtmLvrJCIiIiIiogXf3I7fR4/Yr5E98uhNv+NERERERES0cIp87GMfExEREREREVGYY/wSERERERFR6GP8EhERERERUeiLLF26VERERERERERhjvFLRERERERE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" width="640" /> <br /></p><p>4. <b>IMPORTANT</b>: In case the IP address of your home network devices start with 192.168.1.{any number}, you have to change the IP address of the WAP. Else goto 5.<br /><br />From the OpenWRT start page, goto Network > Interfaces > LAN. And change the IPv4 address to 192.168.{any number between 2 and 254}.1. E.g. 192.168.2.1 . Leave all other settings as-is and press "Save & Apply".</p><p> <img alt="" height="400" src="data:image/png;base64,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" width="378" /></p><p><br /></p><p>5. Configure the WiFi adapter of the WAP as a WiFi client of your home network. From the start screen of OpenWRT, select "Network" > "Wireless". Select a network adapter and press the [Scan] button. From the resulting list, select your home WiFi SSID > "Join Network" and enter your WiFi password in the next screen. Select "Save" > "Save & Apply". </p><p>Validation: Goto "Network" > "Wireless". The section "Associated Stations" should show the connection to your Home WiFi network. The computer that is connected to the WAP should have Internet access now.</p><p> </p><p><img alt="" height="264" src="data:image/png;base64,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mr8d3vFlT6N1fUsj9nwzWJtkf503QvHb1vy8UtrRuKtM58PFSkavdND2f7LlGs5tlGs+nOvXOc/yeaValff2jqQdjX97xXho1+KOo95WWS3m/cR81ZazzL966KhXeyUd6rvoyIDQXCgUBtqg0By2PCPYlrSzs+M7fX9/3w7S1oO+SqWSdnd3VSgUjOC9t+c7z1mO33rWE7Cdy3croRkRERERsY2u0Pw8NjSD8c+7nefjq+b7oDvctqTe719AaH78+PFAGxSaD1Pm9vZ24HTnPOuz3/Jh5gUt342EZkRERETENrpC83PY0AzGb3U7z+E3ryryLy9o5O92jeHgHW5bUu/3LyA0f/nllwNtUGjud736JaEZEREREbGNrtD8LWxovi7qr7qd5/CMNWx8x3ioWYdK6v3+BYTmR48eDbRBobnf9eqXhGZERERExDa6QvMf4XFQUu+3ExCat7a2Btqg0NzvevVLQjMiIiIiYhtdoflZPA5K6v12AkLzgwcPBtqg0NzvevVLQjMiIiIiYhut4HDiVEaRb+BxUFLPt3EiIDRvbm4OtEGhud/16peEZkRERETENhaLRRUKBX39L9d04mRGkX+N/VZST8s/cTKjr//lmv1KIys8xmZjur9xXxsbGwPp/Y37is3GmkNzLKaN+4O734Hev6/FWIzQjIiIiIjYSis0X/30gSI/zijyUkaRZ7CfSupd+S9lFPlxRlc/feAKzYVCQaevnNbM8ozu378/kM4sz+j0ldNN+/3ZmTP6zczg7neQv5mZ0WdnztjH46h+U8JAaEZERETEY63V43bl5qbR43wqY9zjjAPliVNGD/OVm5uu3kUrPH5852PFZmNKLiWVX89rfX19IMyv55VcSio2G9PHdz5uCs0bi4tajMWUTSa1nh+c/Q40n1c2mTR62BcXCc2IiIiIiO0sFova2dnR9va2Hj16pK2tLT18+BAHzK2tLT169Ejb29va2dlxBSXrwsny3WWdS59TbDam6Gx0IIzNxnQufU7Ld5ebhiJb+33/44/12ZkzWozFtBiNDraxmD47c0b3P/74yIdm7+4SmhERERFxQLWCc6FQUKFQ0Pb2Ng6Y1nfrDczO738QL5y0u1gwqPsd5ngchWEgNCMiIiLiU6M1bBUH11bf/SBeOGl1sWCQ9zvs8TisYSA0IyIiIiLiU2O/Q/2Tvlgw6Psd9niENQyEZkRERERERBwKw0BoRkRERERExKEwDIRmREREREREHArDQGhGRERERETEoTAMhGZEREREREQcCsNAaEZERERERMShMAyEZkRERERERBwKw0BoRkRERERExKEwDIRmREREREREHArDQGhGRERERETEoTAMhGZEREREREQcCsNAaEZERERERMShMAyEZkRERERERBwKw3DkoblUKvX9QCAiIiIiIiI6LZVKoTLukYdmieCMiIiIiIiIx8ewgVnqUWgGAAAAAAAAGAQIzQAAAAAAAAABEJoBAAAAAAAAAiA0AwAAAAAAAARAaAYAAAAAAAAIgNAMAAAAAAAAEAChGQAAAAAAACAAQjMAAAAAAABAAIRmAAAAAAAAgAAIzQAAAAAAAAABEJoBAAAAAAAAAiA0AwAAAAAAAARAaAYAAAAAAAAIgNAMAAAAAAAAEMD/B9AuZuz0t0g0AAAAAElFTkSuQmCC" width="640" /> <br /></p><p>6. Now that we have Internet access, we can install the p910n print server package. Use Putty or similar to connect to 192.168.1.1 (or the LAN IP addres you set in step #4) and open a command console. Issue the next commands in the console:</p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><pre class="copy-codeblocks"><code>opkg install wget-ssl --no-check-certificate</code><span style="color: #d4d4d4;"><br />opkg update</span><span style="color: #d4d4d4;"><br />opkg install usbutils</span><span style="color: #d4d4d4;"><br />opkg install kmod-usb-printer</span><span style="color: #d4d4d4;"><br />opkg install p910nd luci-app-p910nd</span><span style="color: #6a9955;"><br />#--- For D-Link DIR-505 uncomment the next line (USB driver)...</span><span style="color: #6a9955;"><br />#opkg install kmod-usb-chipidea2</span><span style="color: #d4d4d4;"><br />reboot</span></pre></div></div><p>7. Configuring the print server. After the reboot reconnect goto "Services" > "p910nd - Printer server" and tick the box "Enable" > "Save & Apply." </p><p><img alt="" height="276" src="data:image/png;base64,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" width="400" /></p><p>8. Configuring the firewall. Goto "Network" > "Firewall" > "Zones" > "Zone wan". Set "Input" & "Output" & "Forward" to "accept"</p><p><img alt="" height="126" src="data:image/png;base64,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" width="640" /> <br /></p><p>9. The WAP WiFi adapter needs to have a static address, so that computers that want to print to the printer server can find the print server. Goto "Network" > "Interfaces" > "WWAN" > "Protocol" > "Static Address". Change the "IPv4 Address" to an address in the range of your home network. Make sure you do not select and address in the DHCP range. You may try an IP address that ends on 240 to 249. E.g. 192.168.1.244. Set the Network mask to 255.255.255.0. Remember this IP address: <br /></p><p></p><p><img alt="" height="346" src="data:image/png;base64,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" width="400" /></p><p>10. Now connect your printer(s) to the WAP and test the print server from a computer in your house, e.g. your desktop computer. </p><p>Connect a printer (Windows):<br /><span> </span><span> </span>Win
Key + S > Printers & Scanners > Add a Printer or Scanner >
The printer that I want isn't listed > Add a printer usinga TCP/IP
address or hostname. At "Hostname or IP address" > {IP Address of Step 9} (This step may take a minute) > Next. </p><p>Select the printer drive for
the UBS printer that is connected to the print server. Select all
defaults in the next pages.<span> </span>Set printer properties in Windows (paper size etc.), and print a test page.</p><p></p><p></p><p></p><p></p><p></p><p><br /><span>Testing from a PC in your home network: <br /></span></p><p><span> </span>1. Test if the WAP is accessable: <span style="font-family: courier;"><br /><span> </span>PING {IP address of step9}</span><br /><span> </span> Should return succes.<br /><span> </span>2. Test if the printer server is accessable: <br /><span> </span><span> </span><span style="font-family: courier;">TELNET {IP address of step 9} 9100<br /><span> </span></span>Should return a black screen<br /><br /></p><p>Troubleshooting with the OpenWRT console:</p><p>Command: <span style="font-family: courier;">lsusb</span> </p><p>Should show USB devices and USB ports. Should list the name of the USB printer</p><p>Command: <span style="font-family: courier;">ls /dev/usb/lp*</span></p><p>Should list the number of "lp" ports that are in use. One per connected USB printer. E.g. 2 connected USB printers will show: <span style="font-family: courier;"> </span></p><p><span style="font-family: courier;">/dev/usb/lp0 </span><span style="font-family: courier;">/dev/usb/lp1</span></p><p><span>Troubleshooting with Windows: see step 10 </span><br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-10453740172425818712021-04-06T09:32:00.022+02:002021-04-12T10:21:31.761+02:00ESP + NTP to DST<p>This ESP code pulls the date from NTP and calculates if today is DST. The DST algorithm is based on <a href="https://beaukey.blogspot.com/2021/04/arduinoesp-function-ineuropeandst.html">this post</a>.</p><p>The output will look something like:</p><p><span style="font-family: courier;">09:38:57.832 -> *** Connecting to SSID: {SSID}<br />09:38:57.832 -> ...<br />09:38:57.979 -> *** WiFi connected.<br />09:38:57.979 -> IP address: 192.168.x.111<br />09:38:58.032 -> DST: 1<br /></span><br /></p><div style="background-color: #272822; color: #f8f8f2; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #88846f;">//--- Libraries...</span></div><div><span style="color: #88846f;"> //--- WiFi + NTP...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">#include</span><span style="color: #f8f8f2;"> </span><span style="color: #e6db74;"><ESP8266WiFi.h></span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">#include</span><span style="color: #f8f8f2;"> </span><span style="color: #e6db74;"><NTPClient.h></span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">#include</span><span style="color: #f8f8f2;"> </span><span style="color: #e6db74;"><WiFiUdp.h></span><span style="color: #f8f8f2;"> </span></div><br /><div><span style="color: #88846f;"> //--- Date to epoch...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">#include</span><span style="color: #f8f8f2;"> </span><span style="color: #e6db74;"><TimeLib.h></span></div><br /><br /><div><span style="color: #88846f;">//--- WiFi and network...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">const</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">char</span><span style="color: #f92672;">*</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">ssid</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #e6db74;">"{SSID}"</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">const</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">char</span><span style="color: #f92672;">*</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">password</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #e6db74;">"{password}"</span><span style="color: #f8f8f2;">;</span></div><br /><br /><div><span style="color: #88846f;">//--- NTP...</span></div><div><span style="color: #f8f8f2;"> WiFiUDP </span><span style="color: #f8f8f2;">ntpUDP</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">const</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">CETtoGMToffset</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">3600</span><span style="color: #f8f8f2;">;</span><span style="color: #88846f;"> //--- Central European Time (CET) offset to GMT...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e; text-decoration: underline;">NTPClient</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">timeClient</span><span style="color: #f8f8f2;">(</span><span style="color: #a6e22e; text-decoration: underline;">ntpUDP</span><span style="color: #f8f8f2;">, </span><span style="color: #e6db74;">"time.kriss.re.kr"</span><span style="color: #f8f8f2;">,</span><span style="color: #a6e22e; text-decoration: underline;">CETtoGMToffset</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">60000</span><span style="color: #f8f8f2;">);</span></div><br /><br /><div><span style="color: #88846f;">//--- setup() ----------------------------------------------------------------------------</span></div><div><span style="color: #66d9ef; font-style: italic;">void</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">setup</span><span style="color: #f8f8f2;">(){</span></div><div><span style="color: #f8f8f2;"> </span></div><br /><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">begin</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">74880</span><span style="color: #f8f8f2;">);</span><span style="color: #88846f;"> //--- Prevent garbled output, show ESP8266 boot output...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">delay</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">500</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">();</span></div><br /><br /><div><span style="color: #88846f;">//--- Start WiFi...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">pinMode</span><span style="color: #f8f8f2;">(LED_BUILTIN, OUTPUT);</span></div><br /><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(</span><span style="color: #e6db74;">"*** Connecting to SSID: "</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">+</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">String</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">ssid</span><span style="color: #f8f8f2;">));</span></div><div><span style="color: #f8f8f2;"> WiFi.</span><span style="color: #a6e22e;">mode</span><span style="color: #f8f8f2;">(WIFI_STA);</span></div><div><span style="color: #f8f8f2;"> WiFi.</span><span style="color: #a6e22e;">begin</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">ssid</span><span style="color: #f8f8f2;">, </span><span style="color: #f8f8f2;">password</span><span style="color: #f8f8f2;">);</span></div><br /><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">while</span><span style="color: #f8f8f2;"> (WiFi.</span><span style="color: #a6e22e;">status</span><span style="color: #f8f8f2;">() </span><span style="color: #f92672;">!=</span><span style="color: #f8f8f2;"> WL_CONNECTED) {</span></div><br /><div><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">digitalWrite</span><span style="color: #f8f8f2;">(LED_BUILTIN, </span><span style="color: #f92672;">!</span><span style="color: #a6e22e;">digitalRead</span><span style="color: #f8f8f2;">(LED_BUILTIN));</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">print</span><span style="color: #f8f8f2;">(</span><span style="color: #e6db74;">"."</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">delay</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">50</span><span style="color: #f8f8f2;">);</span></div><br /><div><span style="color: #f8f8f2;"> }</span></div><br /><div><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">digitalWrite</span><span style="color: #f8f8f2;">(LED_BUILTIN,HIGH);</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(</span><span style="color: #e6db74;">"</span><span style="color: #ae81ff;">\r\n</span><span style="color: #e6db74;">*** WiFi connected."</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">print</span><span style="color: #f8f8f2;">(</span><span style="color: #e6db74;">"IP address: "</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(WiFi.</span><span style="color: #a6e22e;">localIP</span><span style="color: #f8f8f2;">());</span></div><div><span style="color: #88846f;">//--- WiFi connection established...</span></div><br /><br /><div><span style="color: #88846f;">// Initialize a NTPClient to get time from NTP server...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">timeClient</span><span style="color: #f8f8f2;">.</span><span style="color: #a6e22e;">begin</span><span style="color: #f8f8f2;">();</span></div><br /><div><span style="color: #88846f;">//--- Is today in DST?</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(</span><span style="color: #e6db74;">"DST: "</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">+</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">String</span><span style="color: #f8f8f2;">(</span><span style="color: #a6e22e;">nowInDST</span><span style="color: #f8f8f2;">()));</span></div><br /><div><span style="color: #f8f8f2;">} </span></div><br /><br /><div><span style="color: #88846f;">//--- loop() ----------------------------------------------------------------------------</span></div><br /><div><span style="color: #66d9ef; font-style: italic;">void</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">loop</span><span style="color: #f8f8f2;">(){</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;">}</span></div><br /><br /><div><span style="color: #f92672;">boolean</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">nowInDST</span><span style="color: #f8f8f2;">()</span></div><div><span style="color: #f8f8f2;">{</span></div><br /><div><span style="color: #f8f8f2;"> boolean </span><span style="color: #f8f8f2;">isInDST</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">false</span><span style="color: #f8f8f2;">;</span></div><br /><div><span style="color: #88846f;"> //--- Retrieve epoch from NTP server... </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">timeClient</span><span style="color: #f8f8f2;">.</span><span style="color: #a6e22e;">update</span><span style="color: #f8f8f2;">(); </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">epochTime</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">timeClient</span><span style="color: #f8f8f2;">.</span><span style="color: #a6e22e;">getEpochTime</span><span style="color: #f8f8f2;">();</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #88846f;"> //--- Destil current year... </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">struct</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e; text-decoration: underline;">tm</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">*</span><span style="color: #f8f8f2;">ptm</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">gmtime</span><span style="color: #f8f8f2;"> ((</span><span style="color: #66d9ef; font-style: italic;">time_t</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">*</span><span style="color: #f8f8f2;">)</span><span style="color: #f92672;">&</span><span style="color: #f8f8f2;">epochTime</span><span style="color: #f8f8f2;">); </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">y</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">ptm</span><span style="color: #f8f8f2;">->tm_year</span><span style="color: #f92672;">+</span><span style="color: #ae81ff;">1900</span><span style="color: #f8f8f2;">;</span></div><br /><div><span style="color: #88846f;"> //--- Calculate epoch values for start and end of DST for this year...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">firstDSTepoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">3</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e;">lastSundayOfMonth</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">3</span><span style="color: #f8f8f2;">) ,</span><span style="color: #ae81ff;">2</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">);</span><span style="color: #88846f;"> //--- Start of CET DST in epoch...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">lastDSTepoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">10</span><span style="color: #f8f8f2;">,</span><span style="color: #a6e22e;">lastSundayOfMonth</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">10</span><span style="color: #f8f8f2;">),</span><span style="color: #ae81ff;">2</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">);</span><span style="color: #88846f;"> //--- End of CET DST in epoch...</span></div><br /><div><span style="color: #88846f;"> //--- Check epoch if in DST... </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">if</span><span style="color: #f8f8f2;"> (</span><span style="color: #f8f8f2;">epochTime</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">>=</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">firstDSTepoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">&&</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">epochTime</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;"><</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">lastDSTepoch</span><span style="color: #f8f8f2;">) </span></div><div><span style="color: #f8f8f2;"> {</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">isInDST</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">true</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> }</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">return</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">isInDST</span><span style="color: #f8f8f2;">;</span></div><br /><div><span style="color: #f8f8f2;">}</span></div><br /><br /><div><span style="color: #88846f;">//--- Calculate the date of the last Sunday in a given month...</span></div><div><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">lastSundayOfMonth</span><span style="color: #f8f8f2;">(</span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">, </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">)</span></div><div><span style="color: #f8f8f2;">{</span></div><div><span style="color: #88846f;"> //--- Take care of leap years...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[] </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> {</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">28</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">};</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">if</span><span style="color: #f8f8f2;"> (</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">%</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">4</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">==</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">&&</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">%</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">100</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">!=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">) {</span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">] </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">29</span><span style="color: #f8f8f2;">;}</span></div><br /><div><span style="color: #88846f;"> //--- Last day of month M to epoch...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">epoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">,</span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[</span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f92672;">-</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">],</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">);</span></div><br /><div><span style="color: #88846f;"> //--- Day of week, based on ISO8601...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">dayOfWeek</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> ((</span><span style="color: #f8f8f2;">epoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">/</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">86400</span><span style="color: #f8f8f2;">) </span><span style="color: #f92672;">+</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">4</span><span style="color: #f8f8f2;">) </span><span style="color: #f92672;">%</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">7</span><span style="color: #f8f8f2;">;</span></div><br /><div><span style="color: #88846f;"> //--- Calculate date of last Sunday...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">lastSundayOfMonth</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[</span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f92672;">-</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">] </span><span style="color: #f92672;">-</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">dayOfWeek</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">return</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">lastSundayOfMonth</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;">}</span></div><br /><div><span style="color: #88846f;">//--- Converts a date to epoch (TimeLib.h)...</span></div><div><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;"> , </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">d</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">h</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">m</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">s</span><span style="color: #f8f8f2;">)</span></div><div><span style="color: #f8f8f2;">{</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">tmElements_t</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Year </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">-</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">1970</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Month </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Day </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">d</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Hour </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">h</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Minute </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">m</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Second </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">s</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">return</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">makeTime</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;">}</span></div><br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-4209783408694192572021-04-02T10:36:00.014+02:002021-04-05T21:47:40.528+02:00Arduino/ESP function: inEuropeanDST<p>There are many other, most likely better, functions to calculate if a given date/time is in European Daylight Saving Time. But the function below is simpler to understand because most calculations are done in-line. Only the "toEpoch" function is used from the "TimeLib.h" library.</p><p>This function calculates the epoch at 2AM of the last Sunday of March (start of EU DST) and the epoch at 2AM on the last Sunday of October (end of EU DST) and checks if the given date is in between (summertime) or not (wintertime).</p><div style="background-color: #272822; color: #f8f8f2; font-family: Consolas, "Courier New", monospace; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;"><div><span style="color: #f92672;">#include</span><span style="color: #f8f8f2;"> </span><span style="color: #e6db74;"><TimeLib.h></span></div><br /><div><span style="color: #66d9ef; font-style: italic;">void</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">setup</span><span style="color: #f8f8f2;">()</span></div><div><span style="color: #f8f8f2;">{</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">begin</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">74880</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">delay</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">1000</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">();</span></div><br /><div><span style="color: #88846f;"> //--- Begin of EU DST in 2021...</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(</span><span style="color: #a6e22e;">inDST</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">2021</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">3</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">28</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">59</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">59</span><span style="color: #f8f8f2;">));</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(</span><span style="color: #a6e22e;">inDST</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">2021</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">3</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">28</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">2</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">));</span></div><br /><div><span style="color: #88846f;"> //--- End of EU DST in 2021...</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(</span><span style="color: #a6e22e;">inDST</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">2021</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">10</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">59</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">59</span><span style="color: #f8f8f2;">));</span></div><div><span style="color: #f8f8f2;"> Serial.</span><span style="color: #a6e22e;">println</span><span style="color: #f8f8f2;">(</span><span style="color: #a6e22e;">inDST</span><span style="color: #f8f8f2;">(</span><span style="color: #ae81ff;">2021</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">10</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">2</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">));</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;">}</span></div><br /><div><span style="color: #66d9ef; font-style: italic;">void</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">loop</span><span style="color: #f8f8f2;">()</span></div><div><span style="color: #f8f8f2;">{</span></div><div><span style="color: #f8f8f2;">}</span></div><br /><div><span style="color: #f92672;">boolean</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">inDST</span><span style="color: #f8f8f2;">(</span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">, </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">, </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">d</span><span style="color: #f8f8f2;">, </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">h</span><span style="color: #f8f8f2;">, </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">m</span><span style="color: #f8f8f2;">, </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">s</span><span style="color: #f8f8f2;">)</span></div><div><span style="color: #f8f8f2;">{</span></div><br /><div><span style="color: #f8f8f2;"> boolean </span><span style="color: #f8f8f2;">isInDST</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">false</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">parsedDate</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">, </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">, </span><span style="color: #fd971f; font-style: italic;">d</span><span style="color: #f8f8f2;">, </span><span style="color: #fd971f; font-style: italic;">h</span><span style="color: #f8f8f2;">, </span><span style="color: #fd971f; font-style: italic;">m</span><span style="color: #f8f8f2;">, </span><span style="color: #fd971f; font-style: italic;">s</span><span style="color: #f8f8f2;">);</span><span style="color: #88846f;"> //--- Parsed date to epoch...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">firstDSTepoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">3</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e;">lastSundayOfMonth</span><span style="color: #f8f8f2;">(</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">3</span><span style="color: #f8f8f2;">) ,</span><span style="color: #ae81ff;">2</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">);</span><span style="color: #88846f;"> //--- Start of DST in epoch...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">lastDSTepoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">10</span><span style="color: #f8f8f2;">,</span><span style="color: #a6e22e;">lastSundayOfMonth</span><span style="color: #f8f8f2;">(</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">10</span><span style="color: #f8f8f2;">),</span><span style="color: #ae81ff;">2</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">);</span><span style="color: #88846f;"> //--- End of DST in epoch...</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">if</span><span style="color: #f8f8f2;"> (</span><span style="color: #f8f8f2;">parsedDate</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">>=</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">firstDSTepoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">&&</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">parsedDate</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;"><</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">lastDSTepoch</span><span style="color: #f8f8f2;">) </span></div><div><span style="color: #f8f8f2;"> {</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">isInDST</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">true</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> }</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">return</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">isInDST</span><span style="color: #f8f8f2;">;</span></div><br /><div><span style="color: #f8f8f2;">}</span></div><br /><br /><div><span style="color: #88846f;">//--- Calculate the day of the last Sunday of a given month...</span></div><div><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">lastSundayOfMonth</span><span style="color: #f8f8f2;">(</span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">, </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">)</span></div><div><span style="color: #f8f8f2;">{</span></div><div><span style="color: #88846f;"> //--- Take care of leap years...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[] </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> {</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">28</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">30</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">31</span><span style="color: #f8f8f2;">};</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">if</span><span style="color: #f8f8f2;"> (</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">%</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">4</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">==</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">&&</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">%</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">100</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">!=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">) {</span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">] </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">29</span><span style="color: #f8f8f2;">;}</span></div><br /><div><span style="color: #88846f;"> //--- Last day of month M to epoch...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">epoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">,</span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">,</span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[</span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f92672;">-</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">],</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">,</span><span style="color: #ae81ff;">0</span><span style="color: #f8f8f2;">);</span></div><br /><div><span style="color: #88846f;"> //--- Day of week, based on ISO8601...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">dayOfWeek</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> ((</span><span style="color: #f8f8f2;">epoch</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">/</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">86400</span><span style="color: #f8f8f2;">) </span><span style="color: #f92672;">+</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">4</span><span style="color: #f8f8f2;">) </span><span style="color: #f92672;">%</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">7</span><span style="color: #f8f8f2;">;</span></div><br /><div><span style="color: #88846f;"> //--- Calculate date of last Sunday...</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">return</span><span style="color: #f8f8f2;"> (</span><span style="color: #f8f8f2;">daysInMonth</span><span style="color: #f8f8f2;">[</span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f92672;">-</span><span style="color: #ae81ff;">1</span><span style="color: #f8f8f2;">] </span><span style="color: #f92672;">-</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">dayOfWeek</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;">}</span></div><br /><div><span style="color: #88846f;">//--- Converts a date to epoch (TimeLib.h)...</span></div><div><span style="color: #66d9ef; font-style: italic;">unsigned</span><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">long</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">toEpoch</span><span style="color: #f8f8f2;">(</span><span style="color: #66d9ef; font-style: italic;">int</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;"> , </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">d</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">h</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">m</span><span style="color: #f8f8f2;">, </span><span style="color: #a6e22e; text-decoration: underline;">byte</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">s</span><span style="color: #f8f8f2;">)</span></div><div><span style="color: #f8f8f2;">{</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #66d9ef; font-style: italic;">tmElements_t</span><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Year </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">y</span><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">-</span><span style="color: #f8f8f2;"> </span><span style="color: #ae81ff;">1970</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Month </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">M</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Day </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">d</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Hour </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">h</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Minute </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">m</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">.Second </span><span style="color: #f92672;">=</span><span style="color: #f8f8f2;"> </span><span style="color: #fd971f; font-style: italic;">s</span><span style="color: #f8f8f2;">;</span></div><div><span style="color: #f8f8f2;"> </span><span style="color: #f92672;">return</span><span style="color: #f8f8f2;"> </span><span style="color: #a6e22e;">makeTime</span><span style="color: #f8f8f2;">(</span><span style="color: #f8f8f2;">tmSet</span><span style="color: #f8f8f2;">);</span></div><div><span style="color: #f8f8f2;"> </span></div><div><span style="color: #f8f8f2;">}</span></div></div><p> The output shows the second before and after the change to/from DST in 2021:</p><p><span style="font-size: small;"><span style="font-family: courier;">07:16:31.652 -> <br />07:16:31.652 -> ets Jan 8 2013,rst cause:2, boot mode:(3,6)<br />07:16:31.652 -> <br />07:16:31.652 -> load 0x4010f000, len 3584, room 16 <br />07:16:31.652 -> tail 0<br />07:16:31.652 -> chksum 0xb0<br />07:16:31.652 -> csum 0xb0<br />07:16:31.652 -> v2843a5ac<br />07:16:31.652 -> ~ld<br />07:16:32.755 -> <br />07:16:32.755 -> 0<br />07:16:32.755 -> 1<br />07:16:32.755 -> 1<br />07:16:32.755 -> 0</span></span><br /><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-3496874740625924062021-03-29T07:35:00.008+02:002021-03-29T07:50:32.889+02:00A 40+ year old electronic design returns<p> </p><div class="separator" style="clear: both; text-align: center;"></div><br /><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgndHxSrJb5L9F4B88OHD9aG0M8am1tWrzHpk_-ag3nAJLVBc1UFBE-IkQuXR9ObQsJcgodPtrVlT4iqIuUjvGdJldd4C4V1TThME8g15SrmX-VbAxbPS3n1iYGOc8bBastlug-jI_vbg8/s701/%25232.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Elektor, July 1978" border="0" data-original-height="543" data-original-width="701" height="496" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgndHxSrJb5L9F4B88OHD9aG0M8am1tWrzHpk_-ag3nAJLVBc1UFBE-IkQuXR9ObQsJcgodPtrVlT4iqIuUjvGdJldd4C4V1TThME8g15SrmX-VbAxbPS3n1iYGOc8bBastlug-jI_vbg8/w640-h496/%25232.png" width="640" /> </a></div><div class="separator" style="clear: both; text-align: center;"> </div><div class="separator" style="clear: both; text-align: center;"> </div><div class="separator" style="clear: both; text-align: center;"> </div><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPI3_pMmwwpv_wP_YJatmVGOCZA6vkNgHkpaTGPiqBQVoVW2JzalQ_uq9DBkVt8Nn82nouS-BXJYum2MwZIC9z6z5w-nEXvX1P5VYUu8EH9p0LXQVMztgJj3FQwBIiANSmGWYtV3Wp-w/s805/%25231.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="523" data-original-width="805" height="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxPI3_pMmwwpv_wP_YJatmVGOCZA6vkNgHkpaTGPiqBQVoVW2JzalQ_uq9DBkVt8Nn82nouS-BXJYum2MwZIC9z6z5w-nEXvX1P5VYUu8EH9p0LXQVMztgJj3FQwBIiANSmGWYtV3Wp-w/w640-h416/%25231.png" width="640" /></a></div><br /><p><br /></p><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-80892380986746901872021-02-04T18:27:00.003+01:002021-02-04T21:20:09.657+01:00Arduino/ESP Split function<p>I created the next string "Split" function for Arduino/ESP boards. The performance is OK (25ms/Split)<br /><br /><br /><span style="font-family: courier;">void setup() {<br /> <br /> Serial.begin(115200);<br /> delay(1000);<br /><br /> Serial.println("*** Start...");<br /><br /> String s = "1612248989;Random string with SPACES;192.168.2.2;192.168.3.3;64;16;ABCDE2345678987BCEF";<br /> Serial.println(s);</span></p><p><span style="font-family: courier;"><br /> Serial.println(Split(s,";",2));<br /> <br /> Serial.println("*** End.");<br /> <br />}<br /><br />void loop() {<br /> // put your main code here, to run repeatedly:<br />}<br /><br /><br />String Split(String aString, String Delimiter, int Index) {<br /> <br /> String bString ="", fragment = "";<br /> int delimiterIndex, i = 0;<br /> <br /> bString = aString; <br /> <br /> do {<br /> i++;<br /> delimiterIndex = bString.indexOf(Delimiter);<br /> if (i == Index) {<br /> fragment = bString.substring(0,delimiterIndex);<br /> }<br /> bString = bString.substring(delimiterIndex+1);<br /> bString.trim(); <br /> } while (delimiterIndex != -1);<br /> return fragment;<br />} <br /></span></p><p><span style="font-family: courier;"></span>Result:<br /></p><p><span style="font-family: courier;">18:24:44.626 -> *** Start...<br />18:24:44.626 -> 1612248989;Random string with SPACES;192.168.2.2;192.168.3.3;64;16;ABCDE2345678987BCEF<br />18:24:44.626 -> Random string with SPACES<br />18:24:44.626 -> *** End.<br /> </span><br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-14393361856278548132021-01-27T08:10:00.003+01:002021-01-27T08:10:19.849+01:00Base85 encode/decode, embedded in Powershell<p> The next code embbeds Base85 C# encode/decode in Powershell.<br /></p><p> ---8< -----------------------------<br /></p><p><span style="font-family: courier;">$base85lib =<br />@"<br />using System;<br />using System.Text;<br />using System.IO;<br />using System.Linq;<br /><br />namespace BaseN { <br /> /// <summary><br /> /// C# implementation of ASCII85 encoding. <br /> /// Based on C code from http://www.stillhq.com/cgi-bin/cvsweb/ascii85/<br /> /// </summary><br /> /// <remarks><br /> /// Jeff Atwood<br /> /// http://www.codinghorror.com/blog/archives/000410.html<br /> /// Source code cloned from: https://github.com/coding-horror/ascii85<br /> /// Modified by Anton Krouglov: EncodeFile and DecodeFile static methods added; namespace added<br /> /// </remarks><br /> public class Ascii85<br /> {<br /> /// <summary><br /> /// Prefix mark that identifies an encoded ASCII85 string, traditionally '<~'<br /> /// </summary><br /> public string PrefixMark = "<~";<br /> /// <summary><br /> /// Suffix mark that identifies an encoded ASCII85 string, traditionally '~>'<br /> /// </summary><br /> public string SuffixMark = "~>";<br /> /// <summary><br /> /// Maximum line length for encoded ASCII85 string; <br /> /// set to zero for one unbroken line.<br /> /// </summary><br /> public int LineLength = 75;<br /> /// <summary><br /> /// Add the Prefix and Suffix marks when encoding, and enforce their presence for decoding<br /> /// </summary><br /> public bool EnforceMarks = true;<br /><br /> private const int _asciiOffset = 33;<br /> private readonly byte[] _encodedBlock = new byte[5];<br /> private readonly byte[] _decodedBlock = new byte[4];<br /> private uint _tuple = 0;<br /> private int _linePos = 0;<br /><br /> private readonly uint[] pow85 = { 85*85*85*85, 85*85*85, 85*85, 85, 1 };<br /><br /> /// <summary><br /> /// Decodes an ASCII85 encoded string into the original binary data<br /> /// </summary><br /> /// <param name="s">ASCII85 encoded string</param><br /> /// <returns>byte array of decoded binary data</returns><br /> public byte[] Decode(string s)<br /> {<br /> if (EnforceMarks)<br /> {<br /> if (!s.StartsWith(PrefixMark) | !s.EndsWith(SuffixMark)) <br /> {<br /> throw new Exception("ASCII85 encoded data should begin with '" + PrefixMark + <br /> "' and end with '" + SuffixMark + "'");<br /> }<br /> }<br /><br /> // strip prefix and suffix if present<br /> if (s.StartsWith(PrefixMark))<br /> {<br /> s = s.Substring(PrefixMark.Length);<br /> }<br /> if (s.EndsWith(SuffixMark))<br /> {<br /> s = s.Substring(0, s.Length - SuffixMark.Length);<br /> }<br /><br /> MemoryStream ms = new MemoryStream();<br /> int count = 0;<br /> bool processChar = false;<br /><br /> foreach (char c in s)<br /> {<br /> switch (c)<br /> {<br /> case 'z':<br /> if (count != 0)<br /> {<br /> throw new Exception("The character 'z' is invalid inside an ASCII85 block.");<br /> }<br /> _decodedBlock[0] = 0;<br /> _decodedBlock[1] = 0;<br /> _decodedBlock[2] = 0;<br /> _decodedBlock[3] = 0;<br /> ms.Write(_decodedBlock, 0, _decodedBlock.Length);<br /> processChar = false;<br /> break;<br /> case '\n': case '\r': case '\t': case '\0': case '\f': case '\b': <br /> processChar = false;<br /> break;<br /> default:<br /> if (c < '!' || c > 'u')<br /> {<br /> throw new Exception("Bad character '" + c + "' found. ASCII85 only allows characters '!' to 'u'.");<br /> }<br /> processChar = true;<br /> break;<br /> }<br /><br /> if (processChar)<br /> {<br /> _tuple += ((uint)(c - _asciiOffset) * pow85[count]);<br /> count++;<br /> if (count == _encodedBlock.Length)<br /> { <br /> DecodeBlock();<br /> ms.Write(_decodedBlock, 0, _decodedBlock.Length);<br /> _tuple = 0;<br /> count = 0;<br /> } <br /> }<br /> }<br /><br /> // if we have some bytes left over at the end..<br /> if (count != 0)<br /> {<br /> if (count == 1) <br /> {<br /> throw new Exception("The last block of ASCII85 data cannot be a single byte.");<br /> }<br /> count--;<br /> _tuple += pow85[count];<br /> DecodeBlock(count);<br /> for (int i = 0; i < count; i++)<br /> {<br /> ms.WriteByte(_decodedBlock[i]);<br /> }<br /> }<br /><br /> return ms.ToArray();<br /> }<br /><br /> /// <summary><br /> /// Encodes binary data into a plaintext ASCII85 format string<br /> /// </summary><br /> /// <param name="ba">binary data to encode</param><br /> /// <returns>ASCII85 encoded string</returns><br /> public string Encode(byte[] ba)<br /> {<br /> StringBuilder sb = new StringBuilder((int)(ba.Length * (_encodedBlock.Length/_decodedBlock.Length)));<br /> _linePos = 0;<br /><br /> if (EnforceMarks) <br /> {<br /> AppendString(sb, PrefixMark);<br /> }<br /><br /> int count = 0;<br /> _tuple = 0;<br /> foreach (byte b in ba)<br /> {<br /> if (count >= _decodedBlock.Length - 1)<br /> {<br /> _tuple |= b;<br /> if (_tuple == 0)<br /> {<br /> AppendChar(sb, 'z');<br /> }<br /> else<br /> {<br /> EncodeBlock(sb);<br /> }<br /> _tuple = 0;<br /> count = 0;<br /> }<br /> else<br /> {<br /> _tuple |= (uint)(b << (24 - (count * 8)));<br /> count++;<br /> }<br /> }<br /><br /> // if we have some bytes left over at the end..<br /> if (count > 0)<br /> {<br /> EncodeBlock(count + 1, sb);<br /> }<br /><br /> if (EnforceMarks) <br /> {<br /> AppendString(sb, SuffixMark); <br /> }<br /> return sb.ToString();<br /> }<br /><br /> private void EncodeBlock(StringBuilder sb)<br /> {<br /> EncodeBlock(_encodedBlock.Length, sb);<br /> }<br /><br /> private void EncodeBlock(int count, StringBuilder sb)<br /> {<br /> for (int i = _encodedBlock.Length - 1; i >= 0; i--)<br /> {<br /> _encodedBlock[i] = (byte)((_tuple % 85) + _asciiOffset);<br /> _tuple /= 85;<br /> }<br /><br /> for (int i = 0; i < count; i++)<br /> {<br /> char c = (char)_encodedBlock[i];<br /> AppendChar(sb, c);<br /> }<br /><br /> }<br /><br /> private void DecodeBlock()<br /> {<br /> DecodeBlock(_decodedBlock.Length);<br /> }<br /><br /> private void DecodeBlock(int bytes)<br /> {<br /> for (int i = 0; i < bytes; i++)<br /> {<br /> _decodedBlock[i] = (byte)(_tuple >> 24 - (i * 8)); <br /> }<br /> }<br /><br /> private void AppendString(StringBuilder sb, string s)<br /> {<br /> if (LineLength > 0 && (_linePos + s.Length > LineLength))<br /> {<br /> _linePos = 0;<br /> sb.Append('\n');<br /> }<br /> else<br /> {<br /> _linePos += s.Length;<br /> }<br /> sb.Append(s);<br /> }<br /><br /> private void AppendChar(StringBuilder sb, char c)<br /> {<br /> sb.Append(c);<br /> _linePos++;<br /> if (LineLength > 0 && (_linePos >= LineLength))<br /> {<br /> _linePos = 0;<br /> sb.Append('\n');<br /> }<br /> }<br /><br /> /// <summary><br /> /// Encodes file to base85<br /> /// </summary><br /> /// <param name="inFileName">path to source file</param><br /> /// <param name="outFileName">path to result file</param><br /> /// <param name="doReverse">reverse base85 straing; default - false</param><br /> public static void EncodeFile(string inFileName, string outFileName, bool doReverse = false)<br /> {<br /> var encoder = new Ascii85 { EnforceMarks = false, LineLength = 0 };<br /><br /> // read the file<br /> byte[] ba;<br /> using (var streamReader = new FileStream(inFileName, FileMode.Open))<br /> {<br /> ba = new byte[streamReader.Length];<br /> streamReader.Read(ba, 0, (int)streamReader.Length);<br /> streamReader.Close();<br /> }<br /><br /> // encode it<br /> var encodedString = encoder.Encode(ba);<br /> //Console.WriteLine("file encoded in string of length " + encodedString.Length);<br /><br /> var encodedBytes = Encoding.ASCII.GetBytes(encodedString);<br /> if (doReverse) encodedBytes = encodedBytes.AsEnumerable().Reverse().ToArray();<br /><br /> // write the file<br /> using (var streamWriter = new FileStream(outFileName, FileMode.OpenOrCreate))<br /> {<br /> streamWriter.Write(encodedBytes, 0, encodedBytes.Length);<br /> streamWriter.Close();<br /> }<br /> }<br /><br /><br /> /// <summary><br /> /// Decodes file from base85<br /> /// </summary><br /> /// <param name="inFileName">path to source file</param><br /> /// <param name="outFileName">path to result file</param><br /> /// <param name="doReverse">reverse base85 straing; default - false</param><br /> public static void DecodeFile(string inFileName, string outFileName, bool doReverse = false)<br /> {<br /> var encoder = new Ascii85 { EnforceMarks = false, LineLength = 0 };<br /><br /> // read the file<br /> byte[] ba;<br /> using (var streamReader = new FileStream(inFileName, FileMode.Open))<br /> {<br /> ba = new byte[streamReader.Length];<br /> streamReader.Read(ba, 0, (int)streamReader.Length);<br /> streamReader.Close();<br /> }<br /><br /> if (doReverse) ba = ba.AsEnumerable().Reverse().ToArray();<br /><br /> var encodedString = Encoding.ASCII.GetString(ba);<br /> <br /> // decode it<br /> var decoded = encoder.Decode(encodedString);<br /> //Console.WriteLine("decoded file length " + decoded.Length);<br /><br /> // write the file<br /> using (var streamWriter = new FileStream(outFileName, FileMode.OpenOrCreate))<br /> {<br /> streamWriter.Write(decoded, 0, decoded.Length);<br /> streamWriter.Close();<br /> }<br /> }<br /> }<br />}<br />"@<br /><br />$ErrorActionPreference = 'Stop'<br />Add-Type -TypeDefinition $base85lib<br />[BaseN.Ascii85]::EncodeFile('.\test.lnk', '.\test.lnk.base85')<br />[BaseN.Ascii85]::DecodeFile('.\test.lnk.base85', '.\test.lnk.result');</span><br /> </p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-78209089912142486762020-12-19T08:59:00.007+01:002020-12-23T13:22:38.563+01:00CCleaner update script<p>I am a longtime fan of CCleaner (former CrapCleaner). There is a "free" and a paid version. One difference between free and paid is an automated update of the application. In the newer versions there is an auto update in the free version, but that will show you nag screens.</p><p>The next Powershell script checks for a new version on the CCleaner website and when a newer version is available, it will download and install. You run the script manually or by Scheduled Task. <br /></p><p><br /><span style="font-size: small;"><span style="font-family: courier;">$ccleanserVersion = Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object DisplayName -eq CCleaner | Select -ExpandProperty "DisplayVersion"<br />write-host "*** Currently installed version: $ccleanserVersion"<br />$ver = $ccleanserVersion.replace(".","")<br /><br />$latestVersion = Invoke-WebRequest -UseBasicParsing "https://www.ccleaner.com/ccleaner/download/standard" | Select -ExpandProperty "RawContent"<br />$versionMatch = $latestVersion -Match "https://download.ccleaner.com/ccsetup$ver.exe"<br /><br />if (!$versionMatch) {<br /> write-host "*** Download and install new CCleaner app..."<br /><br /> $latestVersion = $latestVersion -Match "https://download.ccleaner.com/ccsetup\d{3}.exe"<br /> $url = $Matches[0] <br /> $intallerFile = "c:\temp\ccsetup.exe"<br /><br /> Import-Module BitsTransfer<br /> Start-BitsTransfer -Source $url -Destination $intallerFile<br /> <br /> write-Output "*** Installing CCleaner..."<br /> & "C:\Windows\system32\cmd.exe" "/c" "start" "/wait" "$intallerFile" "/S"<br /><br /> $ccleanserVersion = Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object DisplayName -eq CCleaner | Select -ExpandProperty "DisplayVersion"<br /> write-host "*** New version: $ccleanserVersion" <br /> <br />} <br /> ELSE <br />{<br /> write-Output "*** No newer version available."<br />}<br /></span></span></p><p>The update looks like this:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2BsUSTsxHTPnH4IadY-85Qz4N6uwWK40O7BcvBlzIjTu3AvRkZohfrZwUIi_A0Ilyk9l0GF0mDItQDzjlDPD7gtRslsF7ve5pz8W0_vG1QEYwd8lMdAOprQbBnlePYdoC3nQSLM8VgPs/s598/2020_12_19_09_04_01_cmd.exe_2_.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="106" data-original-width="598" height="71" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2BsUSTsxHTPnH4IadY-85Qz4N6uwWK40O7BcvBlzIjTu3AvRkZohfrZwUIi_A0Ilyk9l0GF0mDItQDzjlDPD7gtRslsF7ve5pz8W0_vG1QEYwd8lMdAOprQbBnlePYdoC3nQSLM8VgPs/w400-h71/2020_12_19_09_04_01_cmd.exe_2_.png" width="400" /></a></div><br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-2311866947029441432020-12-02T11:14:00.004+01:002021-04-07T08:18:17.613+02:00Tweakers paywall configuration<p>Update: 7-Apr-2021 b<br /></p><p>Maybe you are <span><a href="https://gathering.tweakers.net/forum/list_messages/2033846" target="_blank">aware</a> that <a href="https://tweakers.net/" target="_blank">Tweakers</a> will deploy a paywall for "Premium" articles. For those who are not interested in T.net links to paywalled articles, you may configure this rule in your favorite content filter:</span> <br /></p><p><span style="font-family: courier;">!Tweakers Plus articles<br />tweakers.net##.plus<br />tweakers.net##tr:has(td:has(div.plus))<br /><br />! Email subscription option on the front page, in the news overview<br />tweakers.net##.top.frontpage.mainColumn > .darkBlock<br /><br />! Job offers on the front page<br />tweakers.net##.bottom.frontpage.secondColumn > .darkBlock<br /><br />! Advertisements in news articles<br />tweakers.net##div#layout div#contentArea > div.wrap > div:nth-child(1):has(img[referrerpolicy="unsafe-url"])<br />tweakers.net##div#top > div#entity > div:nth-child(1) > div:nth-child(1)<br /><br />! Requests for feedback in news articles<br />tweakers.net##.usabilla-survey.usabilla-trigger<br /><br />! Delayed advertisements loaded through JavaScript<br />@@||tweakers.net^$ghide</span> <br /></p><p>This will result in showing "public" links only. Make sure you do not suppress adds, because that is not allowed!<br /><span></span> </p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-48186793321317742222020-10-31T10:27:00.003+01:002020-10-31T10:32:38.123+01:00Convert all FLAC files in a folder to MP3s<p>The next script takes a folder path as imput, checks all the FLAC files in that folder, and creates MP3 files for each FLAC file found. There is only one prerequisite: <a href="https://ffmpeg.org/" target="_blank">FFMPEG</a> should be installed. Save the script as "ConvertFlacToMp3.bat"<br /></p><p>Usage:</p><p><span style="font-family: courier;">C:\> <b>ConvertFlacToMp3.bat {path to FLAC files}</b></span></p><p>or:</p><p>Create a shortcut to this script on the desktop and you can drag folders (from Windows Explorer) to the icon.</p><p><br /></p><p>There are couple of tricks in the script:</p><p>- Normalization of the passed folder (e.g. removal of qoutes, required for drag-and-drop)</p><p>- Enumeration of FLAC files in the folder <br /></p><p>- Filename contruct of the MP3 filename </p><p><br /></p><p>You play around with the script and find out yourself. One improvement could be that the MP3 files are stored in a (new) seperate folder. </p><p> </p><p> <span style="font-family: courier;">---8< ---------------------------------------------------------------<br /></span></p><p><span style="font-size: small;"><span style="font-family: courier;">@echo off<br /><br />setlocal ENABLEDELAYEDEXPANSION<br /><br />echo.<br />echo *** Usage: <br />echo C:\^> %0 {path to folder with *.FLAC files}<br />echo Or drag the folder with FLAC files to a shortcut of this script.<br /><br />if %1.==. goto :EOF<br />if not exist %1 goto :EOF<br /><br />set cmdParam=%1<br />set firstChar=%cmdParam:~0,1%<br />if ^%firstChar% EQU ^" (<br /> for /f "tokens=*" %%i in (%1) do set sourceFolder=%%~i<br />) ELSE (<br /> set sourceFolder=%1<br />) <br />set SRC=!sourceFolder!<br /><br />set t=%time%<br />set ffmpeg=c:\scripts\ffmpeg\bin\ffmpeg.exe<br /><br />echo.<br />echo *** Processing folder: "%SRC%"...<br /><br />for %%i in ("%SRC%\*.flac") do (<br /> <br /> set fPath=%%~dpi<br /> set fName=%%~ni<br /> <br /> for %%j in ("!fName!") do set nam=!fPath!!fName!.mp3<br /> <br /> echo *** %%i<br /> %ffmpeg% -y -loglevel panic -i "%%i" -vsync 0 -codec:a libmp3lame -qscale:a 2 "!nam!"<br /><br />)<br /><br />echo *** Start: %t%<br />echo *** End : %time%<br /><br />start /separate explorer "%SRC%"<br /><br />ping -n 60 localhost >nul</span></span></p><p><span style="font-family: courier;"><span style="font-family: courier;">---8< ---------------------------------------------------------------</span> </span><br />
<span></span></p><p> </p><p>Script invocation:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjckQUXlKIeBp91hux24AEP-07lYAOylgurJOyM127LV7vqiLMIFsxt4gKjl-kpTeuGSiakm1uw65CdxW9rWfSrVY3fXR-rZzECEHwxoc7aaTR-Lh_nxP52YwLerKgaEEq9vg4bGvorWFs/s1118/2020_10_31_09_01_36_cmd.exe_2_folderFLACtoMP3.bat_n_flac_Folk_Bruce_Daigrepont_1994_Petit_C.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="445" data-original-width="1118" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjckQUXlKIeBp91hux24AEP-07lYAOylgurJOyM127LV7vqiLMIFsxt4gKjl-kpTeuGSiakm1uw65CdxW9rWfSrVY3fXR-rZzECEHwxoc7aaTR-Lh_nxP52YwLerKgaEEq9vg4bGvorWFs/w640-h254/2020_10_31_09_01_36_cmd.exe_2_folderFLACtoMP3.bat_n_flac_Folk_Bruce_Daigrepont_1994_Petit_C.png" width="640" /></a></div><br /> After the script finishes, Explorer shows the folder with FLAC and MP3 files:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVSqHrFuzLJmdKKAfwjUb8Y8fZ2KmazkAY1DkkapAEBgz0JyLBMVLkmuNX1anG2R8rhTHcqNwW3XhmOTG38NRcaygPUiiU6Volq7jjsu0aP6kiEyBXAekgGYHcNcTPXIiiuIay1RyOkT0/s875/destinationFolder.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="762" data-original-width="875" height="558" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVSqHrFuzLJmdKKAfwjUb8Y8fZ2KmazkAY1DkkapAEBgz0JyLBMVLkmuNX1anG2R8rhTHcqNwW3XhmOTG38NRcaygPUiiU6Volq7jjsu0aP6kiEyBXAekgGYHcNcTPXIiiuIay1RyOkT0/w640-h558/destinationFolder.png" width="640" /></a></div><br /><p><br /></p><p> </p><p> </p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-36684382297226069822020-03-08T08:34:00.000+01:002020-04-12T20:05:05.947+02:00Trust comes by foot and goes by horseIn <a href="https://beaukey.blogspot.com/2020/02/hmailserver-geolocation-blacklist.html" target="_blank">this post</a>, I showed a geolocation lookup method for hMailserver, using a free geolocation webservice. At some point in time this webservice arrived in the DNSBL blacklist, and the geolocation lookups failed.<br />
<br />
I do not have a clue why this service was placed on the blacklist, but during the time that it worked, I noticed that some malicious IP addresses were mapped to NL/Amsterdam instead of the country/locations that other geolocation services provide (so the trust in de geolocation webservice is lost here).<br />
<br />
There are two things that we can do: place the existing geolocation service on the whitelist or use a local geolocation database. Since IPv4 addresses/subnets will not change that fast (anymore), it is a feasable solution to use a local database for lookups. So here we go!<br />
<br />
You need to download the database itself and a (command line) tool to query the database. Create an account with Maxmind (<a href="https://www.maxmind.com/en/home">https://www.maxmind.com/en/home</a>) and download <span style="font-family: "courier new" , "courier" , monospace;">GeoLite2-Country.mmdb</span> and <span style="font-family: "courier new" , "courier" , monospace;">mmdbinspect.exe</span><br />
<br />
This is the modified geolookup function:<br />
<br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;"> function IPtoGeoLocal(IPaddr)<br /><br /> const geoDbPath = "{path to}\GeoLite2-Country.mmdb"<br /> const geoLookupExe = "</span></span><span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">{path to}</span></span>\mmdbinspect.exe"<br /> const tempPath = "c:\temp"<br /> const searchString = "iso_code"<br /> <br /> dim wsh, fso<br /> set wsh = createobject("wscript.shell")<br /> set fso = createobject("scripting.filesystemobject")<br /> <br /> '--- Create a temp file with a unique filename to prevent conflicts...<br /> tempFile = tempPath & "\" & IPaddr & ".dat"<br /> geoLoc = "XX"<br /><br /> '--- Invoke Maxmind command line tool, do a lookup and pipe the result in tempFile...<br /> runString = "cmd /c " & geoLookupExe & " --db " & geoDbPath & " " & IPaddr & " | find """ & searchString & """ > " & tempFile<br /> wsh.run runString,0,true<br /> <br /> '--- Read one line from tempFile...<br /> set f = fso.openTextFile(tempFile) : s = f.readLine : f.Close<br /> fso.deleteFile tempFile, true<br /> <br /> t = split(s, chr(34))<br /> if Instr(s, searchString) > 0 then IPtoGeoLocal = t(3) <br /> <br /> end function</span></span><span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;"></span></span><br />
<br />
When the function is called:<br />
<br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">wscript.echo IPtoGeoLocal("8.8.8.8")</span></span><br />
<br />
You will get the two character ISO3166 code back ("US") or "XX" when the IP address is not found in the database. <br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;"></span></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-20053696342696523002020-03-03T19:00:00.003+01:002020-07-22T14:12:14.293+02:00Capacitor Plague, deel 3Vervolg op <a href="https://beaukey.blogspot.com/2015/11/capacitor-plague.html" target="_blank">deel 1</a> en <a href="https://beaukey.blogspot.com/2018/01/capacitor-plague-deel-2.html" target="_blank">deel 2</a>. <br />
<br />
Op mijn studeerkamer hangt al een jaar of 9 een LG TV. Die begon kuren te vertonen. Als 'ie aan werd gezet met de afstandsbediening hoorde je het relais schakelen, maar de TV ging niet aan. Alleen nadat de voedingstekker ongeveer 15 seconden uit de wandcontactdoos gehaald was, en het lichtje op de voorkant van de TV gedoofd, kon de TV weer aangezet worden.<br />
<br />
Een mogelijk geval van "<a href="https://en.wikipedia.org/wiki/Brownout_(electricity)" target="_blank">brownout</a>". De electronica bestaat uit een voedingsprint en een TV print. Op de voedingsprint zit een 5VDC voeding met twee elco's die bol stonden en electroliet lekte:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitgY32-ZPF9uY93c_lkOxIqqfFDHkVWB5KwC6w5WEUCf4gxJoeBBkycaHc_a9myNcnoznJ4UNvjWbLKY5zuJeqGQ9BlriIsNoA2jUpq2P_KrIpHSd-IgbDFVM-0ItsBu_IjT1W1RHUtqo/s1600/1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="879" data-original-width="1123" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitgY32-ZPF9uY93c_lkOxIqqfFDHkVWB5KwC6w5WEUCf4gxJoeBBkycaHc_a9myNcnoznJ4UNvjWbLKY5zuJeqGQ9BlriIsNoA2jUpq2P_KrIpHSd-IgbDFVM-0ItsBu_IjT1W1RHUtqo/s400/1.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Twee vervangende elco's gesoldeerd en de TV werkte weer als een zonnetje:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDOHUuc_QY5cXZ46CpUdR3dYoBJsSxqRNBellQUmgWNJoqgIBRFH6GcUHjF_CoH-YwCvJreoh335XFluwVbvPEb_g1yevcB3wjRhED3Ft0gE_vt-uIOwCQRFOBi3qx-dnajQGL8Gstmos/s1600/IMG_20200425_125643_3.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1174" data-original-width="1136" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDOHUuc_QY5cXZ46CpUdR3dYoBJsSxqRNBellQUmgWNJoqgIBRFH6GcUHjF_CoH-YwCvJreoh335XFluwVbvPEb_g1yevcB3wjRhED3Ft0gE_vt-uIOwCQRFOBi3qx-dnajQGL8Gstmos/s400/IMG_20200425_125643_3.jpg" width="386" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Wat opviel was dat de twee originele elco's (merk: Sam Young, type: NXT, 1500uF, 6.3V) de enige van dit merk en type waren op de gehele voedingsprint. Het <a href="https://www.samyoung.co.kr/download/new/NXB.pdf" target="_blank">specificatieblad</a> van deze serie elco laat ook zien dat 'ie zeer slechte specificaties heeft. Terwijl de overige elco's van betere kwaliteit zijn. Dit doet sterk vermoeden dat LG hier bezig is geweest met <a href="https://nl.wikipedia.org/wiki/Geplande_veroudering" target="_blank">geplande veroudering</a>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Hoe dan ook, dit is toch de laatste LG TV vanwege dit akkefietje en een aantal andere zaken met LG die niet in de haak waren. <br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">P.S. ik ben niet de enige met precies hetzelfde probleem in een LG TV: <a href="https://www.youtube.com/watch?v=eZna3Fj3O4Q&feature=youtu.be">https://www.youtube.com/watch?v=eZna3Fj3O4Q&feature=youtu.be</a> <br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-51110274619719399792020-02-08T09:06:00.000+01:002020-03-09T08:23:07.386+01:00hMailserver: reject emails that have long subjectsSome people paste long strings in the Subject field of emails. The maximum number of characters of the Subject field is 998 characters but can be tweaked to more. It does not make sense to have more than ~160 characters so lets reject messages that have long Subject fields.<br />
<br />
In hMailserver we can reject those emails very simply. In the <span style="font-family: "courier new" , "courier" , monospace;">OnSMTPData</span> sub the Subject field is available and we can measure the amount of characters (length):<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Sub OnSMTPData(oClient, oMessage)</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /> subjectLength = len(oMessage.Subject)</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /> if subjectLength > 160 then<br /> Eventlog.Write("OnAcceptMessage: email rejected because of Subject = " & subjectLength & " characters (>160). From: " & oMessage.FromAddress)<br /> result.value=1<br /> end if</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">end sub</span><br />
<br />
When a subject field of an email is longer than 160 characters, the event will be logged in the hMailserver logfile and the email will be rejected.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">4144 "2020-02-08 09:02:37.138" "OnAcceptMessage: email rejected because of Subject = 236 characters (>160). From: email@sender.com" </span><br />
<br />
Also, the sender gets an email that the email is rejected:<br />
<br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="371">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<br />
<div class="MsoNormal" style="margin-left: 1.0in; mso-layout-grid-align: none; tab-stops: 1.0in; text-autospace: none; text-indent: -1.0in;">
<span style="font-family: "consolas"; font-size: 10.5pt;">Your message did not reach some
or all of the intended recipients.</span></div>
<div class="MsoNormal" style="margin-left: 1.0in; mso-layout-grid-align: none; tab-stops: 1.0in; text-autospace: none; text-indent: -1.0in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.0in; mso-layout-grid-align: none; tab-stops: 1.0in; text-autospace: none; text-indent: -1.0in;">
<span style="font-family: "consolas"; font-size: 10.5pt;"><span style="mso-spacerun: yes;"> </span>Subject:<span style="mso-tab-count: 1;"> </span>RE:
1234567890RE: 1234567890RE: 1234567890RE: 1234567890RE: 1234567890RE:
1234567890RE: 1234567890RE: 1234567890RE: 12345678901234567890</span></div>
<div class="MsoNormal" style="margin-left: 1.0in; mso-layout-grid-align: none; tab-stops: 1.0in; text-autospace: none; text-indent: -1.0in;">
<span style="font-family: "consolas"; font-size: 10.5pt;"><span style="mso-spacerun: yes;"> </span>Sent:<span style="mso-tab-count: 1;"> </span>2/8/2020
9:03 AM</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 10.5pt;">The
following recipient(s) cannot be reached:</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 10.5pt;"><span style="mso-spacerun: yes;"> Email Sender</span> (email@sender.com<a href="mailto:bk@kiljan.com"></a>) on 2/8/2020 9:03 AM</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "consolas"; font-size: 10.5pt;"><span style="mso-spacerun: yes;"> </span>554 Rejected</span></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-90474649177662923962020-02-08T08:42:00.002+01:002020-02-09T10:14:28.742+01:00hMailserver geolocation blacklistThe purpose of the next scripts is twofold:<br />
<ol>
<li>Block email sessions of email servers that are on the blacklist</li>
<li>Automatically create a blocking firewall rule in case of bad behaving or misconfigured remote email servers</li>
</ol>
Let start with requirement #1: We use here the free gelocation service (max 20 lookups per minute) of <a href="https://extreme-ip-lookup.com/">https://extreme-ip-lookup.com</a>. They provide different IP-to-Geo lookup methods. Here we use the JSONP method:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisUR89XhuHbmmGXdUUDHDBfeJKvQKW2W75QT7ejQpsno9qbctYL3K68RQ4zPUtFbGFdPBjwMi5tbrPBOdpohyMjG8KQ1fyapx-YZipP1f8-zk_MCpdMhCdwfY2v4tepO_JsHrFAQO3B2g/s1600/A1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="367" data-original-width="723" height="323" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisUR89XhuHbmmGXdUUDHDBfeJKvQKW2W75QT7ejQpsno9qbctYL3K68RQ4zPUtFbGFdPBjwMi5tbrPBOdpohyMjG8KQ1fyapx-YZipP1f8-zk_MCpdMhCdwfY2v4tepO_JsHrFAQO3B2g/s640/A1.png" width="640" /></a></div>
The IP address of the remote email server is available in the OnClientConnect subroutine of the hMailserver EventHandler.vbs script. The code to obtain the remote emailserver's IP address is this:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Sub OnClientConnect(oClient)<br /><br /> Const BlackList=" AR BG BO BR CC CM CO GA IN IQ IR KE KZ MA ME MX RO RO RU TH TH TK TW UA VN "<br /> <br /> geoLocation = <b><span style="color: blue;">IPtoGeo</span></b>(oClient.ipaddress)</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /> if len(geoLocation) = 2 and geoLocation <> "XX" then <br /> if Instr(Blacklist, geoLocation) > 0 then <br /> Eventlog.Write("[Blacklist] OnClientConnect: " & oClient.ipaddress & " - " & geoLocation & " is in the Blacklist and the session is disconnected.")<br /> <br /> '--- Reject message...<br /> Result.Value = 1 <br /> end if<br /> <br /> end if <br /><br />End Sub</span><br />
<br />
We use a seperate function (IPtoGeo) to map the IP address to a countrycode. The function IPtoGeo looks like this:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">function <b><span style="color: blue;">IPtoGeo</span></b>(IPaddr)<br /><br /> Const countryString = """countryCode"".*" <br /> <br /> geoLocation = "XX"<br /> <br /> if Instr(IPaddr,"192.168.") <> 1 and Instr(IPaddr,"10.") <> 1 and Instr(IPaddr,"127.") <> 1 then <br /> <br /> lookupGeolocation = "https://extreme-ip-lookup.com/json/" & IPaddr & "?callback=getIP"<br /> <br /> Set objHTTP = CreateObject("Msxml2.XMLHTTP")<br /> objHTTP.open "GET", lookupGeolocation, False<br /> objHTTP.send<br /> returnString = Cstr(objHTTP.responseText)<br /><br /> set objRegexp = new RegExp<br /> objRegexp.pattern = countryString<br /> objRegexp.ignoreCase = true<br /> objRegexp.global = false<br /> set matches = objRegexp.execute(returnString)<br /> <br /> if matches.count = 1 then<br /> s = matches(0).value<br /> t = split(s,":")<br /> u = split(t(1), chr(34))<br /> geoLocation = u(1)<br /> end if<br /> <br /> end if<br /><br /> IPtoGeo = geoLocation<br /><br />end function</span><br />
<br />
When an IP address is mapped to a country code that is the blacklist (<span style="font-family: "courier new" , "courier" , monospace;">Const BlackList</span>), the email session is disconnected (<span style="font-family: "courier new" , "courier" , monospace;">Result.Value = 1</span>) and the hMailserver eventlog (<span style="font-family: "courier new" , "courier" , monospace;">hmailserver_events.log</span>) shows:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">4376 "2020-02-08 03:36:46.319" "[Blacklist] OnClientConnect: 79.124.62.14 - BG is in the Blacklist and the session is disconnected."</span><br />
<br />
It happens somtimes that remote email servers start retrying or even hammering the hMailserver after a rejected session. E.g. I found a remote email server continuously trying to connect twice per minute. We want to block those connections in an earlier stage.<br />
<br />
So for requirement #2 we use a small Powershell script to create a firewall block rule. We use Powershell because the regular expressions in VBscript are slow and Powershell provides the -Match method and an easy method to set a firewall rule.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$maxAttempts = 10<br />$logFile = get-content "d:\hMailserver\logs\hmailserver_events.log"<br />$today = (get-date).ToString("yyyy-MM-dd")<br />$searchBase = ($logFile -match $today)<br /><br />$ip = $args[0]<br /><br />if ($ip -match "(?:[0-9]{1,3}\.){3}[0-9]{1,3}")<br />{<br /> $hammerCount = $searchBase -match $ip<br /> if ($hammerCount.count -GT </span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">$maxAttempts</span>) {<br /> $ruleDate = (get-date).toString("yyyy-MM-dd")<br /> $blockName = "hammerBlock ($IP, $ruleDate)"<br /> write-host "*** Setting rule: $blockName"<br /> $ruleExists = Get-NetFirewallRule -DisplayName $blockName -erroraction SilentlyContinue<br /> if ($ruleExists) {<br /> Remove-NetFirewallRule -DisplayName $blockName<br /> }<br /> New-NetFirewallRule -DisplayName $blockName -Direction Inbound -Action Block -RemoteAddress $IP | out-null<br /> }<br />} </span><br />
<br />
The powershell script (<span style="font-family: "courier new" , "courier" , monospace;">hammerBlock.ps1</span>) is called in the <span style="font-family: "courier new" , "courier" , monospace;">OnClientConnect </span>sub:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Sub OnClientConnect(oClient)<br /><br /><b> <span style="color: #38761d;">dim wsh</span></b><br /><br /> Const BlackList=" AR BG BO BR CC CM CO GA IN IQ IR KE KZ MA ME MX RO RO RU TH TH TK TW UA VN "<br /><br /><b> <span style="color: #38761d;">set wsh = CreateObject("wscript.shell")</span></b><br /> <br /> geoLocation = IPtoGeo(oClient.ipaddress)<br /> if len(geoLocation) = 2 and geoLocation <> "XX" then <br /> if Instr(Blacklist,geoLocation) > 0 then <br /> Eventlog.Write("[Blacklist] OnClientConnect: " & oClient.ipaddress & " - " & geoLocation & " is in the Blacklist and the session is disconnected.")<br /> <br /><span style="color: #38761d;"><b> '--- Run the Firewall block script from here...<br /> runString = "powershell -file ""c:\scripts\hammerBlock.ps1"" " & oClient.ipaddress<br /> wsh.run runString,0,true</b></span><br /> <br /> '--- Disconnect...<br /> Result.Value = 1 <br /> end if<br /> <br /> end if <br /><br />End Sub</span><br />
<br />
When a remote email server, that is in the blocklist, tries to connect more than 10 times on one day, a firewall block rule is created. The rule looks like this:<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv160euxSCbrHut_POXC6EM6r4NdOJCNrqjAOgfTK2yJjaWL8uwuy35DRpGIrm7csy2bdMZtNXj6zQ9_cnHiWFas0cPtWPwJAlscrLN2s2pdjtgCe0Wpo1yJSS6gNcKmhpjyd5lrm0l6A/s1600/A2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="291" data-original-width="778" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv160euxSCbrHut_POXC6EM6r4NdOJCNrqjAOgfTK2yJjaWL8uwuy35DRpGIrm7csy2bdMZtNXj6zQ9_cnHiWFas0cPtWPwJAlscrLN2s2pdjtgCe0Wpo1yJSS6gNcKmhpjyd5lrm0l6A/s640/A2.png" width="640" /></a></div>
<br />
I know that there are many more methods to block sessions based on geolocation. Most of them are quite hard to configure and maintain. With the scripts above, all work is executed in the hMailserver ecosystem. This also allows easy management and migration to other hMailserver instancesor adapt the scripts here for different purposes.<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5619440613838707895.post-33381790271000073142020-01-17T16:13:00.000+01:002020-01-18T08:26:03.680+01:00XS4ALL IPTV en pfSense, updateDe beeldschermafdruk van IGMP Proxy instellingen was weggevallen in de <a href="https://beaukey.blogspot.com/2019/03/xs4all-kpn-iptv-met-pfsense.html" target="_blank">originele post</a>. Stel IPTV_BRIDGE in naar je eigen IPTV subnet.<br />
<br />
<img alt="" height="222" src="data:image/png;base64,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REREREREVPQYPhMRERERERERERFR0WP4TERERERERERERERFj+EzERERERERERERERU9hs9EREREREREREREVPQYPhMRERERERERERFR0WP4TERERERERERERERFj+EzERERERERERERERU9hs9EREREREREREREVPQYPhMRERERERERERFR0WP4TERERERERERERERFj+EzERERERERERERERU9hs9EREREREREREREVPQYPhMRERERERERERFR0WP4TERERERERERERERFj+EzERERERERERERERU9hs9EREREREREREREVPQYPhMRERERERERERFR0WP4TERERERERERERERFj+EzERERERERERERERU9hs9EREREREREREREVPQYPhPlUlutDMOQYcxQ4/kiHG6CZF6Wwo3rrNuqtq1IhyMiIiIiIiIiIlcMn2nidb5RM7IMPYs+KHyIh8+F/jev4XO223RGo4p+dT7o4bN1GWek3TGGdeH1TVo4rURBw5BhBFVSPkcrmtvVF0s9K+b1EVzaqqjPScXaaq3jqpV9ts83zvC8bkPh6Vq4KaKLMZ8jJCIiIiIiIiIqIIbPNPFi+PzAupetlwsZPk9Z3qRIJJLucKfvsLWgxsXwuV9ttWEZRlDlv1qtxr0RRSI7tWlhpUKGoXBtm/pdZ8W+j89Vc3emE4qqdWnQOlzq8HmKljc5r9u9alzxmEKGoeCsRnUygCYiIiIiIiKiIsbwmSZejuHz9C0ndOnSpTRXh4t8mg/58DnfIXShWz6nbxV8HxsHw+do61IFDUMztnXIfZeNqbNxloJGUEtbk2P3tlpDRjCooGFobqbpc3ez5hqGgsGgx/DZ637pfVpERERERERERPcaw2eaeDmGz37DysRWojMadCiyRnPCIXPJgpJpWrKrU86NPPtPNWvFnHKVBO2lCOZozesXkgNBx1B5855GLakMJQ8XuZg8rgzD51hfuxqXTFc4lOH4x2n5Dp0jkYhGRkby/90ch8+JAeqpU2pcMs26vUKqXNKoU85NhBVTX3uzVswJK2SYhwnPWaOIc20Je6i8J+W4Fr6sg30eh3MNn4d14fWU+1TjKddWytkv42XtWmDICNaqzWuL41hE1YYhozqSuH+11RoyZqzV2rmGjKlb1eHxax1bp8ow5mrt2hk5Dp8lRVtUZRgyWNiaiIiI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RERERY/hMxEREREREREREREVPYbPRERERERERERERFT0GD4TERERERERERERUdFj+ExERERERERERERERY/hMxEREREREREREREVPYbPRERERERERERERFT0GD4TERERERERERERUdFj+ExERERERERERERERe+eh88AAAAAAAAAAHgpePh8/fp1Xbt2TV999ZUGBgbU39+vL7/8Ul988YU+//xzAAAAAAAAAMAk98UXX+jLL79Uf3+/BgYG9NVXX+natWu6fv164cPnwcFBXbt2LW0AbQ+hnb744gsAAAAAAAAAwASXOvu1Z8LOwfO1a9c0ODhY+PA5Go0mtn6+du2arl69qq+++ioxiHayzwAAAAAAAAAAYOJKnf3aM+GrV68mZsXXr19XNBotfPh848YNRaNRDQ4OuobQ9iAaAAAAAAAAADC5OefC169f1+DgoKLRqG7cuFH48PnWrVu6efNm2hDayXnCAAAAAAAAAIDJIXUW7Bw637x5U7du3Sp8+Hz79m3XANoWjUYBAAAAAAAAAA8J53zYHjzfvn278OHznTt3dPv27cQQ2h5EAwAAAAAAAAAeLvaM2J4Z37lzp/Dh89DQkIaGhnTnzh3XIBoAAAAAAAAA8PCxZ8X27Ljg4fPw8HDiSFIH0QAAAAAAAACAh0fqrHh4ePjehs9eUk8EAAAAAAAAADB5ZZoVFzx8/vrrr9NkOhEAAAAAAAAAwOTlNS8u6vAZAAAAAAAAAICvv76H4TODaAAAAAAAAACAU7ZZct7DZwAAAAAAAAAAsmH4DAAAAAAAAAAoOobPAAAAAAAAAICiY/gMAAAAAAAAACg6hs8AAAAAAAAAgKJj+AwAAAAAAAAAKDqGzwAAAAAAAACAomP4DAAAAAAAAAAoOobPAHKy/Ui3/rnugH62PKKfLfszbP+6Xz9fe0ivnbg05rcRAAAAAADAeMLwGUBWs195T//47H79nzXt+t9qO/TjlR/D8g/Pfaifrjilf3x2v2a/8t6Y31YAAAAAAADjBcNnAL62H+nWPz67Xz957qMxH/SOZz957iP947P7tf1I95jfZgAAAAAAAOMBw2cAvn6+9pB+uuLUmA93J4Kfrjiln689NOa3GQAAAAAAwHjA8BmAr5/96379w3MfjvlgdyL4yXMf6WfP7hvz2wwAAAAAAGA8YPgMwNfPlv15zIe6E8nP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2+jgoDmodQy1/QbCE2L4XLZHf7fWzshrzefqYxowF3rWlb/3WNe319bTpsRSG6Oj5pbj1pbkY32nBgAAAAAAADD2Js7wuWy+Dlyx9743rEuHXtCv7OUoHvmVXvhLl+x5bC7D5+QQ1izWtTOxhe/EHz5XqOmCtevD2IBOvfiIdT3V6VCf9e8jF9Tk2oLccf1Gz2id4/9HB46p2ut8PHlA9moo5uw5t50sAgAAAAAAAJj8JtDwuUxl81/RB9fuyreRL3Vso3uLXs/hs2PHg9IdfVDvcfgJO3wuU1nFRp0ZdOw6MBZLrImt0Vs63/Sk6/BP7vm7taXziC40WddfYvmOmHr3z/c4Hcda3CnXIQAAAAAAAICH28QaPpeVqazi1/rdofMauDniGKbG9PXNAX3S/qqWpe2cL9PwuUwVLT3mchHX2l1b9k6K4XNZmcoqarT//IBujtxNXE+3B84rUvdIyuG2qfOOdZArBzQ/8TPHFtQjPWrx2Pngk/b0mSU3AAAAAAAAADiMs+EzJpYK7eyKWbP49J0XAgAAAAAAAHh4MXxGgSo0a+t7Mlf2uKb26rE+PwAAAAAAAADGE4bPyF9iLWhrRY6/79GTY32eAAAAAAAAAIwrDJ+Rv5UndG3UXEM6enG/airGwXkCAAAAAAAAMK4wfAYAAAAAAAAAFB3DZwAAAAAAAABA0TF8BgAAAAAAAAAUHcNnAAAAAAAAAEDRMXwGAAAAAAAAABQdw2cAAAAAAAAAQNHd8/AZAAAAAAAAAAAv9zR8JiIiIiIiIiIiIiJKjeEzERERERERERERERU9hs9EREREREREREREVPQYPhMRERERERERERFR0WP4TERERERERERERERFj+EzERERERERERERERU9hs9EREREREREREREVPQYPhMRERERERERERFR0WP4TERERERERERERERFj+EzERERERERERERERU9hs9EREREREREREREVPQYPhMR0eSrrVaGYcgwZqjx/FifGSIiIqKJV/+pZm2s26jmU/3FOkI1b6zTxuZTKtIxEhEVpdjFiF6uq9PLkYuKjfWZmYTdx+Fzm2oNw3zzP7Vep1NvvcRgwFBt2/28iEQToPONmmE/XrLg8UKTq241z7Xv3wu063L6IaItVYn7/9StHbkdLcNnIiIiGjc53hsnhBSevlCb9rynvnE56TivxhnWeQ2u0sFiHGPjDOuyB7WqGEdIRA9RHdo61XpOKl2rI0V+3myrtZ+bZ2l7V3GPmx7U8NkwNCP13T/DZ6JkDJ/pIe7yrgWJ+3dVSzTlp1G1Lg3mP0hm+ExERETjJq/hc1JwVr2KtXFx8Yrp9LbHFDKCKl/VlueWyo7BtePNS+z0Nj0WMhQsX6W2cXd5iWhc17FVUxPPm6VaW+j02TF7cc5WulurVR40FHpquzrH5QeCE7sHNnw2ggu0q9v5Y4bPRIliUV25dEmXbHuXJR4fy/Y6/v3SJV0dHuszS1TkLu/SAvtvRVWLXOPnWJtqg9bPZjQq5zkyw2ciIiIaNzneGy/ba72uf19vbX1aYXsAXdUyiZai8B4+ExEV2rH1pe4P7Za2KnWzpZzKMHym+9uDGz4bhkqrI8k/qJ7D55guRjZp4fSwQtbXcUqmLVFje19izZXEV3VmNOrUqUYtmVaioGEoWDJTayIXFes/pcYl01QSNL/KVLmkMeVT5GFdeH2N5pSbv2cESzRtSaPax+d3nehhLdOHM93Nmms/ntYfS/674wl06taO5FdGqpsUWTNH4ZD11b45axS5mHJfH76g19fMUXmJuXVpsGSaljS2j9Ov/9Hk7LJ2LbA/qKxVm/O+d2y9StO+QdOvU80rks/j1n379QuOT2bShs+Ov0nOB1WGv0V97Y1akvhb5HH89t+raY7zMH2hNrFGGBEREaWV4XWIYupssJeiCGvTCcdP+trVuGS69TreUCg8R2tevyDXq5GLEW1aaL/3NRQKT9fCTRG5Xu7H+tTeuETTrNf6RiisOSv2qMM+osT7iOlqaD+iTY+FEq+fEu8p7A0AEoedoc17nO/Fp2lJo7WOs+O1Vdq3NzNsHJB+OeZohWtd6OT1N6PhkOP9jTkv2MVmikSTu9gRrS21ngNmzbJmeUvV6jF9Np87U55P9nRoWM6lNZxq1SbnskDm/9v1n2rWijnOGWXKez7H81rDoYjW2IcNlmjakl2urahzes6epD2Y4XMwaL05D2v9Meta9XjDf367dScyDAVLwokbxDDCWnXQvFc514kKBlPvNGGVlwfT7kzJT0Ri6mxMnoZLuJav/tD4KeM3Axzr406p12nrX5PLFkzV1o5MT6r2fX2VDtpP0rFONc5Kf8wYhqFwbb5fryMqvOR92P0VqtP1U6x/n6vmbkmK6uCqcOJ+GgrbLwQMGcFZ2m6/kbmH4XN/W21iKySX4Cw1Wq8eunctSPwtCYUrEh/eGEZIS1t55BAREZGzTMNnub4BNqXeenXf36basNdr+aBmNXaaQ4/uXVpgvx8OhVWR+FDeUGhpq/U6vl9ttWGP4zEUnNVoDkUcG7EEg+6lzjIPnzOct+3npbc3qqKiPPlePhRWRUWFNr4tz+FzrLNRs9Le16e+H0lef8nz6DB1q3LcKwgRTcBiR9ZaGyTNVXNnq5ZazxkLdl12HzDLc+dbGyvcz5XhClVUbNTb8h4+Z3xf6HwuTjyvec0oHfssyuk5e/L2YIbPtc3atcD6I2HvfDDtDf8xrbc+yUhsIT3cro1TrOOwvoqdvEOEtXTPR4rGhvXZ6447RLhWr382rFj0IzXZp2nfeRxrxMzYfFSfDccU/WiPllp3TteWpERjmc+yNN3Nc1NetEXVUuV+4ZV4oRicpfqjn2k4FtVHe5YmHif2FqQdW6cmjmtz2uFKxUOCHljRFlUZqc/Fp1Vv/w2Y26xuyfUGbUaD+Qc/1rdbT6e+aSt0+BxNvpgprdqtj6IxDX92VPX2hzQLdumyurR9lnWYVQetLZAcHwzN2i72UUFERETJfIbPaT9z7O+itEq7P4oqNvyZjtbbG1GZO2ju2j7LOswqHbS2Yk6+TzB3mJUc2AQ1q+FMynvnoJa2Rt0D5WC5frW6UXt37tJfL/sPn8NL96S/Tkp8gy3Dshtpr8+6k3OC8FLtSbus9kYJjuvIcbi31k1NOT4imnw5nhPnNqs77f/tYjqytjQxB2k4Yz5PvG5/AGdvKZ1h2Y204XPsmNaH7Q/r6nXUmjPuWWp/oGdtHOV4P5l8XnxL66a6nz9zec6ezD2g4XOb6waeYX6MmjJcG9ZVa03bK9HkVm+pf/C8N4VPntb0hs7EvyYPa/4xSv5/tSKOzdoTW9bls54o0f3Mb010x9IbC3Zddq2Ja3+qlvZCUZLrReCCXbrs/P/qiGOpgOTAL21HoUT3LceHKPZW/Y6/G3ObrZcVjvXRk+ufe7zBKXD4HGurtd7sTJfjz4miLVWOvz3J4bMxY7OOfmaekeGr1trsV6IsvUFERESOchw+z2jUecdr++nuFyOJD+pr2xyDDHsjEkkavmqtJ31F0ZhjjdTS9UpuU3Jery6qUEVFhZ75Y5fr9dbTe9zb3vkNn50XI/n6yd54Jcfhs3OjAtc6HMnrwNwoIZ/l04hoUuXYOMh+TxhtXWo95zg/eHJs0OpaovRVLaqoUEXFM/pjl3IfPh9bn/jwrta5LqTj9xfsupzxeSj5bXTz+HJ5zp7MPbjhs2I6XW99MhlcoF3NHjdQ7KIONTrX8XTIcfjs/KOVOnz2XYog7TiJxjDfF1KOLSyrWtSf2KLBXHLD/HWv4XPqv/vvddv7xTHR/Ss54DWfs5OfBNtLblj1d2jPpoWaHg5lvs8WOHxO/t3IxDy+tK9ghcKaU/Wy9rzXx+CZiIiIUspjy2ffpS0c73nTvl4eUnhOlV7e85617xbHB/t+G1n57Hwr1+Fz+r/nOHw+Xa8pnqft+P2qFkUZPhM9tCWXZ3S8J/TYAM/5AZ3vRnQ5Dp9T35smSz4fTak/nfPwOftz9uTuAQ6fJUUPapW9xEVpacoN5PjKjf11n0hEm+e6/+AVZfgcLFF5hflpr5u51gvRmJflhVRiKBes1Xr7qyWOtc7yHT4HS8o9Hg8VqtjII4IeYI5PtWc0HkvuhHDBLl22D+P4+pMRekxVL+9UJNKk5VNS/t7c8/A5pLDn3wnrE3NJwxfeUuOKOYkdAdm/9/SfnJNyIiIiojzWfHYMRsz1SNM9k3wxorcaV2hOygfyoaf/pG6Gz0Q04XNseJeJ/a3Z8T58lrI8Z0/uHuzwWVJ/S1XaVs215jbommX9f1VLcpeV+S674Td8Tu646mmlfKNIw8PDIho3ZXsh5Vh6w5b4xE+Zhs+dapjufBHnWE/36T0pC9wPi4cEPfgc63fNmOH+OpPdwVXW35Apspd3zm3ZjYNaFUz/m5T6WEu+yJiizafcH0HHhofNrZrTlv6IKdrtWO9weoM6RURERGSXafgcU2dDcp9Gm07INUCZsvmU+xtVsWENmy9GFL1iLfdlrUMWi3Y71ko2lw/zXnbjsv66rU51dXXa9tfLRRk+xyLViddP5uuz/JfdmOv8mhvLbhCR5Dn3SGevDZ9h2Y3Lf9W2ujrV1W3TXy+rgGU37ONPHLCAZTdye86ezD3w4bNrC2fnDeRcE9raidTwZ68nN0svwvDZucNBe8FwxaLqPlqvWaFZaux8CLZ1p4lR1hdSqZ8AJpfcMH/d+nd7h4Ma1gXHDgftF3fJHQ4GNav+qMyHhPkkGLL3gE30AEuu32Uzd6qTKPHYKFV1pF9STNEzDcm9pGccPjvWaZ66Tof6Yik7jEjf4WBihzYa1tX392hpOKzatn73p+rW3yvXDi7sT9+JiIiIJLneGy/ba63x+b7e2vp04vV5sKrF2hjE8WG8EdbSPR8pGpOGr76vPUvDCte2qd+1VXND4jV7cgeD5hA4+f+lqtr9kbnDwaOb3YOTAofP9o61Yn3tyQ/gS9fqSOoOB+f+Xp1Xryo6LM8dDibe0+S6w0GGz0QPTcl5xVz9vsMa3ibsU7X9IdXaI4o53485d9a62Z4LWu8rnfsV+n2nrl6NalheOxw8orWl7vlhth0OZh4+5/acPZkbg+Gz0taxMn/coa1Tk/+WxtqS7J6Gz4qps3FW+nrS9vBtOztXo3FSDi+kXGvTOpbcMH/d57EUXqWD9pcLYp1qnBX0PlxwlnhI0APPOfw1DGsrfZ+fp7J3npn25ib7es72Yy1tPWeH8KqDiqb8LQmFK1SR+OoUf0uIiIgoNf99rQRn1euU82uIaWuDpr+Wj3U2Jj98D4VVURFWKHF8261vP/arrTac4TStDU0KHD77v592DIGcx+3x+sx1OVJfd9W2WQN5hs9ED1+OGaHn0kGOgW6wVm0x+Tx3BjWr0dpoyDFUds4WvWaNmd8XOo4vx2U3cnvOnryNzfDZufNB5w3Uf0qNSyrNGyBYomlLmhVpsPcIWaWW6L0On83TvhjZpIXT7Rs6qJJpC7UpcpGdRNH4KZcXUo4Xf84lN8xft5+kN2tP4xJVhgyZC9qvUeRiyj09dlER587bgiWatnBT+uGIHkjOrX3cyzDZxS5GtGamtWPaUFhzNh3Unlrrd+ytjj3e3CjWp4Ob7DWagyqZuUJ/iTR4vuHqP9WsFXPKVRK0B8xztKL5lGN5mmFdeH2TFk6zd5Br/S15/YJYsYaIiIjceQ2fQwpPX6hNmXY21X9KzSvmqLwkmBhWzFnR7BpSD194XZsWTku8XgmWTNPCTa/rgvPFSKxP7Y1LNM15PGschylw+FzdlHw9FiyZpiWNp9zL+PUf0aY54cR7+397W96vz2S+tnNejvTXXQyfiR62klsFZ17DOblkYlBLW833jbG+djUucT+frEl5j9Z/ZFNi3eVgyb/pbWWaNdrvC33mh3ms+ZzTc/Yk7T4On4novpZYI8295IaUeYeDREREREREBeUzqCYiIsoUw2eiCVgs2q3X7a/QpSy5ITF8JiIiIiKiIsfwmYiICojhM9FEy/G1DsMIasGubo+DMHwmIiIiIqIixvCZiIgKiOEz0UTr7TXmekOhyvS11awYPhMRERERUVFj+ExERAXE8JmIiIiIiIiIiIiIih7DZyIiIiIiIiIiIiIqegyfiYiIiIiIiIiIiKjoMXwmIiIiIiIiIiIioqLH8JmIiIiIiIiIiIiIih7DZyIiIiIiIiIiIiIqegyfiYiIiIiIiIiIiKjoMXwmIiIiIiIiIiIioqLH8JmIiIiIiIiIiIiIit49D58BAAAAAAAAAPDC8BkAAAAAAAAAUHT3NHyOx+MAAAAAAAAAALgwfAYAAAAAAAAAFB3DZwAAAAAAAABA0TF8BgAAAAAAAAAUHcNnAAAAAAAAAEDRMXwGAAAAAAAAABQdw2cAAAAAAAAAQNExfAYAAAAAAAAAFB3DZwAAAAAAAACT0Dfqaf8vzX7huKpa/66+fH//i4+18rdvy1h9OMXbKv/DOV0c88s3/jF8BgAAAAAAADDJfKOet99V2DEwnvZaV14D6NN/OSZj9VHN3nFaz+90+I9jMlYf0eqT34yDyzm+MXwGAAAAAEjl6VcAACAASURBVAAAMKn0HXUOngsYQA93afX6wzK2faiu1J9dPaeqtYcV+H/OaWAcXNbxjOEzAAAAAAAAgEniG/V8+pWGfJbM8BpAH/vzcf3ihWNJvz2iwOrDCqw/6v73F47pFy8cVcnawzJWH1E45WfrT4z15R9fGD4DAAAAAAAAmATspTaOquZtvwH0MW3+/9y/+9fd5lA5lHbYHK09onKGz2ke+PB5aP8yGUZANZGhlJ8NaO9iQ0bpOh1O/b2Tm1VuGJrX/GnK75zWlkpDRulqHRzyOr0P1fC4ISMwU40fep+fSI0hw6hRJNfLEKmRYRiqiaSchpEqpPCj87Vh/3kNuU4rm8e17Y+bVG4YKt98MuP56NrxlAwjoKqWgTG/EwHA/TTUc1QNVY8qHDKfJwMlv1RVw1H1eD7vD2ng/TfUsPwJzWv80PPnPUcbVPXLEgXs5+rZddp39obPeYioJttzd00kcfhPm+dlfH5vyPC3yHRDZ/fVaXY4ZB4+UKJfVjXoeF+u19EvVRIwTysUnq06x9+fdANqqQooUNWS8hWxbNefZahHR3es0vxHwwoZhh5v8Dms3/keeF9vNCzXE/Ma9aHXYW6c1b662Sm3/fEcviLnfTvvP5/62qOYp1nA7Xd6iyqNSm05nfy3vuOO8x0o0S/nb8jtfN+Px4z1msdP8vXQPdzOidtsh1bNt8734w0ZDntDZ/fVa/HscvP+7njs+d5fG6r0y5KAeb5DYc2u26/znteH242z+1Q327yfG0ZAJb+sUsPxPp/fMV+bVm45nXa+PznxmjbMr1Sd33V246z21S/W7HLzPpDL9Qtggkt7f5npfWNAJeWztXxH8m9Sru8vG468pkWGIWPx3oxfDR86uFqlhtfzFwBMJI41nv/tiErW+gyg155Uc7fXcXysmkKHz1ve93m9+/B68Fs+f9qseV6D1YEWVQUMGUa5Np90/475Rj793+OH16nU+kOcPsyOyzkYDsz0fsNTtOFzebW2t7aq1ba7Qcunh2QYAc1s6NBQPK6L7Y6ft7bqt08ZMoyn9Fvn77W+pY4Be6juMYiPxxWPd2nHU4aMQI0iObxxAvJnDdtyeVMP3E99EdWEDQXK52pDk/k82bRymgKGofDKtuQbqKEBvf9Gg5Y/YQ8bvQeifZEahY2Ayp/Zot2trWptbdLKaQHfDynj8Ytqb3U/fye88hv9j5QPAj9seFyGUamFzz+v511e1pufZr6sXc3zFDACmraswTxvTXWaHjJkVG7WSb/n+qHDWhc2ZIRnW9fRbm15plwBI6DFezMMyQb2arFRqtUHh/K6/szb5KDWTQvICJToicX1ampt1Vsd+XwQmhx22sNy70Fjl5rnBWQEpmlZw27ztq+brpBhqHLzSZ/BelxDh9cpbBgKz96gptZWte7eomfKAzICi7XXd5hf+GkWcvud3Fwu46kdifXj7PMdml6XON+LwoaMcI0iOXwIUfTHzMV27/t9a6te+c3/kBGoUsvAvd7OccXjfTq4bpoCRkAlTyxWfVOrWt/qSB+QDHWoeVFYhhFS5fxVatjdqtb2i1nvb4fXhWUYYc3e0KTW1lbt3vKMygOGAov3+n+o0NWseQFDgWnLzNNqbVLd9JAMo1KbT2b4QODkZpUbT2lHl/X/Nz7Ridc2aH5lKOvAfqij2by9Q5Wav8q8H7VfzPVxBWDCyjh8Tn2f2KQNc8vN5/OaiPri+by/ND90Nox5avZ8LTKkg6tLc/igHADGM8fgeeNJ7Th+VovXH5bhuQX0UdUcHcxwPO7hc+V/nNbz29tVuvqwAi+d1PM739ET6w/LWN+u3+w8rd+8fIThcxZjsOzGSW0uN2TMa9anjn8fitQoYJSqtDT1zc+QIjUBGYGVanMdj/UHsnyZlj1leGy9FZd7q+SA5jV3pZ2fog2fvd5QDXWoYWYg45szv9M2hxelWnfY4zx07dBThqHS1Qd93wgDhWP4jPHh8LpSGc5BTjyueLxPexenvIGK1JhbBD2xXA1vvKLfeA5Prb8/jmFfPB5XvM/cGqh03eE8z5811Er59k2kxpDx6DZ15HVc3udtIFKj0izfchnYu1iGc5Acjyvxt6lyi057/E7Xjqfc5zun689x3YdrtL8nv61xk8znl0DJE1re8IZe+U2Gv6HWt56e2uH82z2gSE1plqGn/U2qlG9Ffdigx7Nt0VXwaRZw+w0d1OpS52l5n++hk5tVmcfW5cV9zGRgfeDh/zokx9s5Hlff3sUKGGHV7O/xOb4hndxcKSMwU9vO+H1TIcXAXi32eM1kf0jk3Oo81cnN5enX5UBENaWZXndar00d9wPzdEKqnL9Br/15vR7NNHweOqnNlYYCM7fpzI1CHlcAJqyMw2ev94l9itSEMz5/+b2/NN9ve32bOJ74m5T2GgkAJoz0wXPVRudWyc4BtN/gOa7U4XPN0bji59/X46sP6/HWy4rHL6thS3LQ/GHr/2L4nMWYrPnctjIgw1im/Y43V4fXlcoo36TNNYGUwbT1hi71K0LWltKVW05bS1B4fYprvfl+dJlqZnpv8XRfh89xeyjg/UbD97TtAbPHMMQeTLsHDZi0rIFJ2lAg5b5o3i/macfx/cmvCAdK9ETaV4tTvo7u+lq39zIy5mnY9/Vt2t9cpUrX16JTjtPzK83mV6qXJ76+7PE1ePsyvXbcsYRASOHZG3SgZ0hD592XLdclCTBRZX5+Ne/vjq1zLp7RiU/sgZQ59EofpL2rPz7/vF6KpH4QaZ3Osv35faDn+DuU/HdrgJjyAWtW5xo10+sN4dB+LcsyGG9bGfD8pkzHtkd9/za6zndO11/cWiaiXJuO38vfn4s6c+IT3bD+P1LjfRufa5zpef7N5bsyfDgbjyseb9PKgNd11qFtj/rfNgWfZgG331CkRgHXQNu6H6Z9JTqfDwOL/ZjxNtBSpUCWwW2ut7O9TEX5puP+jz/r8bboNb8lLzy0rVTA67br2KZHMw1h4nHF4+fUONPr/jKk/csyfDttKKKagPvDhoGOd/X+gPV4sf6ee70mNK/TRXqNv2nAwyev4XM88UGp13O27+/ZA2aPv4P2YNr94SsATBTZBs/uAfSN4W+yHB/D52Ibk+GzOZB1LqNhDphL1x22frZYe+03Y9YyHal/XM0X6dabKGurlvQ/lsk3YR0d2/S4kf4Vy/s9fPZ6MZHbaVtLa6S9ubGX+disk+PgDoQHIK/hc0CBULme2bJbra271bDM/Kq1836f+Dr6ImvZAftr3YF5au4a0sBn3eru3q3fGIaM3+xWd3e3Pr/huO8FAgqEKjW/+nk9//Kb+jSeXMog+XXzlZoWMBSY15zYeiJtuYPE18lXqm3AfZkCgRJNrzO/Ht20YbbChiGjcpqmBZJfm7b/vbQmknHtOkxeJzeX+yw9lN8gzRwY5b/lc9eOp6zHjfPf7S2OZ2u+74cxKdpWZljf1RqYZhw8WgMyj79B5sDU4+uzHusM53r9ndxcLqN0pf7oWNs4UPKElr92JjFkzFemoaT5QbXH30hraJhxLVxrEJx+/q2hYcalH+7hNPO+/bzW3P5UzfM8tpq3XuP47QfiwT5mzNcnzuf3e7mdzSFKqVb+cZ/7g9Plr7m2ADZfHz6l3+1zftBZqfn1BzKsZW0yP1DweBxYHwxkvszmhxhejz3zg530+8lAS1XKBwopMg6frQ+tnvqd9jnWpg5Vzlf9Ab+twQFMCvkOnzO9N8j2e4mlNVI/ZLW+aex8Dw4AE0aug+dsS204MXwutjEZPtt/MGc2nnP8v7Vu86fNmudYw9lejsO9xYr1Bi3xtSBrDau0rxc7B8ND6thmbjG8bH9yq5n7PXw+vaXSe73qHE7b/iq167Ln8rVhTC55DZ/d9+/kWpfJQZPXNw+Gjps7uUw8Jj23tEvuwLOhw7HVo/UV5NJl+10f7Jhfo7bvv1364+Jf6BcL/+B6nNg7Nlm8d8B1mR7f1uF4sz2k45vKPf7derOetiQPJr2+vVocMBRedzjDUCb3QdrQwPt6rSqcZc1nD9bWQ+nLDliPndB0LV7foN27G7TKWp/Rd33ZjB9UZvmA0+/nnseZvixA7tef9ZgzDMeayLu1ZVE449JWucg0lMz4N9LnTXe2n2f7u1vwaeZ7+3Xt0FMe32AaaFupsBHQzG2nNDAUV/zGWev+mfohxxg+Zg6uVmkB377KdDvb3xAzHB9g7t6ySGHDPeA2l8AwXGs3J9ayzni5PLb4TrnMmT/Yyfxz7+M0h/K+S5FkHD5b3/IznGu3W+vRG2GtO8w33YBJLc/hs7kRluP1czy334vH44mtpl3f+rA+hPdeTggAxrP7MXiOi+Fz8Y3N8Dl+WOtKk19xNncoaH/Sar4At7fwMd9suAdl9pIUzj+a5pA6dUuulDd91np6Ruky7be+1njfhs9DA3p/n7X158wCd3ZofcXU+UYmlzUKMcnkNXz2eINtbbFnD5bND0Qe16ajfltT+QyfU+7r3h8QxTN+a8H3smUY4JiX7VFt6/D69zwev5j47LX0nVvMp8k+SDPvO/bSMk+o/t18dpjnv+zA0MBn+mzAOSyy12f0WbbhQQ2fraF55qUG/K4/e1mex7XN+QHUUIe2PZ5hGYIcPIzDZ3PNba/ra0hnm+br54n7piHj5zP0cnseaxzfp8eMKdOH/YXfzvZjMfVDR3uDAfsxY942qR+w9mn/Mq+t+FKP/wEMn60PFDIvBxP3GT5bp+V4fRqPxxXv269lGb4iD2ASyXn4fEOfHGpI/+ZgPNvvOVk7tnfu7DZSo0CW/UsAwPhzvwbPcTF8Lr4xGj4718tLXx/z8LpS6w2KtYVzyovu01sq03f8Y2+F5vradPqbvsSSA9Ye34s2fDa8haZv0MEM6/dlP23rTV5i50PpLxbwELjX4bP1pjbx2Og7ri1z7K/L/1Lzq+v1mmNdTufv5DJ8dg/x0iXP9w2d3bdB8x+113z2OIzv8Dn9sjF8fthYQ9zUre/TZB+kDXS8Ze4BfneDlk8PyQjNUaPvcToV8FxsfQhUtC1nc/m5x3FmXRbA9/rLfFoZlzbIwcM3fDbvP17fYOqLrFR5wLE8UWuT6qaHZISr1HJxbB8z8XjcWrKlsDVB/YfPHvedlOVTMt42GZc8yXL8RR4+n95SmX0on2347HFaGZeCATB5ZBw+ewuUP6PmDM/puby3NTdEsXemmvp+EwAmgvs5eI6L4XPxjdHw2d7a+XE1dJhf83G+kTE/fZ2n5i5zPT73OofWm/5Mwy7XH06vN332MgRhrWwbKN7wubxa21tbzWFGa6taWw/rvz4b8F2nL5fTdn299R7e9GECK/bwOR5XPH5Dn//XYTXVVyfWpQ1Nf0GHB9y/k/vwuVzV2533/6S3OgYUjw/p5JZHFDDCWrTl/9WJs93q7u5W97EX3QM5hs/IyB6ilWtlJNsOx/Jd89n6VkyOWxfaz8s1kTy2EMq2vuwDWfPZ/LDXd1kA3+sv26C7UvXv5n/bPnRrPp/crPLEm37nfcT8ED1teZah49pUXsjXoYv9mLGWbCmtUaSANUHzHj5b56my/t3k7/t8MFD1l2uep/tg1nw2v7WX9fVZAcNn8/qp0l+u5X+dA5ggMg6fn9JvXa+r39SJs5/77mMhp/e21reIn9rR5flNWwAY35KD58Dat2Vsbtfsog6e42L4XHxjNny215uq2bxZ5alvCqyd6yzetEmPGgGtbEv+zHzTH9C8Fz0GXdurVe76ylCGN8oDbVoZNmSE12ndsvu07EYOcnpx4FhX9OSWSt+vlmKSKuqyGzf0eXe3uj93foV7SD37lqnUyHHN55T7ur02uf/6n+ab+EBNxP3CNq9lNxg+P7yG1NEwUwEjrJqsQ7S4Mg7SPn1TLz//vF5+M33JiUiNkeP64V1qnpd52YFP33xZzz//iuODHEu2LWetgWnyMWixBmR+O0NsWxnwPO/mgMzxNyPDOsM5X3/2Dok8dlqX+EC5iFs+m0PDmWo85/53c6jut7yB9Xyzsi3l361BsM+HDAWfZs63n8+a2/ewxfZ9e8w4dTVrXqDwfU5kup3tr3vb+/pISFm6KePfuMPrVJr1gwH3a8l4PJ7425h5CRrrg52ZjTqXct0mv71nXYaDq1Xq9YFChts4n284HF5Xyt85YLLLd4eDPnL7PWvH9k/tUEdLlffyeQAwXv3tA81cfViB355W5ItBRZqOFnnwHBfD5+Ibu+Gz9eYwFArJKN+sk66fmcttlJaWyr3XXetNW8a9tZtbniS3Dsr8Yr4vUqNwYovpcTx8jltvPEpnamYlO4J4KFnDi9TBbdeOpzyGz+k7HDy5uVLJdcKt9dZTBx/WBz7JwUPuw+f4p7u0KGAoMG+Hzrsel306uO+AeoYcx2et824fpm+/OfRm+IzMhnR+b5XCRkhzGjty3ConwyDN3qFOhi1Lc9ryOds3UA6vU6kR0OK97sehuX6t33r93kt5mDvu9BjMOQxYbxxdQ2V7a27H4zWnZQH8rr/EaaXuXNB6bihgHeB4PPNQ0vu67tPexd4D8CTvrxAPndysymwD1oJPM8fbb6BFVYEM62paz8NpW5953JYP7DHj4P6adhFvZ2urO+fOBeNxj31cWLeNe+eCA4rUlKYvxeZx/O7r1f7b6P+BiedltnbemPybbN7fcnp9lnH4bJ9Wys4FrR368toPmOQe+PA5+aHxzJmFreMPAGPGNQSOKx73GkDfy+A5LobPxTeGw2drrecMW3Ql1pF1vlGx36Ckbj3pYO6g0H6j4DcYtndSM/6Hz/YbLoMdQTykrEGKEdaiLbvV2rpbDcunKxQIuL7mnXjMBKZpWcNutba2qqluukKGoXBNJDFs+7BxpgKGx5qirsGYNUgJV+k/EktnZLqv21vYGQrP3qAm6zg3zDbXGd16etBxGUKavrxBu1ubVL94emLtZ4bPyMT+oPDnC+v1F49lXVrf6vAYymTecte8r7rv/xtmJ5diMg/3qXZXlShUvkGHXcPGHAZd9pbRgXI9s8V8HO7essjc14DjcXjspUqFQou0yzHUsgeVifPWZO+0tkEd9vn4dLeqSkIq3+AYwNnDydB01TW1qrV1t7YsMi9TcqvXzOsMp/MbRHZp16KQ4/J5nVZ+y55kHEomhr7J67Jp5TQFjIBmNiSHqp/urlJJqFwbHEM7e9Acml5nPift3mLtoKlGkcR+GI7ppcqQQot2OYaehZ9mLref/5rb9rJgAU1b1pDy/Oy4fn0GmMV/zFiyDkEzPWZyuZ3j6tq1SCHHdef1mInHh3R4Q7kCRkjT65oy3jbpjy170Jz8Pc/jP/aSKkMhLdrl+ODBHjSXP6Mtu83bY+W0gHsNbb8PFFL53XZDh7WhPOB4HHucFoDJaQyGz/b7asMo/BstADAmrCFw6cvv6PmdHXqzNy73APpeB89xpQ6fw1vf1fOvHFdg9WEFXjqp53ee1LS1h2WsPa6nd57W0y+9zfA5izEcPtuDowxbdFnLcjgH07lsAWb/nrnVUpbBsPWmYtwPn+1BoO9WV5jU+o6roarSGtaGFJ5dp/0HtrnexNoD2t+9sU91s62d+gVK9ETd/pQtkod0fv+GxFrP5vEt147j7q9m9x3coCdKAjKMgOb84Zz87+spxxko0S/nb9C+s47lPYbOa3/dEyoJOC7D2X1a5twimuEzUvjtcCftA8oEv0GateNL3/v/p9r9TCh9T/LWGonuLS89DJ3X/g3z9cuSgBI79tzgfhwee6H8/2/vXH+jOPN8/0fVm5RaltVayYgwIBFZWHGIFlYZRQaNUA6WjrlkmHiWFbswu9b0ipkcEzYDe9hlmH7hM8sQ4oTEYAIG2qZtd9t9v9+rb25f2je+50VVdVdXV7fb4GAbfz/SRwi7L4+rL1XPt371e/Dee0dgqXlPz8H+5zP40GxSTiS14Rc9A/hOu2it+2v80lRdNLfy8+B3GOj5hfL5EmAyf4gzf7ZXxtlyW4ANt5/y9535EGaTfFK07Rd/j0v/z6PZJlsVPuufS96WPQPf1VSuu7/+JUw1Jw9kg98NoKfmdT6DP9u1xw/D+MeO9/DeEUvtc7/2c270+smXOTfvqxnEd3/8DB926N6f32q27wbh89Z/ZtQrbXRVuTU2+My0+jrrtt17bb/A319Sr5zRbZ+Bnspny2T+EJ/9x+Oa/qfGn63a+wkmMz7U7xuH/xEd772HI5babTBn/3N1nyq8h7Zf9GBA833h+ONHrS/UtcFrV/s5ll/7/3ic3fhxKaW72+0InyuFIa/XMotSSrdNJXyWw97vMWBfxnJkEv/ri60KnpehD5835R/s7KFv4LaGzztLpS1AQ7ljpjvbxos2UUr3tkrLqhYXVHxjN+ylu0dVem6/aV/NjXte07enckKhSU92SimllFK6hdaEz1vZakNrDtYv779G+PwNev6W2/5ttANl+FzRiQdGl6dW/CvGXmN1d0rflgyfKaU7QccfP9qgNQl9fZUTCezPSSmllFJK96K+KVy+Nor/rfPfftyq4FmxFMaf/2/98zTz0r1QzRV5tCrDZ0rfERk+U0q3Xw+GzhxG90CrC93RTZkZxR/+4bCmvzallFJKKaWU7mwZPlP6jsjwmVJKKaWUUkoppZTuJBk+U0oppZRSSimllFJKKd1yGT5TSimllFJKKaWUUkop3XIZPlNKKaWUUkoppZRSSindchk+U0oppZRSSimllFJKKd1yGT5TSimllFJKKaWUUkop3XIZPlNKKaWUUkoppZRSSindchk+U0oppZRSSimllFJKKd1yGT5TSimllFJKKaWUUkop3XIZPlNKKaWUUkoppZRSSindchk+U0oppZRSSimllFJKKd1y3zh8ppRSSimllFJKKaWUUkqNfKPwmRBCCCGEEEIIIYQQQgjRw/CZEEII2cGsrKzsegkhhBBCCCGE7E0YPhNCCCE7mNXV1V0vIYQQQgghhJC9CcNnQgghZAeztra26yWEEEIIIYQQsjdh+EwIIYTsYNbX13e9hBBCCCGEEEL2JgyfCSGEkB3Mq1evdr2EEEIIIYQQQvYmDJ8JIYQQQgghhBBCCCGEbDkMnwkhhJDdwqtXeLW+jvV1uZfy6uqq3Fd5fR3r669gVGT8qnKfqnJFsvZ36uPJ/1Zu03ggePVKfqy1tTWs1Y2D1c6EEEIIIYQQQhg+E0IIITufV6/kgHh1BSsry1heLqNc1ri8jOWVFaysygGw2u5CG1Kvriiuyq6sqI9V/3jLy8tYWVnF6tqaHCZXB4JX6+tYW1vF6soKlpeXG4xjVQ6i2XaDEEIIIYQQsq2sIDjyFN0Xv8eJv3gQ2+zdkw70/fYbCGfv6fwGHX+chOfnGPI7BsNnQgghZAezvr6OtdVVrCyXUV5awtLiIhYWFnQuYnFxCUtLZZSXV+TgeHUFK9qAeEl2aWkJiwsLWJhfgLyv1z/WAhYWF7G4tIRyWQ6h19aUqum1NayuLGO5vISlpUUsLjYbxzKWlbEQQgghhBBCyNtnBcHhUZg1gfGhP81uKoAe+6/vIJz9Ft1fPsaZrzT+/jsIZ+/j/KOVn2307woMnwkhhJAdzPLyMpbLZTnsXVjA/Ly8X661hFJpXgl/FdUweEEOq+fnFzBfKqE0N4dCoYhCvoB8voBCoYhiUfd4pZIcSi8uYqlclquZV1awsryMcnlJDp3n51Eq6ccxh9L8PBYWFirB9OLi0nZvQkIIIYQQQsgeJPa9Nnh+jQC6PIvzv7kH4V/H4dL/LjuJk5/fg3h1EtLWD/2dguEzIYQQsoNRQ+DFxUUsLCj75WJBDo9zeeRyeeTzaoBcwlxxDsVCAfl8HvlCEcWi+rMi8rkcshkJmXQG6XQG6YyEjJSFlM0hl8sjl5fNF4oozpXkIHmxtsJ5cWFeCbGLKBby8vNULMjjKM1hrigfUMzNlbZ7ExJCCCGEEEL2FCsIBiSUm7TMMAqgf7j1PfZfHK762/sQz96DeGG49ueKbZ/fg3D2Psy6n3/xcFv+6B0Lw2dCdit2CzoFAZ0W+3aPhBDyM1IoVquJ5arnIgr5PHK5HLJSFpIkyeFxviCHy5KETDqNVDKFVFpCNqveVkImmUIinkA8pjGeRCKZQiqVRiqdRjqTqTxeoShXQc8VC8oBglLhXFTGkFWev2JWDq/z8vNJUha5XG67NyEhhBBC9iJDvRAEAb1D2z0QQsjbRW218S16h5sF0MO49Lz2nt/cGMb+i9/CVHfbFv38PjoYPtexPeGzwU5gqFeAIOgV0dbRjdODI5WzEca309uJgT9dxD5BwL5Low2H4Ro8CkEQcfJ2CwXyStCnfy6TuRunBx8gWG7ltodxvP8OprRFYC1tCxFtB4+j/8aT2ufRUA4+wODpbphNyn1MZhw+3o87U7qKM+X5Gso98+6B4TPZY5S8j3Cj/zjeP2f8PVV2WtF//H2YBAGCYML7x/thdeq/NMsIPrDgxGGzcjsRbQdPwPIgiAZfr5seh3IrTN25jJ7uDrSJxt+tZacV57rNlfGau09jcKT+4q98oYDiXKmyTy4W8shlJWQyGaTTSmCcziCTUUPnJBKxGKKRKKKxBJLJDNKpDFKJJOKRKCKhCEKhCMKhCELBEAKBEIKhCMKRKKLRKKKxOBLJFNJSDrlCAYVCHvlcFtlsFrlcHoVCAYVcDjmp+nwVU2lkMhlkMikkkwkkUymk0+nqHzN2BQeEA7gypm6EIB5YTuCw2STvg8Q2HDxhwYNGOzv5Thi+YIbA7z9CCCHvAm9hbmz5/gY+EQQIPbcaXhpevn8e7YKAA5Wd9EbEMDJ4Gt0dbRC1c9Y7U1BnoC2Pz47NzbffYNsSQt51ND2ef30fbZ83CaA//xHXDWNNB3pfN3z+lxfgDKWeHRY+H8VFqxXWitfQ/3EHREGAuXcIMQCeh9rfW3HxqNH97sEmoI5SkAAAH39JREFUjeHKAQFC+wUMGw7ChcGjAgSxF0Ot7MiUneG+z740Ht+F4WpwYXjbm7Cc/gAmQYDYZYFNvXFL2+IaLvfI9zV9dLV6X4WyzYIuUYBg+gA9l6/BarXipuU0jrSJEMQuWLR3UJ7v6MXa7VjxIdfp3DXs2vDZDkunAKHTwi9l0gIleB/d0ITKDU6SxYbQaxYgmD/BlZtWWG9ewSdmAYK5F0Mx7c16YRZEdHzcj2vK92vfIRGCYEbf3WYnIlscBwCUbbj+iVkJwM/CctPgu9V1HcdEAWLHp/J41XHov7MB5PJ5ufq5NI/SXBH5nIRMOoVkMomE1kQC8VgM0UgE4WAQAX8QwUAYkYhS4RyJIBQIIuALwOf1w+fxwj3rwozThVmXDz5/EMFgEMFgCKFwBNFECmkpi2xWgpRJI51OI5ORkM1m5SrqVArJeBzxWAwx1XgciWQCiXgU0WgE0VgM8Xj1BRi9tA/C0UGlX1oMQ71mCGIHPu6X913Wa304JAoQzH1o9HKURy/hgPIa7L7vP0IIIUTHW5kbS7h9UoQgHMP1gNEgyrh/vr0aBG+Isg8XTPig53LlmEoen4iOc3chbWp82Nx8+w227e5gCL0sDCPkNdAEz1+MYPCHl+j5zT0IhhXQ36L3+3yDx6kNnw/8/jHO/OEB2s/eg3hpBGe+eoQjv7kH4TcP8KuvHuNXV+4zfN6AHRY+96L+61XdsWkqpdDK/QC7pROC0I4LRumzaxBHBQHt5++3thNrGPTFcOMTAYLQg1vSRretVlv3qon3JrZFbOQiOgUB5r67mjPWash+Cnf0p4PVMObAFVQ23a7dAZM6GD6TvYDyPje9fxz9N/4bXxw2PhAfvtAOQTiKQc0qEGXbADprvueHcaFd0ISfCrFb6BEFCMeuI/CG4wDKGL10AILYhYGxxr2ORy/tqxuvOg6xd6hmv5TN5ZAvFJX2F3lI6STi8ThiMa1RRCJhhIIhBAN++D0euF0eeDx+BAIRudrZH4Df7YV7xoVZxyyc0w5MvpzExMQkJqdnMev2wedT9PsRCEcRSySRTCaQiMeRSCSRSqaQSWfkiudEHLFIBOFQCOFQCKGQHFpHImGEQ3KQHQqHEA6HlU1zH+fbBRxV/+jhC2gXNP+vbIYeiIKAY9eNXg07rnaJaO/sxL5d+f1HCCGE6HhLc+PyUG/j/auyj647RmrE2BUcEAQcuDSqm0srx0GvMb5NzbdbZdfOfRk+E7J56oPnk19oq5K1AfRwk+AZ0IfPvd8DcLxA59l76PxLBEAEln+pBs32v3zP8HkDdkH4DGD0UsNJZtP7qQGzQfqsBtPn77d4/rRJ0Cc/luYscbNQUP+7TW2LMkYu6gKLYXny3mgCbhs4DEE4jAFb5cF36Q54rxPDiOUE3jdp2gTcuGjwPivDae3H8YPK5W91l7ArFf9dV+HQ3Eu61QNB2IfaLjVyUCf2DqFced+OYMRyAgfbRPkyuPdPwKJrE1CautOwlYDRpXfq+NX3/Y37/XLVvuYzUPOYyt+k705QmrqD/uMH5RYH6jbS3kj9Gwb+Bus5tUWNfLvBsRIQG4HlhHp/E8zd5wxaNpC3jmTDkwlJmdgoJy7qvsBsGDhsdCmphFs9mitgGn43t3BCpKVxAJBu46Qo4JMbzddOHuoVIOy7hNrGUMbjkLI5ZQHAORRyGSTjUUQiGqNRhENBBHw++Hx++L1eeGaccE454JiawcyMBx63F+6ZWTinpjFln4J9wo6JF+N4PvYcY8/GYXvpgGPGDbfbDZfbDbfbA68/hEg0hlgsimgkgmg0hnhcaa2RSiERjSAUCMDv81X1++H3ywG23+9HIBBAMBgAoEx6xZNQO13V7Tsrm6HJCdzrxyCKPbg1sltPvhFCCCE63tbcWA2YDU62q8G0/oTwZsZcYez36N6/Hz1f1z/W64XPTY4Zav4IJ6znjtQey395qn6cZSes/ccr8xmx7SBOWDRtPZQMoetqzWxJPqbUH7sNX0C7WlimbhOrs3aucUQ/p1BawGnna5VWccqxoG6+JI9fDaRv4H7/EV1bN91jmszoPmdF7VSmhKk79fPE2umSvJ0H/mbVzb0GIU+XNnoOQraLjYLn2gC6VF7Z4PEYPm81uyN8brIjano/NWira72hfKnXTfyb0HAM6iVKmkuYmoxX7aVVOeP8mgcb6v0dV7sMQsMmMHzehZRhs3TJl7B9egU3rVbctJySL03Xvc/sV2tvZ73Wj25d6wH5hIS2cqCMoV6x/hJ22wAOCwJ6bkmV93S72Yy2D87Jl9apj93eiyH1sdRWAof66loaXBguo5T0w+//Af98WIBw+J/xg9+PkCQfscjvexGiqQ1Hes7gzJmv8RTVtjLmbqVNQqWdwgUMKwc76m1M6tg0LQyu6k4KiaKpfju2H8Ihs4hDpyy1P2d19g6jUejbuDpErjDeqFJmFJf21Vccb34c6omco/jdHe3B+fs4fvluTa9CuVL7FKw1TyiPQx+ip6UssvkCCvkcpHQSsUgEoVBYNhxGKBiE3+uF2+2B2+OF1zWLmSk7Xo5PYMJmh93uwPSkA1MTE3jx7DmePX2Gp0/G8PSnp/hp9AkeP36KJ89f4uWUEw6nrHPGBbcvIFcyh0MIBUMIhSKIRhNIJlNIpxKIR4Lwez1wu1xwz87K/7pmMTs7C5fbA6/PA6/PqxwryJf7iidvN+w1Wd0Ml7BPe4WQilIZ3mmx7+IrPwghhBAdb21ubDBvVX4uzwU2UVmsVD6Lx65tKnx8vb+r0bi1aNqAnJNbeV3r74a5JrwF1CuoBLEDn165WXM7tZWJYVFDeQi9oqY/tULNvEp5Hc3mjvq5hmZOUR6+ID/fJ8p8TZ3biMdw3VWGFPLD77+JXwkChF/dhN/vR7IEVI53RRGmtiPoOXMGZ75+Kv/1Sls5dS6jtjETj11XKtnV+WR1+1Ru03UV1elSpzIfU7fPTVhOHYIoCGg/dAhm8RBOWWp/zmMxsv20Gjxv1GpDC8PnrWZXhM/S7ZMQ1RCs7qGa7WDVIEDXekPZsbW+mAKMd4ZlCRM3Tso7D20rDMMdZwnJZzdw0iy3yLBWV4l4o4MNOVhptTeX8fORHU7gT/hEFCD23IK2lrI8crG26kGpuGw/Za29nRLMVloPDMtn6Pvuqje4j/PtIszm9poDo8D1Y9WDPDW41fYrh/r5qj6WfDJEU2kPADF5gROx8oTG1Z3y+96MXm2D3sptB2qeV+35qp6EGb54EPv3/xp3tQe/StVCZdFRNUDXbZ/YjU8gGPxc/mx1oabogWwzjUJf49AWaK1SRm7zIJ8gebNxqO8b+b3crfQxvtZ3yGBtgKvySZXeO/CWIC+8d6nLcByJZBLJdBrpTAbpZALRcAgBv1+ucvb54HW7MON0wumcweysCy6nEw77BCZe2GB7Po6J8UnYx1/CNjaGnx6O4uGPjzDy4ygejjzGI/X/o0/x9Nk4bOMTGJ+wwz7txKzHj0AgiKDfD5/XB6/Xj0Awgng8hVQygVjID8+MA9NTk5ialJ2022GfnIZz1g2PR9HrUT6PrVxtFMOtHrHm5JKMhLt9ZggHLmG0DIbPhBBC3h3e4txYX8gEoBKstnSCuHonJcwUILYdwWnLX/DIJW14En/T4XOj+baeH/phNmgDoh7nq9tW3nbtOGWtmS0pf0v1OGX4QjsEsQ/V6dJ5tItmmNu14wvg+jFNJbkaPldCbBn9nOJun1hXgKDO66rV1kaFFcrPdOuZQBpCb7vBHOdWD8RKDjKMiwf3Y/+v76J2unS0ppBNvTq8dvuobU/0P1eOv3VX1BLydvk5gmeA4fPWs8PD5xK831qUKkfjxYc23MGqgZymt7P8pWrch6ohDVbfFQQBf3fqNlzl1m5rev8ErhssAPi64bN8282Hz4ayynNHUraegmBUBah7LxieaJF/U9t6QDnArISywxfQLvTg1tAFtFcqCpQKCPU90SjoUaqj9Qd0PV9XV7mup1n4rHvfK89b35tO6d3b9CyK7qCt0d+gfCZOWcsGP9/EZ4u8BRqFvmpFjK6HcmkEFw8ITStlKpX1zSY0LY9DfR/XH7RbT9VX7MS+/TUO1nwP/x0++4u3buIWiUYRjcURTyaRiMcQCQXg83rgmp3FjMOBqclJ2CcnMTXtgNM5gxnHNKZejmP8uQ22FxOYGLfjpc2GZ49/wsPvf8D3wz/gwYNHePTwCR4/eoyHP4zgwYOH+PHRT3j85CmePHsB28spOFxe+HwB+H1y/2jXrAdeXwiRaALJRByRgBez05N4abPB9vw5bC+e48Wz53gxMQnHrAtujwtuJXx2DR5tsgBw5dVQJn/1iz/KVUKanzN8JoQQ8q7wNufG6npBmt7OcssNESdvb7ahchnBB4M4fUS50ksNogdH0Kj5WCvz3Jbm2zrkCmSD4/aabaubE2mRbqFHqLbrlLdJNZQdvtAOoecWhi60V8NmZU7VrJ0moM7lqmMbu3IAgtCJiw+CTcL6JuGz7gnksRrMAQPXcWyjYyXdmBsVbcivm/6KPeXnzBDItvFzBc8Aw+etZ4eFz8aKHZ/WBrbQ36/ZDlZZ2bf9POQTmfU73JYwXH23eimN6aOr1cpMg9ve/Fw+i9g7pNup/xyVzwYBc+Xxld8dvVi78rDVaoX1nm0T4Qt5W7TaF7VZhaf8OzX4Ug68lLPUo5f2yQdRygGUXEUhn8nWVw3XHbwoP6+2G3Pi1qmOah+wni9g+esEpJqP7ybC52YnS2oOvpSD3+4Opc+bwW02CJ/rOzkwfN55NOm1rFQSix2f4spN+RLGTztMckV/o+9TZVFWfUX/m4yj4ff33T6ImvdZ2XYVH5m0rWJu4sqnHRDFLlwZrf0mDofDCEdjiMXjiKr9nf0+eD1uuGZm4JiextT0NKYdTjgcTjinpzA1MY7x5y9gez6Bly+nMDnxErYnTzH64wh+fDCCkR8f4/HoU/z06DFGfnyEHx/+hMdPn+PZCxue28Yxbp/C9KwbXq8PPq8XHpcHbpcXPn8IkUgc8WgEIb8HLsc0ptWq55fjGH/+HC8m7Jh2zsDlmlXCZy+uHNj4aiP1ktEui612MlYexaUDuqs/GD4TQgh5V3irc2M1/FRP2Ovnyq9HWXLh0Y3L6PnAJFf/fvInw/CllXluS/PtVh+3Zts2W+ND+Z0aLCthtFyJLM+Ljl0PKEGv0mZj9BL2adtftjqniI3gykcmqP2mj392GTceeXWFO62Hz/I8r/H7pXKsVA7iweBpdHdUTxbos4Lm4XP99mX4TLaPnzN4Bhg+bz07LHw+ios1gej/4NFUskkFZWs7WLnPsnIZjdKfquXFFFSaTHTlS1o0Z4sNLxlSFnjQfzlvNnwevlDTM9qw57PnYWUbfvnZPsPwmW03dg9bET7L1QDVqku5pUYPbknyyRj586BUO/fcguS4ii7tGfRWw2cAQBmS6xH+YvkCPcpCFWLHp/hT5a6bD58NT5ZYrbA+9AAAYrdPwiSIONR3DcPP/MqiZ0qvNIbP7xBNwmfULoIith3B6RtjsPaJEA4PwFZ3YyV47uirvXTxDcfR8Ptbef+dvJ1DZT0CtYVEdVDyZY0HrkAb01Yqn+NxOYCORBAOhRAMBuH3+eBxuzA7O4uZGSecTiecDgccdjvs4xN4OTGF6SkHpicn8fL5C4w9foLHj37Ck5+e4fnYCzz76QlGH/2Ex09seDFhh31yCvapKdinHHC6vPD5Awj4fPB6vPB5AwgGI4hG4ohFowj7ffC4XHDNyj2fZ6cnYZ8Yx0v7FBwzcvDs9Xrh9/uxT1+VXvdyyMFzR99QXbWU3dKp9EGs354MnwkhhOx63vLcWG1Nd3TQZXiV8JtRwtjvOo2v2txofJuZb7f6uC2Hz0qf58pijEpLjZ5bkMau4IB6HKMp1nFc7aqtot7UnKKE5LNhXLv8WWUBQNMH/4Thyp+32fB5Hz770ni+dM8mAYjh9kkTBPEQ+q4N45lfmS/d/BXDZ7ILqQbP4uffQPinH9C9pcEzwPB569lh4fMGO0rDh2rhfkrw237+PkavHGh6CXZDmk109b9rcFu5p5Ku+nlT28Lg0nIlTNf3t6oOrZPh8y5HbbtRaZms8rptNyr3FdF31YJOzQGGdPskRLEXt270QBB7MVQ2fi79GOT3k7JARqi231tp7Hdyv+iWej7r3vdKX7rmJ4scuNpldOCzubYbDJ93A83D5zrU7379h6Jsg6VLrO+ZtwXjaHgSaFg+cVi7Wnlr948nEognEkgkkkgkk4jHYohEIohEIgiHQwj4vfB43HApi/3Nzsxg1uGAY9oBp2MGszOzmJmextTES4xX+kDbYZ94ifFnz/H0yTOMvbDDri446HBi2jEj93wOygsaBvwBBANhhENRRKNxeQzBAPxerxJMe+CecWB6alq+r9sNr88HfyCAYDDY9GqjSuuT3vrgGbiLPv3VDHXyc0oIIWQX87bnxupJ8KODsCkt8+rnD82I4L8/24/9+7/AN0a/ft0FETcz39YhF9oYrNXymm035KfshCD24aqlUzPPUBZQ7r2FGz26xapbmlOUkPT74U9qTyGUEbxzCu1Ciz2fdU+gzgGbrqvhuIquFuZBDJ/JrmDWhq6z9yD+9jGGknkMDX67xcEzwPB569kb4TOUPk3tXeg6sNnFFBQ2PBOrWfSh0W3V6mdtVdsmtoVcGabvTerC9WMiBLELA2P158EZPr8DNFpI8P55tGvfZ60uOAhAvXysvb0dwr5LqBTOS7fQI7TjwIH22sXbWgqflQqBusv2lMUoKm+6TYTP+AH9ZgGC+Tzu17y9y7BZ70B+yyuPp6tuLdsG5L5xDJ/fITYTPscwcqkLor5ituzErZNmCKaPcHVzvTZaG4dyQrBmcUFIGOpthyCehFywo3wm6gJZZbE97YkfoBI6p1IppNIpJBNy5XE0FkU0GkE4GIDfJwfQbrcbHrcbHpcLbpcbbpcHHrcH7tlZzEw7MD05Dce0E06HE46paUy+fIlx2wTGX05jesaFWZdSRT3rhscfRCgSRTQSQSQURiQcRTQSQzyWQCKeQCwSQSgQkINpvx8+t0te8NDtgderBM+hEMLhUMNKpbLzFk6am11K68FDo6sevvwM+yqX5t6DjT2jCCGE7Fa2YW4sXwXZia4use6Kq1YwXphOpm5u3Or4NjPf1qMcf3UO2AwW1Nv8goMAlCKYdrS3a1oRQgl72w/gQLtuPC3NKZR1a/THgEr4Xf3bWw+fK4vTHxuEQ3dF3f07dxHULNR8uGZV+DJsA50Mn8nuoyYEBgCjAPpNgmeA4fPWs2fCZ3WHJLzWYgpo2IPqWv/H6BAFCOYLGN6oShTqDlAzhpYus7qG/uPvwyQ0mKDHhtDXIUIQO/DxWQtuKv1DLWfVsX1SbXmwURsD9n3egagHRCI6Pr2Cm2rvM5MIUfc+s1+tvZ31Wj+6zYJhhefwhXYIQu3BVCVAFnSL/LXYdkO62wezYNDHtuZzp/SWE7vwxc1q64yNTrqIh07BclN5b586BFEw45Q1CEDtXSei4+N+XNO+9xk+v2NsED5LNtyzWnHTchbH3zdBEDvQN1S78N9QrxmC0IZ/uHy7yaWJAfzniTaYOvqr3+stj6OM4f4OiIIJH5y7Ju8n+g5B1PUydl0/BlEQYO7ur/usVG8nj0MOndNIZzJIp9NIJROIx+OKMUQjYQQDfvj9Pvj8fgQCQYSCQQQDAQT8fgT8Afi9Pnjd8sKBHo8XXo8Hbpcbs04npqcdmHa64HJ74fGqBhAIRRFLJJFMJpGMx5XQOYlkMoVUMoWk0gIkEg4jHAoh4PfB51PGEAwiFA4jEo0iFovCcLertD4R2v4Bl28b7ZOahMpsu0EIIeRdYTvmxkrRiiBsvCaDIWUbrn5kgiCY8EHP5cqxjHoM3mg9jdfp+Ww4365DPcbTHH/1d8MsijVrbgB2XO2S582fXrlZvZ1gdAWWEhTrW1wqC/nVXU3d4pyibr5mvYZzH5ggCAdQfSmUdarMJ/HvlePTRlfOqXNF7XHlNfR3myGIXfi3sWL18cQOfNx/DdabFpz9uKPS+5nhM9lVKCFw+5VHOPPVM/xPCKgNoN80eAb04bP5d6M48+/fQTx7D+KlEZz5agSHPr8H4fPv8MuvHuOXl75h+LwBeyd8rnzh1laUtUyD1XfFtg50nx7ESKz+toaT4kr1s9Lrs6UFJkwwHz6O/htP5DOXRpSmcKf/OA6bTcp9RLR1dKPn8h1MaStGN1rAjTuPHUoMI5YTeN+kvLYHT8AycgO9de+zMpzW/krvMEFsw8ETFjwweOM0WhlZrYSoedhN9HyOjQzitNLrWR7rcfRbnTVVCGXbdZx4X36vms7JF+w1+yzXPqYJ5u7TGKxZIdpo+zyQe7epFdEMn98BNgifldfYZN6P7tMW/HVKfzWIctDeRPn9EcB/fmpquJL8xhXY8vvxYJsov8fN3Th9Y0zXo1H5rB7WfVbuTGluJ48jnckgk5EgSRIkKYN0KoWkGgonE5UAOhwOIxyJIhaPIxGPIRaNIhKOKIYRCoYqBoMhBANyOw2f1wevzw9fIIhAMIhAIIRQOIpYIoV0JgtJkpBJyYFzKiWPJZPOIJ1KIhGPIx6LIx6LVscQDiMSjSAaiyORSCCZTBr3kdxof9Ts88fwmRBCyLvCtsyNlWKQNznWLQfx5Ib2WEaAyXwYx/t1889Wx7eZ+bbheJywnjuiLD5ugrn7HKx/G6hfn6bshLX/eOU4TWw7iBOWBwbzbGU9nLo2HUqxTgtrOVV/rt3OuvmaOrfR/YGx+/040iZCEER89H8caNa2zXAOeLwfd7QvRGwElhNyQZs6Rxx5MIDDmopohs9kV6CEz3LY+z0sDgBJB3q/2KrgGdCHz5vyj9Nb1EP/3WJ7wucdxkYrxLbcX5QQQgjZYrLZLLK5HHK5HLJZCZlMWq6GTqWRTqeRTiWRTMQRTySQTKeRyaSRSaeQSiaRTMgtMhIJ2Xgshlg0hqiRsYSyqGECiWQa6YwEKZtHPp9HLpuFlJEgSTnksjnl/3IQnlJMJqoV2YlEAslUCul0GplMZrs3ISGEEEJahHNjQsiOpiZ83spWG1pKGBq8/xrh8zc4eb/ZsrB7F4bPACTbPeMWFKpKWwBCCCHkbVMoFFAoFlEsFpDPywG0lMkgI0mQsllIUgYZKQMpm0M+n0chn0c+l0VWkpTAWIIkyf/PpNM1gXEqlVZaekiQsjlksznl9jlkc3nk80UUi3OYKxZRKBRRKFaPB/I5OYTOZnPIqmF0Oo10Wq3UlkPzfL6w3ZuQEEIIIS3CuTEhZEcTcuJ3Xz3GGZ2/f7RVwbNCOQ7rf9U/TzMvfxsFo2djGD4TQgghO5j5+XnMLyj742IBhXweubxckaxaKM6hVJL327IllOaKKBaV8HiuhNJcSQmRC3I1s1JNncsXUCgUUZybk/f3hQLylZ+VUJpfwMLCIhYWF7GwsICF+XmU5uZQLCq3KcoWNI+Zz+eV382hNL+w3ZuQEEIIIYQQQsg2wfCZEEII2cEsLS1haWkRiwvzKJXkgHhuTq5GLhbnMFcqYX5hAYuLi/Jty2WUy2WUy0soL5VRLi9jeXkZy+VlLJfLKC8tYXFhAfOleZRK8yjNz2N+fkEOlhcWKvt++XcLWFhcwlJ5BcvLK1heXsbS0iIWFtSQW73fPOa1YyuVUJqfx8LCIpbK7HpGCCGEEEIIIXsVhs+EEELIDmZlZQUry8uVQLkSRiuVyIuLi1hcWkK5XMbyygpWVlexuraG9fX1qmtrWFNdXcXqyipWVlYqoXS5ElhrVULrlRWsrK5hdW0Nq/r71oxrsTKWJTX0VsZDCCGEEEIIIWRvwvCZEEII2cHUhMjr69UAWe/aGtbW17G+/gqvXr3SPIL8/1frGl9VrYTTyuOsqcF15Ta1z6+/rzqeitqgW5EQQgghhBBCyN6E4TMhhBBCtpDacLs2CCeEEEIIIYQQspdg+EwIIYQQQgghhBBCCCFky2H4TAghhBBCCCGEEEIIIWTLYfhMCCGEEEIIIYQQQgghZMt57fA5nU4zfCaEEEIIIYQQQgghhBBiiM/nQzqdZvhMCCGEEEIIIYQQQgghZOtoKXwulUo14XM2m2X4TAghhBBCCCGEEEIIIaQhaviczWaNw2dt9XOhUEA+n0c2m0Umk2H4TAghhBBCCCGEEEIIIcQQn8+HTCaDbDaLfD6PQqGAubk54/C5WCxWwmdJkuDz+SillFJKKaWUUkoppZRSQyVJqoTPxWJRDp8XFhYMw2dt641MJoNUKoVUKoVEIoF4PI5YLIZYLIZoNFpjJBKhlFJKKaWUUkoppZRSusvVZ79qJhyPx5FIJCqZsVr1rG250TB81rbe0C48qD5YMplEIpGoBNFa1QFQSimllFJKKaWUUkop3b3qs181E04mk5WsWLvQoLblhmH4rK9+1rbfyGQyNSG0GkRTSimllFJKKaWUUkopfbfV5sLpdBqZTKam3Ya26rlUKtWGz80CaLUFhzaE1qp9YkoppZRSSimllFJKKaXvhvosWBs6ayuetcFzJXxuVP3cKIBWlSSJUkoppZRSSimllFJK6R5Rmw8bBc9Nw+dmAbQaQqtBNKWUUkoppZRSSimllNK9pZoRq5mxUfA8Pz9fDZ8bBdD6EFobRFNKKaWUUkoppZRSSinde6pZsT50VoPnuvC5lQBaH0RTSimllFJKKaWUUkop3Tvqs2Kj4Hl+fh7/H5oo7w7dMdjLAAAAAElFTkSuQmCC" width="640" />Unknownnoreply@blogger.com0