<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5094597816208395111</id><updated>2024-09-10T06:51:27.642+05:30</updated><category term="linux"/><category term="python"/><category term="Web"/><category term="Ip address"/><category term="email"/><category term="ssh"/><category term="iptables"/><category term="javascript"/><category term="kernel"/><category term="logs"/><category term="networking"/><category term="proxy"/><category term="security"/><category term="syslog"/><category term="unix"/><category term="C Programming"/><category term="CRM"/><category term="Certificates"/><category term="Perl"/><category term="Programming"/><category term="Regular Expression"/><category term="VPN"/><category term="apache"/><category term="chkconfig"/><category term="cron"/><category term="curl"/><category term="file partition"/><category term="file system"/><category term="gcc"/><category term="harddisk"/><category term="internet"/><category term="kill command"/><category term="lynx"/><category term="pid"/><category term="re"/><category term="shell"/><category term="sockets"/><category term="stdin-stdout-stderr"/><category term="sudo root linux"/><category term="tcpdump"/><category term="umask"/><category term="wget"/><category term="windows"/><title type='text'>Enjoy ur trip to Technology</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>144</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-3018567573776097038</id><published>2019-10-25T13:24:00.001+05:30</published><updated>2019-10-25T13:24:16.391+05:30</updated><title type='text'>Mount Remote Network Folder Share locally in UBUNTU</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This whole article is based on the below page...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://forums.linuxmint.com/viewtopic.php?t=70187&quot;&gt;https://forums.linuxmint.com/viewtopic.php?t=70187&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Still I would like to summarize in short steps for mounting a remote Network Share Folder Locally.&lt;br /&gt;
&lt;br /&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;1.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Enter this into a terminal to install&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;smbfs&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo apt-get install smbfs&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/strong&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;2.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Enter this into a terminal to add the samba goup.&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo groupadd samba&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;3.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Enter this into a terminal replacing&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;user&lt;/strong&gt;&lt;/em&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with your actual user name to add yourself to the samba group.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo adduser user samba&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Example: For me it would be&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;sudo adduser jason samba&lt;/strong&gt;&lt;/em&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;since my user name is jason.&lt;/span&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;4.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Enter this into a terminal to edit your sudoer file.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo vim /etc/sudoers&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;5.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Paste this into the last line of the file.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;%samba   ALL=(ALL) /bin/mount,/bin/umount,/sbin/mount.cifs,/sbin/umount.cifs&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;6.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Save and close the sudoer file.&lt;/span&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;7.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Enter this in a terminal to create credentials for your share.&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo vim /etc/samba/user&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;8.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Paste this into the file using your the actual username and password for the share. Replacing&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;em class=&quot;text-italics&quot; style=&quot;font-style: italic;&quot;&gt;admin&lt;/em&gt;&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with the actual username of the share and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;password&lt;/strong&gt;&lt;/em&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;with the actual password of the share.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;username=admin
password=password&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Example:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;admin&lt;/strong&gt;&lt;/em&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is the actual username of my samba share and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;password&lt;/strong&gt;&lt;/em&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is the actual password of my samba share.&lt;/span&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;9.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Save and close the file.&lt;/span&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;br style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot; /&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;10.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Enter this in a terminal to make a mount point for your share changing&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;em class=&quot;text-italics&quot; style=&quot;font-style: italic;&quot;&gt;samba_share&lt;/em&gt;&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to whatever you want to call the folder.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;em class=&quot;text-italics&quot; style=&quot;font-style: italic;&quot;&gt;*A tip&lt;/em&gt;&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;The fstab doesn&#39;t like spaces in folder names. Avoid them in the mount point and share folder name.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo mkdir /media/samba_share&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;11.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Enter this into a Terminal to open your fstab.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo vim /etc/fstab&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;strong class=&quot;text-strong&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;12.&lt;/strong&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Add this line to your fstab to tell your system what it&#39;s mounting and where to mount it to, replacing&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;myserver_ip_address&lt;/strong&gt;&lt;/em&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with the actual IP of your share, in your case 192.168.0.1 and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;myshare&lt;/strong&gt;&lt;/em&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with the actual path to the folder you want to mount in that share.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: white; border: 1px solid rgb(201, 210, 216); color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 1em 0px 1.2em; orphans: 2; overflow-wrap: normal; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; font-size: 1em; margin: 0px; overflow: auto;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font: 0.9em/1.3em Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; height: auto; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;//myserver_ip_address/myshare  /media/samba_share  cifs  credentials=/etc/samba/user,noexec  0 0&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;content&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; clear: both; color: #333333; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.4em; min-height: 3em; overflow: auto hidden; padding-bottom: 1px; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;13.&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Save and close your fstab.&lt;br /&gt;&lt;br /&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;14.&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Test your samba mount by entering this into the terminal replacing&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em class=&quot;text-italics&quot; style=&quot;font-style: italic;&quot;&gt;&lt;strong class=&quot;text-strong&quot; style=&quot;font-weight: bold;&quot;&gt;samba_share&lt;/strong&gt;&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with whatever you decided to call your samba share mount point.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;background-color: white; border: 1px solid rgb(201, 210, 216); margin: 1em 0px 1.2em; overflow-wrap: normal;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; margin: 0px; overflow: auto;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font-family: Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; height: auto; line-height: 1.3em; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo mount /media/samba_share&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Example: I entered this to mount my samba shares. the &quot;&lt;em class=&quot;text-italics&quot; style=&quot;font-style: italic;&quot;&gt;&amp;amp;&amp;amp;&lt;/em&gt;&quot; just tells the commands to run one after the other.&lt;/span&gt;&lt;div class=&quot;codebox&quot; style=&quot;background-color: white; border: 1px solid rgb(201, 210, 216); margin: 1em 0px 1.2em; overflow-wrap: normal;&quot;&gt;
&lt;div style=&quot;border-bottom: 1px solid rgb(183, 204, 161); display: block; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 0.8em !important; font-weight: bold; line-height: 1.4em; margin: 0px; padding: 3px; text-transform: uppercase;&quot;&gt;
CODE:&lt;span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;font-family: monospace, monospace; margin: 0px; overflow: auto;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;code style=&quot;color: seagreen; display: block; font-family: Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; height: auto; line-height: 1.3em; max-height: 200px; overflow: auto; padding: 5px 3px;&quot;&gt;sudo mount /media/DocumentShare &amp;amp;&amp;amp; sudo mount /media/MusicShare &amp;amp;&amp;amp; sudo mount /media/PictureShare &amp;amp;&amp;amp; sudo mount /media/VideoShare&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;If all goes well your share will show up as a mounted file system and be usable by your system and apps like any other drive locally attached to your computer.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: #e0edd3; color: #333333; display: inline !important; float: none; font-family: &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Trebuchet MS&amp;quot;, Verdana, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/3018567573776097038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/3018567573776097038' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3018567573776097038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3018567573776097038'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2019/10/mount-remote-network-folder-share.html' title='Mount Remote Network Folder Share locally in UBUNTU'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-5051114543975251006</id><published>2015-08-05T00:45:00.001+05:30</published><updated>2015-08-05T00:46:38.890+05:30</updated><title type='text'>SETUP AUTO BACKUP BATCH SCRIPT in WINDOWS using CYGWIN RSYNC SSH</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 id=&quot;winrsync&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: transparent; color: #a03b29; font-family: verdana, sans-serif; font-size: 18.7199993133545px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2 id=&quot;winrsync&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: transparent; color: #a03b29; font-family: verdana, sans-serif; font-size: 18.7199993133545px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
&lt;/h2&gt;
&lt;h3 style=&quot;background-color: white; font-family: &amp;quot;Open Sans&amp;quot;,sans-serif; font-size: 17.784px; font-style: normal; font-variant: normal; font-weight: 600; letter-spacing: normal; margin: 0px; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
&lt;span style=&quot;color: #660000;&quot;&gt;Add Cygwin Path to Windows Environment Variable&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #172232; font-family: &#39;Open Sans&#39;, sans-serif; font-size: 17.7839984893799px; font-style: normal; font-variant: normal; font-weight: 600; letter-spacing: normal; margin: 0px; orphans: auto; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
&lt;span style=&quot;color: #660000;&quot;&gt;&amp;nbsp; Follow Step 1 to 5&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt0tRi9BWwGPiuonpVPUHp9rhKQoz8Ru5jGOYjQgRCVi_5fxofW_fmejQh9QOlRr9D8Q0lWpdfmFpiiMc00dO41GcybIp_Z7OLdADAH7iUQdRgetyP4VvPKBAzrimZPjIgns1b8Nz4gFn7/s1600/CYGWIN+SETUP+FOR+CMD.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;348&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt0tRi9BWwGPiuonpVPUHp9rhKQoz8Ru5jGOYjQgRCVi_5fxofW_fmejQh9QOlRr9D8Q0lWpdfmFpiiMc00dO41GcybIp_Z7OLdADAH7iUQdRgetyP4VvPKBAzrimZPjIgns1b8Nz4gFn7/s640/CYGWIN+SETUP+FOR+CMD.bmp&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3 style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #172232; font-family: &#39;Open Sans&#39;, sans-serif; font-size: 17.7839984893799px; font-style: normal; font-variant: normal; font-weight: 600; letter-spacing: normal; margin: 0px; orphans: auto; padding: 0px; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
&amp;nbsp;&lt;span id=&quot;goog_494413308&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_494413309&quot;&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h2 id=&quot;winrsync&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: transparent; color: #a03b29; font-family: verdana, sans-serif; font-size: 18.7199993133545px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2 id=&quot;winrsync&quot; style=&quot;-webkit-text-stroke-width: 0px; background-color: transparent; color: #a03b29; font-family: verdana, sans-serif; font-size: 18.7199993133545px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
Rsync on Windows&lt;/h2&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;Rsync is available for Windows through cygwin or as stand-alone packaged in&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://sourceforge.net/projects/sereds/&quot; style=&quot;-webkit-text-stroke-width: 0px; background: transparent; color: #374e6d; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;cwrsync&lt;/a&gt;&lt;span class=&quot;fn&quot; style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt; http://sourceforge.net/projects/sereds&lt;/span&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;. This is very convenient for automated backups. Install one of them (&lt;/span&gt;&lt;i style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;not both&lt;/i&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;) and add the path to the Windows system variables: # Control Panel -&amp;gt; System -&amp;gt; tab Advanced, button Environment Variables. Edit the &quot;Path&quot; system variable and add the full path to the installed rsync, e.g. C:\Program Files\cwRsync\bin or C:\cygwin\bin. This way the commands&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code style=&quot;-webkit-text-stroke-width: 0px; color: #003c00; font-family: monospace; font-size: 10.5299997329712px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;rsync&lt;/code&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;and&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code style=&quot;-webkit-text-stroke-width: 0px; color: #003c00; font-family: monospace; font-size: 10.5299997329712px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;ssh&lt;/code&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;are available in a Windows command shell.&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;-webkit-text-stroke-width: 0px; background-color: transparent; color: #a03b29; font-family: verdana, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
Public key authentication&lt;/h3&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;Rsync is automatically tunneled over SSH and thus uses the SSH authentication on the server. Automatic backups have to avoid a user interaction, for this the SSH public key authentication can be used and the rsync command will run without a password.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;All the following commands are executed within a Windows console. In a console (Start -&amp;gt; Run -&amp;gt; cmd) create and upload the key as described in&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://sleepyhead.de/howto/?href=rsync#ssh&quot; style=&quot;-webkit-text-stroke-width: 0px; background: transparent; color: #374e6d; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;SSH&lt;/a&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;, change &quot;user&quot; and &quot;server&quot; as appropriate. If the file authorized_keys2 does not exist yet, simply copy id_dsa.pub to authorized_keys2 and upload it.&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;-webkit-text-stroke-width: 0px; background-color: whitesmoke; color: #003c00; font-family: monospace; font-size: 10.5299997329712px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px;&quot;&gt;# ssh-keygen -t dsa -N &#39;&#39;                   &lt;span class=&quot;cmt&quot; style=&quot;color: #000040;&quot;&gt;# Creates a public and a private key&lt;/span&gt;
# rsync user@server:.ssh/authorized_keys2 . &lt;span class=&quot;cmt&quot; style=&quot;color: #000040;&quot;&gt;# Copy the file locally from the server&lt;/span&gt;
# cat id_dsa.pub &amp;gt;&amp;gt; authorized_keys2        &lt;span class=&quot;cmt&quot; style=&quot;color: #000040;&quot;&gt;# Or use an editor to add the key&lt;/span&gt;
# rsync authorized_keys2 user@server:.ssh/  &lt;span class=&quot;cmt&quot; style=&quot;color: #000040;&quot;&gt;# Copy the file back to the server&lt;/span&gt;
# del authorized_keys2                      &lt;span class=&quot;cmt&quot; style=&quot;color: #000040;&quot;&gt;# Remove the local copy&lt;/span&gt;
&lt;/pre&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;Now test it with (in one line):&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;-webkit-text-stroke-width: 0px; background-color: whitesmoke; color: #003c00; font-family: monospace; font-size: 10.5299997329712px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px;&quot;&gt;rsync -rv &quot;/cygdrive/c/Documents and Settings/%USERNAME%/My Documents/&quot; \
&#39;user@server:My\ Documents/&#39;
&lt;/pre&gt;
&lt;h3 style=&quot;-webkit-text-stroke-width: 0px; background-color: transparent; color: #a03b29; font-family: verdana, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;
Automatic backup&lt;/h3&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;Use a batch file to automate the backup and add the file in the scheduled tasks (Programs - Accessories - System Tools - Scheduled Tasks). For example create the file backup.bat and replace user@server&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;&amp;nbsp;Source: remote Linux server &lt;/span&gt;&lt;i&gt;user@server:/home/abc/imp-files&lt;/i&gt;&lt;br /&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; color: black; display: inline !important; float: none; font-family: verdana, arial, sans-serif; font-size: 14.3999996185303px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;&amp;nbsp;Destination: local XP machine &lt;/span&gt;&lt;i&gt;C:\cygwin\home\xyz\backup\&lt;/i&gt;&lt;br /&gt;
&lt;pre style=&quot;-webkit-text-stroke-width: 0px; background-color: whitesmoke; color: #003c00; font-family: monospace; font-size: 10.5299997329712px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style=&quot;-webkit-text-stroke-width: 0px; background-color: whitesmoke; color: #003c00; font-family: monospace; font-size: 10.5299997329712px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px;&quot;&gt;@ECHO OFF

REM rsync the directory My Documents

SETLOCAL
SET CWRSYNCHOME=C:\cygwin\home\xyz\backup\
SET CYGWIN=nontsec

SET CWOLDPATH=%PATH%

REM uncomment the next line when using cygwin

SET PATH=%CWRSYNCHOME%\BIN;%PATH%

rsync -avzv --exclude &quot;log&quot; -e &#39;ssh &#39; &quot;user@server:/home/abc/imp-files/&quot; &#39;/cygdrive/c/cygwin/home/xyz/backup/&#39;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/5051114543975251006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/5051114543975251006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/5051114543975251006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/5051114543975251006'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2015/08/setup-auto-backup-batch-script-in.html' title='SETUP AUTO BACKUP BATCH SCRIPT in WINDOWS using CYGWIN RSYNC SSH'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt0tRi9BWwGPiuonpVPUHp9rhKQoz8Ru5jGOYjQgRCVi_5fxofW_fmejQh9QOlRr9D8Q0lWpdfmFpiiMc00dO41GcybIp_Z7OLdADAH7iUQdRgetyP4VvPKBAzrimZPjIgns1b8Nz4gFn7/s72-c/CYGWIN+SETUP+FOR+CMD.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-7428960194373629131</id><published>2014-08-01T18:43:00.002+05:30</published><updated>2014-08-01T18:43:31.296+05:30</updated><title type='text'>Recovering DATA from BAD (SUPERBLOC) HARD DRIVE</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Hello everyone..&lt;div&gt;
Just recovered my data from a BAD Hard drive of my server which just crashed suddenly.&lt;/div&gt;
&lt;div&gt;
My Autobackup script was working fine.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
But my backup script was not backing up personal home folders of users.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So first had to identify the LVS which was done by below commands&lt;/div&gt;
&lt;div&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;span style=&quot;background-color: #edeff1; font-family: monospace; font-size: 11px; white-space: pre;&quot;&gt;lvm vgscan
lvm vgchange -ay
lvm lvs&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #edeff1; font-family: monospace; font-size: 11px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #edeff1; font-family: monospace; font-size: 11px; white-space: pre;&quot;&gt;After finding the LVS finding the last superblock which will hopefully be in good condition.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #edeff1; font-family: monospace; font-size: 11px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;border: 0px; clear: both; color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 20px; margin-bottom: 1em; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;code style=&quot;background-color: #eeeeee; border: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 13px; margin: 0px; padding: 1px 5px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;mke2fs -n&lt;/code&gt;&amp;nbsp;(note,&amp;nbsp;&lt;code style=&quot;background-color: #eeeeee; border: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 13px; margin: 0px; padding: 1px 5px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;-n&lt;/code&gt;) returns the superblocks:&lt;/div&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 0px; color: #333333; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 13px; line-height: 20px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;$ sudo mke2fs -n /dev/--LVS--
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
61054976 inodes, 244190363 blocks
12209518 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
7453 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;border: 0px; clear: both; color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 20px; margin-bottom: 1em; padding: 0px; vertical-align: baseline;&quot;&gt;
Now taking the last superbloc for e2fsck&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 0px; color: #333333; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 13px; line-height: 20px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;$ sudo e2fsck -b 214990848 /dev/sdb1 
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
After this command just mounted the LVS&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
and got all my files&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Had written this in a hurry...&lt;/div&gt;
&lt;div&gt;
Still hope it helps some one..&lt;/div&gt;
&lt;div&gt;
Drop me &amp;nbsp;a mail if any one requires guidance...&lt;/div&gt;
&lt;div&gt;
Thanks&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/7428960194373629131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/7428960194373629131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/7428960194373629131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/7428960194373629131'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2014/08/recovering-data-from-bad-superbloc-hard.html' title='Recovering DATA from BAD (SUPERBLOC) HARD DRIVE'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-4301301869547078494</id><published>2014-03-19T17:30:00.001+05:30</published><updated>2014-03-19T17:32:02.112+05:30</updated><title type='text'>Send Mail in Python (GMAIL &amp; YAHOO)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; display: inline !important; float: none; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;Programmatically sending an email is really a good tool for developer’s paraphernalia. This is really handy when one automates task and wants to get notified by an email for success or failure. Lately I have written Python script to automate some jobs and incorporated method to send email notification. I thought to share this simple script here so my readers can get benefited.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Using local MTA-SMTP connection&lt;/h4&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div class=&quot;syntaxhighlighter  python&quot; id=&quot;highlighter_95974&quot; style=&quot;background-color: white !important; font-size: 1em !important; margin: 1em 0px !important; overflow-x: auto !important; overflow-y: hidden !important; position: relative !important; width: 660px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 707px;&quot;&gt;&lt;caption style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0.5em 0px 0.5em 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;Python script to send email&lt;/caption&gt;&lt;tbody style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;tr style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(120, 120, 120) !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
25&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
26&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
27&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
28&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
29&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
30&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
31&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
32&lt;/div&gt;
&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
33&lt;/div&gt;
&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
34&lt;/div&gt;
&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
35&lt;/div&gt;
&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
36&lt;/div&gt;
&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
37&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 670px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#!/usr/bin/env python&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtplib&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;email.mime.text &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;MIMEText&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SUBJECT &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Email from Python script&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_FROM &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;notification@code4reference.com&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_RECEIVERS &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;your_email@gmail.com&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;]&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;listToStr(lst):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This method makes comma separated list item string&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;,&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;.join(lst)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;send_email(msg):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This method sends an email&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg_header &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;From: &quot;&lt;/code&gt; &lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_FROM &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;\n&quot;&lt;/code&gt; &lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;\&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;To: &quot;&lt;/code&gt; &lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;listToStr(EMAIL_RECEIVERS) &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;\n&quot;&lt;/code&gt; &lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;\&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Subject: &quot;&lt;/code&gt; &lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SUBJECT &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;\n&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg_body &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&amp;nbsp; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg_header &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;+&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;try&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#establish a connection with the local SMTP server.&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtplib.SMTP(&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;localhost&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Now send the email&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.sendmail(EMAIL_FROM, EMAIL_RECEIVERS, msg_body)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Close the connection and session.&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.quit()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;except&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTPException as error:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;print&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Error: unable to send email :&amp;nbsp; {err}&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;.&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;format&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;(err&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;error)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;main():&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This is a simple main() function which demonstrate sending of email using smtplib.&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;send_email(&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Test email was generated by Python using smtplib and email libraries&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;__name__ &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;__main__&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;If this script is run as stand alone then call main() function.&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;main()&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Before running this script make sure your system has Mail Transfer Agent(MTA) configured. If it is not then read&lt;a href=&quot;http://code4reference.com/2013/07/setting-email-server-on-ec2-using-exim4/&quot; style=&quot;color: #748a37; outline-color: invert; outline-style: none; text-decoration: none;&quot; title=&quot;Setting Mail Transfer Agent (MTA) on EC2 using exim4&quot;&gt;this post to configure Mail-server&lt;/a&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;on Ubuntu 12.04.&lt;br /&gt;
If you are not interested to configure your own MTA then you can probably used the SMTP service provided by other Mail server e.g&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.gmail.com/&quot; rel=&quot;nofollow&quot; style=&quot;color: #748a37; outline-color: invert; outline-style: none; text-decoration: none;&quot; title=&quot;Mailing service.&quot;&gt;Gmail&lt;/a&gt;,&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.yahoo.com/&quot; rel=&quot;nofollow&quot; style=&quot;color: #748a37; outline-color: invert; outline-style: none; text-decoration: none;&quot; title=&quot;mail service&quot;&gt;yahoo&lt;/a&gt;, etc. But these service providers put some email limits to control spamming. If your application/script is sending email more than this limit then the service can detect it as spamming and may lock your account. You can find gmail email limit from&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://support.google.com/a/bin/answer.py?hl=en&amp;amp;answer=166852&quot; rel=&quot;nofollow&quot; style=&quot;color: #748a37; outline-color: invert; outline-style: none; text-decoration: none;&quot; title=&quot;Gmail SMTP email limit.&quot;&gt;here&lt;/a&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;whereas Yahoo SMTP limit is provided&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://help.yahoo.com/l/us/yahoo/smallbusiness/bizmail/pop/pop-36.html&quot; rel=&quot;nofollow&quot; style=&quot;color: #748a37; outline-color: invert; outline-style: none; text-decoration: none;&quot; title=&quot;Yahoo SMTP email limit&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;h4 style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Using Gmail SMTP&lt;/h4&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Google SMTP server is located here&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;code class=&quot;c4rCode&quot; style=&quot;background-color: transparent; border: 0px; color: black; display: inline; font-family: Monaco, Consolas, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; padding: 0px;&quot;&gt;smtp.gmail.com&lt;/code&gt;. According to the standard the SMTP port is 25 but Gmail doesn’t use this port instead it uses port&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;code class=&quot;c4rCode&quot; style=&quot;background-color: transparent; border: 0px; color: black; display: inline; font-family: Monaco, Consolas, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; padding: 0px;&quot;&gt;587&lt;/code&gt;. Script uses this information to establish a connection and sends an email.&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div class=&quot;syntaxhighlighter  python&quot; id=&quot;highlighter_796470&quot; style=&quot;background-color: white !important; font-size: 1em !important; margin: 1em 0px !important; overflow-x: auto !important; overflow-y: hidden !important; position: relative !important; width: 660px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 714px;&quot;&gt;&lt;tbody style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;tr style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(120, 120, 120) !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
25&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
26&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
27&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
28&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
29&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
30&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
31&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
32&lt;/div&gt;
&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
33&lt;/div&gt;
&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
34&lt;/div&gt;
&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
35&lt;/div&gt;
&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
36&lt;/div&gt;
&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
37&lt;/div&gt;
&lt;div class=&quot;line number38 index37 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
38&lt;/div&gt;
&lt;div class=&quot;line number39 index38 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
39&lt;/div&gt;
&lt;div class=&quot;line number40 index39 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
40&lt;/div&gt;
&lt;div class=&quot;line number41 index40 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
41&lt;/div&gt;
&lt;div class=&quot;line number42 index41 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
42&lt;/div&gt;
&lt;div class=&quot;line number43 index42 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
43&lt;/div&gt;
&lt;div class=&quot;line number44 index43 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
44&lt;/div&gt;
&lt;div class=&quot;line number45 index44 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
45&lt;/div&gt;
&lt;div class=&quot;line number46 index45 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
46&lt;/div&gt;
&lt;div class=&quot;line number47 index46 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
47&lt;/div&gt;
&lt;div class=&quot;line number48 index47 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
48&lt;/div&gt;
&lt;div class=&quot;line number49 index48 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
49&lt;/div&gt;
&lt;div class=&quot;line number50 index49 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
50&lt;/div&gt;
&lt;div class=&quot;line number51 index50 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
51&lt;/div&gt;
&lt;div class=&quot;line number52 index51 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
52&lt;/div&gt;
&lt;div class=&quot;line number53 index52 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
53&lt;/div&gt;
&lt;div class=&quot;line number54 index53 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
54&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 677px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#!/usr/bin/env python&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtplib &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTP&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtplib &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTPException&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;email.mime.text &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;MIMEText&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;sys&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Global varialbes&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SUBJECT &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Email from Python script&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_RECEIVERS &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;receiverId@gmail.com&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;]&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SENDER&amp;nbsp; &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&amp;nbsp; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;senderId@gmail.com&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;GMAIL_SMTP &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;smtp.gmail.com&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;GMAIL_SMTP_PORT &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;587&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;TEXT_SUBTYPE &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;plain&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;listToStr(lst):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This method makes comma separated list item string&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;,&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;.join(lst)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;send_email(content, pswd):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This method sends an email&quot;&quot;&quot;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Create the message&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;MIMEText(content, TEXT_SUBTYPE)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Subject&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;] &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SUBJECT&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;From&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;] &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SENDER&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;To&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;] &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;listToStr(EMAIL_RECEIVERS)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;try&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTP(GMAIL_SMTP, GMAIL_SMTP_PORT)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Identify yourself to GMAIL ESMTP server.&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.ehlo()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Put SMTP connection in TLS mode and call ehlo again.&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.starttls()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.ehlo()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Login to service&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.login(user&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SENDER, password&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;pswd)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Send email&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number38 index37 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.sendmail(EMAIL_SENDER, EMAIL_RECEIVERS, msg.as_string())&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number39 index38 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#close connection and session.&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number40 index39 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.quit();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number41 index40 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;except&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTPException as error:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number42 index41 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;print&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Error: unable to send email :&amp;nbsp; {err}&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;.&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;format&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;(err&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;error)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number43 index42 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number44 index43 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;main(pswd):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number45 index44 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This is a simple main() function which demonstrates sending of email using smtplib.&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number46 index45 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;send_email(&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Test email was generated by Python using smtplib and email libraries&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;, pswd);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number47 index46 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number48 index47 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;__name__ &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;__main__&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number49 index48 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;If this script is executed as stand alone then call main() function.&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number50 index49 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;len&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;(sys.argv) &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;2&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number51 index50 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;main(sys.argv[&lt;/code&gt;&lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;1&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;])&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number52 index51 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;else&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number53 index52 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;print&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Please provide password&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number54 index53 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;sys.exit(&lt;/code&gt;&lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;0&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
If scripts uses SMTP to send emails then Gmail can detect it as suspicious activity and it may ask you to change the password. This is a kind-of-annoying. To avoid such issues it always suggested&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://code4reference.com/2013/07/setting-email-server-on-ec2-using-exim4/&quot; style=&quot;color: #748a37; outline-color: invert; outline-style: none; text-decoration: none;&quot; title=&quot;Setting Mail Transfer Agent (MTA) on EC2 using exim4&quot;&gt;to configure your own MTA&lt;/a&gt;.&lt;/div&gt;
&lt;h4 style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Using Yahoo SMTP&lt;/h4&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Yahoo exposed SMTP service here&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;code class=&quot;c4rCode&quot; style=&quot;background-color: transparent; border: 0px; color: black; display: inline; font-family: Monaco, Consolas, monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; padding: 0px;&quot;&gt;smtp.mail.yahoo.com&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;and 465 port. Unlike Gmail, It expects a SSL SMTP connection.&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div class=&quot;syntaxhighlighter  python&quot; id=&quot;highlighter_795387&quot; style=&quot;background-color: white !important; font-size: 1em !important; margin: 1em 0px !important; overflow-x: auto !important; overflow-y: hidden !important; position: relative !important; width: 660px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 714px;&quot;&gt;&lt;tbody style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;tr style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(120, 120, 120) !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
25&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
26&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
27&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
28&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
29&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
30&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
31&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
32&lt;/div&gt;
&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
33&lt;/div&gt;
&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
34&lt;/div&gt;
&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
35&lt;/div&gt;
&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
36&lt;/div&gt;
&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
37&lt;/div&gt;
&lt;div class=&quot;line number38 index37 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
38&lt;/div&gt;
&lt;div class=&quot;line number39 index38 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
39&lt;/div&gt;
&lt;div class=&quot;line number40 index39 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
40&lt;/div&gt;
&lt;div class=&quot;line number41 index40 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
41&lt;/div&gt;
&lt;div class=&quot;line number42 index41 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
42&lt;/div&gt;
&lt;div class=&quot;line number43 index42 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
43&lt;/div&gt;
&lt;div class=&quot;line number44 index43 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
44&lt;/div&gt;
&lt;div class=&quot;line number45 index44 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
45&lt;/div&gt;
&lt;div class=&quot;line number46 index45 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
46&lt;/div&gt;
&lt;div class=&quot;line number47 index46 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
47&lt;/div&gt;
&lt;div class=&quot;line number48 index47 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-right-color: rgb(212, 208, 200) !important; border-right-style: solid !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-width: 0px 3px 0px 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
48&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 677px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#!/usr/bin/env python&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtplib &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTP&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtplib &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTP_SSL&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtplib &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTPException&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;from&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;email.mime.text &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;MIMEText&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;sys&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Global varialbes&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SUBJECT &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Email from Python script&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_RECEIVERS &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;receiverId@gmail.com&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;]&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SENDER&amp;nbsp; &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&amp;nbsp; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;senderId@yahoo.com&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;TEXT_SUBTYPE &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;plain&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;YAHOO_SMTP &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;smtp.mail.yahoo.com&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;YAHOO_SMTP_PORT &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;465&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;listToStr(lst):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This method makes comma separated list item string&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&#39;,&#39;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;.join(lst)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;send_email(content, pswd):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This method sends an email&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;MIMEText(content, TEXT_SUBTYPE)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Subject&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;] &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SUBJECT&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;From&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;] &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SENDER&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;msg[&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;To&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;] &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;listToStr(EMAIL_RECEIVERS)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;try&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#Yahoo allows SMTP connection over SSL. &lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTP_SSL(YAHOO_SMTP, YAHOO_SMTP_PORT)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;#If SMTP_SSL is used then ehlo and starttls call are not required.&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.login(user&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;EMAIL_SENDER, password&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;pswd)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.sendmail(EMAIL_SENDER, EMAIL_RECEIVERS, msg.as_string())&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;smtpObj.quit();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;except&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;SMTPException as error:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;print&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Error: unable to send email :&amp;nbsp; {err}&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;.&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;format&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;(err&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;error)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number38 index37 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;main(pswd):&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number39 index38 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;This is a simple main() function which demonstrates sending of email using smtplib.&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number40 index39 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;send_email(&lt;/code&gt;&lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Test email was generated by Python using smtplib and email libraries&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;, pswd);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number41 index40 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number42 index41 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;__name__ &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;__main__&quot;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number43 index42 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python comments&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;&quot;&quot;If this script is executed as stand alone then call main() function.&quot;&quot;&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number44 index43 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;len&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;(sys.argv) &lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;=&lt;/code&gt; &lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;2&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number45 index44 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;main(sys.argv[&lt;/code&gt;&lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;1&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;])&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number46 index45 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python keyword&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(127, 0, 85) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;else&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number47 index46 alt2&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python functions&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(255, 20, 147) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;print&lt;/code&gt; &lt;code class=&quot;python string&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(42, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&quot;Please provide password&quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number48 index47 alt1&quot; style=&quot;background-color: white !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;
&lt;code class=&quot;python spaces&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;sys.exit(&lt;/code&gt;&lt;code class=&quot;python value&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;0&lt;/code&gt;&lt;code class=&quot;python plain&quot; style=&quot;background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-variant: normal; font-weight: normal !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Email with attachment&lt;/h4&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Above scripts just send an email what if you want to attach something with it. You can use the below script to attach a picture and text file with the email.&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
from smtplib import SMTP&lt;br /&gt;
from smtplib import SMTPException&lt;br /&gt;
from email.MIMEMultipart import MIMEMultipart&lt;br /&gt;
from email.MIMEText import MIMEText&lt;br /&gt;
from email.MIMEImage import MIMEImage&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMAIL_SUBJECT = &quot;Email from Python script with attachment.&quot;&lt;br /&gt;
EMAIL_FROM = &#39;senderId@gmail.com&#39;&lt;br /&gt;
EMAIL_RECEIVER = &#39;receiverId@gmail.com&#39;&lt;br /&gt;
GMAIL_SMTP = &quot;smtp.gmail.com&quot;&lt;br /&gt;
GMAIL_SMTP_PORT = 587&lt;br /&gt;
TEXT_SUBTYPE = &quot;plain&quot;&lt;br /&gt;
&lt;br /&gt;
def listToStr(lst):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&quot;&quot;This method makes comma separated list item string&quot;&quot;&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return &#39;,&#39;.join(lst)&lt;br /&gt;
&lt;br /&gt;
def send_email(content, pswd):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&quot;&quot;This method sends an email&quot;&quot;&quot;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Create the email.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = MIMEMultipart()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg[&quot;Subject&quot;] = EMAIL_SUBJECT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg[&quot;From&quot;] = EMAIL_FROM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg[&quot;To&quot;] = EMAIL_RECEIVER&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; body = MIMEMultipart(&#39;alternative&#39;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; body.attach(MIMEText(content, TEXT_SUBTYPE ))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Attach the message&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg.attach(body)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Attach a text file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg.attach(MIMEText(file(&quot;code4reference.txt&quot;).read()))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Attach a picuture.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg.attach(MIMEImage(file(&quot;pic.jpg&quot;).read()))&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpObj = SMTP(GMAIL_SMTP, GMAIL_SMTP_PORT)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Identify yourself to GMAIL ESMTP server.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpObj.ehlo()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Put SMTP connection in TLS mode and call ehlo again.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpObj.starttls()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpObj.ehlo()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Login to service&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpObj.login(user=EMAIL_FROM, password=pswd)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Send email&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpObj.sendmail(EMAIL_FROM, EMAIL_RECEIVER, msg.as_string())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #close connection and session.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpObj.quit()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; except SMTPException as error:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print &quot;Error: unable to send email :&amp;nbsp; {err}&quot;.format(err=error)&lt;br /&gt;
&lt;br /&gt;
def main(pswd):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&quot;&quot;This is a simple main() function which demonstrate sending of email using smtplib.&quot;&quot;&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; send_email(&quot;Test email was generated by Python using smtplib and email libraries.&quot; + \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot; This email also has attachments. Please download them&quot;, pswd);&lt;br /&gt;
&lt;br /&gt;
if __name__ == &quot;__main__&quot;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&quot;&quot;If this script is run as stand alone then call main() function.&quot;&quot;&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(sys.argv) == 2:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; main(sys.argv[1]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print &quot;Please provide the password&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  python&quot; id=&quot;highlighter_194204&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
If you are interested in source code you can get it from&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.blogger.com/goog_419709700&quot; rel=&quot;nofollow&quot; style=&quot;color: #748a37; outline-color: invert; outline-style: none; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Simple python script to send email.&quot;&gt;github/code4reference&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Hope this blog helped you in some way but don&#39;t than &lt;span class=&quot;Apple-converted-space&quot;&gt;me as owner is Mr. Rakesh&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Segoe UI&#39;, &#39;Bitstream Vera Sans&#39;, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;Original blog url is &lt;a href=&quot;http://code4reference.com/2013/07/simple-python-script-to-send-an-email/&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/4301301869547078494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/4301301869547078494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4301301869547078494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4301301869547078494'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2014/03/send-mail-in-python-gmail-yahoo.html' title='Send Mail in Python (GMAIL &amp; YAHOO)'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-4975289866833255028</id><published>2012-03-31T18:09:00.001+05:30</published><updated>2012-03-31T18:09:43.931+05:30</updated><title type='text'>To Mount remote windows partition (windows share) under Linux</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
All files accessible in a Linux (and UNIX) system are arranged in one big tree, the file hierarchy, rooted at /. These files can be spread out over several devices. The mount command serves to attach the file system found on some device to the big file tree.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
Use the mount command to mount remote windows partition or windows share under Linux as follows:&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 1.286em; line-height: 22px; margin-bottom: 0.611em; margin-left: 0px; margin-right: 0px; margin-top: 1.833em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
Procedure to mount remote windows partition (NAS share)&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
1) Make sure you have following information:&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;==&amp;gt; Windows username and password to access share name&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;==&amp;gt; Sharename (such as //server/share) or IP address&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;==&amp;gt; root level access on Linux&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
2) Login to Linux as a root user (or use su command)&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
3) Create the required mount point:&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&lt;code style=&quot;background-attachment: scroll; background-clip: initial; background-color: #eeeeee; background-image: none; background-origin: initial; background-position: 0px 0px; background-repeat: repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; display: block; font-family: Consolas, &#39;Andale Mono&#39;, Monaco, Courier, &#39;Courier New&#39;, Verdana, sans-serif; font-size: 0.857em; line-height: 1.5em; margin-bottom: 1.833em; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 0.667em; padding-left: 0.917em; padding-right: 0.917em; padding-top: 0.667em;&quot;&gt;# mkdir -p /mnt/ntserver&lt;/code&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;4) Use the mount command as follows:&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&lt;code style=&quot;background-attachment: scroll; background-clip: initial; background-color: #eeeeee; background-image: none; background-origin: initial; background-position: 0px 0px; background-repeat: repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; display: block; font-family: Consolas, &#39;Andale Mono&#39;, Monaco, Courier, &#39;Courier New&#39;, Verdana, sans-serif; font-size: 0.857em; line-height: 1.5em; margin-bottom: 1.833em; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 0.667em; padding-left: 0.917em; padding-right: 0.917em; padding-top: 0.667em;&quot;&gt;# mount -t cifs //ntserver/download -o username=vivek,password=myPassword /mnt/ntserver&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
Use following command if you are using Old version such as RHEL &amp;lt;=4 or Debian &amp;lt;= 3:&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&lt;code style=&quot;background-attachment: scroll; background-clip: initial; background-color: #eeeeee; background-image: none; background-origin: initial; background-position: 0px 0px; background-repeat: repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; display: block; font-family: Consolas, &#39;Andale Mono&#39;, Monaco, Courier, &#39;Courier New&#39;, Verdana, sans-serif; font-size: 0.857em; line-height: 1.5em; margin-bottom: 1.833em; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 0.667em; padding-left: 0.917em; padding-right: 0.917em; padding-top: 0.667em;&quot;&gt;# mount -t smbfs -o username=vivek,password=D1W4x9sw //ntserver/download /mnt/ntserver&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
5) Access Windows 2003/2000/NT share using cd and ls command:&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;&lt;code style=&quot;background-attachment: scroll; background-clip: initial; background-color: #eeeeee; background-image: none; background-origin: initial; background-position: 0px 0px; background-repeat: repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; display: block; font-family: Consolas, &#39;Andale Mono&#39;, Monaco, Courier, &#39;Courier New&#39;, Verdana, sans-serif; font-size: 0.857em; line-height: 1.5em; margin-bottom: 1.833em; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 0.667em; padding-left: 0.917em; padding-right: 0.917em; padding-top: 0.667em;&quot;&gt;# cd /mnt/ntserver; ls -l&lt;/code&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;Where,&lt;/div&gt;
&lt;ul style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.571em; margin-left: 1.571em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;-t smbfs&lt;/strong&gt;&amp;nbsp;: File system type to be mount (outdated, use cifs)&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;-t cifs&lt;/strong&gt;&amp;nbsp;: File system type to be mount&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;-o&lt;/strong&gt;&amp;nbsp;: are options passed to mount command, in this example I had passed two options. First argument is password (vivek) and second argument is password to connect remote windows box&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;//ntserver/download&lt;/strong&gt;&amp;nbsp;: Windows 2000/NT share name&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;/mnt/ntserver&lt;/strong&gt;&amp;nbsp;Linux mount point (to access share after mounting)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/4975289866833255028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/4975289866833255028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4975289866833255028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4975289866833255028'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2012/03/to-mount-remote-windows-partition.html' title='To Mount remote windows partition (windows share) under Linux'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-8357054419232576609</id><published>2012-03-29T07:59:00.003+05:30</published><updated>2012-03-29T08:13:35.910+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="CRM"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>SugarCRM installation in UBUNTU</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: arial, verdana, sans-serif; font-size: 19px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;Installing SugarCRM Community Edition On Ubuntu 8.10&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;/div&gt;
&lt;div id=&quot;adlinkblock&quot; style=&quot;background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: verdana, sans-serif; font-size: 12px; height: 17px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto; width: 778px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
Version 1.0&lt;br /&gt;
Author: Falko Timme &lt;ft [at]=&quot;&quot; [dot]=&quot;&quot; com=&quot;&quot; falkotimme=&quot;&quot;&gt;&amp;nbsp;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;Last edited 01/07/2009&lt;/ft&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;a href=&quot;http://www.sugarcrm.com/&quot; mce_real_href=&quot;http://www.sugarcrm.com/&quot; style=&quot;color: #003399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; target=&quot;_blank&quot;&gt;SugarCRM&lt;/a&gt;&amp;nbsp;is a webbased CRM solution written in PHP. SugarCRM is available in different flavours called &quot;Editions&quot; (&quot;Community&quot; (free), &quot;Professional&quot;, and &quot;Enterprise&quot;). For a detailed overview of the&amp;nbsp;&lt;a href=&quot;http://www.sugarcrm.com/crm/products/editions.html&quot; mce_real_href=&quot;http://www.sugarcrm.com/crm/products/editions.html&quot; style=&quot;color: #003399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; target=&quot;_blank&quot;&gt;different editions&lt;/a&gt;, have a look at the&amp;nbsp;&lt;a href=&quot;http://www.sugarcrm.com/crm/products/editions.html&quot; mce_real_href=&quot;http://www.sugarcrm.com/crm/products/editions.html&quot; style=&quot;color: #003399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; target=&quot;_blank&quot;&gt;SugarCRM website&lt;/a&gt;. In this tutorial I will describe the installation of the free Community Edition on Ubuntu 8.10. With the modules&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;My Portal&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Calendar&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Activities&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Contacts&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Accounts&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Leads&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Opportunities&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Cases&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Bugtracker&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Documents&lt;/span&gt;&amp;nbsp;and&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Email&lt;/span&gt;, SugarCRM Community Edition offers everything that can be expected from a CRM solution.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0.2em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;

1 Preliminary Note&lt;/h3&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
In this tutorial I use the hostname&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;server1.example.com&lt;/span&gt;&amp;nbsp;with the IP address&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;192.168.0.100&lt;/span&gt;. These settings might differ for you, so you have to replace them where appropriate.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
I will install SugarCRM in Apache&#39;s default vhost (document root&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;/var/www&lt;/span&gt;) in the directory&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;/var/www/sugarcrm&lt;/span&gt;. you might have to adjust this on your system.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
Make sure that you are logged in as root (type in&lt;/div&gt;
&lt;div class=&quot;command&quot; style=&quot;background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; font-family: &#39;Courier New&#39;, Courier, mono; font-size: 12px; font-style: italic; line-height: 1.1em; margin-bottom: 0.8em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;&quot;&gt;
sudo su&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
to become root), because we must run all the steps from this tutorial as root user.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0.2em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;

2 Install The MySQL Database Server&lt;/h3&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
Install unzip to be able to unpack the SugarCRM package later:&lt;/div&gt;
&lt;div class=&quot;command&quot; style=&quot;background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; font-family: &#39;Courier New&#39;, Courier, mono; font-size: 12px; font-style: italic; line-height: 1.1em; margin-bottom: 0.8em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;&quot;&gt;
apt-get install unzip&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; text-align: -webkit-auto;&quot;&gt;Install MySQL:&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;command&quot; style=&quot;background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; font-family: &#39;Courier New&#39;, Courier, mono; font-size: 12px; font-style: italic; line-height: 1.1em; margin-bottom: 0.8em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;&quot;&gt;
apt-get install mysql-server mysql-client&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
You will be asked the following questions:&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;New password for the MySQL &quot;root&quot; user:&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;highlight&quot; style=&quot;color: red; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&amp;lt;-- yourrootsqlpassword (a password of your choice)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Repeat password for the MySQL &quot;root&quot; user:&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;highlight&quot; style=&quot;color: red; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&amp;lt;-- yourrootsqlpassword&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0.2em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;

3 Install The Apache Webserver And PHP&lt;/h3&gt;
&lt;div class=&quot;command&quot; style=&quot;background-color: white; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; font-family: &#39;Courier New&#39;, Courier, mono; font-size: 12px; font-style: italic; line-height: 1.1em; margin-bottom: 0.8em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: -webkit-auto;&quot;&gt;
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 libapache2-mod-php5 php5-common php5-gd php5-idn php-pear php5-imap php5-mcrypt php5-mhash php5-mysql php5-sqlite php5-xmlrpc php5-xsl php5-curl&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Afterwards we need to modify two settings in&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;/etc/php5/apache2/php.ini&lt;/span&gt;:&lt;/div&gt;
&lt;div class=&quot;command&quot; style=&quot;border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; line-height: 1.1em; margin-bottom: 0.8em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;
vi /etc/php5/apache2/php.ini&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Set the&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;memory_limit&lt;/span&gt;&amp;nbsp;to&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;64M&lt;/span&gt;&amp;nbsp;(or more) and the&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;upload_max_filesize&lt;/span&gt;&amp;nbsp;to&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;20M&lt;/span&gt;:&lt;/div&gt;
&lt;table align=&quot;center&quot; bgcolor=&quot;#cccccc&quot; border=&quot;1&quot; bordercolor=&quot;#000000&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; class=&quot;&quot; style=&quot;border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; border-color: initial; border-image: initial; border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 255, 255); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(255, 255, 255); border-top-style: solid; border-top-width: 1px; color: black; font-size: 12px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;tbody style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;tr style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;td class=&quot;&quot; style=&quot;font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; vertical-align: top;&quot;&gt;&lt;pre style=&quot;background-color: #efefef; border-bottom-style: inset; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-style: inset; border-left-width: 1px; border-right-style: inset; border-right-width: 1px; border-top-style: inset; border-top-width: 1px; font-size: 16px; height: 250px; overflow-x: auto; overflow-y: auto; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; width: 500px;&quot;&gt;[...]
;memory_limit = 16M      ; Maximum amount of memory a script may consume (16MB)
memory_limit = 64M
[...]
; Maximum allowed size for uploaded files.
;upload_max_filesize = 2M
upload_max_filesize = 20M
[...]&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div align=&quot;center&quot; id=&quot;adibm300x600_flex&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; height: 5px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 300px;&quot;&gt;
&lt;div align=&quot;center&quot; id=&quot;adibm300x600&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; height: 5px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 0px;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Restart Apache afterwards:&lt;/div&gt;
&lt;div class=&quot;command&quot; style=&quot;border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; line-height: 1.1em; margin-bottom: 0.8em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;
/etc/init.d/apache2 restart&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; font-family: arial, verdana, sans-serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0.2em; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;

4 Install SugarCRM&lt;/h3&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
You can download SugarCRM Community Edition from&amp;nbsp;&lt;a href=&quot;http://www.sugarforge.org/frs/?group_id=6&quot; mce_real_href=&quot;http://www.sugarforge.org/frs/?group_id=6&quot; style=&quot;color: #003399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; target=&quot;_blank&quot;&gt;http://www.sugarforge.org/frs/?group_id=6&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href=&quot;http://www.sugarcrm.com/crm/download/sugar-suite.html&quot; mce_real_href=&quot;http://www.sugarcrm.com/crm/download/sugar-suite.html&quot; style=&quot;color: #003399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; target=&quot;_blank&quot;&gt;http://www.sugarcrm.com/crm/download/sugar-suite.html&lt;/a&gt;. Pick the latest&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;.zip&lt;/span&gt;&amp;nbsp;file (version 5.2.0 at the time of this wrinting) and install it as follows:&lt;/div&gt;
&lt;div class=&quot;command&quot; style=&quot;border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; line-height: 1.1em; margin-bottom: 0.8em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;
mkdir /var/www/sugarcrm&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget http://www.sugarforge.org/frs/download.php/4902/SugarCE-5.2.0.zip&lt;br /&gt;
unzip SugarCE-5.2.0.zip&lt;br /&gt;
cd SugarCE-Full-5.2.0/&lt;br /&gt;
mv * /var/www/sugarcrm/&lt;br /&gt;
chown -R www-data:www-data /var/www/sugarcrm&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Start the webbased SugarCRM installer by opening the URL&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;http://server1.example.com/sugarcrm&lt;/span&gt;&amp;nbsp;or&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;http://192.168.0.100/sugarcrm&lt;/span&gt;&amp;nbsp;in your browser.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
The SugarCRM setup wizard comes up:&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsGVCqXgY2NkhEQGi9ulFcYoSBYSxwiJ3eVSBXTVr6Z1g9_0QGrOVkHoxBVhSwg4nxdTebzRCw9p4K29ic0E2zpmNpsb3_nVU59mgTX_y5hkY2WhAmVoBC2s1BLcW1orl5pcrcDz_UWoCT/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;456&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsGVCqXgY2NkhEQGi9ulFcYoSBYSxwiJ3eVSBXTVr6Z1g9_0QGrOVkHoxBVhSwg4nxdTebzRCw9p4K29ic0E2zpmNpsb3_nVU59mgTX_y5hkY2WhAmVoBC2s1BLcW1orl5pcrcDz_UWoCT/s640/1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Scroll down and click on the&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Next&lt;/span&gt;&amp;nbsp;button:&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghQlKSow_8d5hvJnC0uxUZWHaKU1XzMjjtFEZCzFKEEYmNphcmkK3S4H06-VCQ5_6qsqzO_6bGI6lS6aQ2iXT7hrWOaRkQPtMX_A-0R2qcPpWQnkBpApO3HGuwE3Vrrjfk99tsbesRgXvQ/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;457&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghQlKSow_8d5hvJnC0uxUZWHaKU1XzMjjtFEZCzFKEEYmNphcmkK3S4H06-VCQ5_6qsqzO_6bGI6lS6aQ2iXT7hrWOaRkQPtMX_A-0R2qcPpWQnkBpApO3HGuwE3Vrrjfk99tsbesRgXvQ/s640/2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Accept the license (GPL) and click on&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Next&lt;/span&gt;:&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSPLhg-x0_P3wrzHKctmRNEk9_7IVWSwx8_FgQG0jvOp86z_sVN3IrPmbEaoWcyD4v4MX2RXXtGvGOtKpRI2TL53VU-HdSZzfLt3q9qHFUObSIVjA9SiGiwrSMWZ3aGJHJp8Umh-EMNR6j/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;457&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSPLhg-x0_P3wrzHKctmRNEk9_7IVWSwx8_FgQG0jvOp86z_sVN3IrPmbEaoWcyD4v4MX2RXXtGvGOtKpRI2TL53VU-HdSZzfLt3q9qHFUObSIVjA9SiGiwrSMWZ3aGJHJp8Umh-EMNR6j/s640/3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Select&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Typical Install&lt;/span&gt;&amp;nbsp;and click on&amp;nbsp;&lt;span class=&quot;system&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, mono; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Next&lt;/span&gt;:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZfsvJ9PRzlq8qxgD-VsOmCqYsBd1lLcAUSGMzoHGBxERy_qfqUwa5_BN8_f0c0fJ6IL2WebsdIoxDXzfRwY2uXXwmuWAwnwhaf51yn3EdGZ52UF_wE_qUvYC-KJBo0h70L1TfuC96drbD/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;457&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZfsvJ9PRzlq8qxgD-VsOmCqYsBd1lLcAUSGMzoHGBxERy_qfqUwa5_BN8_f0c0fJ6IL2WebsdIoxDXzfRwY2uXXwmuWAwnwhaf51yn3EdGZ52UF_wE_qUvYC-KJBo0h70L1TfuC96drbD/s640/4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.8em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/8357054419232576609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/8357054419232576609' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/8357054419232576609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/8357054419232576609'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2012/03/sugarcrm-installation-in-ubuntu.html' title='SugarCRM installation in UBUNTU'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsGVCqXgY2NkhEQGi9ulFcYoSBYSxwiJ3eVSBXTVr6Z1g9_0QGrOVkHoxBVhSwg4nxdTebzRCw9p4K29ic0E2zpmNpsb3_nVU59mgTX_y5hkY2WhAmVoBC2s1BLcW1orl5pcrcDz_UWoCT/s72-c/1.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-1094127591283846887</id><published>2012-03-13T18:59:00.001+05:30</published><updated>2012-03-13T18:59:15.337+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="file system"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="umask"/><category scheme="http://www.blogger.com/atom/ns#" term="unix"/><title type='text'>What is Umask</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;When user create a file or directory under Linux or UNIX, she create it with a default set of permissions. In most case the system defaults may be open or relaxed for file sharing purpose. For example, if a text file has 666 permissions, it grants read and write permission to everyone. Similarly a directory with 777 permissions, grants read, write, and execute permission to everyone.&lt;/div&gt;&lt;h2 style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 1.286em; line-height: 22px; margin-bottom: 0.611em; margin-left: 0px; margin-right: 0px; margin-top: 1.833em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;Default umask Value&lt;/h2&gt;&lt;div style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.571em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;The user file-creation mode mask (umask) is use to determine the file permission for newly created files. It can be used to control the&amp;nbsp;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;default file permission for new files&lt;/strong&gt;. It is a four-digit octal number. A umask can be set or expressed using:&lt;/div&gt;&lt;ul style=&quot;background-color: white; color: #111111; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 14px; line-height: 22px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.571em; margin-left: 1.571em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;&quot;&gt;&lt;li style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Symbolic values&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Octal values&lt;/li&gt;
&lt;/ul&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/1094127591283846887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/1094127591283846887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1094127591283846887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1094127591283846887'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2012/03/what-is-umask.html' title='What is Umask'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-7375781839587197837</id><published>2012-02-28T17:28:00.000+05:30</published><updated>2012-02-28T17:28:10.324+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="sudo root linux"/><title type='text'>Using Linux with no Root access SUDO!!!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;h2 id=&quot;Benefits_of_using_sudo&quot;&gt;Benefits of using sudo&lt;/h2&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-23&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-24&quot;&gt;&lt;/span&gt;&lt;div class=&quot;line862&quot;&gt;Some benefits of leaving &lt;strong&gt;Root&lt;/strong&gt; logins disabled by default include the following: &lt;span class=&quot;anchor&quot; id=&quot;line-25&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;The Ubuntu installer has fewer questions to ask. &lt;span class=&quot;anchor&quot; id=&quot;line-26&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Users  don&#39;t have to remember an extra password (i.e. the root password),  which they are likely to forget (or write down so anyone can crack into  their account easily). &lt;span class=&quot;anchor&quot; id=&quot;line-27&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;It avoids the &quot;I can do &lt;em&gt;anything&lt;/em&gt;&quot;  interactive login by default (e.g. the tendency by users to login as an  &quot;Administrator&quot; user in Microsoft Windows systems), you will be  prompted for a password before major changes can happen, which should  make you think about the consequences of what you are doing. &lt;span class=&quot;anchor&quot; id=&quot;line-28&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;sudo adds a log entry of the command(s) run (in &lt;tt&gt;/var/log/auth.log&lt;/tt&gt;). If you mess up, you can always go back and see what commands were run. It is also nice for auditing. &lt;span class=&quot;anchor&quot; id=&quot;line-29&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;Every cracker trying to &lt;em&gt;brute-force&lt;/em&gt; their way into your box will know it has an account named &lt;strong&gt;Root&lt;/strong&gt;  and will try that first. What they don&#39;t know is what the usernames of  your other users are. Since the Root account password is locked, this  attack becomes essentially meaningless, since there is no password to  crack or guess in the first place. &lt;span class=&quot;anchor&quot; id=&quot;line-30&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;Allows  easy transfer for admin rights, in a short term or long term period, by  adding and removing users from groups, while not compromising the &lt;strong&gt;Root&lt;/strong&gt; account. &lt;span class=&quot;anchor&quot; id=&quot;line-31&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;sudo can be setup with a much more fine-grained security policy. &lt;span class=&quot;anchor&quot; id=&quot;line-32&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;The  Root account password does not need to be shared with everybody who  needs to perform some type of administrative task(s) on the system (see  the previous bullet). &lt;span class=&quot;anchor&quot; id=&quot;line-33&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;The  authentication automatically expires after a short time (which can be  set to as little as desired or 0); so if you walk away from the terminal  after running commands as Root using sudo, you will not be leaving a  Root terminal open indefinitely. &lt;span class=&quot;anchor&quot; id=&quot;line-34&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-35&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;line867&quot;&gt; &lt;/div&gt;&lt;h2 id=&quot;Downsides_of_using_sudo&quot;&gt;Downsides of using sudo&lt;/h2&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-36&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-37&quot;&gt;&lt;/span&gt;&lt;div class=&quot;line874&quot;&gt;Although for desktops the benefits of using sudo are great, there are possible issues which need to be noted: &lt;span class=&quot;anchor&quot; id=&quot;line-38&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;Redirecting the output of commands run with sudo requires a different approach. For instance consider &lt;tt&gt;sudo&amp;nbsp;ls&amp;nbsp;&amp;gt;&amp;nbsp;/root/somefile&lt;/tt&gt; will not work since it is the shell that tries to write to that file. You can use &lt;tt class=&quot;backtick&quot;&gt;ls&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;-a&amp;nbsp;/root/somefile&lt;/tt&gt; to append, or &lt;tt class=&quot;backtick&quot;&gt;ls&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;/root/somefile&lt;/tt&gt;  to overwrite contents. You could also pass the whole command to a shell  process run under sudo to have the file written to with root  permissions, such as &lt;tt class=&quot;backtick&quot;&gt;sudo&amp;nbsp;sh&amp;nbsp;-c&amp;nbsp;&quot;ls&amp;nbsp;&amp;gt;&amp;nbsp;/root/somefile&quot;&lt;/tt&gt;. &lt;span class=&quot;anchor&quot; id=&quot;line-39&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;In  a lot of office environments the ONLY local user on a system is Root.  All other users are imported using NSS techniques such as nss-ldap. To  setup a workstation, or fix it, in the case of a network failure where  nss-ldap is broken, Root is required. This tends to leave the system  unusable unless cracked. An extra local user, or an enabled Root  password is needed here.  The local user account should have its $HOME  on a local disk, _not_ on NFS (or any other networked filesystem), and a  .profile/.bashrc that doesn&#39;t reference any files on NFS mounts.  This  is usually the case for Root, but if adding a non-Root rescue account,  you will have to take these precautions manually. &lt;span class=&quot;anchor&quot; id=&quot;line-40&quot;&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Alternatively,  a sysadmin type account can be implemented as a local user on all  systems, and granted proper sudo privileges.  As explained in the  benefits section above, commands can be easily tracked and audited. &lt;span class=&quot;anchor&quot; id=&quot;line-41&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;line867&quot;&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-42&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-43&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line867&quot;&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-44&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line867&quot;&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-45&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-46&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line867&quot;&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-47&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-48&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line867&quot;&gt; &lt;/div&gt;&lt;h1 id=&quot;Usage&quot;&gt;Usage&lt;/h1&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-49&quot;&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;When using sudo, your  password is stored by default for 15 minutes. After that time, you will  need to enter your password again. &lt;span class=&quot;anchor&quot; id=&quot;line-50&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;Your password will &lt;strong&gt;not&lt;/strong&gt; be shown on the screen as you type it, not even as a row of stars (******). It is being entered with each keystroke! &lt;span class=&quot;anchor&quot; id=&quot;line-51&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-52&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;line867&quot;&gt; &lt;/div&gt;&lt;h2 id=&quot;sudo&quot;&gt;&lt;br /&gt;
&lt;/h2&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/7375781839587197837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/7375781839587197837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/7375781839587197837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/7375781839587197837'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2012/02/using-linux-with-no-root-access-sudo.html' title='Using Linux with no Root access SUDO!!!'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-1599292835887317514</id><published>2010-04-09T17:38:00.000+05:30</published><updated>2010-04-09T17:38:40.178+05:30</updated><title type='text'>Packet FLow Diagrams</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrDt3smsmi9qWJ-aVVk-1_54bvceO2vx0C8bVfsxlVev6qU7bvD8HD7MVhl39I-RZLmNbbIraUtYavrH917qoXf2FlQ_DpTyLURueAbfzvjTZ7UK_s661WVtJpD_MfI_sfSOdM4SssYWaz/s1600/packet_flow9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrDt3smsmi9qWJ-aVVk-1_54bvceO2vx0C8bVfsxlVev6qU7bvD8HD7MVhl39I-RZLmNbbIraUtYavrH917qoXf2FlQ_DpTyLURueAbfzvjTZ7UK_s661WVtJpD_MfI_sfSOdM4SssYWaz/s640/packet_flow9.png&quot; width=&quot;322&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diagram2:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipbl04UOvuxsxYZvOG_Qc594YcW4bHeswn1u6Bbf3y0WSA1edA09e56F_AOMB8hAzzEJp7UU5tLzxqo45MrIydRyvVWi7ks7EfApGVolBVUCZl5uzeS1MM54A6KluuOhpwVTtEkGri2stG/s1600/packetflow.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;194&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipbl04UOvuxsxYZvOG_Qc594YcW4bHeswn1u6Bbf3y0WSA1edA09e56F_AOMB8hAzzEJp7UU5tLzxqo45MrIydRyvVWi7ks7EfApGVolBVUCZl5uzeS1MM54A6KluuOhpwVTtEkGri2stG/s640/packetflow.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/1599292835887317514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/1599292835887317514' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1599292835887317514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1599292835887317514'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2010/04/packet-flow-diagrams.html' title='Packet FLow Diagrams'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrDt3smsmi9qWJ-aVVk-1_54bvceO2vx0C8bVfsxlVev6qU7bvD8HD7MVhl39I-RZLmNbbIraUtYavrH917qoXf2FlQ_DpTyLURueAbfzvjTZ7UK_s661WVtJpD_MfI_sfSOdM4SssYWaz/s72-c/packet_flow9.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-4131309233807548892</id><published>2010-03-24T13:18:00.000+05:30</published><updated>2010-03-24T13:18:33.033+05:30</updated><title type='text'>Setup DNS Server</title><content type='html'>&lt;h1 id=&quot;content&quot;&gt;How to set up a home DNS server&lt;/h1&gt;&lt;h4 id=&quot;byline&quot;&gt;by Shannon Hughes&lt;/h4&gt;&lt;br /&gt;
&lt;h2&gt;Domain Name System&lt;/h2&gt;The Domain Name System (DNS) is the crucial glue that keeps computer networks in harmony by converting human-friendly hostnames to the numerical IP addresses computers require to communicate with each other. DNS is one of the largest and most important distributed databases the world depends on by serving billions of DNS requests daily for public IP addresses. Most public DNS servers today are run by larger ISPs and commercial companies but private DNS servers can also be useful for private home networks. This article will explore some advantages of setting up various types of DNS servers in the home network.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.redhat.com/magazine/025nov06/features/dns/&quot;&gt;Click here to read more&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/Valleys-Neptune-Jimi-Hendrix/dp/B00328G4V6?ie=UTF8&amp;amp;tag=enjoyurtrip-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;&amp;nbsp;Don&#39;t click here &lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=enjoyurtrip-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B00328G4V6&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/4131309233807548892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/4131309233807548892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4131309233807548892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4131309233807548892'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2010/03/setup-dns-server.html' title='Setup DNS Server'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-6658779345817717228</id><published>2010-03-24T13:15:00.001+05:30</published><updated>2010-03-24T13:19:57.840+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Setup Home Web Server</title><content type='html'>&lt;h1 id=&quot;content&quot;&gt;How to set up a home web server&lt;/h1&gt;&lt;h4 id=&quot;byline&quot;&gt;by Jeff &quot;Crash&quot; Goldin&lt;/h4&gt;It seems like everybody&#39;s blogging and sharing digital photos online. This booming hobby (and business) sends many people to paid hosting companies to share their thoughts and images. Though many companies are reliable and inexpensive, with a little work and some relatively cheap hardware you can host your own files, save some money, and have complete control over what services are available and how your content is displayed.&lt;br /&gt;
&lt;a href=&quot;http://www.redhat.com/magazine/022aug06/features/webserver/&quot;&gt;Click here to read more....&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/Kindle-Wireless-Reading-Display-Generation/dp/B0015T963C?ie=UTF8&amp;amp;tag=enjoyurtrip-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;&amp;nbsp;Dont Touch Me &lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=enjoyurtrip-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0015T963C&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/6658779345817717228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/6658779345817717228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/6658779345817717228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/6658779345817717228'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2010/03/setup-home-web-server.html' title='Setup Home Web Server'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-3952512950603771824</id><published>2010-02-27T23:44:00.001+05:30</published><updated>2010-02-27T23:44:36.889+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Joomla (Content Manager)</title><content type='html'>&lt;h1 class=&quot;contentheading&quot;&gt;What is Joomla?&lt;/h1&gt;Joomla is an award-winning content management  system (CMS), which enables you to build Web   sites and powerful online  applications. Many aspects, including its ease-of-use and    extensibility, have made Joomla the most popular Web site software  available. Best of all,   Joomla is an open source solution that is  freely available to everyone.&lt;br /&gt;
&lt;div class=&quot;vis-clear&quot;&gt;&lt;/div&gt;&lt;h2&gt;What&#39;s  a content management system (CMS)?&lt;/h2&gt;A content management system  is software that keeps track of every piece of   content on your Web  site, much like your local public library keeps track of books and    stores them. Content can be simple text, photos, music, video,  documents, or just about   anything you can think of. A major advantage  of using a CMS is that it requires almost no   technical skill or  knowledge to manage. Since the CMS manages all your content, you don&#39;t    have to.&lt;br /&gt;
&lt;div class=&quot;vis-clear&quot;&gt;&lt;/div&gt;&lt;h2&gt;What are some real  world examples of what Joomla! can do?&lt;/h2&gt;Joomla is used all over  the world to power Web sites of all shapes and sizes. For example:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Corporate Web sites or portals&lt;/li&gt;
&lt;li&gt;Corporate intranets and  extranets&lt;/li&gt;
&lt;li&gt;Online magazines, newspapers, and publications&lt;/li&gt;
&lt;li&gt;E-commerce and online reservations&lt;/li&gt;
&lt;li&gt;Government  applications&lt;/li&gt;
&lt;li&gt;Small business Web sites&lt;/li&gt;
&lt;li&gt;Non-profit and  organizational Web sites&lt;/li&gt;
&lt;li&gt;Community-based portals&lt;/li&gt;
&lt;li&gt;School  and church Web sites&lt;/li&gt;
&lt;li&gt;Personal or family homepages&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;vis-clear&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/3952512950603771824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/3952512950603771824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3952512950603771824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3952512950603771824'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2010/02/joomla-content-manager.html' title='Joomla (Content Manager)'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-2990604369819433</id><published>2010-02-27T23:42:00.001+05:30</published><updated>2010-02-27T23:42:53.591+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Django</title><content type='html'>&lt;h2 class=&quot;deck&quot;&gt;Django is a high-level Python Web framework that  encourages rapid development and clean, pragmatic design.&lt;/h2&gt;Developed four years ago by a fast-moving online-news operation,  Django was designed to handle two challenges: the intensive deadlines of  a newsroom and the stringent requirements of the experienced Web  developers who wrote it. It lets you build high-performing, elegant Web  applications quickly.</content><link rel='enclosure' type='' href='http://www.djangoproject.com/' length='0'/><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/2990604369819433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/2990604369819433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/2990604369819433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/2990604369819433'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2010/02/django.html' title='Django'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-3399116809903963003</id><published>2009-11-26T16:45:00.000+05:30</published><updated>2009-11-26T16:45:38.457+05:30</updated><title type='text'>Credit Card Validation</title><content type='html'>&lt;pre&gt;&quot;&quot;&quot;
    Provides functions &amp;amp; Fields for validating credit card numbers
    Thanks to David Shaw for the Luhn Checksum code 
    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/172845)
&quot;&quot;&quot;

import re        
from django import newforms as forms

import datetime
        
def ValidateLuhnChecksum(number_as_string):
    &quot;&quot;&quot; checks to make sure that the card passes a luhn mod-10 checksum &quot;&quot;&quot;

    sum = 0

    num_digits = len(number_as_string)
    oddeven = num_digits &amp;amp; 1

    for i in range(0, num_digits):
        digit = int(number_as_string[i])

        if not (( i &amp;amp; 1 ) ^ oddeven ):

            digit = digit * 2
        if digit &amp;gt; 9:

            digit = digit - 9

        sum = sum + digit

        
    return ( (sum % 10) == 0 )

# Regex for valid card numbers
CC_PATTERNS = {
    &#39;mastercard&#39;:   &#39;^5[12345]([0-9]{14})$&#39;,
    &#39;visa&#39;:         &#39;^4([0-9]{12,15})$&#39;,

}

def ValidateCharacters(number):
    &quot;&quot;&quot; Checks to make sure string only contains valid characters &quot;&quot;&quot;
    return re.compile(&#39;^[0-9 ]*$&#39;).match(number) != None

        
def StripToNumbers(number):
    &quot;&quot;&quot; remove spaces from the number &quot;&quot;&quot;
    if ValidateCharacters(number):

        result = &#39;&#39;
        rx = re.compile(&#39;^[0-9]$&#39;)

        for d in number:
            if rx.match(d):

                result += d
        return result
    else:
        raise Exception(&#39;Number has invalid digits&#39;)

def ValidateDigits(type, number):
    &quot;&quot;&quot; Checks to make sure that the Digits match the CC pattern &quot;&quot;&quot;
    regex = CC_PATTERNS.get(type.lower(), False)

    if regex:
        return re.compile(regex).match(number) != None

    else:
        return False

def ValidateCreditCard(type, number):

    &quot;&quot;&quot; Check that a credit card number matches the type and validates the Luhn Checksum &quot;&quot;&quot;
    type = type.strip().lower()
    if ValidateCharacters(number):

        number = StripToNumbers(number)
        if CC_PATTERNS.has_key(type):

            return ValidateDigits(type, number)
            return ValidateLuhnChecksum(number)

    return False

class CreditCardNumberField(forms.CharField):
    &quot;&quot;&quot; A newforms widget for a creditcard number &quot;&quot;&quot;

    def clean(self, value):
        
        value = forms.CharField.clean(self, value)

        if not ValidateCharacters(value):
            raise forms.ValidationError(&#39;Can only contain numbers and spaces.&#39;)

        value = StripToNumbers(value)
        if not ValidateLuhnChecksum(value):

            raise forms.ValidationError(&#39;Not a valid credit card number.&#39;)
        
        return value


class CreditCardExpiryField(forms.CharField):
    &quot;&quot;&quot; A newforms widget for a creditcard expiry date &quot;&quot;&quot;
    def clean(self, value):     
        value = forms.CharField.clean(self, value.strip())

        
        # Just check MM/YY Pattern
        r = re.compile(&#39;^([0-9][0-9])/([0-9][0-9])$&#39;)
        m = r.match(value)

        if m == None:
            raise forms.ValidationError(&#39;Must be in the format MM/YY. i.e. &quot;11/10&quot; for Nov 2010.&#39;)

        
        # Check that the month is 1-12
        month = int(m.groups()[0])

        if month &amp;lt; 1 or month &amp;gt; 12:
            raise forms.ValidationError(&#39;Month must be in the range 1 - 12.&#39;)

        
        # Check that the year is not too far into the future
        year = int(m.groups()[1])

        curr_year = datetime.datetime.now().year % 100

        max_year = curr_year + 10
        if year &amp;gt; max_year or year &amp;lt; curr_year:

            raise forms.ValidationError(&#39;Year must be in the range %s - %s.&#39; % (str(curr_year).zfill(2), str(max_year).zfill(2),))

        return value   

# An example Form based on ModelForm.
class PaymentForm(forms.ModelForm):    
    cc_number = creditcards.CreditCardNumberField(required=False)

    cc_expiry = creditcards.CreditCardExpiryField()
   
    class Meta:
        model = Payment 
    
    &quot;&quot;&quot;

        This function checks that the card number matches the card type.  
        If you don&#39;t want to do this, comment out this function.
    &quot;&quot;&quot;
    def clean(self):

        if self.cleaned_data:
            if len(self.cleaned_data.items()) == len(self.fields):      
                if self.cleaned_data[&#39;method&#39;] == &#39;cc&#39;:

                    the_type = self.cleaned_data.get(&#39;cc_type&#39;, &#39;&#39;)

                    number = self.cleaned_data.get(&#39;cc_number&#39;, &#39;&#39;)

                    if not ValidateDigits(the_type, number):
                        raise forms.ValidationError(&#39;Card Number is not a valid &#39; + the_type.upper() + &#39; card number.&#39;)

                    if not self.instance.is_payment_valid():
                        raise forms.ValidationError(&#39;Credit card payment could not be processed.  Reason is %s.  Check that card details are correct and try again.  If you still receive this error, check with your financial institution.&#39; % (self.instance.gateway_resptxt))

        return self.cleaned_data
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/3399116809903963003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/3399116809903963003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3399116809903963003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3399116809903963003'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/11/credit-card-validation.html' title='Credit Card Validation'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-1904659782296968778</id><published>2009-11-03T17:18:00.001+05:30</published><updated>2009-11-03T17:18:59.345+05:30</updated><title type='text'>Snort</title><content type='html'>Snort is a versatile, lightweight and very useful intrusion detection system. In this article we will look at Snort as a backup Intrusion Detection System for your enterprise network and see whether it can really scale up to the requirements of your enterprise networks.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our failure establishes only this,&lt;br /&gt;
that our determination to succeed&lt;br /&gt;
wasn&#39;t strong enough.&lt;br /&gt;
--Bovee&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
The main distribution site for Snort is  &lt;a href=&quot;http://www.snort.org/&quot;&gt;http://www.snort.org&lt;/a&gt;.  Snort is distributed under the GNU GPL license by the author &lt;a href=&quot;mailto:roesch@clark.net&quot;&gt;Martin Roesch&lt;/a&gt;. Snort is a lightweight network IDS, capable of performing real-time traffic analysis and packet logging on IP networks. It can perform protocol analysis, content searching/matching. It can be used to detect a variety of attacks and probes, such as buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts, and more. Snort uses a flexible rules language to describe traffic that it should collect or pass, and includes a detection engine utilizing a modular plug-in architecture. Snort has real-time alerting capability as well, incorporating alerting mechanisms for Syslog, user- specified files, a UNIX socket, or WinPopup messages to Windows clients using Samba&#39;s smbclient. Snort has three primary uses. It can be used as a straight packet sniffer like tcpdump or as a packet logger that is useful for network traffic debugging. It can also be used as a full blown network intrusion detection system.&lt;br /&gt;
Snort logs packets in either tcpdump binary format or in Snort&#39;s decoded ASCII format to logging directories that are named based on the IP address of the foreign host.&lt;br /&gt;
Plug-ins allow the detection and reporting subsystems to be extended. Available plug-ins include database logging, small fragment detection, portscan detection, and HTTP URI normalization.&lt;br /&gt;
&lt;br /&gt;
The ground that we will be covering with respect to Snort will be&lt;br /&gt;
&lt;b&gt;-&lt;/b&gt; Snort as a straight packet sniffer like tcpdump.&lt;br /&gt;
&lt;b&gt;-&lt;/b&gt; Snort as a  packet  logger. Useful  for network traffic debugging etc.&lt;br /&gt;
&lt;b&gt;-&lt;/b&gt; Snort as a full blown network intrusion detection system.  &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Compiling and installing Snort&lt;/b&gt;&lt;br /&gt;
Having downloaded Snort, untar the archive with the following command.&lt;br /&gt;
bash#  tar -xvzf  snort-1.6.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
This should do the trick and get it untarred into a directory snort-1.6.3. Having done this, next on the cards is a dependency check for various libraries and header files that Snort needs. You&#39;ll need to ensure that you have the sources for libcap. If not, you can download it from &lt;a href=&quot;ftp://ftp.ee.lbl.gov/libpcap.tar.Z&quot;&gt;ftp://ftp.ee.lbl.gov/libpcap.tar.Z&lt;/a&gt;.  &lt;br /&gt;
Download the libcap headers and untar the archive using the tar command with the similar switches as mentioned above. Enter the directory and carry out the following steps.&lt;br /&gt;
bash# ./configure&lt;br /&gt;
bash# make&lt;br /&gt;
Though we do not need any of the binaries, this is just a precautionary measure. Now, we&#39;ll compile Snort. Change into the directory in which Snort lies and issue the following command.&lt;br /&gt;
bash#  ./configure --with-libpcap-includes=/path/to/your/libcap/headers&lt;br /&gt;
bash# make&lt;br /&gt;
bash# make install&lt;br /&gt;
&lt;b&gt;Using&lt;/b&gt;&lt;br /&gt;
Now Snort is installed on your system. Let&#39;s start using Snort on your system. We&#39;ll start with the basics of using Snort as a Packet Sniffer and a Packet Analyser. Apart from running in a promiscuous mode, we will also discover rules that will help us log alerts to our Snort logs or redirect them to syslog. &lt;br /&gt;
Using Snort as a packet sniffer and packet analyzer is a pretty simple process. The man pages are very helpful as far as information regarding using Snort is concerned. Let&#39;s basically start with a simple command that makes Snort display all the command switches and then exit.&lt;br /&gt;
bash# snort -?&lt;br /&gt;
&lt;br /&gt;
The output of the command is as follows.&lt;br /&gt;
-*&amp;gt; Snort! &amp;lt;*-&lt;br /&gt;
Version 1.6.3&lt;br /&gt;
By Martin Roesch (roesch@clark.net, www.snort.org)&lt;br /&gt;
USAGE: snort [-options] &lt;filter options=&quot;&quot;&gt;&lt;br /&gt;
Options:&lt;br /&gt;
-A                        Set alert mode: fast, full, or none  (alert file alerts only)&lt;br /&gt;
&#39;unsock&#39; enables UNIX socket logging (experimental).&lt;br /&gt;
-a                         Display ARP packets&lt;br /&gt;
-b                         Log packets in tcpdump format (much faster!)&lt;br /&gt;
-c &lt;rules&gt;          Use Rules File &lt;rules&gt;&lt;br /&gt;
-C                        Print out payloads with character data only (no hex)&lt;br /&gt;
-d                         Dump the Application Layer&lt;br /&gt;
-D                        Run Snort in background (daemon) mode&lt;br /&gt;
-e                         Display the second layer header info&lt;br /&gt;
-F &lt;bpf&gt;              Read BPF filters from file &lt;bpf&gt;&lt;br /&gt;
-g &lt;gname&gt;        Run snort gid as &#39;gname&#39; user or uid after initialization&lt;br /&gt;
-h &lt;hn&gt;               Home network = &lt;hn&gt;&lt;br /&gt;
-i &lt;if&gt;                 Listen on interface &lt;if&gt;&lt;br /&gt;
-l &lt;ld&gt;                Log to directory &lt;ld&gt;&lt;br /&gt;
-n &lt;cnt&gt;             Exit after receiving &lt;cnt&gt; packets&lt;br /&gt;
-N                       Turn off logging (alerts still work)&lt;br /&gt;
-o                       Change the rule testing order to Pass|Alert|Log&lt;br /&gt;
-O                      Obfuscate the logged IP addresses&lt;br /&gt;
-p                       Disable promiscuous mode sniffing&lt;br /&gt;
-P &lt;snap&gt;         set explicit snaplen of packet (default: 1514)&lt;br /&gt;
-q                      Quiet. Don&#39;t show banner and status report&lt;br /&gt;
-r &lt;tf&gt;               Read and process tcpdump file &lt;tf&gt;&lt;br /&gt;
-s                       Log alert messages to syslog&lt;br /&gt;
-S &lt;n=v&gt;          Set rules file variable n equal to value v&lt;br /&gt;
-t &lt;chrt&gt;          Chroots process to &lt;chrt&gt; after initialisaton&lt;br /&gt;
-u &lt;uname&gt;     Run snort uid as &#39;uname&#39; user (or uid) after initialization&lt;br /&gt;
-v                      Be verbose&lt;br /&gt;
-V                     Show version number&lt;br /&gt;
-?                    Show this information&lt;br /&gt;
&lt;filter options=&quot;&quot;&gt;   are standard BPF options, as seen in TCPDump&lt;/filter&gt;&lt;/uname&gt;&lt;/chrt&gt;&lt;/chrt&gt;&lt;/n=v&gt;&lt;/tf&gt;&lt;/tf&gt;&lt;/snap&gt;&lt;/cnt&gt;&lt;/cnt&gt;&lt;/ld&gt;&lt;/ld&gt;&lt;/if&gt;&lt;/if&gt;&lt;/hn&gt;&lt;/hn&gt;&lt;/gname&gt;&lt;/bpf&gt;&lt;/bpf&gt;&lt;/rules&gt;&lt;/rules&gt;&lt;/filter&gt;&lt;br /&gt;
Let&#39;s check out the next command wherein we set Snort to a verbose display of the packets sniffed and analyzed. The &#39;-v&#39; switch elicits a verbose response to Stdout. The &#39;-d&#39; switch elicits dumping the decoded application layer data and while &#39;-e&#39; shows the decoded ethernet headers. The &#39;-i&#39; switch specifies the interface to be monitored for packet analysis. The &#39;-h&#39; switch specifies which class of network packets has to be captured. e.g. - The command given below captures all the packets belonging to the class C internal IP&#39;s of the type 192.168.1.*. &lt;br /&gt;
freeos:~ # snort -v -d -e -i eth0 -h 192.168.1.0/24&lt;br /&gt;
&lt;br /&gt;
If we wanted to generate alerts, the  &#39;-A&#39; switch is of importance to us.&lt;br /&gt;
-A &lt;alert-mode&gt; - Alert using the specified alert-mode. Valid alert modes include &#39;fast&#39;, &#39;full&#39;, &#39;none&#39;, and &#39;unsock&#39;. Fast, writes alerts to the default &#39;alert&#39; file in a single-line, syslog style alert message. Full, writes the alert to the &#39;alert&#39; file with the full decoded header as well as the alert message. The command will then change to the following.&lt;/alert-mode&gt;&lt;br /&gt;
freeos:~ # snort -v -d -e -i eth0 -h 192.168.1.0/24  -A fast &lt;br /&gt;
&lt;br /&gt;
Instead, if you wanted to send alert messages to the syslog daemon, you could use the &#39;-s&#39; switch instead.&lt;br /&gt;
-s - Send alert messages to Syslog. On Linux boxes, they will appear in /var/log/secure or /var/log/messages on many other platforms. &lt;br /&gt;
freeos:~ # snort -v -d -e -i eth0 -h 192.168.1.0/24  -s &lt;br /&gt;
Until now we haven&#39;t seen any actual logging taking place. All the packets sniffed and analyzed were just dumped to your screen. To have Snort dump the packets sniffed and analyzed to your logs, you will use the &quot;-l&quot; switch. That dumps all the data, regarding the packets analysed, to the directory log in the current path. You will have to create this directory. Do not expect Snort to create it at runtime. &lt;br /&gt;
freeos:~ # snort -v -d -e -i eth0 -h 192.168.1.0/24  -A full  -l ./log &lt;br /&gt;
But, there is an inherent drawback to this type of packet analysis and reporting. One of the foremost problems that may be encountered can be visualized as follows. Assuming that you are using Snort on your Gigabit ethernet. The speed at which data will be flowing across the network is too much for your NIC working in promiscous mode. Many packets will be dumped because it may not be possible to keep up the pace of analyzing the large amount of high speed data transfers across your network segment. Thus, instead if using the &quot;-l&quot; switch you should use the &quot;-b&quot; switch. This will log packets in tcpdump format and produce minimal alerts. For example:&lt;br /&gt;
freeos:~ # snort -b -i eth0 -A fast -h 192.168.1.0/24  -s  -l ./log &lt;br /&gt;
In this configuration, Snort has been able to log multiple simultaneous probes and attacks on a 100 Mbps LAN running at a saturation level of approximately 80 Mbps. In this configuration the logs are written in binary format to log in tcpdump format. To read this file back and break out the data in the familiar Snort format, just re-run Snort on the data file with the &quot;-r&quot; option and the other options you would normally use.&lt;br /&gt;
&lt;br /&gt;
freeos:~ # snort -i eth0 -l ./log  -h 192.168.1.0/24 -A fast -r ./log/snort-123@1016.log &lt;br /&gt;
This command deciphers the tcpdump-formatted log file ./log/snort-0123@1016.log and dumps the output in the normal Snort log format in the ./log directory. &lt;br /&gt;
&lt;br /&gt;
This kind of packet sniffing and analysis causes Snort to log all the packets on your network segment. But what if you wanted to log only certain type of packets. Yes, of course, there is a way out. Snort allows you to define your own rules for packet analysis. Use the &#39;-c&#39; command switch for this.&lt;br /&gt;
freeos:~ # snort -b -i eth0 -A fast -h 192.168.1.0/24  -s  -l ./log  -c ./rules.snort&lt;br /&gt;
For various rulesets that could be used along with Snort, take a look at &lt;a href=&quot;http://www.snort.org/snort_rules.html&quot;&gt;http://www.snort.org/snort_rules.html&lt;/a&gt;.&lt;br /&gt;
Here ends our look at Snort. Following up will be another article that will help you ascertain the dangers that your system logs are prone to and the security measures you can put into place to prevent tampering of your precious system logs in case of a security breach.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Don&#39;t let life discourage you;&lt;br /&gt;
Everyone who got where he is&lt;br /&gt;
had to begin where he was.&lt;br /&gt;
-Richard L Evans&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/1904659782296968778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/1904659782296968778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1904659782296968778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1904659782296968778'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/11/snort.html' title='Snort'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-1683324811881207104</id><published>2009-11-03T15:50:00.000+05:30</published><updated>2009-11-03T15:50:21.226+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>tmpwatch - removes files which haven&#39;t been accessed for a period of time</title><content type='html'>&lt;b&gt;tmpwatch&lt;/b&gt; recursively removes files which haven&#39;t been accessed for a given number of hours. Normally, it&#39;s used to clean up directories which are used for temporary holding space such as /tmp. &lt;br /&gt;
When changing directories, &lt;b&gt;tmpwatch&lt;/b&gt; is very sensitive to possible race conditions and will exit with an error if one is detected. It does not follow symbolic links in the directories it&#39;s cleaning (even if a symbolic link is given as its argument), will not switch filesystems, &lt;br /&gt;
&amp;nbsp;and&amp;nbsp;only&amp;nbsp;removes&amp;nbsp;empty&amp;nbsp;directories&amp;nbsp;and&amp;nbsp;regular&amp;nbsp;files.&amp;nbsp; &lt;br /&gt;
By default, &lt;b&gt;tmpwatch&lt;/b&gt; dates files by their atime (access time), not their mtime (modification time). If files aren&#39;t being removed when &lt;b&gt;ls -l&lt;/b&gt; implies they should be, use &lt;b&gt;ls -u&lt;/b&gt; to examine their atime to see if that explains the problem. &lt;br /&gt;
If the --atime, --ctime or --mtime options are used in combination, the decision about deleting a file will be based on the maximum of this times. &lt;br /&gt;
The &lt;i&gt;hours&lt;/i&gt; parameter defines the threshold for removing files. If the file has not been accessed for &lt;i&gt;hours&lt;/i&gt; hours, the file is removed. Following this, one or more directories may be given for &lt;b&gt;tmpwatch&lt;/b&gt; to clean up. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;&quot; name=&quot;lbAE&quot;&gt;&amp;nbsp;&lt;/a&gt; &lt;br /&gt;
&lt;h2&gt;OPTIONS&lt;/h2&gt;&lt;dl compact=&quot;compact&quot;&gt;&lt;dt&gt;&lt;b&gt;-u, --atime&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;Make the decision about deleting a file based on the file&#39;s atime (access time). This is the default.&lt;/dd&gt;&lt;dd&gt;&amp;nbsp;&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-m, --mtime&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Make the decision about deleting a file based on the file&#39;s mtime (modification time) instead of the atime.  
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-c, --ctime&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Make the decision about deleting a file based on the file&#39;s ctime (inode change time) instead of the atime; for directories, make the decision based on the mtime.  
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-a, --all&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Remove all file types, not just regular files and directories.  
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-d, --nodirs&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Do not attempt to remove directories, even if they are empty.  
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-f, --force&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Remove files even if root doesn&#39;t have write access (akin to &lt;b&gt;rm -f&lt;/b&gt;).  
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-t, --test&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Doesn&#39;t remove files, but goes through the motions of removing them. This implies &lt;b&gt;-v&lt;/b&gt;.  
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-s, --fuser&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Attempt to use the &quot;fuser&quot; command to see if a file is already open before removing it.  Not enabled by default.   Does help in some circumstances, but not all.  Dependent on fuser being installed in /sbin.  
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;-v, --verbose&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt; Print a verbose display. Two levels of verboseness are available -- use this option twice to get the most verbose output.  
&lt;/dd&gt;&lt;/dl&gt;&lt;a href=&quot;&quot; name=&quot;lbAF&quot;&gt;&amp;nbsp;&lt;/a&gt; &lt;h2&gt;SEE ALSO&lt;/h2&gt;&lt;i&gt;&lt;a href=&quot;http://linux.about.com/od/commands/l/blcmdl8_cron.htm&quot;&gt;cron&lt;/a&gt;&lt;/i&gt;(1),  &lt;i&gt;&lt;a href=&quot;http://linux.about.com/library/cmd/blcmdl1_ls.htm&quot;&gt;ls&lt;/a&gt;&lt;/i&gt;(1),  &lt;i&gt;&lt;a href=&quot;http://linux.about.com/library/cmd/blcmdl1_rm.htm&quot;&gt;rm&lt;/a&gt;&lt;/i&gt;(1),  &lt;i&gt;&lt;a href=&quot;http://linux.about.com/library/cmd/blcmdl1_fuser.htm&quot;&gt;fuser&lt;/a&gt;&lt;/i&gt;(1)&lt;br /&gt;
&lt;dl compact=&quot;compact&quot;&gt;&lt;dd&gt;&amp;nbsp;&lt;/dd&gt;&lt;dd&gt; 
&lt;/dd&gt;&lt;dd style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;span style=&quot;font-size: large;&quot;&gt;
&lt;/span&gt;&lt;/dd&gt;&lt;dd style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Example:&lt;/span&gt;&lt;/dd&gt;&lt;dd style=&quot;text-align: left;&quot;&gt;You may need to use a command called tmpwatch which removes files which haven’t been accessed for a period of time. Normally, it’s used to clean up directories which are used for temporary holding space such as /tmp.

Following code will remove all files/dirs from /tmp if they are not accessed in last 2 weeks (24  * 14 days = 336)
&lt;!-- BEGIN TEMPLATE: bbcode_code --&gt; &lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;  &lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;Code:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;&quot;&gt;tmpwatch --mtime --all 336 /tmp&lt;/pre&gt;&lt;/div&gt;&lt;/dd&gt;&lt;dd&gt;&amp;nbsp;&lt;/dd&gt;&lt;/dl&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/1683324811881207104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/1683324811881207104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1683324811881207104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/1683324811881207104'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/11/tmpwatch-removes-files-which-havent.html' title='tmpwatch - removes files which haven&#39;t been accessed for a period of time'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-7341263031994207308</id><published>2009-10-24T11:43:00.001+05:30</published><updated>2009-10-24T11:44:53.563+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Send an HTML email with embedded image and plain text alternate</title><content type='html'>&lt;div id=&quot;content-header&quot;&gt;&lt;h2&gt;Recipe 473810: Send an HTML email with embedded image and plain text alternate&lt;/h2&gt;&lt;/div&gt;&lt;br /&gt;
&lt;hr class=&quot;hide&quot; /&gt;&lt;div id=&quot;content&quot;&gt;&lt;br /&gt;
&lt;div id=&quot;description&quot;&gt;HTML is the method of choice for those wishing to send emails with rich text, layout and graphics. Often it is desirable to embed the graphics within the message so recipients can display the message directly, without further downloads.&lt;br /&gt;
&lt;br /&gt;
Some mail agents don&#39;t support HTML or their users prefer to receive plain text messages. Senders of HTML messages should include a plain text message as an alternate for these users.&lt;br /&gt;
&lt;br /&gt;
This recipe sends a short HTML message with a single embedded image and an alternate plain text message.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;blocks&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;block&quot;&gt;&lt;table class=&quot;codeblock-header&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;         &lt;td class=&quot;codeblock-title&quot;&gt;&lt;/td&gt;         &lt;td class=&quot;codeblock-lang&quot;&gt;Python&lt;br /&gt;
&lt;/td&gt;        &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;table class=&quot;highlighttable&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;linenos&quot;&gt;&lt;pre&gt;1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;# Send an HTML email with an embedded image and a plain text message for
# email clients that don&#39;t want to display the HTML.

from email.MIMEMultipart import MIMEMultipart

from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage

# Define these once; use them twice!
strFrom = &#39;from@example.com&#39;
strTo = &#39;to@example.com&#39;

# Create the root message and fill in the from, to, and subject headers

msgRoot = MIMEMultipart(&#39;related&#39;)
msgRoot[&#39;Subject&#39;] = &#39;test message&#39;

msgRoot[&#39;From&#39;] = strFrom
msgRoot[&#39;To&#39;] = strTo

msgRoot.preamble = &#39;This is a multi-part message in MIME format.&#39;

# Encapsulate the plain and HTML versions of the message body in an
# &#39;alternative&#39; part, so message agents can decide which they want to display.
msgAlternative = MIMEMultipart(&#39;alternative&#39;)

msgRoot.attach(msgAlternative)

msgText = MIMEText(&#39;This is the alternative plain text message.&#39;)

msgAlternative.attach(msgText)

# We reference the image in the IMG SRC attribute by the ID we give it below
msgText = MIMEText(&#39;&amp;lt;b&amp;gt;Some &amp;lt;i&amp;gt;HTML&amp;lt;/i&amp;gt; text&amp;lt;/b&amp;gt; and an image.&amp;lt;br&amp;gt;&amp;lt;img src=&quot;cid:image1&quot;&amp;gt;&amp;lt;br&amp;gt;Nifty!&#39;, &#39;html&#39;)

msgAlternative.attach(msgText)

# This example assumes the image is in the current directory
fp = open(&#39;test.jpg&#39;, &#39;rb&#39;)

msgImage = MIMEImage(fp.read())
fp.close()

# Define the image&#39;s ID as referenced above
msgImage.add_header(&#39;Content-ID&#39;, &#39;&amp;lt;image1&amp;gt;&#39;)
msgRoot.attach(msgImage)

# Send the email (this example assumes SMTP authentication is required)
import smtplib
smtp = smtplib.SMTP()
smtp.connect(&#39;smtp.example.com&#39;)

smtp.login(&#39;exampleuser&#39;, &#39;examplepass&#39;)
smtp.sendmail(strFrom, strTo, msgRoot.as_string())

smtp.quit()
&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;block&quot;&gt;&lt;br /&gt;
&lt;h3&gt;Discussion&lt;/h3&gt;&lt;br /&gt;
&lt;div class=&quot;proseblock&quot;&gt;&lt;br /&gt;
While the practice of embedding images within the message provides a better experience for many users than linking to web-hosted images does it is important to consider the impact this has on message size and consequently on message download time.&lt;br /&gt;
&lt;br /&gt;
An alternative implementation for sending HTML messages is provided in this recipe &lt;a href=&quot;http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/67083&quot; rel=&quot;nofollow&quot;&gt;http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/67083&lt;/a&gt;, though it doesn&#39;t address embedding images and was written before the email package was incorporated  into Python. The email package and its MIME-handling capabilities significantly reduce the amount of code required.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/7341263031994207308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/7341263031994207308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/7341263031994207308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/7341263031994207308'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/10/send-html-email-with-embedded-image-and.html' title='Send an HTML email with embedded image and plain text alternate'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-3359228504506156016</id><published>2009-10-08T12:33:00.001+05:30</published><updated>2009-10-08T12:34:53.853+05:30</updated><title type='text'>CAPTCHA: &quot;Completely Automated Public Turing test to Tell Computers and Humans Apart&quot;</title><content type='html'>&lt;h1&gt;CAPTCHA: Telling Humans and Computers Apart Automatically&lt;br /&gt;
&lt;/h1&gt;&lt;br /&gt;
&lt;h1&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;A CAPTCHA is a program that protects websites against bots by generating and grading tests that humans can pass but current computer programs cannot. For example, humans can read distorted text as the one shown below, but current computer programs can&#39;t:&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7TIu_TeYPNPgj60-JdPAwhgRojCdB-qhmjxh6UycDRaVvgNRWuPrXo9_PBnXzKbfAn3koHnqvvU3c1EoiwYRPOQpiGFoyY_QOc-uhQuq2V8JUJCdpmpDubOHS3W4sHWpF4czg2hrEqaLY/s1600-h/Captchas.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7TIu_TeYPNPgj60-JdPAwhgRojCdB-qhmjxh6UycDRaVvgNRWuPrXo9_PBnXzKbfAn3koHnqvvU3c1EoiwYRPOQpiGFoyY_QOc-uhQuq2V8JUJCdpmpDubOHS3W4sHWpF4czg2hrEqaLY/s320/Captchas.png&quot; /&gt;&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;The term CAPTCHA (for Completely Automated Public Turing Test To Tell Computers and Humans Apart) was  coined in 2000 by Luis von Ahn, Manuel Blum, Nicholas Hopper and John Langford of Carnegie Mellon University.&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h1&gt;&lt;a href=&quot;http://recaptcha.net/whyrecaptcha.html&quot; style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Get a Free CAPTCHA For  Your Site&lt;/a&gt;&lt;/h1&gt;&lt;br /&gt;
A free, secure and accessible CAPTCHA implementation is available from the &lt;a href=&quot;http://recaptcha.net/whyrecaptcha.html&quot;&gt;&lt;b&gt;reCAPTCHA project&lt;/b&gt;&lt;/a&gt;. Easy to install plugins and controls are  available for &lt;a href=&quot;http://recaptcha.net/plugins/wordpress/&quot; title=&quot;WordPress CAPTCHA&quot;&gt; WordPress&lt;/a&gt;, &lt;a href=&quot;http://recaptcha.net/plugins/mediawiki/&quot; title=&quot;MediaWiki CAPTCHA&quot;&gt; MediaWiki&lt;/a&gt;, &lt;a href=&quot;http://recaptcha.net/plugins/php/&quot; title=&quot;PHP CAPTCHA&quot;&gt;PHP&lt;/a&gt;,  &lt;a href=&quot;http://recaptcha.net/plugins/aspnet/&quot; title=&quot;ASP CAPTCHA&quot;&gt;ASP.NET&lt;/a&gt;, Perl, Python, Java, and many other environments. reCAPTCHA also comes with an audio test to ensure that blind users can freely navigate your site. reCAPTCHA is our officially recommended CAPTCHA implementation. &lt;br /&gt;
&lt;h1&gt;Test Drive a CAPTCHA&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://recaptcha.net/learnmore.html&quot;&gt;&lt;b&gt;reCAPTCHA&lt;/b&gt;&lt;/a&gt;. Stop spam and help digitize books at the same time!  The words shown come directly from old books that are being digitized.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://server251.theory.cs.cmu.edu/cgi-bin/sq-pix&quot;&gt;&lt;b&gt;SQUIGL-PIX&lt;/b&gt;&lt;/a&gt;. Our newest CAPTCHA! &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://server251.theory.cs.cmu.edu/cgi-bin/esp-pix/esp-pix&quot;&gt;&lt;b&gt;ESP-PIX&lt;/b&gt;&lt;/a&gt;. A CAPTCHA script that&#39;s close to our hearts. Instead of typing  letters, you authenticate yourself as a human by recognizing what object is common in a set of images. This was the first example of a CAPTCHA based on image recognition.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Below is an example for Embedding a sample Captcha in a CGi FIle.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
######### don&#39;t change the following three lines: ###########&lt;br /&gt;
import cgi&lt;br /&gt;
import cgitb;cgitb.enable()&lt;br /&gt;
import time&lt;br /&gt;
from recaptcha.client import captcha&lt;br /&gt;
&lt;br /&gt;
publickey = &quot;&amp;lt;publickey&amp;gt;&quot;&lt;br /&gt;
privatekey = &quot;&amp;lt;privatekey&amp;gt;&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print &quot;Content-Type: text/html\n\n&quot;&lt;br /&gt;
print &#39;&#39;&#39;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;NO BOTS&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;form action=&quot;&amp;lt;ur cgi validator&amp;gt;&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Prove you are not a BOT&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://api.recaptcha.net/challenge?k=&#39;&#39;&#39; + publickey + &#39;&#39;&#39;&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;noscript&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&quot;http://api.recaptcha.net/noscript?k=&#39;&#39;&#39; + publickey + &#39;&#39;&#39;&quot; height=&quot;300&quot; width=&quot;500&quot; frameborder=&quot;0&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&quot;recaptcha_challenge_field&quot; rows=&quot;3&quot; cols=&quot;40&quot;&amp;gt;&lt;br /&gt;
&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;hidden&quot; name=&quot;recaptcha_response_field&quot; value=&quot;manual_challenge&quot;&amp;gt;&lt;br /&gt;
&amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;lt;input type = &quot;submit&quot; value = &quot;Go&quot;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&#39;&#39;&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Below is an example for validating a Captcha in a CGi FIle.&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
######### don&#39;t change the following three lines: ###########&lt;br /&gt;
import cgi&lt;br /&gt;
import cgitb;cgitb.enable()&lt;br /&gt;
import time&lt;br /&gt;
from recaptcha.client import captcha&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
publickey = &quot;&amp;lt;publickey&amp;gt;&quot;&lt;br /&gt;
privatekey = &quot;&amp;lt;privatekey&amp;gt;&quot;&lt;br /&gt;
&lt;br /&gt;
print &quot;Content-Type: text/html\n\n&quot;&lt;br /&gt;
form = cgi.FieldStorage()&lt;br /&gt;
&lt;br /&gt;
response = captcha.submit(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.getvalue(&quot;recaptcha_challenge_field&quot;),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.getvalue(&#39;recaptcha_response_field&#39;),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; privatekey,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;192.168.20.68&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
&lt;br /&gt;
if not response.is_valid:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print &#39;&#39;&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;U BOTS&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;&amp;lt;cgi captcha validator&amp;gt;&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;YOU ARE A BOT!!!!!!!!!!!!!!&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h3&amp;gt;Else Try Again&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://api.recaptcha.net/challenge?k=&#39;&#39;&#39; + publickey + &#39;&#39;&#39;&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;noscript&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;iframe src=&quot;http://api.recaptcha.net/noscript?k=&#39;&#39;&#39; + publickey + &#39;&#39;&#39;&quot; height=&quot;300&quot; width=&quot;500&quot; frameborder=&quot;0&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;textarea name=&quot;recaptcha_challenge_field&quot; rows=&quot;3&quot; cols=&quot;40&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;hidden&quot; name=&quot;recaptcha_response_field&quot; value=&quot;manual_challenge&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type = &quot;submit&quot; value = &quot;Go&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;&#39;&#39;&lt;br /&gt;
else:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print &#39;&#39;&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Hurray ur not a BOT &amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;&amp;lt;cgi captcha validator&amp;gt;&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;Hurray!!!!!!!!!!!!!!&amp;lt;br&amp;gt; :) you are A Human ;-)&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h3&amp;gt;You can Try Again Human&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://api.recaptcha.net/challenge?k=&#39;&#39;&#39; + publickey + &#39;&#39;&#39;&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;noscript&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;iframe src=&quot;http://api.recaptcha.net/noscript?k=&#39;&#39;&#39; + publickey + &#39;&#39;&#39;&quot; height=&quot;300&quot; width=&quot;500&quot; frameborder=&quot;0&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;textarea name=&quot;recaptcha_challenge_field&quot; rows=&quot;3&quot; cols=&quot;40&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;hidden&quot; name=&quot;recaptcha_response_field&quot; value=&quot;manual_challenge&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/noscript&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type = &quot;submit&quot; value = &quot;Go&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;&#39;&#39;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;&lt;/h1&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/3359228504506156016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/3359228504506156016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3359228504506156016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/3359228504506156016'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/10/captcha-completely-automated-public.html' title='CAPTCHA: &quot;Completely Automated Public Turing test to Tell Computers and Humans Apart&quot;'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7TIu_TeYPNPgj60-JdPAwhgRojCdB-qhmjxh6UycDRaVvgNRWuPrXo9_PBnXzKbfAn3koHnqvvU3c1EoiwYRPOQpiGFoyY_QOc-uhQuq2V8JUJCdpmpDubOHS3W4sHWpF4czg2hrEqaLY/s72-c/Captchas.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-8995719514398093942</id><published>2009-08-20T16:26:00.011+05:30</published><updated>2009-08-20T18:16:23.876+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Certificates"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="VPN"/><title type='text'>Introduction to Public-Key Cryptography</title><content type='html'>&lt;center&gt;&lt;h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;
&lt;a &gt;  Introduction to Public-Key Cryptography
&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/center&gt; 
Public-key cryptography and related standards and techniques underlie security features of many Netscape products, including signed and encrypted email, form signing, object signing, single sign-on, and the Secure Sockets Layer (SSL) protocol. This document introduces the basic concepts of public-key cryptography
&lt;h4&gt; Internet Security Issues &lt;/h4&gt;
&lt;h4&gt;Encryption and Decryption&lt;/h4&gt;
&lt;h4&gt;Digital Signatures&lt;/h4&gt;
&lt;h4&gt;Certificates and Authentication&lt;/h4&gt;
&lt;h4&gt;Managing Certificates&lt;/h4&gt;

&lt;a&gt;   Internet Security Issues&lt;/a&gt;
&lt;span&gt;All communication over the Internet uses the Transmission Control Protocol/Internet Protocol (TCP/IP). TCP/IP allows information to be sent from one computer to another through a variety of intermediate computers and separate networks before it reaches its destination. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;The great flexibility of TCP/IP has led to its worldwide acceptance as the basic Internet and intranet communications protocol. At the same time, the fact that TCP/IP allows information to pass through intermediate computers makes it possible for a third party to interfere with communications in the following ways:&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; &lt;b&gt;Eavesdropping.&lt;/b&gt; Information remains intact, but its privacy is compromised. For example, someone could learn your credit card number, record a sensitive conversation, or intercept classified information. &lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Tampering.&lt;/b&gt; Information in transit is changed or replaced and then sent on to the recipient. For example, someone could alter an order for goods or change a person&#39;s resume.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Impersonation.&lt;/b&gt; Information passes to a person who poses as the intended recipient. Impersonation can take two forms: &lt;/li&gt; &lt;/span&gt;&lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; &lt;b&gt;Spoofing.&lt;/b&gt; A person can pretend to be someone else. For example, a person can pretend to have the email address &lt;/li&gt;&lt;/span&gt;&lt;code&gt;&lt;a&gt;jdoe@mozilla.com&lt;/a&gt;&lt;/code&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;, or a computer can identify itself as a site called &lt;/span&gt;&lt;code&gt;www.mozilla.com&lt;/code&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; when it is not. This type of impersonation is known as spoofing&lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; &lt;b&gt;Misrepresentation.&lt;/b&gt; A person or organization can misrepresent itself. For example, suppose the site &lt;/li&gt;&lt;/span&gt;&lt;code&gt;&lt;a&gt;www.mozilla.com&lt;/a&gt;&lt;/code&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; pretends to be a furniture store when it is really just a site that takes credit-card payments but never sends any goods&lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;. &lt;/span&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Normally, users of the many cooperating computers that make up the Internet or other networks don&#39;t monitor or interfere with the network traffic that continuously passes through their machines. However, many sensitive personal and business communications over the Internet require precautions that address the threats listed above. Fortunately, a set of well-established techniques and standards known as &lt;b&gt;public-key cryptography &lt;/b&gt;make it relatively easy to take such precautions. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;h4&gt;Public-key cryptography facilitates the following tasks:&lt;/h4&gt;&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Encryption and decryption&lt;/b&gt; allow two communicating parties to disguise information they send to each other. The sender encrypts, or scrambles, information before sending it. The receiver decrypts, or unscrambles, the information after receiving it. While in transit, the encrypted information is unintelligible to an intruder.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Tamper detection&lt;/b&gt; allows the recipient of information to verify that it has not been modified in transit. Any attempt to modify data or substitute a false message for a legitimate one will be detected.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Authentication&lt;/b&gt; allows the recipient of information to determine its origin--that is, to confirm the sender&#39;s identity.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Nonrepudiation&lt;/b&gt; prevents the sender of information from claiming at a later date that the information was never sent. &lt;/li&gt; &lt;/span&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;The sections that follow introduce the concepts of public-key cryptography that underlie these capabilities.&lt;/span&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;hr noshade=&quot;noshade&quot;  style=&quot;font-size:78%;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;
&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Encryption and Decryption&lt;/span&gt;&lt;/h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Encryption is the process of transforming information so it is unintelligible to anyone but the intended recipient. Decryption is the process of transforming encrypted information so that it is intelligible again. A &lt;b&gt;cryptographic algorithm,&lt;/b&gt; also called a &lt;b&gt;cipher,&lt;/b&gt; is a mathematical function used for encryption or decryption. In most cases, two related functions are employed, one for encryption and the other for decryption.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; With most modern cryptography, the ability to keep encrypted information secret is based not on the cryptographic algorithm, which is widely known, but on a number called a &lt;b&gt;key&lt;/b&gt; that must be used with the algorithm to produce an encrypted result or to decrypt previously encrypted information. Decryption with the correct key is simple. Decryption without the correct key is very difficult, and in some cases impossible for all practical purposes. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;The sections that follow introduce the use of keys for encryption and decryption.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Symmetric-Key Encryption
Public-Key Encryption
Key Length and Encryption Strength&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  Symmetric-Key Encryption &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;With &lt;b&gt;symmetric-key encryption,&lt;/b&gt; the encryption key can be calculated from the decryption key and vice versa. With most symmetric algorithms, the same key is used for both encryption and decryption, as shown in Figure 1.&lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Figure 1     Symmetric-key encryption&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbV8YCSeYHmnpBxijlTNXY9kGKGA_wujyONf7NHOVjkcx0Ye-M0aG4dCDapDTjkWGy_7prKcKo5L5Bt5zuHfr-4EICbYOYt9wKaD4J9YI5l_BlX3lGwy10xedYhqsbBnfQ_gvwuoBK6ZLu/s1600-h/05scrypt.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 89px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbV8YCSeYHmnpBxijlTNXY9kGKGA_wujyONf7NHOVjkcx0Ye-M0aG4dCDapDTjkWGy_7prKcKo5L5Bt5zuHfr-4EICbYOYt9wKaD4J9YI5l_BlX3lGwy10xedYhqsbBnfQ_gvwuoBK6ZLu/s320/05scrypt.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5371998682040754258&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Implementations of symmetric-key encryption can be highly efficient, so that users do not experience any significant time delay as a result of the encryption and decryption. Symmetric-key encryption also provides a degree of authentication, since information encrypted with one symmetric key cannot be decrypted with any other symmetric key. Thus, as long as the symmetric key is kept secret by the two parties using it to encrypt communications, each party can be sure that it is communicating with the other as long as the decrypted messages continue to make sense.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Symmetric-key encryption is effective only if the symmetric key is kept secret by the two parties involved. If anyone else discovers the key, it affects both confidentiality and authentication. A person with an unauthorized symmetric key not only can decrypt messages sent with that key, but can encrypt new messages and send them as if they came from one of the two parties who were originally using the key.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Symmetric-key encryption plays an important role in the SSL protocol, which is widely used for authentication, tamper detection, and encryption over TCP/IP networks. SSL also uses techniques of public-key encryption, which is described in the next section.&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Public-Key Encryption &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;The most commonly used implementations of public-key encryption are based on algorithms patented by RSA Data Security. Therefore, this section describes the RSA approach to public-key encryption. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Public-key encryption&lt;/b&gt; (also called &lt;b&gt;asymmetric encryption&lt;/b&gt;) involves a pair of keys--a &lt;b&gt;public key&lt;/b&gt; and a &lt;b&gt;private key&lt;/b&gt;--associated with an entity that needs to authenticate its identity electronically or to sign or encrypt data. Each public key is published, and the corresponding private key is kept secret. (For more information about the way public keys are published, see Certificates and Authentication) Data encrypted with your public key can be decrypted only with your private key. Figure 2 shows a simplified view of the way public-key encryption works. &lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Figure 2     Public-key encryption &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1pIa_zVvrj0SZYbTKChYZY2u6nlIY6msoVYw1c_z726ckjtEI2OJHRmKik9k4zStB9LGOhZzf2H-yD5Cm-1_Pr9I_5Qk4hPy1oUXrDoTnljb2pQjnAo9VarQQpeB9sfk5oMUYEG6XSwXl/s1600-h/05scrypt.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 89px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1pIa_zVvrj0SZYbTKChYZY2u6nlIY6msoVYw1c_z726ckjtEI2OJHRmKik9k4zStB9LGOhZzf2H-yD5Cm-1_Pr9I_5Qk4hPy1oUXrDoTnljb2pQjnAo9VarQQpeB9sfk5oMUYEG6XSwXl/s320/05scrypt.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5371999313626030642&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The scheme shown in Figure 2 lets you freely distribute a public key, and only you will be able to read data encrypted using this key. In general, to send encrypted data to someone, you encrypt the data with that person&#39;s public key, and the person receiving the encrypted data decrypts it with the corresponding private key. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Compared with symmetric-key encryption, public-key encryption requires more computation and is therefore not always appropriate for large amounts of data. However, it&#39;s possible to use public-key encryption to send a symmetric key, which can then be used to encrypt additional data. This is the approach used by the SSL protocol.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;As it happens, the reverse of the scheme shown in Figure 2 also works: data encrypted with your private key can be decrypted only with your public key. This would not be a desirable way to encrypt sensitive data, however, because it means that anyone with your public key, which is by definition published, could decrypt the data. Nevertheless, private-key encryption is useful, because it means you can use your private key to sign data with your digital signature--an important requirement for electronic commerce and other commercial applications of cryptography. Client software such as Communicator can then use your public key to confirm that the message was signed with your private key and that it hasn&#39;t been tampered with since being signed. 
Digital Signatures and subsequent sections describe how this confirmation process works. &lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt; Key Length and Encryption Strength&lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;In general, the strength of encryption is related to the difficulty of discovering the key, which in turn depends on both the cipher used and the length of the key. For example, the difficulty of discovering the key for the RSA cipher most commonly used for public-key encryption depends on the difficulty of factoring large numbers, a well-known mathematical problem. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Encryption strength is often described in terms of the size of the keys used to perform the encryption: in general, longer keys provide stronger encryption. Key length is measured in bits. For example, 128-bit keys for use with the RC4 symmetric-key cipher supported by SSL provide significantly better cryptographic protection than 40-bit keys for use with the same cipher. Roughly speaking, 128-bit RC4 encryption is 3 x 10&lt;sup&gt;26&lt;/sup&gt; times stronger than 40-bit RC4 encryption. (For more information about RC4 and other ciphers used with SSL, see Introduction to SSL.)&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Different ciphers may require different key lengths to achieve the same level of encryption strength. The RSA cipher used for public-key encryption, for example, can use only a subset of all possible values for a key of a given length, due to the nature of the mathematical problem on which it is based. Other ciphers, such as those used for symmetric key encryption, can use all possible values for a key of a given length, rather than a subset of those values. Thus a 128-bit key for use with a symmetric-key encryption cipher would provide stronger encryption than a 128-bit key for use with the RSA public-key encryption cipher. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;This difference explains why the RSA public-key encryption cipher must use a 512-bit key (or longer) to be considered cryptographically strong, whereas symmetric key ciphers can achieve approximately the same level of strength with a 64-bit key. Even this level of strength may be vulnerable to attacks in the near future.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Because the ability to surreptitiously intercept and decrypt encrypted information has historically been a significant military asset, the U.S. Government restricts export of cryptographic software, including most software that permits use of symmetric encryption keys longer than 40 bits. For detailed information about these restrictions as they apply to Netscape products, see &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/exprt/index.html&quot; target=&quot;_top&quot;&gt;Export Restrictions on International Sales&lt;/a&gt;. &lt;/span&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#top&quot;&gt;[Top]&lt;/a&gt;&lt;/span&gt;&lt;hr noshade=&quot;noshade&quot;  style=&quot;font-size:78%;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;
&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Digital Signatures&quot;&gt;&lt;/a&gt; Digital Signatures&lt;/span&gt;&lt;/h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Encryption and decryption address the problem of eavesdropping, one of the three Internet security issues mentioned at the beginning of this document. But encryption and decryption, by themselves, do not address the other two problems mentioned in &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1041271&quot;&gt;Internet Security Issues&lt;/a&gt;: tampering and impersonation. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;This section describes how public-key cryptography addresses the problem of tampering. The sections that follow describe how it addresses the problem of impersonation&lt;/a&gt;.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Tamper detection and related authentication techniques rely on a mathematical function called a &lt;b&gt;one-way hash &lt;/b&gt;(also called a &lt;b&gt;message digest&lt;/b&gt;). A one-way hash is a number of fixed length with the following characteristics:&lt;/a&gt;&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The value of the hash is unique for the hashed data. Any change in the data, even deleting or altering a single character, results in a different value.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The content of the hashed data cannot, for all practical purposes, be deduced from the hash--which is why it is called &quot;one-way.&quot;&lt;/li&gt; &lt;/span&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; As mentioned in &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1016376&quot;&gt;Public-Key Encryption&lt;/a&gt;, it&#39;s possible to use your private key for encryption and your public key for decryption. Although this is not desirable when you are encrypting sensitive information, it is a crucial part of digitally signing any data. Instead of encrypting the data itself, the signing software creates a one-way hash of the data, then uses your private key to encrypt the hash. The encrypted hash, along with other information, such as the hashing algorithm, is known as a &lt;b&gt;digital signature.&lt;/b&gt; &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1047373&quot;&gt;Figure 3&lt;/a&gt; shows a simplified view of the way a digital signature can be used to validate the integrity of signed data.&lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Figure 3     Using a digital signature to validate data integrity&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh37WWIJ7GktXlnvw7_GxloKUJbPpbby5jENQwwCHnx81xOSIiuKv9MNG-KdEX5U7KirBtSk1K74uuvSjq-q__askErC86sH4EtbhpJEy89P3t9EPnNkDK27X3y_hD0HTpkCY1Hena3c9ds/s1600-h/04digsgn.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 306px; height: 138px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh37WWIJ7GktXlnvw7_GxloKUJbPpbby5jENQwwCHnx81xOSIiuKv9MNG-KdEX5U7KirBtSk1K74uuvSjq-q__askErC86sH4EtbhpJEy89P3t9EPnNkDK27X3y_hD0HTpkCY1Hena3c9ds/s320/04digsgn.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372000951894918562&quot; border=&quot;0&quot; /&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;   
Figure 3 shows two items transferred to the recipient of some signed data: the original data and the digital signature, which is basically a one-way hash (of the original data) that has been encrypted with the signer&#39;s private key. To validate the integrity of the data, the receiving software first uses the signer&#39;s public key to decrypt the hash. It then uses the same hashing algorithm that generated the original hash to generate a new one-way hash of the same data. (Information about the hashing algorithm used is sent with the digital signature, although this isn&#39;t shown in the figure.) Finally, the receiving software compares the new hash against the original hash. If the two hashes match, the data has not changed since it was signed. If they don&#39;t match, the data may have been tampered with since it was signed, or the signature may have been created with a private key that doesn&#39;t correspond to the public key presented by the signer.&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;
 If the two hashes match, the recipient can be certain that the public key used to decrypt the digital signature corresponds to the private key used to create the digital signature. Confirming the identity of the signer, however, also requires some way of confirming that the public key really belongs to a particular person or other entity. For a discussion of the way this works, see Certificates and Authentication.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;The significance of a digital signature is comparable to the significance of a handwritten signature. Once you have signed some data, it is difficult to deny doing so later--assuming that the private key has not been compromised or out of the owner&#39;s control. This quality of digital signatures provides a high degree of nonrepudiation--that is, digital signatures make it difficult for the signer to deny having signed the data. In some situations, a digital signature may be as legally binding as a handwritten signature&lt;/a&gt;.&lt;/span&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#top&quot;&gt;[Top]&lt;/a&gt;&lt;/span&gt;&lt;hr noshade=&quot;noshade&quot;  style=&quot;font-size:78%;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;
&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Certificates and Authentication&quot;&gt;&lt;/a&gt;  Certificates and Authentication&lt;/a&gt; &lt;/span&gt;&lt;/h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044272&quot;&gt;A Certificate Identifies Someone or Something&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1045678&quot;&gt;Authentication Confirms an Identity&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1046108&quot;&gt;How Certificates Are Used&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044330&quot;&gt;Contents of a Certificate&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1052613&quot;&gt;How CA Certificates Are Used to Establish Trust&lt;/a&gt;&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt;  A Certificate Identifies Someone or Something &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; A &lt;b&gt;certificate&lt;/b&gt; is an electronic document used to identify an individual, a server, a company, or some other entity and to associate that identity with a public key. Like a driver&#39;s license, a passport, or other commonly used personal IDs, a certificate provides generally recognized proof of a person&#39;s identity. Public-key cryptography uses certificates to address the problem of impersonation (see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1041271&quot;&gt;Internet Security Issues&lt;/a&gt;).&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; To get a driver&#39;s license, you typically apply to a government agency, such as the Department of Motor Vehicles, which verifies your identity, your ability to drive, your address, and other information before issuing the license. To get a student ID, you apply to a school or college, which performs different checks (such as whether you have paid your tuition) before issuing the ID. To get a library card, you may need to provide only your name and a utility bill with your address on it.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Certificates work much the same way as any of these familiar forms of identification. &lt;b&gt;Certificate authorities (CAs)&lt;/b&gt; are entities that validate identities and issue certificates. They can be either independent third parties or organizations running their own certificate-issuing server software (such as Netscape Certificate Server). The methods used to validate an identity vary depending on the policies of a given CA--just as the methods to validate other forms of identification vary depending on who is issuing the ID and the purpose for which it will be used. In general, before issuing a certificate, the CA must use its published verification procedures for that type of certificate to ensure that an entity requesting a certificate is in fact who it claims to be. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The certificate issued by the CA binds a particular public key to the name of the entity the certificate identifies (such as the name of an employee or a server). Certificates help prevent the use of fake public keys for impersonation. Only the public key certified by the certificate will work with the corresponding private key possessed by the entity identified by the certificate. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; In addition to a public key, a certificate always includes the name of the entity it identifies, an expiration date, the name of the CA that issued the certificate, a serial number, and other information. Most importantly, a certificate always includes the digital signature of the issuing CA. The CA&#39;s digital signature allows the certificate to function as a &quot;letter of introduction&quot; for users who know and trust the CA but don&#39;t know the entity identified by the certificate.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; For more information about the role of CAs, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1052613&quot;&gt;How CA Certificates Are Used to Establish Trust&lt;/a&gt;. &lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt;  Authentication Confirms an Identity &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Authentication&lt;/b&gt; is the process of confirming an identity. In the context of network interactions, authentication involves the confident identification of one party by another party. Authentication over networks can take many forms. Certificates are one way of supporting authentication.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Network interactions typically take place between a client, such as browser software running on a personal computer, and a server&lt;b&gt;,&lt;/b&gt; such as the software and hardware used to host a Web site. &lt;b&gt;Client authentication&lt;/b&gt; refers to the confident identification of a client by a server (that is, identification of the person assumed to be using the client software). &lt;b&gt;Server authentication&lt;/b&gt; refers to the confident identification of a server by a client (that is, identification of the organization assumed to be responsible for the server at a particular network address). &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Client and server authentication are not the only forms of authentication that certificates support. For example, the digital signature on an email message, combined with the certificate that identifies the sender, provide strong evidence that the person identified by that certificate did indeed send that message. Similarly, a digital signature on an HTML form, combined with a certificate that identifies the signer, can provide evidence, after the fact, that the person identified by that certificate did agree to the contents of the form. In addition to authentication, the digital signature in both cases ensures a degree of nonrepudiation--that is, a digital signature makes it difficult for the signer to claim later not to have sent the email or the form&lt;/a&gt;.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Client authentication is an essential element of network security within most intranets or extranets. The sections that follow contrast two forms of client authentication:&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051881&quot;&gt;Password-Based Authentication&lt;/a&gt;. Almost all server software permits client authentication by means of a name and password. For example, a server might require a user to type a name and password before granting access to the server. The server maintains a list of names and passwords; if a particular name is on the list, and if the user types the correct password, the server grants access.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051902&quot;&gt;Certificate-Based Authentication&lt;/a&gt;. Client authentication based on certificates is part of the SSL protocol. The client digitally signs a randomly generated piece of data and sends both the certificate and the signed data across the network. The server uses techniques of public-key cryptography to validate the signature and confirm the validity of the certificate. &lt;/li&gt; &lt;/span&gt;&lt;/ul&gt; &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt;  Password-Based Authentication &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051893&quot;&gt;Figure 4&lt;/a&gt; shows the basic steps involved in authenticating a client by means of a name and password. Figure 4 assumes the following:&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The user has already decided to trust the server, either without authentication or on the basis of server authentication via SSL.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;The user has requested a resource controlled by the server.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;The server requires client authentication before permitting access to the requested resource&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Figure 4     Using a password to authenticate a client to a server&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjArq1FATE5H3J_FZWHpiOmcZ4-Zn7rMmezevJSzw4ffQV6xME0DMMONwBKY3jRVzDbhOuMrOqvc8IivQaFbV-ZquND0U1cVtfOSFTMFySbZkInFQajWlRIscudRtIHkcgLmdSSwggA0Sr2/s1600-h/04digsgn.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 171px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjArq1FATE5H3J_FZWHpiOmcZ4-Zn7rMmezevJSzw4ffQV6xME0DMMONwBKY3jRVzDbhOuMrOqvc8IivQaFbV-ZquND0U1cVtfOSFTMFySbZkInFQajWlRIscudRtIHkcgLmdSSwggA0Sr2/s400/04digsgn.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372001908574162978&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;  &lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; These are the steps shown in Figure 4:&lt;/span&gt; &lt;ol&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; In response to an authentication request from the server, the client displays a dialog box requesting the user&#39;s name and password for that server. The user must supply a name and password separately for each new server the user wishes to use during a work session.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The client sends the name and password across the network, either in the clear or over an encrypted SSL connection.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The server looks up the name and password in its local password database and, if they match, accepts them as evidence authenticating the user&#39;s identity&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The server determines whether the identified user is permitted to access the requested resource, and if so allows the client to access it.&lt;/li&gt; &lt;/span&gt;&lt;/ol&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; With this arrangement, the user must supply a new password for each server, and the administrator must keep track of the name and password for each user, typically on separate servers.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; As shown in the next section, one of the advantages of certificate-based authentication is that it can be used to replace the first three steps in Figure 2 with a mechanism that allows the user to supply just one password (which is not sent across the network) and allows the administrator to control user authentication centrally.&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt; Certificate-Based Authentication&lt;/span&gt;&lt;/h4&gt;&lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051918&quot;&gt;Figure 5&lt;/a&gt; shows how client authentication works using certificates and the &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1053298&quot;&gt;SSL Protocol&lt;/a&gt;. To authenticate a user to a server, a client digitally signs a randomly generated piece of data and sends both the certificate and the signed data across the network. For the purposes of this discussion, the digital signature associated with some data can be thought of as evidence provided by the client to the server. The server authenticates the user&#39;s identity on the strength of this evidence.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Like &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051893&quot;&gt;Figure 4&lt;/a&gt;, &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051918&quot;&gt;Figure 5&lt;/a&gt; assumes that the user has already decided to trust the server and has requested a resource, and that the server has requested client authentication in the process of evaluating whether to grant access to the requested resource. &lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Figure 5     Using a certificate to authenticate a client to a server&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOe6kf7h2CrNwHYmrurMD61XyoUIcth8zZzHTWt5KfQaWvx-0jXnAeAMFSkWifQvuDrVXzYnhSKg7bhFwg_AI547M7xuuE7pjL2ubbfq_k0pqEi9QrMMN5I5eULERS_RbHunyjH_ZG7klz/s1600-h/04digsgn.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 211px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOe6kf7h2CrNwHYmrurMD61XyoUIcth8zZzHTWt5KfQaWvx-0jXnAeAMFSkWifQvuDrVXzYnhSKg7bhFwg_AI547M7xuuE7pjL2ubbfq_k0pqEi9QrMMN5I5eULERS_RbHunyjH_ZG7klz/s400/04digsgn.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372002464898490018&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Unlike the process shown in Figure 4, the process shown in Figure 5 requires the use of SSL. Figure 5 also assumes that the client has a valid certificate that can be used to identify the client to the server. Certificate-based authentication is generally considered preferable to password-based authentication because it is based on what the user has (the private key) as well as what the user knows (the password that protects the private key). However, it&#39;s important to note that these two assumptions are true only if unauthorized personnel have not gained access to the user&#39;s machine or password, the password for the client software&#39;s private key database has been set, and the software is set up to request the password at reasonably frequent intervals. &lt;/span&gt; &lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Important  &lt;/b&gt; Neither password-based authentication nor certificate-based authentication address  security issues related to physical access to individual machines or passwords. Public- key cryptography can only verify that a private key used to sign some data  corresponds to the public key in a certificate. It is the user&#39;s responsibility to protect a  machine&#39;s physical security and to keep the private-key password secret.  &lt;/span&gt;&lt;/blockquote&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;These are the steps shown in Figure 3:&lt;/a&gt;&lt;/span&gt; &lt;ol&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The client software, such as Communicator, maintains a database of the private keys that correspond to the public keys published in any certificates issued for that client. The client asks for the password to this database the first time the client needs to access it during a given session--for example, the first time the user attempts to access an SSL-enabled server that requires certificate-based client authentication. After entering this password once, the user doesn&#39;t need to enter it again for the rest of the session, even when accessing other SSL-enabled servers.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The client unlocks the private-key database, retrieves the private key for the user&#39;s certificate, and uses that private key to digitally sign some data that has been randomly generated for this purpose on the basis of input from both the client and the server. This data and the digital signature constitute &quot;evidence&quot; of the private key&#39;s validity. The digital signature can be created only with that private key and can be validated with the corresponding public key against the signed data, which is unique to the SSL session&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The client sends both the user&#39;s certificate and the evidence (the randomly generated piece of data that has been digitally signed) across the network. &lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;The server uses the certificate and the evidence to authenticate the user&#39;s identity. (For a detailed discussion of the way this works, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/sslin/index.html&quot; target=&quot;_top&quot;&gt;Introduction to SSL&lt;/a&gt;.)&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;At this point the server may optionally perform other authentication tasks, such as checking that the certificate presented by the client is stored in the user&#39;s entry in an LDAP directory. The server then continues to evaluate whether the identified user is permitted to access the requested resource. This evaluation process can employ a variety of standard authorization mechanisms, potentially using additional information in an LDAP directory, company databases, and so on. If the result of the evaluation is positive, the server allows the client to access the requested resource. &lt;/li&gt; &lt;/span&gt;&lt;/ol&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1051940&quot;&gt; As you can see by comparing &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051918&quot;&gt;Figure 5&lt;/a&gt; to &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051893&quot;&gt;Figure 4&lt;/a&gt;, certificates replace the authentication portion of the interaction between the client and the server. Instead of requiring a user to send passwords across the network throughout the day, single sign-on requires the user to enter the private-key database password just once, without sending it across the network. For the rest of the session, the client presents the user&#39;s certificate to authenticate the user to each new server it encounters. Existing authorization mechanisms based on the authenticated user identity are not affected. &lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt;  How Certificates Are Used&lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1046166&quot;&gt;Types of Certificates&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1053298&quot;&gt;SSL Protocol&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1053759&quot;&gt;Signed and Encrypted Email&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1046164&quot;&gt;Form Signing&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1047251&quot;&gt;Single Sign-On&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1046821&quot;&gt;Object Signing&lt;/a&gt;&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt;  Types of Certificates&lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Five kinds of certificates are commonly used with Netscape products:&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; &lt;b&gt;Client SSL certificates.&lt;/b&gt; Used to identify clients to servers via SSL (client authentication). Typically, the identity of the client is assumed to be the same as the identity of a human being, such as an employee in an enterprise. See &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051902&quot;&gt;Certificate-Based Authentication&lt;/a&gt; for a description of the way client SSL certificates are used for client authentication. Client SSL certificates can also be used for &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1046164&quot;&gt;Form Signing&lt;/a&gt; and as part of a &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1047251&quot;&gt;Single Sign-On&lt;/a&gt; solution.&lt;/li&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Examples:&lt;/b&gt; A bank gives a customer a client SSL certificate that allows the bank&#39;s  servers to identify that customer and authorize access to the customer&#39;s accounts.  A company might give a new employee a client SSL certificate that allows the  company&#39;s servers to identify that employee and authorize access to the  company&#39;s servers.  &lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Server SSL certificates.&lt;/b&gt; Used to identify servers to clients via SSL (server authentication). Server authentication may be used with or without client authentication. Server authentication is a requirement for an encrypted SSL session. See &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1053298&quot;&gt;SSL Protocol.&lt;/li&gt; &lt;/a&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Example:&lt;/b&gt; Internet sites that engage in electronic commerce (commonly known as  &lt;b&gt;e-commerce&lt;/b&gt;) usually support certificate-based server authentication, at a  minimum, to establish an encrypted SSL session and to assure customers that they  are dealing with a web site identified with a particular company. The encrypted  SSL session ensures that personal information sent over the network, such as  credit card numbers, cannot easily be intercepted. &lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; &lt;b&gt;S/MIME certificates.&lt;/b&gt; Used for signed and encrypted email. As with client SSL certificates, the identity of the client is typically assumed to be the same as the identity of a human being, such as an employee in an enterprise. A single certificate may be used as both an S/MIME certificate and an SSL certificate. See &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1053759&quot;&gt;Signed and Encrypted Email&lt;/a&gt;. S/MIME certificates can also be used for &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1046164&quot;&gt;Form Signing&lt;/a&gt; and as part of a &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1047251&quot;&gt;Single Sign-On&lt;/a&gt; solution.&lt;/li&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Examples:&lt;/b&gt; A company deploys combined S/MIME and SSL certificates solely  for the purpose of authenticating employee identities, thus permitting signed  email and client SSL authentication but not encrypted email. Another company  issues S/MIME certificates solely for the purpose of both signing and encrypting  email that deals with sensitive financial or legal matters. &lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;b&gt;Object-signing certificates.&lt;/b&gt; Used to identify signers of Java code, JavaScript scripts, or other signed files. See &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1046821&quot;&gt;Object Signing&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt;Example:&lt;/b&gt; A software company signs software distributed over the Internet to  provide users with some assurance that the software is a legitimate product of that  company. Using certificates and digital signatures in this manner can also make it  possible for users to identify and control the kind of access downloaded software  has to their computers. &lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a name=&quot;1039311&quot;&gt; &lt;b&gt;CA certificates.&lt;/b&gt; Used to identify CAs. Client and server software use CA certificates to determine what other certificates can be trusted. See &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1052613&quot;&gt;How CA Certificates Are Used to Establish Trust&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Example:&lt;/b&gt; The CA certificates stored in Communicator determine what other  certificates that copy of Communicator can authenticate. An administrator can  implement some aspects of corporate security policies by controlling the CA  certificates stored in each user&#39;s copy of Communicator. &lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The sections that follow describes how certificates are used by Netscape products.&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt;  SSL Protocol &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The Secure Sockets Layer (SSL) protocol, which was originally developed by Netscape, is a set of rules governing server authentication, client authentication, and encrypted communication between servers and clients. SSL is widely used on the Internet, especially for interactions that involve exchanging confidential information such as credit card numbers. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; SSL requires a server SSL certificate, at a minimum. As part of the initial &quot;handshake&quot; process, the server presents its certificate to the client to authenticate the server&#39;s identity. The authentication process uses &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1016376&quot;&gt;Public-Key Encryption&lt;/a&gt; and &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1047358&quot;&gt;Digital Signatures&lt;/a&gt; to confirm that the server is in fact the server it claims to be. Once the server has been authenticated, the client and server use techniques of &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1048740&quot;&gt;Symmetric-Key Encryption&lt;/a&gt;, which is very fast, to encrypt all the information they exchange for the remainder of the session and to detect any tampering that may have occurred.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Servers may optionally be configured to require client authentication as well as server authentication. In this case, after server authentication is successfully completed, the client must also present its certificate to the server to authenticate the client&#39;s identity before the encrypted SSL session can be established.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1053763&quot;&gt; For an overview of client authentication over SSL and how it differs from password-based authentication, see &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1045678&quot;&gt;Authentication Confirms an Identity&lt;/a&gt;. For more detailed information about SSL, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/sslin/index.html&quot; target=&quot;_top&quot;&gt;Introduction to SSL&lt;/a&gt;.&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt; Signed and Encrypted Email&lt;/a&gt; &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Some email programs (including Messenger, which is part of Communicator) support digitally signed and encrypted email using a widely accepted protocol known as Secure Multipurpose Internet Mail Extension (S/MIME). Using S/MIME to sign or encrypt email messages requires the sender of the message to have an S/MIME certificate.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; An email message that includes a digital signature provides some assurance that it was in fact sent by the person whose name appears in the message header, thus providing authentication of the sender. If the digital signature cannot be validated by the email software on the receiving end, the user will be alerted.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The digital signature is unique to the message it accompanies. If the message received differs in any way from the message that was sent--even by the addition or deletion of a comma--the digital signature cannot be validated. Therefore, signed email also provides some assurance that the email has not been tampered with. As discussed at the beginning of this document, this kind of assurance is known as nonrepudiation. In other words, signed email makes it very difficult for the sender to deny having sent the message. This is important for many forms of business communication. (For information about the way digital signatures work, see &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1047358&quot;&gt;Digital Signatures&lt;/a&gt;.)&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; S/MIME also makes it possible to encrypt email messages. This is also important for some business users. However, using encryption for email requires careful planning. If the recipient of encrypted email messages loses his or her private key and does not have access to a backup copy of the key, for example, the encrypted messages can never be decrypted. &lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;   Single Sign-On&lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Network users are frequently required to remember multiple passwords for the various services they use. For example, a user might have to type a different password to log into the network, collect email, use directory services, use the corporate calendar program, and access various servers. Multiple passwords are an ongoing headache for both users and system administrators. Users have difficulty keeping track of different passwords, tend to choose poor ones, and tend to write them down in obvious places. Administrators must keep track of a separate password database on each server and deal with potential security problems related to the fact that passwords are sent over the network routinely and frequently.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Solving this problem requires some way for a user to log in once, using a single password, and get authenticated access to all network resources that user is authorized to use--without sending any passwords over the network. This capability is known as &lt;b&gt;single sign-on.&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Both client SSL certificates and S/MIME certificates can play a significant role in a comprehensive single sign-on solution. For example, one form of single sign-on supported by Netscape products relies on SSL client authentication (see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1051902&quot;&gt;Certificate-Based Authentication&lt;/a&gt;). A user can log in once, using a single password to the local client&#39;s private-key database, and get authenticated access to all SSL-enabled servers that user is authorized to use--without sending any passwords over the network. This approach simplifies access for users, because they don&#39;t need to enter passwords for each new server. It also simplifies network management, since administrators can control access by controlling lists of certificate authorities (CAs) rather than much longer lists of users and passwords.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; In addition to using certificates, a complete single-sign on solution must address the need to interoperate with enterprise systems, such as the underlying operating system, that rely on passwords or other forms of authentication.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; For information about the single sign-on support currently provided by Netscape products, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/SSO/index.html&quot; target=&quot;_top&quot;&gt;Single Sign-On Deployment Guide&lt;/a&gt;. &lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1046164&quot;&gt;  Form Signing&lt;/a&gt; &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Many kinds of e-commerce require the ability to provide persistent proof that someone has authorized a transaction. Although SSL provides transient client authentication for the duration of an SSL connection, it does not provide persistent authentication for transactions that may occur during that connection. S/MIME provides persistent authentication for email, but e-commerce often involves filling in a form on a web page rather than sending an email.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The Netscape technology known as form signing addresses the need for persistent authentication of financial transactions. Form signing allows a user to associate a digital signature with web-based data generated as the result of a transaction, such as a purchase order or other financial document. The private key associated with either a client SSL certificate or an S/MIME certificate may be used for this purpose. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;When a user clicks the Submit button on a web-based form that supports form signing, a dialog box appears that displays the exact text to be signed. The form designer can either specify the certificate that should be used or allow the user to select a certificate from among the client SSL and S/MIME certificates that are installed in Communicator. When the user clicks OK, the text is signed, and both the text and the digital signature are submitted to the server. The server can then use a Netscape utility called the Signature Verification Tool to validate the digital signature.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; For more information about support for form signing in Netscape products, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/tech/security/formsign/formsign.html&quot; target=&quot;_top&quot;&gt;Netscape Form Signing&lt;/a&gt;.&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt;   Object Signing&lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Communicator and other Netscape products support a set of tools and technologies called object signing. Object signing uses standard techniques of public-key cryptography to let users get reliable information about code they download in much the same way they can get reliable information about shrink-wrapped software. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Most importantly, object signing helps users and network administrators implement decisions about software distributed over intranets or the Internet--for example, whether to allow Java applets signed by a given entity to use specific computer capabilities on specific users&#39; machines.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The &quot;objects&quot; signed with object signing technology can be applets or other Java code, JavaScript scripts, plug-ins, or any kind of file. The &quot;signature&quot; is a digital signature. Signed objects and their signatures are typically stored in a special file called a JAR file. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Software developers and others who wish to sign files using object-signing technology must first obtain an object-signing certificate.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; For more information about support for object signing in Netscape products, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/signedobj/trust/index.html&quot; target=&quot;_top&quot;&gt;Netscape Object Signing: Establishing Trust for Downloaded Software&lt;/a&gt;.&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt;  Contents of a Certificate &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The contents of certificates supported by Netscape and many other software companies are organized according to the X.509 v3 certificate specification, which has been recommended by the International Telecommunications Union (ITU), an international standards body, since 1988. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Users don&#39;t usually need to be concerned about the exact contents of a certificate. However, system administrators working with certificates may need some familiarity with the information provided here&lt;/a&gt;.&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1050493&quot;&gt;  Distinguished Names&lt;/a&gt; &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1048086&quot;&gt; An X.509 v3 certificate binds a &lt;b&gt;distinguished name (DN)&lt;/b&gt; to a public key. A DN is a series of name-value pairs, such as &lt;/a&gt;&lt;/span&gt;&lt;code&gt;&lt;a name=&quot;1048086&quot;&gt;uid=doe&lt;/a&gt;&lt;/code&gt;&lt;a name=&quot;1048086&quot;&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;, that uniquely identify an entity--that is, the certificate&lt;b&gt; subject.&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;For example, this might be a typical DN for an employee of Netscape Communications Corporation:&lt;/span&gt; &lt;pre&gt;&lt;a name=&quot;1048046&quot;&gt;uid=doe,e=doe@netscape.com,cn=John Doe,o=Netscape Communications Corp.,c=US&lt;/a&gt;
&lt;/pre&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The abbreviations before each equal sign in this example have these meanings:&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;/li&gt;&lt;/span&gt;&lt;code&gt;&lt;a name=&quot;1048048&quot;&gt;uid&lt;/a&gt;&lt;/code&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;: user ID&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a name=&quot;1048049&quot;&gt; &lt;/a&gt;&lt;/li&gt;&lt;/span&gt;&lt;code&gt;&lt;a name=&quot;1048049&quot;&gt;e&lt;/a&gt;&lt;/code&gt;&lt;a name=&quot;1048049&quot;&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;: email address&lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;/li&gt;&lt;/span&gt;&lt;code&gt;&lt;a name=&quot;1048050&quot;&gt;cn&lt;/a&gt;&lt;/code&gt;&lt;a name=&quot;1048050&quot;&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;: the user&#39;s common name&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a name=&quot;1048051&quot;&gt; &lt;/a&gt;&lt;/li&gt;&lt;/span&gt;&lt;code&gt;&lt;a name=&quot;1048051&quot;&gt;o&lt;/a&gt;&lt;/code&gt;&lt;a name=&quot;1048051&quot;&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;: organization&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a name=&quot;1048052&quot;&gt; &lt;/a&gt;&lt;/li&gt;&lt;/span&gt;&lt;code&gt;&lt;a name=&quot;1048052&quot;&gt;c&lt;/a&gt;&lt;/code&gt;&lt;a name=&quot;1048052&quot;&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;: country&lt;/span&gt;&lt;/a&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; DNs may include a variety of other name-value pairs. They are used to identify both certificate subjects and entries in directories that support the Lightweight Directory Access Protocol (LDAP). &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The rules governing the construction of DNs can be quite complex and are beyond the scope of this document. For comprehensive information about DNs, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/ftp://ds.internic.net/rfc/rfc1485.txt&quot; target=&quot;_top&quot;&gt;A String Representation of Distinguished Names&lt;/a&gt;.&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt;  A Typical Certificate &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Every X.509 certificate consists of two sections:&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The data section includes the following information:&lt;/li&gt; &lt;/span&gt;&lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;The version number of the X.509 standard supported by the certificate.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The certificate&#39;s serial number. Every certificate issued by a CA has a serial number that is unique among the certificates issued by that CA.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; Information &lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; Information about the user&#39;s public key, including the algorithm used and a representation of the key itself.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The DN of the CA that issued the certificate.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The period during which the certificate is valid (for example, between 1:00 p.m. on November 15, 1996 and 1:00 p.m. November 15, 1997)&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The DN of the certificate subject (for example, in a client SSL certificate this would be the user&#39;s DN), also called the subject name&lt;/a&gt;. &lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a name=&quot;1052590&quot;&gt; Optional &lt;b&gt;certificate extensions,&lt;/b&gt; which may provide additional data used by the client or server. For example, the certificate type extension indicates the type of certificate--that is, whether it is a client SSL certificate, a server SSL certificate, a certificate for signing email, and so on. Certificate extensions can also be used for a variety of other purposes&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;The signature section includes the following information:&lt;/li&gt; &lt;/span&gt;&lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;The cryptographic algorithm, or cipher, used by the issuing CA to create its own digital signature. For more information about ciphers, see&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/sslin/index.html&quot; target=&quot;_top&quot;&gt;Introduction to SSL&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;&lt;a name=&quot;1047990&quot;&gt; The CA&#39;s digital signature, obtained by hashing all of the data in the certificate together and encrypting it with the CA&#39;s private key&lt;/a&gt;.&lt;/li&gt; &lt;/span&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Here are the data and signature sections of a certificate in human-readable format:&lt;/span&gt; &lt;pre&gt;&lt;code&gt;Certificate:
Data:
Version: v3 (0x2)
Serial Number: 3 (0x3)
Signature Algorithm: PKCS #1 MD5 With RSA Encryption
Issuer: OU=Ace Certificate Authority, O=Ace Industry, C=US
Validity:
 Not Before: Fri Oct 17 18:36:25 1997
 Not  After: Sun Oct 17 18:36:25 1999
Subject: CN=Jane Doe, OU=Finance, O=Ace Industry, C=US
Subject Public Key Info:
 Algorithm: PKCS #1 RSA Encryption
 Public Key:
     Modulus:
         00:ca:fa:79:98:8f:19:f8:d7:de:e4:49:80:48:e6:2a:2a:86:
         ed:27:40:4d:86:b3:05:c0:01:bb:50:15:c9:de:dc:85:19:22:
         43:7d:45:6d:71:4e:17:3d:f0:36:4b:5b:7f:a8:51:a3:a1:00:
         98:ce:7f:47:50:2c:93:36:7c:01:6e:cb:89:06:41:72:b5:e9:
         73:49:38:76:ef:b6:8f:ac:49:bb:63:0f:9b:ff:16:2a:e3:0e:
         9d:3b:af:ce:9a:3e:48:65:de:96:61:d5:0a:11:2a:a2:80:b0:
         7d:d8:99:cb:0c:99:34:c9:ab:25:06:a8:31:ad:8c:4b:aa:54:
         91:f4:15
     Public Exponent: 65537 (0x10001)
Extensions:
 Identifier: Certificate Type
     Critical: no
     Certified Usage:
         SSL Client
 Identifier: Authority Key Identifier
     Critical: no
     Key Identifier:
         f2:f2:06:59:90:18:47:51:f5:89:33:5a:31:7a:e6:5c:fb:36:
         26:c9
Signature:
Algorithm: PKCS #1 MD5 With RSA Encryption
Signature:
 6d:23:af:f3:d3:b6:7a:df:90:df:cd:7e:18:6c:01:69:8e:54:65:fc:06:
 30:43:34:d1:63:1f:06:7d:c3:40:a8:2a:82:c1:a4:83:2a:fb:2e:8f:fb:
 f0:6d:ff:75:a3:78:f7:52:47:46:62:97:1d:d9:c6:11:0a:02:a2:e0:cc:
 2a:75:6c:8b:b6:9b:87:00:7d:7c:84:76:79:ba:f8:b4:d2:62:58:c3:c5:
 b6:c1:43:ac:63:44:42:fd:af:c8:0f:2f:38:85:6d:d6:59:e8:41:42:a5:
 4a:e5:26:38:ff:32:78:a1:38:f1:ed:dc:0d:31:d1:b0:6d:67:e9:46:a8:
  dd:c4&lt;/code&gt;&lt;/a&gt;
&lt;/pre&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  Here is the same certificate displayed in the 64-byte-encoded form interpreted by software: &lt;/span&gt;&lt;pre&gt;&lt;a name=&quot;1052611&quot;&gt;&lt;code&gt;-----BEGIN CERTIFICATE-----
MIICKzCCAZSgAwIBAgIBAzANBgkqhkiG9w0BAQQFADA3MQswCQYDVQQGEwJVUzER
MA8GA1UEChMITmV0c2NhcGUxFTATBgNVBAsTDFN1cHJpeWEncyBDQTAeFw05NzEw
MTgwMTM2MjVaFw05OTEwMTgwMTM2MjVaMEgxCzAJBgNVBAYTAlVTMREwDwYDVQQK
EwhOZXRzY2FwZTENMAsGA1UECxMEUHViczEXMBUGA1UEAxMOU3Vwcml5YSBTaGV0
dHkwgZ8wDQYJKoZIhvcNAQEFBQADgY0AMIGJAoGBAMr6eZiPGfjX3uRJgEjmKiqG
7SdATYazBcABu1AVyd7chRkiQ31FbXFOGD3wNktbf6hRo6EAmM5/R1AskzZ8AW7L
iQZBcrXpc0k4du+2Q6xJu2MPm/8WKuMOnTuvzpo+SGXelmHVChEqooCwfdiZywyZ
NMmrJgaoMa2MS6pUkfQVAgMBAAGjNjA0MBEGCWCGSAGG+EIBAQQEAwIAgDAfBgNV
HSMEGDAWgBTy8gZZkBhHUfWJM1oxeuZc+zYmyTANBgkqhkiG9w0BAQQFAAOBgQBt
I6/z07Z635DfzX4XbAFpjlRl/AYwQzTSYx8GfcNAqCqCwaSDKvsuj/vwbf91o3j3
UkdGYpcd2cYRCgKi4MwqdWyLtpuHAH18hHZ5uvi00mJYw8W2wUOsY0RC/a/IDy84
hW3WWehBUqVK5SY4/zJ4oTjx7dwNMdGwbWfpRqjd1A==
-----END CERTIFICATE----- &lt;/code&gt;&lt;/a&gt;
&lt;/pre&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1052613&quot;&gt;  How CA Certificates Are Used to Establish Trust&lt;/a&gt;  &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Certificate authorities (CAs) are entities that validate identities and issue certificates. They can be either independent third parties or organizations running their own certificate-issuing server software (such as the Netscape Certificate Server). A list of third-party certificate authorities is available at &lt;a href=&quot;http://web.archive.org/web/20040918042437/https://certs.netscape.com/client.html&quot; target=&quot;_top&quot;&gt;Certificate Authority Services&lt;/a&gt;.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Any client or server software that supports certificates maintains a collection of&lt;b&gt; trusted CA certificates.&lt;/b&gt; These CA certificates determine which other certificates the software can validate--in other words, which issuers of certificates the software can trust. In the simplest case, the software can validate only certificates issued by one of the CAs for which it has a certificate. It&#39;s also possible for a trusted CA certificate to be part of a chain of CA certificates, each issued by the CA above it in a certificate hierarchy. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The sections that follow explains how certificate hierarchies and certificate chains determine what certificates software can trust.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1050569&quot;&gt; &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1050537&quot;&gt;CA Hierarchies&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044927&quot;&gt;Certificate Chains&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1049036&quot;&gt;Verifying a Certificate Chain&lt;/a&gt;&lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1050537&quot;&gt;  CA Hierarchies&lt;/a&gt; &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; In large organizations, it may be appropriate to delegate the responsibility for issuing certificates to several different certificate authorities. For example, the number of certificates required may be too large for a single CA to maintain; different organizational units may have different policy requirements; or it may be important for a CA to be physically located in the same geographic area as the people to whom it is issuing certificates.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; It&#39;s possible to delegate certificate-issuing responsibilities to subordinate CAs. The X.509 standard includes a model for setting up a hierarchy of CAs like that shown in &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044907&quot;&gt;Figure 6&lt;/a&gt;. &lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Figure 6     Example of a hierarchy of certificate authorities &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1044907&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD0dpKprDIs6yqrBygN-gRF0wkN5hl6-rzKAXdHtwLuGtUnb8rnoROLS4vBSt0FMLVieVbeGsd1R80fTRpav7tJDV3NLjUhd2ii0ifzdXpfmCbke-s0RVCPuJIBOSgsoSICYyWQdBGTGkl/s1600-h/14hier.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 383px; height: 316px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD0dpKprDIs6yqrBygN-gRF0wkN5hl6-rzKAXdHtwLuGtUnb8rnoROLS4vBSt0FMLVieVbeGsd1R80fTRpav7tJDV3NLjUhd2ii0ifzdXpfmCbke-s0RVCPuJIBOSgsoSICYyWQdBGTGkl/s400/14hier.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372003536604091058&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a name=&quot;1044907&quot;&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1044907&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; In this model, the root CA is at the top of the hierarchy. The root CA&#39;s certificate is a &lt;b&gt;self-signed certificate:&lt;/b&gt; that is, the certificate is digitally signed by the same entity--the root CA--that the certificate identifies. The CAs that are directly subordinate to the root CA have CA certificates signed by the root CA. CAs under the subordinate CAs in the hierarchy have their CA certificates signed by the higher-level subordinate CAs.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Organizations have a great deal of flexibility in terms of the way they set up their CA hierarchies. &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044907&quot;&gt;Figure 6&lt;/a&gt; shows just one example; many other arrangements are possible. &lt;/span&gt;  &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1044927&quot;&gt;  Certificate Chains&lt;/a&gt; &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; CA hierarchies are reflected in certificate chains. A &lt;b&gt;certificate chain&lt;/b&gt; is series of certificates issued by successive CAs. &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044938&quot;&gt;Figure 7&lt;/a&gt; shows a certificate chain leading from a certificate that identifies some entity through two subordinate CA certificates to the CA certificate for the root CA (based on the CA hierarchy shown in &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044907&quot;&gt;Figure 6&lt;/a&gt;).&lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1044938&quot;&gt; &lt;b&gt;Figure 7     Example of a certificate chain &lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHpqNhoKoi9XrImiFpAzAxWA8h8KNsanSIpSXOVltoUPV4JUAGyy-MYzCAFhyphenhyphenpkczNaj3xnuHdaUYMyu-q2OvJPBgqpvyT0rTQSOSq1IF6U1hZ5m0k9yboEjLECo7K9DTKPffqnRvThHD3/s1600-h/14hier.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 393px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHpqNhoKoi9XrImiFpAzAxWA8h8KNsanSIpSXOVltoUPV4JUAGyy-MYzCAFhyphenhyphenpkczNaj3xnuHdaUYMyu-q2OvJPBgqpvyT0rTQSOSq1IF6U1hZ5m0k9yboEjLECo7K9DTKPffqnRvThHD3/s400/14hier.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372003962043213314&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a name=&quot;1044938&quot;&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; A certificate chain traces a path of certificates from a branch in the hierarchy to the root of the hierarchy. In a certificate chain, the following occur:&lt;/span&gt; &lt;ul&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; Each certificate is followed by the certificate of its issuer.&lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; Each certificate contains the name (DN) of that certificate&#39;s issuer, which is the same as the subject name of the next certificate in the chain.&lt;/li&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; In &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044938&quot;&gt;Figure 7&lt;/a&gt;, the Engineering CA certificate contains the DN of the CA (that is,  USA CA), that issued that certificate. USA CA&#39;s DN is also the subject name of  the next certificate in the chain.  &lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; Each certificate is signed with the private key of its issuer. The signature can be verified with the public key in the issuer&#39;s certificate, which is the next certificate in the chain.&lt;/li&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; In &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044938&quot;&gt;Figure 7&lt;/a&gt;, the public key in the certificate for the USA CA can be used to verify  the USA CA&#39;s digital signature on the certificate for the Engineering CA. &lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;  &lt;/span&gt;&lt;/ul&gt; &lt;h4&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head3;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1049036&quot;&gt;  Verifying a Certificate Chain&lt;/a&gt; &lt;/span&gt;&lt;/h4&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Certificate chain verification is the process of making sure a given certificate chain is well-formed, valid, properly signed, and trustworthy. Netscape software uses the following procedure for forming and verifying a certificate chain, starting with the certificate being presented for authentication: &lt;/span&gt; &lt;ol&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The certificate validity period is checked against the current time provided by the verifier&#39;s system clock. &lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The issuer&#39;s certificate is located. The source can be either the verifier&#39;s local certificate database (on that client or server) or the certificate chain provided by the subject (for example, over an SSL connection). &lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt; The certificate signature is verified using the public key in the issuer&#39;s certificate. &lt;/li&gt; &lt;/span&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;li&gt;If the issuer&#39;s certificate is trusted by the verifier in the verifier&#39;s certificate database, verification stops successfully here. Otherwise, the issuer&#39;s certificate is checked to make sure it contains the appropriate subordinate CA indication in the Netscape certificate type extension, and chain verification returns to step 1 to start again, but with this new certificate. &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044966&quot;&gt;Figure 8&lt;/a&gt; presents an example of this process.&lt;/li&gt; &lt;/span&gt;&lt;/ol&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Figure 8     Verifying a certificate chain all the way to the root CA&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtVVi0ZqKavXPYALOwdk63wzNHAPq7hSCuY00oZ2BHnA3CGeaZfkR86SRCu_Gal_Hd2-Zm118aRoabGMsp5HhfBeHRSFpguvQXZoxDQU4YvCn9_w85FQv8nKdmWltC3EFfpNVrC09t5ZOK/s1600-h/16chver.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 356px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtVVi0ZqKavXPYALOwdk63wzNHAPq7hSCuY00oZ2BHnA3CGeaZfkR86SRCu_Gal_Hd2-Zm118aRoabGMsp5HhfBeHRSFpguvQXZoxDQU4YvCn9_w85FQv8nKdmWltC3EFfpNVrC09t5ZOK/s400/16chver.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372004237891027986&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a name=&quot;1044966&quot;&gt;&lt;/a&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1044967&quot;&gt; Figure 8 shows what happens when only Root CA is included in the verifier&#39;s local database. If a certificate for one of the intermediate CAs shown in Figure 8, such as Engineering CA, is found in the verifier&#39;s local database, verification stops with that certificate, as shown in &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044975&quot;&gt;Figure 9&lt;/a&gt;.&lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Figure 9     Verifying a certificate chain to an intermediate CA&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizjJg0HXP86pdy-D1qzx5AxwA_Qn5rRHFXrB-yaASL9aetE_cYNpK3bG0aZhlpEuuLvXFSDjFQm0jhUuXds4tKoCTtsDJmlIA_yjaJumoWWE2ZSpNsKJKNBiL1HxkCGrgygDNJ91y_vVdX/s1600-h/19chver.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizjJg0HXP86pdy-D1qzx5AxwA_Qn5rRHFXrB-yaASL9aetE_cYNpK3bG0aZhlpEuuLvXFSDjFQm0jhUuXds4tKoCTtsDJmlIA_yjaJumoWWE2ZSpNsKJKNBiL1HxkCGrgygDNJ91y_vVdX/s400/19chver.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372005990435271746&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a name=&quot;1044975&quot;&gt;&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Expired validity dates, an invalid signature, or the absence of a certificate for the issuing CA at any point in the certificate chain causes authentication to fail. For example, &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1044984&quot;&gt;Figure 10&lt;/a&gt; shows how verification fails if neither the Root CA certificate nor any of the intermediate CA certificates are included in the verifier&#39;s local database.&lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1044984&quot;&gt; &lt;b&gt;Figure 10     A certificate chain that can&#39;t be verified&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1044984&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkfCTC2qWjwxHolbEB9PLfJDGn4SRyr1J7ZChz9WKEpLY84tuuqx6Ms788LEJhVFWwR1becZidT84MLynnchxn61N-6yxKr7uteKa6lzET9r1O8I8U3MBKk-keA9MHxyF4MOcFZkcHNiOG/s1600-h/20chver.gif&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 352px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkfCTC2qWjwxHolbEB9PLfJDGn4SRyr1J7ZChz9WKEpLY84tuuqx6Ms788LEJhVFWwR1becZidT84MLynnchxn61N-6yxKr7uteKa6lzET9r1O8I8U3MBKk-keA9MHxyF4MOcFZkcHNiOG/s400/20chver.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5372006194645835458&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a name=&quot;1044984&quot;&gt;
&lt;/a&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1044984&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1049084&quot;&gt; For general information about the way digital signatures work, see &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1047358&quot;&gt;Digital Signatures&lt;/a&gt;. For a more detailed description of the signature verification process in the context of SSL client and server authentication, see &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/sslin/index.html&quot; target=&quot;_top&quot;&gt;Introduction to SSL&lt;/a&gt;.&lt;/span&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#top&quot;&gt;[Top]&lt;/a&gt;&lt;/span&gt;&lt;hr noshade=&quot;noshade&quot;  style=&quot;font-size:78%;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;
&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Managing Certificates&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1048637&quot;&gt;  Managing Certificates&lt;/a&gt; &lt;/span&gt;&lt;/h2&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;The set of standards and services that facilitate the use of public-key cryptography and X.509 v3 certificates in a networked environment is called the &lt;b&gt;public key infrastructure (PKI).&lt;/b&gt; PKI management is complex topic beyond the scope of this document. The sections that follow introduce some of the specific certificate management issues addressed by Netscape products.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1050737&quot;&gt;Issuing Certificates&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1052257&quot;&gt;Certificates and the LDAP Directory&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1050920&quot;&gt;Key Management&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1048935&quot;&gt;Renewing and Revoking Certificates&lt;/a&gt;
&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1048936&quot;&gt;Registration Authorities&lt;/a&gt;&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1050737&quot;&gt;  Issuing Certificates&lt;/a&gt; &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The process for issuing a certificate depends on the certificate authority that issues it and the purpose for which it will be used. The process for issuing nondigital forms of identification varies in similar ways. For example, if you want to get a generic ID card (not a driver&#39;s license) from the Department of Motor Vehicles in California, the requirements are straightforward: you need to present some evidence of your identity, such as a utility bill with your address on it and a student identity card. If you want to get a regular driving license, you also need to take a test--a driving test when you first get the license, and a written test when you renew it. If you want to get a commercial license for an eighteen-wheeler, the requirements are much more stringent. If you live in some other state or country, the requirements for various kinds of licenses will differ.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Similarly, different CAs have different procedures for issuing different kinds of certificates. In some cases the only requirement may be your email address. In other cases, your Unix or NT login and password may be sufficient. At the other end of the scale, for certificates that identify people who can authorize large expenditures or make other sensitive decisions, the issuing process may require notarized documents, a background check, and a personal interview.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Depending on an organization&#39;s policies, the process of issuing certificates can range from being completely transparent for the user to requiring significant user participation and complex procedures. In general, processes for issuing certificates should be highly flexible, so organizations can tailor them to their changing needs&lt;/a&gt;.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;1052190&quot;&gt; The &lt;/a&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://home.netscape.com/certificate/v1.0/index.html&quot; target=&quot;_top&quot;&gt;Netscape Certificate Server&lt;/a&gt;, part of the &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://home.netscape.com/missioncontrol/index.html&quot; target=&quot;_top&quot;&gt;Mission Control&lt;/a&gt; family of products, allows an organization to set up its own certificate authority and issue certificates. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Issuing certificates is one of several managements tasks that can be handled by separate &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1048936&quot;&gt;Registration Authorities&lt;/a&gt;.&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1052257&quot;&gt;  Certificates and the LDAP Directory&lt;/a&gt; &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; The Lightweight Directory Access Protocol (LDAP) for accessing directory services supports great flexibility in the management of certificates within an organization. System administrators can store much of the information required to manage certificates in an LDAP-compliant directory. For example, a CA can use information in a directory to prepopulate a certificate with a new employee&#39;s legal name and other information. The CA can leverage directory information in other ways to issue certificates one at a time or in bulk, using a range of different identification techniques depending on the security policies of a given organization. Other routine management tasks, such as &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1050920&quot;&gt;Key Management&lt;/a&gt; and &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#1048935&quot;&gt;Renewing and Revoking Certificates&lt;/a&gt;, can be partially or fully automated with the aid of the directory.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Information stored in the directory can also be used with certificates to control access to various network resources by different users or groups. Issuing certificates and other certificate management tasks can thus be an integral part of user and group management.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; In general, high-performance directory services are an essential ingredient of any certificate management strategy. The &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://home.netscape.com/directory/v3.0/index.html&quot; target=&quot;_top&quot;&gt;Netscape Directory Server&lt;/a&gt;, part of the &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://home.netscape.com/missioncontrol/index.html&quot; target=&quot;_top&quot;&gt;Mission Control&lt;/a&gt; family of products, is fully integrated with the &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://home.netscape.com/certificate/v1.0/index.html&quot; target=&quot;_top&quot;&gt;Netscape Certificate Server&lt;/a&gt; to provide a comprehensive certificate management solution.&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1050920&quot;&gt;  Key Management&lt;/a&gt; &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Before a certificate can be issued, the public key it contains and the corresponding private key must be generated. Sometimes it may be useful to issue a single person one certificate and key pair for signing operations, and another certificate and key pair for encryption operations. Separate signing and encryption certificates make it possible to keep the private signing key on the local machine only, thus providing maximum nonrepudiation, and to back up the private encryption key in some central location where it can be retrieved in case the user loses the original key or leaves the company. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Keys can be generated by client software or generated centrally by the CA and distributed to users via an LDAP directory. There are trade-offs involved in choosing between local and centralized key generation. For example, local key generation provides maximum nonrepudiation, but may involve more participation by the user in the issuing process. Flexible key management capabilities are essential for most organizations.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; &lt;b&gt;Key recovery,&lt;/b&gt; or the ability to retrieve backups of encryption keys under carefully defined conditions, can be a crucial part of certificate management (depending on how an organization uses certificates). Key recovery schemes usually involve an &lt;b&gt;m of n&lt;/b&gt; mechanism: for example, &lt;i&gt;m&lt;/i&gt; of &lt;i&gt;n&lt;/i&gt; managers within an organization might have to agree, and each contribute a special code or key of their own, before a particular person&#39;s encryption key can be recovered. This kind of mechanism ensures that several authorized personnel must agree before an encryption key can be recovered&lt;/a&gt;.&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1048935&quot;&gt;  Renewing and Revoking Certificates&lt;/a&gt; &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Like a driver&#39;s license, a certificate specifies a period of time during which it is valid. Attempts to use a certificate for authentication before or after its validity period will fail. Therefore, mechanisms for managing certificate renewal are essential for any certificate management strategy. For example, an administrator may wish to be notified automatically when a certificate is about to expire, so that an appropriate renewal process can be completed in plenty of time without causing the certificate&#39;s subject any inconvenience. The renewal process may involve reusing the same public-private key pair or issuing a new one.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; A driver&#39;s license can be suspended even if it has not expired--for example, as punishment for a serious driving offense. Similarly, it&#39;s sometimes necessary to revoke a certificate before it has expired--for example, if an employee leaves a company or moves to a new job within the company. &lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Certificate revocation can be handled in several different ways. For some organizations, it may be sufficient to set up servers so that the authentication process includes checking the directory for the presence of the certificate being presented. When an administrator revokes a certificate, the certificate can be automatically removed from the directory, and subsequent authentication attempts with that certificate will fail even though the certificate remains valid in every other respect. Another approach involves publishing a &lt;b&gt;certificate revocation list (CRL)&lt;/b&gt;--that is, a list of revoked certificates--to the directory at regular intervals and checking the list as part of the authentication process. For some organizations, it may be preferable to check directly with the issuing CA each time a certificate is presented for authentication. This procedure is sometimes called &lt;b&gt;real-time status checking.&lt;/b&gt;&lt;/span&gt;  &lt;h3&gt;&lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a name=&quot;Head2;&quot;&gt;&lt;/a&gt; &lt;a name=&quot;1048936&quot;&gt;  Registration Authorities&lt;/a&gt; &lt;/span&gt;&lt;/h3&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt; Interactions between entities identified by certificates (sometimes called &lt;b&gt;end entities&lt;/b&gt;) and CAs are an essential part of certificate management. These interactions include operations such as registration for certification, certificate retrieval, certificate renewal, certificate revocation, and key backup and recovery. In general, a CA must be able to authenticate the identities of end entities before responding to the requests. In addition, some requests need to be approved by authorized administrators or managers before being services&lt;/a&gt;.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;As previously discussed, the means used by different CAs to verify an identity before issuing a certificate can vary widely, depending on the organization and the purpose for which the certificate will be used. To provide maximum operational flexibility, interactions with end entities can be separated from the other functions of a CA and handled by a separate service called a &lt;b&gt;Registration Authority (RA).&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;An RA acts as a front end to a CA by receiving end entity requests, authenticating them, and forwarding them to the CA. After receiving a response from the CA, the RA notifies the end entity of the results. RAs can be helpful in scaling an PKI across different departments, geographical areas, or other operational units with varying policies and authentication requirements.&lt;/span&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;Future versions of the &lt;a href=&quot;http://web.archive.org/web/20040918042437/http://home.netscape.com/certificate/v1.0/index.html&quot; target=&quot;_top&quot;&gt;Netscape Certificate Server&lt;/a&gt; will support the creation of customizable registration authorities.&lt;/span&gt;  &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;a href=&quot;http://web.archive.org/web/20040918042437/http://developer.netscape.com/docs/manuals/security/pkin/contents.htm#top&quot;&gt;[Top]&lt;/a&gt; &lt;/span&gt;&lt;hr noshade=&quot;noshade&quot;  style=&quot;font-size:78%;&quot;&gt;  &lt;p align=&quot;right&quot;&gt; &lt;span style=&quot;font-family:Arial,Helvetica;&quot;&gt;&lt;i&gt;Last Updated:  10/09/98  10:35:45&lt;/i&gt; &lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/8995719514398093942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/8995719514398093942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/8995719514398093942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/8995719514398093942'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/08/introduction-to-public-key-cryptography.html' title='Introduction to Public-Key Cryptography'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbV8YCSeYHmnpBxijlTNXY9kGKGA_wujyONf7NHOVjkcx0Ye-M0aG4dCDapDTjkWGy_7prKcKo5L5Bt5zuHfr-4EICbYOYt9wKaD4J9YI5l_BlX3lGwy10xedYhqsbBnfQ_gvwuoBK6ZLu/s72-c/05scrypt.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-6127670989396817401</id><published>2009-08-13T19:28:00.003+05:30</published><updated>2009-08-13T19:57:39.852+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="gcc"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>CYWGIN</title><content type='html'>Cygwin is a Linux-like environment for Windows. It consists of two parts:
&lt;table width=&quot;85%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;&lt;li&gt;A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality. &lt;/li&gt;&lt;li&gt;A collection of tools which provide Linux look and feel.&lt;/li&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, with the exception of Windows CE.&lt;/p&gt;  &lt;p&gt;Note that the official support for Windows 95, Windows 98, and Windows Me will be discontinued with the &lt;a href=&quot;http://cygwin.com/#beta-test&quot;&gt;&lt;b&gt;next major version (1.7.0)&lt;/b&gt;&lt;/a&gt; of Cygwin, which is in &lt;a href=&quot;http://cygwin.com/#beta-test&quot;&gt;&lt;b&gt;beta testing&lt;/b&gt;&lt;/a&gt; right now.&lt;/p&gt;  &lt;h3&gt;&lt;center&gt;What Isn&#39;t Cygwin?&lt;/center&gt;&lt;/h3&gt; &lt;table width=&quot;85%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;li&gt;Cygwin is &lt;b&gt;not&lt;/b&gt; a way to run native linux apps on Windows.  You have to rebuild your application &lt;em&gt;from source&lt;/em&gt; if you want it to run on Windows. &lt;/li&gt;&lt;li&gt;Cygwin is &lt;b&gt;not&lt;/b&gt; a way to magically make native Windows apps aware of UNIX ® functionality, like signals, ptys, etc.  Again, you need to build your apps &lt;em&gt;from source&lt;/em&gt; if you want to take advantage of Cygwin functionality.  &lt;/li&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;span style=&quot;font-weight: bold;&quot;&gt;FAQ:&lt;/span&gt;
&lt;table summary=&quot;Q and A Set&quot; border=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr class=&quot;question&quot;&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;&lt;b&gt;1.1.&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;What is it?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;answer&quot;&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;
&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;The Cygwin tools are ports of the popular GNU development tools for Microsoft Windows.  They run thanks to the Cygwin library which provides the UNIX system calls and environment these programs expect. &lt;/p&gt;&lt;p&gt;With these tools installed, it is possible to write Win32 console or GUI applications that make use of the standard Microsoft Win32 API and/or the Cygwin API.  As a result, it is possible to easily port many significant Unix programs without the need for extensive changes to the source code.  This includes configuring and building most of the available GNU software (including the packages included with the Cygwin development tools themselves).  Even if the development tools are of little to no use to you, you may have interest in the many standard Unix utilities provided with the package. They can be used both from the bash shell (provided) or from the standard Windows command shell. &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;question&quot;&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;a name=&quot;faq.what.supported&quot;&gt;&lt;/a&gt;&lt;p&gt;&lt;b&gt;1.2.&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;What versions of Windows are supported?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class=&quot;answer&quot;&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;
&lt;/td&gt;&lt;td valign=&quot;top&quot; align=&quot;left&quot;&gt;&lt;p&gt;Cygwin can be expected to run on all modern 32 bit versions of Windows, except Windows CE.  This includes Windows 95/98/ME/NT/2000/XP/2003 and the WOW64 32 bit environment on released 64 bit versions of Windows. As far as we know no one is working on a native 64 bit version of Cygwin. Since Cygwin is a community-supported free software project, patches to provide support for other versions would be thoughtfully considered. Paid support contracts or enhancements are available through Red Hat.  For  information about getting a Red Hat support contract, see  &lt;a class=&quot;ulink&quot; href=&quot;http://cygwin.com/license.html&quot; target=&quot;_top&quot;&gt;http://cygwin.com/license.html&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Keep in mind that Cygwin can only do as much as the underlying OS supports.  Because of this, Cygwin will behave differently, and exhibit different limitations, on the various versions of Windows. &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/6127670989396817401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/6127670989396817401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/6127670989396817401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/6127670989396817401'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/08/cywgin.html' title='CYWGIN'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-4018033876741226217</id><published>2009-07-09T19:05:00.002+05:30</published><updated>2009-07-09T19:13:56.336+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Email Address Validation Anyone??</title><content type='html'>Hi All,
There is a goood Article which i have found related to Email Address Validation which says not to validate Email Address Strictly and i too agree with it.

Go through the below mentioned Links to check this out.

&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://haacked.com/archive/0001/01/01/i-knew-how-to-validate-an-email-address-until-i.aspx&quot;&gt;http://haacked.com/archive/0001/01/01/i-knew-how-to-validate-an-email-address-until-i.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.rfc-editor.org/errata_search.php?rfc=3696&quot;&gt;http://www.rfc-editor.org/errata_search.php?rfc=3696&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Enjoy ;)</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/4018033876741226217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/4018033876741226217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4018033876741226217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4018033876741226217'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/07/email-address-validation-anyone.html' title='Email Address Validation Anyone??'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-6004604963866891205</id><published>2009-07-04T12:45:00.003+05:30</published><updated>2009-07-04T13:04:39.714+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Extending JavaScript Objects and Classes</title><content type='html'>&lt;h1&gt;Extending JavaScript Objects and Classes&lt;/h1&gt;
&lt;div id=&quot;pagecontent&quot;&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You can dynamically create properties and methods of existing objects through simple assignment.&lt;/li&gt;
&lt;li&gt;Using the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; property of intrinsic JS Objects, you can extend the functionality of the very objects you know and love in ways that can make your coding far easier.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;toc&quot;&gt;Table of Contents&lt;/h2&gt;

&lt;ul class=&quot;toc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html#background&quot;&gt;Background — Objects in JS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html#prototype&quot;&gt;The &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; Property&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html#example1&quot;&gt;Example 1 — Adding &lt;code class=&quot;js&quot;&gt;slice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; to Arrays&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html#example2&quot;&gt;Example 2 — Date Formatting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html#example3&quot;&gt;Example 3 — Number Formatting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html#example4&quot;&gt;Example 4 — Boolean XOR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html#example5&quot;&gt;Example 5 — Extending Arrays to Support Set Mathematics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;background&quot;&gt;Background — Objects in JS&lt;/h2&gt;
&lt;p&gt;In JavaScript, objects can have properties dynamically added to them. [This comes as no surprise to JS programmers who have written something like &lt;code class=&quot;js&quot;&gt;myObject.backgroundColor=&lt;span class=&quot;string&quot;&gt;&#39;black&#39;&lt;/span&gt;&lt;/code&gt; or &lt;code class=&quot;js&quot;&gt;myObject.style.backgroundcolor=&lt;span class=&quot;string&quot;&gt;&#39;black&#39;&lt;/span&gt;&lt;/code&gt; instead of the correct &lt;code class=&quot;js&quot;&gt;myObject.style.backgroundColor=&lt;span class=&quot;string&quot;&gt;&#39;black&#39;&lt;/span&gt;&lt;/code&gt; and consequently pulled out their hair for hours trying to figure out why the background color wasn&#39;t changing. The answer to &lt;i&gt;&quot;Why isn&#39;t this working?!&quot;&lt;/i&gt; (i.e. &lt;i&gt;&quot;Because you coded it wrong&quot;&lt;/i&gt;) isn&#39;t nearly so enlightening as the information that it &lt;b&gt;looked&lt;/b&gt; like it was working because the JavaScript engine was happily creating a new (meaningless) property of the object and setting it to the string value &#39;black&#39;.]&lt;/p&gt;

&lt;div style=&quot;margin-left: 2em; margin-bottom: 1em;&quot;&gt;
&lt;p class=&quot;contentfollows&quot;&gt;For the curious, this feature of JS is possible because the language is evaluated at run-time, and because all Objects are implemented as hash tables. This also explains why it&#39;s possible to refer to the same property either directly or as a string:&lt;/p&gt;
&lt;pre class=&quot;contentfollows&quot;&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; spacing = myTable.cellSpacing;
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; spacing = myTable&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;cellSpacing&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;; &lt;span class=&quot;comment&quot;&gt;//equally as valid&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p class=&quot;contentfollows contentbefore&quot;&gt;and why you can create property names that no reasonable compiler would ever accept, such as:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;myTable&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;% What stupid name!&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;=someValue;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class=&quot;contentfollows&quot;&gt;That JS auto-creates and references previously-undefined properties can be dangerous, as mentioned above—the JS interpretter never yells at you if you attempt to read the value of, or go ahead and set the value of a property that just doesn&#39;t exist. On the other hand, this can be a real boon over compiled programming. For example, assume you are a web developer and you want to keep track of how many times the user changes the value of a certain text input (say, the quantity of items ordered). With a traditional compiled OOP language you&#39;d need to subclass the input object and create a custom flavor that allows a &lt;code class=&quot;js&quot;&gt;timesChanged&lt;/code&gt; property. With JavaScript, you simply write:&lt;/p&gt;

&lt;pre class=&quot;contentfollows&quot;&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;myInput.timesChanged==null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; myInput.timesChanged=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;
&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; myInput.timesChanged+=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/code&gt;&lt;/pre&gt;
&lt;p class=&quot;contentbefore&quot;&gt;and the JS Interpretter creates that property for that object instance on the fly.&lt;/p&gt;

&lt;p class=&quot;contentfollows&quot;&gt;Compared to those who know that you can create custom properties for any object on the fly, fewer know that you can create custom methods for objects just as easily and in virtually the same way. For example, the following is legal JavaScript code:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt; Poke&lt;span class=&quot;paren&quot;&gt;(){&lt;/span&gt;
  alert&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;Owch! Stop that!&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
myTable.poke = Poke; &lt;span class=&quot;comment&quot;&gt;// When passing a &lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt; as a pointer, do not use the &lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt; after the name&lt;/span&gt;

myTable.poke&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;;      &lt;span class=&quot;comment&quot;&gt;// Using the parentheses invokes the method.&lt;/span&gt;

myTable.yellAttributes=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(){&lt;/span&gt; &lt;span class=&quot;comment&quot;&gt;//This is known as creating an anonymous &lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt; on the fly&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; atts = &lt;span class=&quot;string&quot;&gt;&quot;border:&quot;&lt;/span&gt;+this.border
             +&lt;span class=&quot;string&quot;&gt;&quot;; cellpadding:&quot;&lt;/span&gt;+this.cellPadding
             +&lt;span class=&quot;string&quot;&gt;&quot;; cellspacing:&quot;&lt;/span&gt;+this.cellSpacing;
  alert&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;atts&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
myTable.yellAttributes&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Extending an object by adding a custom method can be quite convenient, but it only applies to that particular object&#39;s instance. What if you wanted to modify the entire existing class to add new functionality? For this, we use the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; property.&lt;/p&gt;



&lt;h2 id=&quot;prototype&quot;&gt;The &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; Property&lt;/h2&gt;

&lt;p&gt;To add a property or method to an entire class of objects, the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; property of the object class must be modified. The intrinsic object classes in JavaScript which have a &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; property are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — Modifies both objects declared through the explicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; contructor and the implicit object &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;&lt;/code&gt; syntax. Additionally, all other intrinsic and user-defined objects inherit from &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;&lt;/code&gt;, so properties/methods added/modified in &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; will affect all other intrinsic and user-defined objects.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — modifies arrays created using either the explicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; constructor or the implicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;&lt;/code&gt; array syntax.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;String&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — modifies strings created using either the explicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; constructor or the implicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;string&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;/code&gt; string literal syntax.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Number&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — modifies numbers created using either the explicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Number&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; constructor or with inline digits.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Date&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — modifies date objects created with either the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; contructor.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Function&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — modifies functions created using either the explicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; constructor or defined inline with &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;&lt;/code&gt;.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;RegExp&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — modifies regular expression objects created using either the explicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;RegExp&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; constructor or the inline &lt;code class=&quot;js&quot;&gt;/.../&lt;/code&gt; syntax.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Boolean&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;&lt;/b&gt; — applies to boolean objects created using the explicit &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Boolean&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;...&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&lt;/code&gt; constructor or those created using inline &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;|&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;/code&gt; keywords or assigned as the results of a logical operator.&lt;/li&gt;

&lt;/ul&gt;
&lt;p&gt;Adding properties or methods to the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; property of an object class makes those items immediately available to all objects of that class, even if those objects were created before the prototype property was modified.&lt;/p&gt;

&lt;p style=&quot;font-style: italic;&quot;&gt;It is with great sadness that I must point out that Internet Explorer does not inherit its DHTML objects from &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;&lt;/code&gt;, and I can find no way to modify the prototype for the class of any of its web-based objects. (For example, &lt;code class=&quot;js&quot;&gt;window.&lt;span class=&quot;keyword&quot;&gt;constructor&lt;/span&gt;&lt;/code&gt; is an empty property on IEWin6, whereas Mozilla 1.2 reports that &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;&lt;/code&gt; is the constructor of the window object.) This is why above the terms &quot;instrinsic&quot; and &quot;user-defined&quot; are used to qualify the object types. If you want to make a custom method for all textareas on a page for IEWin, you need to extend the object using Microsoft&#39;s proprietary behaviors. For example, you would specify the following CSS rule &lt;code&gt;textarea { behavior:url(extendArea.htc) }&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Note that adding a public property to a class of objects creates a single value which all instance objects share. However, modifying this value through &lt;code class=&quot;js&quot;&gt;this.globalPropertyName&lt;/code&gt; will result in a local public property of the object being created and set. Modifications to the class-wide property must be made through the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; property of the class. This is demonstrated in the following code snippet:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;
Person.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.populationCount=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;
&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt; Person&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;name,sex&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

  Person.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.populationCount++;
  this.getName=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(){&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; name &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
  this.getSex=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(){&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; sex &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

  this.setSex=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;newSex&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;confirm&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;Really change the sex of &quot;&#39;&lt;/span&gt;+name+&lt;span class=&quot;string&quot;&gt;&#39;&quot; to &#39;&lt;/span&gt;+newSex+&lt;span class=&quot;string&quot;&gt;&#39;?&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;))&lt;/span&gt; sex=newSex; &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

  this.kill=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(){&lt;/span&gt; Person.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.populationCount-- &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; gk = &lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; Person&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;Gavin&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;male&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; lrk = &lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; Person&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;Lisa&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;female&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;span class=&quot;comment&quot;&gt;//Following yields &lt;span class=&quot;string&quot;&gt;&quot;There are &lt;span class=&quot;number&quot;&gt;2&lt;/span&gt; people in my world.&quot;&lt;/span&gt;&lt;/span&gt;

alert&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;There are &quot;&lt;/span&gt;+gk.populationCount+&lt;span class=&quot;string&quot;&gt;&quot; people in my world.&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;span class=&quot;comment&quot;&gt;//Following creates a &lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; public property of &lt;span class=&quot;string&quot;&gt;&#39;gk&#39;&lt;/span&gt; and sets it to &lt;span class=&quot;number&quot;&gt;102&lt;/span&gt;&lt;/span&gt;
gk.populationCount+=&lt;span class=&quot;number&quot;&gt;100&lt;/span&gt;;


&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; geo = &lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; Person&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;George&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;male&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
alert&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;GK thinks there are &#39;&lt;/span&gt;+gk.populationCount+&lt;span class=&quot;string&quot;&gt;&#39; people, but everyone &lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; knows there are &#39;&lt;/span&gt;+lrk.populationCount+&lt;span class=&quot;string&quot;&gt;&#39; people.&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;span class=&quot;comment&quot;&gt;//Above yields &lt;span class=&quot;string&quot;&gt;&quot;GK thinks there are &lt;span class=&quot;number&quot;&gt;102&lt;/span&gt; people, but everyone &lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; knows there are &lt;span class=&quot;number&quot;&gt;3&lt;/span&gt; people.&quot;&lt;/span&gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you use private properties (e.g. &#39;&lt;code class=&quot;js&quot;&gt;sex&lt;/code&gt;&#39; above) in your object, you need private methods to access them (e.g. &lt;code class=&quot;js&quot;&gt;getName&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; above). &lt;span class=&quot;warning&quot;&gt;Note that these private methods eat up a lot of memory with each instantiation of the object, and so it&#39;s often better to be &#39;sloppy&#39; by allowing your properties to be publically accessible, so that the accessor methods can be shared throughout the class&#39;s &lt;code class=&quot;js&quot;&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt;, saving memory.&lt;/span&gt;&lt;/p&gt;


&lt;p&gt;Following are a bunch of examples of useful ways to extend various intrinsic objects using the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; property.&lt;/p&gt;

&lt;h2 id=&quot;example1&quot;&gt;Example 1 — Adding &lt;code class=&quot;js&quot;&gt;slice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; to Arrays&lt;/h2&gt;
&lt;p&gt;The &lt;code class=&quot;js&quot;&gt;slice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; method of an array object returns a subsection of the array. While quite useful, this method was not part of the original ECMAScript specification, and not supported by all JavaScript interpretters. When writing code which may be run on older browsers where you&#39;d like to slice some arrays, you can either write code which doesn&#39;t use this convenient method (an annoying approach) or you can roll your own implementation of &lt;code class=&quot;js&quot;&gt;slice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To do this propertly, we need to know exactly what the &lt;code class=&quot;js&quot;&gt;slice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; method does. From MSDN:

&lt;/p&gt;&lt;div style=&quot;margin-left: 2em;&quot; class=&quot;docs&quot;&gt;
&lt;code style=&quot;font-style: normal;&quot;&gt;&lt;i&gt;arrayObj&lt;/i&gt;.slice(&lt;i&gt;start&lt;/i&gt;,[&lt;i&gt;end&lt;/i&gt;]);&lt;/code&gt;

  &quot;The slice method copies up to, but not including, the element indicated by &lt;code class=&quot;js&quot;&gt;end&lt;/code&gt;. If &lt;code class=&quot;js&quot;&gt;start&lt;/code&gt; is negative, it is treated as &lt;code class=&quot;js&quot;&gt;length&lt;/code&gt; + &lt;code class=&quot;js&quot;&gt;start&lt;/code&gt; where &lt;code class=&quot;js&quot;&gt;length&lt;/code&gt; is the length of the array. If &lt;code class=&quot;js&quot;&gt;end&lt;/code&gt; is negative, it is treated as &lt;code class=&quot;js&quot;&gt;length&lt;/code&gt; + &lt;code class=&quot;js&quot;&gt;end&lt;/code&gt;. If &lt;code class=&quot;js&quot;&gt;end&lt;/code&gt; is omitted, extraction continues to the end of &lt;code class=&quot;js&quot;&gt;arrayObj&lt;/code&gt;. If &lt;code class=&quot;js&quot;&gt;end&lt;/code&gt; occurs before &lt;code class=&quot;js&quot;&gt;start&lt;/code&gt;, no elements are copied to the new array.&quot;

&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thus armed, following is a custom implementation of the &lt;code class=&quot;js&quot;&gt;slice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; method. By using &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; this method is made available to all array objects. Note that even if the following isn&#39;t the most efficient code possible, it will only be used on those few browsers where the &lt;code class=&quot;js&quot;&gt;slice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; method isn&#39;t available. (As it turns out, the implementation below is almost identical in speed to the built-in method.)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;comment&quot;&gt;//Only add this implementation &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; one does not already exist.&lt;/span&gt;

&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.slice==null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.slice=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;start,end&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;start&amp;lt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; start=this.length+start; &lt;span class=&quot;comment&quot;&gt;//&lt;span class=&quot;string&quot;&gt;&#39;this&#39;&lt;/span&gt; refers to the object to which the &lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt; is applied&lt;/span&gt;

  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;end==null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; end=this.length;
  &lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;end&amp;lt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; end=this.length+end;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; newArray=&lt;span class=&quot;paren&quot;&gt;[]&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; ct=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,i=start;i&amp;lt;end;i++&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; newArray&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;ct++&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;=this&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; newArray;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, the first three lines change the parameters passed in to values useful for the for loop, and then this method simply creates a new array, copies the desired items over one at a time, and then returns that new array as the result of the method. (Like most methods in JScript, the original object is not modified.)&lt;/p&gt;

&lt;p&gt;Examples of other useful methods which may not be present in older JS implementations that you may want to add to the Array object are &lt;code class=&quot;js&quot;&gt;pop&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt;, &lt;code class=&quot;js&quot;&gt;push&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt;, and &lt;code class=&quot;js&quot;&gt;concat&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&quot;example2&quot;&gt;Example 2 — Date Formatting&lt;/h2&gt;
&lt;p&gt;Outputting a lot of dates to the browser, and want to format them nicely? The following code adds a &lt;code class=&quot;js&quot;&gt;customFormat&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; method to the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Date&lt;/span&gt;&lt;/code&gt; class which allows you to have a &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Date&lt;/span&gt;&lt;/code&gt; object turn into a string formatted just the way you like. Simply include this small block of code (in a separate client-side library file, directly in your JS ASP page...whatever) and all date objects will suddenly be able to cleanly format themselves.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Date&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.customFormat=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;formatString&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; YYYY,YY,MMMM,MMM,MM,M,DDDD,DDD,DD,D,hhh,hh,h,mm,m,ss,s,ampm,dMod,th;
  YY = &lt;span class=&quot;paren&quot;&gt;((&lt;/span&gt;YYYY=this.getFullYear&lt;span class=&quot;paren&quot;&gt;())&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;2&lt;/span&gt;,&lt;span class=&quot;number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  MM = &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;M=this.getMonth&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;+&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&amp;lt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;?&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&#39;&lt;/span&gt;+M&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;:M;
  MMM = &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;MMMM=&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;January&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;February&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;March&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;April&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;May&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;June&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;July&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;August&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;September&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;October&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;November&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;December&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;][&lt;/span&gt;M&lt;span class=&quot;number&quot;&gt;-1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;])&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  DD = &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;D=this.getDate&lt;span class=&quot;paren&quot;&gt;())&lt;/span&gt;&amp;lt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;?&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&#39;&lt;/span&gt;+D&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;:D;
  DDD = &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;DDDD=&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;Sunday&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;Monday&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;Tuesday&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;Wednesday&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;Thursday&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;Friday&quot;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&quot;Saturday&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;][&lt;/span&gt;this.getDay&lt;span class=&quot;paren&quot;&gt;()])&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  th=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;D&amp;gt;=&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;&amp;amp;&amp;amp;D&amp;lt;=&lt;span class=&quot;number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;?&lt;span class=&quot;string&quot;&gt;&#39;th&#39;&lt;/span&gt;:&lt;span class=&quot;paren&quot;&gt;((&lt;/span&gt;dMod=D%&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;==&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;?&lt;span class=&quot;string&quot;&gt;&#39;st&#39;&lt;/span&gt;:&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;dMod==&lt;span class=&quot;number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;?&lt;span class=&quot;string&quot;&gt;&#39;nd&#39;&lt;/span&gt;:&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;dMod==&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;?&lt;span class=&quot;string&quot;&gt;&#39;rd&#39;&lt;/span&gt;:&lt;span class=&quot;string&quot;&gt;&#39;th&#39;&lt;/span&gt;;
  formatString = formatString.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#YYYY#&quot;&lt;/span&gt;,YYYY&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#YY#&quot;&lt;/span&gt;,YY&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#MMMM#&quot;&lt;/span&gt;,MMMM&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#MMM#&quot;&lt;/span&gt;,MMM&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#MM#&quot;&lt;/span&gt;,MM&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#M#&quot;&lt;/span&gt;,M&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#DDDD#&quot;&lt;/span&gt;,DDDD&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#DDD#&quot;&lt;/span&gt;,DDD&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#DD#&quot;&lt;/span&gt;,DD&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#D#&quot;&lt;/span&gt;,D&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#th#&quot;&lt;/span&gt;,th&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

  h=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;hhh=this.getHours&lt;span class=&quot;paren&quot;&gt;())&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;h==&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; h=&lt;span class=&quot;number&quot;&gt;24&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;h&amp;gt;&lt;span class=&quot;number&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; h-=&lt;span class=&quot;number&quot;&gt;12&lt;/span&gt;;
  hh = h&amp;lt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;?&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&#39;&lt;/span&gt;+h&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;:h;
  ampm=hhh&amp;lt;&lt;span class=&quot;number&quot;&gt;12&lt;/span&gt;?&lt;span class=&quot;string&quot;&gt;&#39;am&#39;&lt;/span&gt;:&lt;span class=&quot;string&quot;&gt;&#39;pm&#39;&lt;/span&gt;;
  mm=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;m=this.getMinutes&lt;span class=&quot;paren&quot;&gt;())&lt;/span&gt;&amp;lt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;?&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&#39;&lt;/span&gt;+m&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;:m;
  ss=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;s=this.getSeconds&lt;span class=&quot;paren&quot;&gt;())&lt;/span&gt;&amp;lt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;?&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&#39;&lt;/span&gt;+s&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;:s;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; formatString.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#hhh#&quot;&lt;/span&gt;,hhh&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#hh#&quot;&lt;/span&gt;,hh&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#h#&quot;&lt;/span&gt;,h&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#mm#&quot;&lt;/span&gt;,mm&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#m#&quot;&lt;/span&gt;,m&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#ss#&quot;&lt;/span&gt;,ss&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#s#&quot;&lt;/span&gt;,s&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.replace&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;#ampm#&quot;&lt;/span&gt;,ampm&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; now=&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;;
alert&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;Today is &quot;&lt;/span&gt;+now.customFormat&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;#DDDD#, #MMMM# #D##th#&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot;\nThe time is &quot;&lt;/span&gt;+now.customFormat&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;#h#:#mm##ampm#&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot;.&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;/code&gt;&lt;/pre&gt;


&lt;h2 id=&quot;example3&quot;&gt;Example 3 — Number Formatting&lt;/h2&gt;
&lt;p&gt;This example extends the &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Number&lt;/span&gt;&lt;/code&gt; class to support a few methods for attractive formatting. Notice how it extends the String class with a new method for inserting a substring.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Number&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.toCurrency=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;noFractions,currencySymbol,decimalSeparator,thousandsSeparator&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; n,startAt,intLen;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;currencySymbol==null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; currencySymbol=&lt;span class=&quot;string&quot;&gt;&quot;$&quot;&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;decimalSeparator==null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; decimalSeparator=&lt;span class=&quot;string&quot;&gt;&quot;.&quot;&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;thousandsSeparator==null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; thousandsSeparator=&lt;span class=&quot;string&quot;&gt;&quot;,&quot;&lt;/span&gt;;
  n = this.round&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;noFractions?&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;:&lt;span class=&quot;number&quot;&gt;2&lt;/span&gt;,&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;,decimalSeparator&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  intLen=n.length-&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;noFractions?&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;:&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;((&lt;/span&gt;startAt=intLen%&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;==&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; startAt=&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; i=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,len=&lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.ceil&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;intLen/&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;-&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;i&amp;lt;len;i++&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;n=n.insertAt&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;i*&lt;span class=&quot;number&quot;&gt;4&lt;/span&gt;+startAt,thousandsSeparator&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; currencySymbol+n;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;Number&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.toInteger=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;thousandsSeparator&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; n,startAt,intLen;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;thousandsSeparator==null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; thousandsSeparator=&lt;span class=&quot;string&quot;&gt;&quot;,&quot;&lt;/span&gt;;
  n = this.round&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  intLen=n.length;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;((&lt;/span&gt;startAt=intLen%&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;==&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; startAt=&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; i=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,len=&lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.ceil&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;intLen/&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;-&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;i&amp;lt;len;i++&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;n=n.insertAt&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;i*&lt;span class=&quot;number&quot;&gt;4&lt;/span&gt;+startAt,thousandsSeparator&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; n;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;Number&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.round=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;decimals,returnAsString,decimalSeparator&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//Supports &lt;span class=&quot;string&quot;&gt;&#39;negative&#39;&lt;/span&gt; decimals, e.g. myNumber.round&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;-&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; rounds to the nearest thousand&lt;/span&gt;

  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; n,factor,breakPoint,whole,frac;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;!decimals&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; decimals=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;
  factor=&lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.pow&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;,decimals&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  n=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;this.valueOf&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;         &lt;span class=&quot;comment&quot;&gt;//To get the internal value of an &lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;, use the valueOf&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt; method&lt;/span&gt;

  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;!returnAsString&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.round&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;n*factor&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;/factor;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;!decimalSeparator&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; decimalSeparator=&lt;span class=&quot;string&quot;&gt;&quot;.&quot;&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;n==&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&quot;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;.&quot;&lt;/span&gt;+&lt;span class=&quot;paren&quot;&gt;((&lt;/span&gt;factor+&lt;span class=&quot;string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;))&lt;/span&gt;;
  breakPoint=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;n=&lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.round&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;n*factor&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.length-decimals;
  whole = n.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,breakPoint&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;decimals&amp;gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

     frac = n.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;breakPoint&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
     &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;frac.length&amp;lt;decimals&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; frac=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.pow&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;,decimals-frac.length&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;+frac;
     &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; whole+decimalSeparator+frac;
  &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; whole+&lt;span class=&quot;paren&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.pow&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;10&lt;/span&gt;,-decimals&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;))&lt;/span&gt;;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;keyword&quot;&gt;String&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.insertAt=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;loc,strChunk&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;this.valueOf&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,loc&lt;span class=&quot;paren&quot;&gt;))&lt;/span&gt;+strChunk+&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;this.valueOf&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;.substr&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;loc&lt;span class=&quot;paren&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; quantity=&lt;span class=&quot;number&quot;&gt;1056&lt;/span&gt;;
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; costPer=&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;.9&lt;/span&gt;;
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; totalCost=quantity*costPer;
alert&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;quantity.toInteger&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot; items at &quot;&lt;/span&gt;+costPer.toCurrency&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;+&lt;span class=&quot;string&quot;&gt;&quot; per item amounts to a total of &quot;&lt;/span&gt;+totalCost.toCurrency&lt;span class=&quot;paren&quot;&gt;())&lt;/span&gt;;

&lt;span class=&quot;comment&quot;&gt;//Yields &lt;span class=&quot;string&quot;&gt;&quot;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;number&quot;&gt;056&lt;/span&gt; items at $&lt;span class=&quot;number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;.90&lt;/span&gt; per item amounts to a total of $&lt;span class=&quot;number&quot;&gt;4&lt;/span&gt;,&lt;span class=&quot;number&quot;&gt;118&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;.40&lt;/span&gt;&quot;&lt;/span&gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;p class=&quot;ancillary&quot;&gt;For a far terser, faster, and general purpose number formatter, see &lt;a href=&quot;http://web.archive.org/web/20080122210909/http://phrogz.net/JS/Number.prototype.format.js&quot;&gt;Number.prototype.format.js&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;example4&quot;&gt;Example 4 — Boolean XOR&lt;/h2&gt;
&lt;p&gt;JavaScript provides a boolean AND operator (&lt;code class=&quot;js&quot;&gt;&amp;amp;&amp;amp;&lt;/code&gt;), a boolean OR operator (&lt;code class=&quot;js&quot;&gt;||&lt;/code&gt;), and a boolean NOT operator (&lt;code class=&quot;js&quot;&gt;!&lt;/code&gt;). But it is missing a boolean XOR operation. (In English, XOR can be stated as &quot;If A is true or B is true, but not if both are true.&quot;) The following simple code adds an &lt;code class=&quot;js&quot;&gt;XOR&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; method to the Boolean object.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Boolean&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.XOR=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;bool2&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; bool1=this.valueOf&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;bool1==&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt; &amp;amp;&amp;amp; bool2==&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; || &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;bool2==&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt; &amp;amp;&amp;amp; bool1==&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;comment&quot;&gt;//&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;bool1 &amp;amp;&amp;amp; !bool2&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; || &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;bool2 &amp;amp;&amp;amp; !bool1&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;&lt;/span&gt;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;.XOR&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;; &lt;span class=&quot;comment&quot;&gt;//returns a value of &lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(The above method requires the passed value to be an actual boolean value to succeed. The second option, commented out, will attempt to cast &lt;code class=&quot;js&quot;&gt;bool2&lt;/code&gt; to a boolean value for the comparison. If that line were used instead, values of &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;/code&gt;, &lt;code class=&quot;js&quot;&gt;null&lt;/code&gt;, &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;string&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;/code&gt; and &lt;code class=&quot;js&quot;&gt;undefined&lt;/code&gt; would be interpretted as &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;/code&gt;, and other non-empty values such as &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;/code&gt; or &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;string&quot;&gt;&quot;foo&quot;&lt;/span&gt;&lt;/code&gt; will be interpretted as a value of &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;/code&gt;.)&lt;/p&gt;

&lt;h2 id=&quot;example5&quot;&gt;Example 5 — Extending Arrays to Support Set Mathematics&lt;/h2&gt;
&lt;p&gt;The following code is presented as an example of a non-trivial expansion to the Array object which allows it to support Set Mathematics. It also shows a case where &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;&lt;/code&gt; can be used to overwrite existing implementations. (In this case, some browsers have an incorrect version of &lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.splice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;&lt;/code&gt; that doesn&#39;t return single-item arrays, but instead returns the item itself.)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;comment&quot;&gt;//This JavaScript library is copyright &lt;span class=&quot;number&quot;&gt;2002&lt;/span&gt; by Gavin Kistner and Refinery, Inc.&lt;/span&gt;

&lt;span class=&quot;comment&quot;&gt;//Reuse or modification permitted provided the previous line is included.&lt;/span&gt;
&lt;span class=&quot;comment&quot;&gt;//mailto:gavin@refinery.com&lt;/span&gt;
&lt;span class=&quot;comment&quot;&gt;//http://www.refinery.com/&lt;/span&gt;

&lt;span class=&quot;comment&quot;&gt;/***************************************************************************************************
* JavaScript &lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt; Set Mathematics Library
* version &lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;.2&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;.1&lt;/span&gt;, April 26th, &lt;span class=&quot;number&quot;&gt;2002&lt;/span&gt;  &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;IEMac5&lt;span class=&quot;number&quot;&gt;.1&lt;/span&gt;-/IEWin5&lt;span class=&quot;number&quot;&gt;.0&lt;/span&gt;-/OldNS .splice&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt; replacement works properly&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;

*
* Methods: array1.union&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;
*          array1.subtract&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;

*          array1.intersect&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;
*          array1.exclusion&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;

*          array1.removeDuplicates&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;
*
*          array1.unsortedUnion&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;

*          array1.unsortedSubtract&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;
*          array1.unsortedIntersect&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;

*          array1.unsortedExclusion&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; array2 &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;,compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;
*          array1.unsortedRemoveDuplicates&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;compareFunction&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;

*
*
* Notes:   All methods &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; a &lt;span class=&quot;string&quot;&gt;&#39;set&#39;&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt; where duplicates have been removed.
*
*          The union&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;, subtract&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;, intersect&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt;, and removeDuplicates&lt;span class=&quot;paren&quot;&gt;()&lt;/span&gt; methods
*          are faster than their &lt;span class=&quot;string&quot;&gt;&#39;unsorted&#39;&lt;/span&gt; counterparts, but &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; a sorted set:
*          &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; a = &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;a&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;e&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;c&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;;
*          &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; b = &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&#39;b&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;c&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;d&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;;
*          a.unsortedUnion&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;b&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;  --&amp;gt;  &lt;span class=&quot;string&quot;&gt;&#39;a&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;e&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;c&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;b&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;d&#39;&lt;/span&gt;

*          a.union&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;b&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;          --&amp;gt;  &lt;span class=&quot;string&quot;&gt;&#39;a&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;b&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;c&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;d&#39;&lt;/span&gt;,&lt;span class=&quot;string&quot;&gt;&#39;e&#39;&lt;/span&gt;

*
*          Calling any of the methods on an array whose element pairs cannot all be
*          reliably ordered &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;objects &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; which a &amp;lt; b, a &amp;gt; b, and a==b ALL &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;
*          will produce inaccurate results UNLESS the &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;usually&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; optional
*          &lt;span class=&quot;string&quot;&gt;&#39;compareFunction&#39;&lt;/span&gt; parameter is passed. This should specify a custom
*          comparison &lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;, as required by the standard &lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.sort&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;myFunc&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; method
*          For example:
*          &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; siblings = &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;name:&lt;span class=&quot;string&quot;&gt;&#39;Dain&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt; , &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;name:&lt;span class=&quot;string&quot;&gt;&#39;Chandra&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt; , &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;name:&lt;span class=&quot;string&quot;&gt;&#39;Baird&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt; , &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;name:&lt;span class=&quot;string&quot;&gt;&#39;Linden&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;;
*          &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; brothers = &lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;name:&lt;span class=&quot;string&quot;&gt;&#39;Dain&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt; , &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;name:&lt;span class=&quot;string&quot;&gt;&#39;Baird&#39;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;;
*          &lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt; compareNames&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;a,b&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;a.name &amp;lt; b.name&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;?-&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;:&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;a.name &amp;gt; b.name&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;?&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;:&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

*          &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; sisters=siblings.unsortedSubtract&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;brothers, compareNames&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
*
***************************************************************************************************/&lt;/span&gt;


&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.splice &amp;amp;&amp;amp; typeof&lt;span class=&quot;paren&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;.splice&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;))&lt;/span&gt;==&lt;span class=&quot;string&quot;&gt;&quot;number&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.splice = null;

&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;!&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.splice&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.splice = &lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;ind,cnt&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; len = this.length;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; arglen = arguments.length;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;arglen==&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; ind;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;typeof&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;ind&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;!= &lt;span class=&quot;string&quot;&gt;&quot;number&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; ind = &lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;ind&amp;lt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; ind = &lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.max&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,len+ind&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;ind&amp;gt;len&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

     &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;arglen&amp;gt;&lt;span class=&quot;number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; ind=len;
     &lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;[]&lt;/span&gt;;
  &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;arglen&amp;lt;&lt;span class=&quot;number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; cnt = len-ind;
  cnt = &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;typeof&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;cnt&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;==&lt;span class=&quot;string&quot;&gt;&quot;number&quot;&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; ? &lt;span class=&quot;keyword&quot;&gt;Math&lt;/span&gt;.max&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,cnt&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; : &lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; removeArray = this.slice&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;ind,ind+cnt&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; endArray = this.slice&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;ind+cnt&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  len = this.length = ind;
  &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; i=&lt;span class=&quot;number&quot;&gt;2&lt;/span&gt;;i&amp;lt;arglen;i++&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; this&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;len++&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; = arguments&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; i=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,endlen=endArray.length;i&amp;lt;endlen;i++&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; this&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;len++&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt; = endArray&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; removeArray;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;comment&quot;&gt;//*** SORTED IMPLEMENTATIONS ***************************************************&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.union=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;a2,compareFunction&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; this.concat&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;a2?a2:null&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;.removeDuplicates&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;compareFunction&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;

&lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;keyword&quot;&gt;prototype&lt;/span&gt;.subtract=&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;a2,compareFunction&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;!compareFunction&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; compareFunction=null;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; a1=this.removeDuplicates&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;compareFunction&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;!a2&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; a1;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; a2=a2.removeDuplicates&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;compareFunction&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; len2=a2.length;
  &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;compareFunction&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;

     &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; i=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;i&amp;lt;a1.length;i++&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
        &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; src=a1&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;,found=&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;,src;
        &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; j=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;j&amp;lt;len2&amp;amp;&amp;amp;compareFunction&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;src2=a2&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;j&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;,src&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;!=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;j++&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;compareFunction&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;src,src2&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;==&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt; found=&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;; break; &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

        &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;found&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; a1.splice&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;i--,&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
     &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt;

     &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; i=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;i&amp;lt;a1.length;i++&lt;span class=&quot;paren&quot;&gt;){&lt;/span&gt;
        &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; src=a1&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;paren&quot;&gt;]&lt;/span&gt;,found=&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;,src;
        &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; j=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;j&amp;lt;len2&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;&amp;amp;&amp;amp;&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;src&amp;gt;=&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;src2=a2&lt;span class=&quot;paren&quot;&gt;[&lt;/span&gt;j&lt;span class=&quot;paren&quot;&gt;]))&lt;/span&gt;;j++&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;src2==src&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;{&lt;/span&gt; found=&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;; break; &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

        &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;found&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt; a1.splice&lt;span class=&quot;paren&quot;&gt;(&lt;/span&gt;i--,&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;paren&quot;&gt;)&lt;/span&gt;;
     &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;paren&quot;&gt;}&lt;/span&gt;

  ret&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/6004604963866891205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/6004604963866891205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/6004604963866891205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/6004604963866891205'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/07/extending-javascript-objects-and.html' title='Extending JavaScript Objects and Classes'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-4269554015635097684</id><published>2009-06-24T14:41:00.004+05:30</published><updated>2009-06-24T14:48:22.673+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="iptables"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>To Forward all Traffic from one machine to another IPTABLES</title><content type='html'>Following Rules are Required to Forward all Traffic From __YOURMACHINE__ to __NEWGATEWAY__&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/sbin/iptables -t filter -I FORWARD -s __YOURMACHINE__ -i eth0 -p tcp -j ACCEPT&lt;/span&gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-weight: bold;&quot;&gt;/sbin/iptables -t nat -I PREROUTING -s __YOURMACHINE__ -i eth0 -p tcp -j ACCEPT&lt;/span&gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-weight: bold;&quot;&gt;/sbin/iptables -t mangle -I PREROUTING -s __YOURMACHINE__ -i eth0 -j ROUTE --oif eth0 --gw __NEWGATEWAY__&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/4269554015635097684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/4269554015635097684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4269554015635097684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4269554015635097684'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/06/to-forward-all-traffic-from-one-machine.html' title='To Forward all Traffic from one machine to another IPTABLES'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-8120339589590328936</id><published>2009-06-17T17:27:00.002+05:30</published><updated>2009-06-17T17:49:30.116+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>JavaScript Object Notation (JSON)</title><content type='html'>&lt;pre&gt;Abstract

JavaScript Object Notation (JSON) is a lightweight, text-based,
language-independent data interchange format.  It was derived from
the ECMAScript Programming Language Standard.  JSON defines a small
set of formatting rules for the portable representation of structured
data.

&lt;span class=&quot;h2&quot;&gt;&lt;h2&gt;&lt;a name=&quot;section-1&quot;&gt;1&lt;/a&gt;.  Introduction&lt;/h2&gt;&lt;/span&gt;

JavaScript Object Notation (JSON) is a text format for the
serialization of structured data.  It is derived from the object
literals of JavaScript, as defined in the ECMAScript Programming
Language Standard, Third Edition [&lt;a href=&quot;http://tools.ietf.org/html/rfc4627#ref-ECMA&quot; title=&quot;&amp;quot;ECMAScript Language Specification 3rd Edition&amp;quot;&quot;&gt;ECMA&lt;/a&gt;].

JSON can represent four primitive types (strings, numbers, booleans,
and null) and two structured types (objects and arrays).

A string is a sequence of zero or more Unicode characters [&lt;a href=&quot;http://tools.ietf.org/html/rfc4627#ref-UNICODE&quot; title=&quot;&amp;quot;The Unicode Standard Version 4.0&amp;quot;&quot;&gt;UNICODE&lt;/a&gt;].

An object is an unordered collection of zero or more name/value
pairs, where a name is a string and a value is a string, number,
boolean, null, object, or array.

An array is an ordered sequence of zero or more values.

The terms &quot;object&quot; and &quot;array&quot; come from the conventions of
JavaScript.

JSON&#39;s design goals were for it to be minimal, portable, textual, and
a subset of JavaScript.


&lt;/pre&gt;&lt;h2&gt;Why JSON?&lt;/h2&gt;   &lt;p&gt;The benefit of JSON is that it is recognized natively by JavaScript. No need      for parsing an XML document to extract the data and get it throught the net.&lt;/p&gt;   &lt;p&gt;&lt;a name=&quot;JSON-XML&quot;&gt;&lt;/a&gt;&lt;/p&gt;   &lt;h2&gt;JSON and XML&lt;/h2&gt;   &lt;p&gt;Benefits of JSON:
  - The easiness of reading.
  - The easiness of using.

  Benefits of XML:
  - XML is extensible.
  - It is widely used and recognized by almost all programming languages.

  Unfortunally, both XML and JSON are enable to integrate a large amount of      data in binary form. &lt;/p&gt;   &lt;p&gt;&lt;a name=&quot;Syntax&quot;&gt;&lt;/a&gt;&lt;/p&gt;   &lt;h2&gt;The syntax of JSON&lt;/h2&gt;   &lt;p&gt;The components of JSON:
  - An object: contains objets or attributes.
  - A scalar variable: Number, String, Boolean.
  - An array.
  - Literal values: &lt;i&gt;null&lt;/i&gt;, &lt;i&gt;true&lt;/i&gt;, &lt;i&gt;false&lt;/i&gt;, &quot;&lt;i&gt;string      of characters&lt;/i&gt;&quot;, and numerical values.&lt;/p&gt;   &lt;h3&gt;Object&lt;/h3&gt;   &lt;p&gt;It contains a member or a list of members, and each member has the form:&lt;/p&gt;   &quot;name&quot; : &quot;value&quot;   &lt;p&gt;The syntax of the object is:&lt;/p&gt;   { member, member, .... }   &lt;h3&gt;Array&lt;/h3&gt;   A collection of values, separated by commas.    [ value, value, ....]    &lt;h3&gt;Values&lt;/h3&gt;   &lt;p&gt;A value may be: an object, an array, a litteral (string, number, true, false,      null).&lt;/p&gt;   &lt;p&gt;Nothing more is required to create a JSON file!&lt;/p&gt;   &lt;p&gt;&lt;a name=&quot;Example&quot;&gt;&lt;/a&gt;&lt;/p&gt;   &lt;h2&gt;Example of JSON file&lt;/h2&gt;   &lt;p&gt;A simple example, designing a menu:
  It is an object made of members that are an attribute and an array that holds      other objects, the rows of the menu.&lt;/p&gt;   &lt;pre&gt;

&lt;/pre&gt;
&lt;pre&gt;{
&quot;menu&quot;: &quot;File&quot;,
&quot;commands&quot;: [
    {
        &quot;title&quot;: &quot;New&quot;,
        &quot;action&quot;:&quot;CreateDoc&quot;
    },
    {
        &quot;title&quot;: &quot;Open&quot;,
        &quot;action&quot;: &quot;OpenDoc&quot;
    },
    {
        &quot;title&quot;: &quot;Close&quot;,
        &quot;action&quot;: &quot;CloseDoc&quot;
    }
 ]
}&lt;/pre&gt;
The XML equivalent:
&lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; ?&amp;gt;
&amp;lt;root&amp;gt;
&amp;lt;menu&amp;gt;File&amp;lt;/menu&amp;gt;

&amp;lt;commands&amp;gt;
   &amp;lt;item&amp;gt;
       &amp;lt;title&amp;gt;New&amp;lt;/value&amp;gt;
       &amp;lt;action&amp;gt;CreateDoc&amp;lt;/action&amp;gt;
   &amp;lt;/item&amp;gt;

   &amp;lt;item&amp;gt;
       &amp;lt;title&amp;gt;Open&amp;lt;/value&amp;gt;
       &amp;lt;action&amp;gt;OpenDoc&amp;lt;/action&amp;gt;
   &amp;lt;/item&amp;gt;
   &amp;lt;item&amp;gt;

       &amp;lt;title&amp;gt;Close&amp;lt;/value&amp;gt;
       &amp;lt;action&amp;gt;CloseDoc&amp;lt;/action&amp;gt;
   &amp;lt;/item&amp;gt;
&amp;lt;/commands&amp;gt;
&amp;lt;/root&amp;gt;&lt;/pre&gt;
&lt;h2&gt;How to use the format&lt;/h2&gt;   &lt;p&gt;The JSON file allows to load data from the server or to send data to it,      in this format. For example, storing the content of a form, just filled by      an user. This involves three steps: the browser processing, the server processing,      and the data exchange between them.&lt;/p&gt;   &lt;h3&gt;&lt;a name=&quot;Browser&quot;&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;Client side (browser)&lt;/h3&gt;   &lt;p&gt;This is rather easy, as JSON is a part of the JavaScript definition. The      content of a file, or the definition of the data is assigned to a variable,      and this variable becomes an object of the program.&lt;/p&gt;   &lt;h3&gt;&lt;a name=&quot;Server&quot;&gt;&lt;/a&gt;Server side&lt;/h3&gt;   &lt;p&gt; JSON file are used by various programming languages, including PHP and Java      thanks to parsers that allow to get the content and that may even convert      it into classes and attributes of the language.
   The json.org includes a C parser and a list of parsers in other languages.&lt;/p&gt;   &lt;h3&gt;&lt;a name=&quot;Exchange&quot;&gt;&lt;/a&gt;Data exchange&lt;/h3&gt;   &lt;p&gt;Loading a file may be accomplished from JavaScript in several ways:
   - direct including of the file into the HTML page, as a JavaScript .js external      file.
   - loading by a JavaScript command.
   - using XMLHttpRequest.
   The JSON file is parsed by the eval() JavaScript function.
 
   Sending the file to the server may be accomplished by &lt;a href=&quot;http://www.xul.fr/Objet-XMLHttpRequest.html&quot; target=&quot;_parent&quot;&gt;XMLHttpRequest&lt;/a&gt;.      The file is sent as a text file and processed by the parser of the programming      language that uses it.&lt;/p&gt;   &lt;h3&gt;&lt;a name=&quot;Example-using&quot;&gt;&lt;/a&gt;Example&lt;/h3&gt;   &lt;p&gt;The XMLHttpRequest code:&lt;/p&gt;   &lt;pre&gt;var req = new XMLHttpRequest();
req.open(&quot;GET&quot;, &quot;file.json&quot;, true);
req.onreadystatechange = myCode;   // the handler
req.send(null); &lt;/pre&gt;   &lt;p&gt;The JavaScript handler: &lt;/p&gt;   &lt;pre&gt;function myCode()
{
 if (req.readyState == 4)
 {
      var doc = eval(&#39;(&#39; + req.responseText + &#39;)&#39;);
 }
}
&lt;/pre&gt;   Using the data:    &lt;pre&gt;var menuName = document.getElementById(&#39;jsmenu&#39;);   // finding a field
menuName.value = doc.menu.value;           // assigning a value to the field
&lt;/pre&gt;   How to access data:    &lt;pre&gt;doc.commands[0].title      // read value of the &quot;title&quot; field in the array
doc.commands[0].action     // read value of the &quot;action&quot; field in the array&lt;/pre&gt;   &lt;p&gt;&lt;a name=&quot;Demo&quot;&gt;&lt;/a&gt;&lt;/p&gt; 

&lt;a href=&quot;http://www.xul.fr/ajax-json-menu.html&quot;&gt;For a Demo click here:&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/8120339589590328936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/8120339589590328936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/8120339589590328936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/8120339589590328936'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/06/javascript-object-notation-json.html' title='JavaScript Object Notation (JSON)'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5094597816208395111.post-4548627656259163999</id><published>2009-06-16T15:47:00.002+05:30</published><updated>2009-06-16T15:54:09.609+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="file partition"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>To add a partition which stores data in RAM of Linux</title><content type='html'>__REQUIREDPATH__ means the path of the temporary partition which you want

&lt;ol&gt;&lt;li&gt;echo &quot;tmpfs   __REQUIREDPATH__        tmpfs   rw,size=10M&quot; &gt;&gt; /etc/fstab&lt;/li&gt;&lt;li&gt;mkdir     __REQUIREDPATH__&lt;/li&gt;&lt;li&gt;Change ownership appropiately
&lt;/li&gt;&lt;li&gt;mount -t tmpfs -o size=10m tmpfs  __REQUIREDPATH__&lt;/li&gt;&lt;/ol&gt;

Note: You will have to do the above steps again whenever your machine is rebooted. or add the above steps in /etc/rc.local


For Eg:
    __REQUIRESPATH__ = &quot;/var/tempdata/&quot;</content><link rel='replies' type='application/atom+xml' href='http://vinojdavis.blogspot.com/feeds/4548627656259163999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5094597816208395111/4548627656259163999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4548627656259163999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5094597816208395111/posts/default/4548627656259163999'/><link rel='alternate' type='text/html' href='http://vinojdavis.blogspot.com/2009/06/to-add-partition-which-stores-data-in.html' title='To add a partition which stores data in RAM of Linux'/><author><name>ViNOJ DAViS</name><uri>http://www.blogger.com/profile/13233254953611727539</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='20' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgElH6g_8tY3C9UzcGEZb0pE1O_wCi415Pj8Mf4t4D7AASvuYlZqfCeI7CjoSLzPKw_lJklAQb781DugFwnH8VLR1Wbba-ih2vpPBkyRBWC7etEJv2nr06E68O_XpFA1SA/s220/Building.jpg'/></author><thr:total>0</thr:total></entry></feed>