<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2839311235793219358</atom:id><lastBuildDate>Fri, 20 Sep 2024 21:38:41 +0000</lastBuildDate><category>Selenium</category><category>WebDriver</category><category>Quotes I received from my friends</category><category>Automation</category><category>TestNG</category><category>Aganist Corruption</category><category>Ant</category><category>Criteria</category><category>RFT</category><category>Sudoku</category><category>Support India Covide Relief</category><category>WebInject</category><category>XMLUnit</category><category>python</category><title>EAGLE EYE</title><description></description><link>http://bmaddys.blogspot.com/</link><managingEditor>noreply@blogger.com (Madan Mohan Reddy)</managingEditor><generator>Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-6790341429479395897</guid><pubDate>Tue, 11 May 2021 22:52:00 +0000</pubDate><atom:updated>2021-05-11T16:18:06.550-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Support India Covide Relief</category><title/><description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1 class="story-page__title" style="background-color: white; box-sizing: border-box; color: #777777; display: table; font-family: FrutigerLTStd-Roman, Helvetica, Arial, sans-serif; font-size: 28px; line-height: 1.1; margin: 10px 0px; overflow-wrap: break-word; table-layout: fixed; width: 624px; word-break: break-word;"&gt;Support - India/COVID-19 Relief&lt;/h1&gt;&lt;p&gt;The last few weeks in India was devastating and entire country is fighting with COVID.&lt;/p&gt;&lt;p&gt;Currently the country&amp;nbsp;&lt;b&gt;needs all your support&lt;/b&gt; for medical supplies, oxygen, beds and many more supplies/materials.&lt;/p&gt;&lt;p&gt;I request you to donate for this cause to any organizations (check the list below but not limited to) that is funding and providing support. Send me the screenshot to email:&amp;nbsp;&lt;span face="Roboto, RobotoDraft, Helvetica, Arial, sans-serif" style="color: #5f6368; font-size: 14px; text-align: center; white-space: nowrap;"&gt;&lt;u style="background-color: #04ff00;"&gt;madanshelptogether@gmail.com&lt;/u&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;that you have donated with your email-Id.&lt;/p&gt;&lt;p&gt;In return I will be giving &lt;span style="background-color: #04ff00; font-family: verdana;"&gt;free training for around 4hr&lt;/span&gt; on&amp;nbsp; the topics which I am having 21years of extensive&amp;nbsp;experience. &lt;b&gt;Core Topics are Test Automation and&amp;nbsp; Java-WebDriver.&lt;/b&gt; I hope this training will help any&amp;nbsp; Engineer who are already into test automation field or to get start with Automation career.&lt;/p&gt;&lt;p&gt;Will share the link (zoom/google-meet) between June 13th to June 18th and recording after the session.&lt;/p&gt;&lt;p&gt;Thank you All,&lt;/p&gt;&lt;p&gt;Yours&lt;/p&gt;&lt;p&gt;Madan Mohan Reddy Badveli.&lt;/p&gt;&lt;p&gt;Organizations List - I am aware of :&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.sewausa.org/Donate"&gt;Sewa International - Donate for Sewa (sewausa.org)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;https://apcmrf.ap.gov.in/&lt;/p&gt;&lt;p&gt;https://covid.giveindia.org/oxygen/&lt;/p&gt;&lt;p&gt;&lt;a href="https://indianredcross.org/ircs/COVID-19"&gt;Battling COVID-19 | Indian Red Cross Society&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Please add organizations links which are supporting for the Covid Relief&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://bmaddys.blogspot.com/2021/05/support-indiacovid-19-relief-last-few.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-224828116736940275</guid><pubDate>Thu, 22 Apr 2021 17:48:00 +0000</pubDate><atom:updated>2021-04-22T10:53:30.341-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">WebDriver</category><title>WebDriver - Simple way to assert List values (Select List box) </title><description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Below is one of the simple and straight forward way to assert list of values.&amp;nbsp;&lt;/p&gt;&lt;p&gt;This is applicable when we want to validate table data or values from multiple webelements.&lt;/p&gt;&lt;p&gt;List&amp;lt;String&amp;gt; expectedData =&amp;nbsp;&lt;span class="crayon-r" style="box-sizing: border-box; font-family: inherit; font-size: inherit !important; font-weight: 700 !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span class="crayon-h" style="box-sizing: border-box; color: rgb(0, 111, 224) !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span class="crayon-v" style="box-sizing: border-box; color: rgb(0, 45, 122) !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;ArrayList&lt;/span&gt;&lt;span class="crayon-o" style="box-sizing: border-box; color: rgb(0, 111, 224) !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="crayon-sy" style="box-sizing: border-box; color: rgb(51, 51, 51) !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;(&lt;/span&gt;&lt;span class="crayon-v" style="box-sizing: border-box; color: rgb(0, 45, 122) !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;Arrays&lt;/span&gt;&lt;span class="crayon-sy" style="box-sizing: border-box; color: rgb(51, 51, 51) !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;span class="crayon-e" style="box-sizing: border-box; color: teal !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;asList&lt;/span&gt;&lt;span class="crayon-sy" style="box-sizing: border-box; color: rgb(51, 51, 51) !important; font-family: inherit; font-size: inherit !important; font-weight: inherit !important; height: inherit; line-height: inherit !important; white-space: pre-wrap;"&gt;("Madan","Blog"));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;List&amp;lt;String&amp;gt; optionValues = new ArrayList&amp;lt;&amp;gt;();&lt;/p&gt;&lt;p&gt;new Select(element).getOptions().stream().forEach(listOption -&amp;gt; optionValues.add(listOption.getText()));&lt;/p&gt;&lt;p&gt;Assert.assertEquals(optionValues,expectedData);&lt;/p&gt;</description><link>http://bmaddys.blogspot.com/2021/04/webdriver-simple-way-to-assert-list.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-4145291913538435267</guid><pubDate>Sat, 02 Jan 2021 22:47:00 +0000</pubDate><atom:updated>2021-10-22T14:50:05.048-07:00</atom:updated><title>HackerRank 2D Array - DS</title><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="full-screen-sidebar" style="background-color: #f3f7f7; border: 0px; color: #0e141e; font-family: OpenSans, Arial, Helvetica, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; transform: translate3d(0px, 24px, 0px); vertical-align: baseline; width: 40px; z-index: 1;"&gt;&lt;div class="extra-sidebar-wrapper" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="sidebar-container" style="border: 0px; display: inline-block; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: -30px 0px 0px; outline: 0px; padding: 0px; transform-origin: 0px 40px; transform: rotate(90deg) translateX(-15px); vertical-align: baseline;"&gt;&lt;ul class="sidebar-list" style="border: 0px; display: table; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; list-style: none; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;li class="tab-item active" style="background-color: var(--color-white); border: 0px; display: table-cell; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: 40px; line-height: 41px; margin: 0px; min-width: 180px; outline: 0px; padding: 0px; text-align: center; transform: rotate(180deg); vertical-align: baseline;"&gt;&lt;a class="tab-item-color" data-analytics="ChallengeViewTab" data-attr1="/challenges/2d-array/problem" data-attr2="Problem" data-attr3="full_screen" href="https://www.hackerrank.com/challenges/2d-array/problem" style="background-color: transparent; border: 0px; display: inline-block; font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: 700; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline; width: 180px;"&gt;&lt;span class="ui-icon-label" style="border: 0px; display: inline-block; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: middle;"&gt;Problem&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class="tab-item" style="border: 0px; display: table-cell; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: 40px; line-height: 41px; margin: 0px; min-width: 180px; outline: 0px; padding: 0px; text-align: center; transform: rotate(180deg); vertical-align: baseline;"&gt;&lt;a class="tab-item-color" data-analytics="ChallengeViewTab" data-attr1="/challenges/2d-array/submissions" data-attr2="Submissions" data-attr3="full_screen" href="https://www.hackerrank.com/challenges/2d-array/submissions" style="background-color: transparent; border: 0px; color: #738f93; display: inline-block; font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline; width: 180px;"&gt;&lt;span class="ui-icon-label" style="border: 0px; display: inline-block; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: middle;"&gt;Submissions&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class="tab-item" style="border: 0px; display: table-cell; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: 40px; line-height: 41px; margin: 0px; min-width: 180px; outline: 0px; padding: 0px; text-align: center; transform: rotate(180deg); vertical-align: baseline;"&gt;&lt;a class="tab-item-color" data-analytics="ChallengeViewTab" data-attr1="/challenges/2d-array/leaderboard" data-attr2="Leaderboard" data-attr3="full_screen" href="https://www.hackerrank.com/challenges/2d-array/leaderboard" style="background-color: transparent; border: 0px; color: #738f93; display: inline-block; font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline; width: 180px;"&gt;&lt;span class="ui-icon-label" style="border: 0px; display: inline-block; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: middle;"&gt;Leaderboard&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class="tab-item" style="border: 0px; display: table-cell; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: 40px; line-height: 41px; margin: 0px; min-width: 180px; outline: 0px; padding: 0px; text-align: center; transform: rotate(180deg); vertical-align: baseline;"&gt;&lt;a class="tab-item-color" data-analytics="ChallengeViewTab" data-attr1="/challenges/2d-array/forum" data-attr2="Discussions" data-attr3="full_screen" href="https://www.hackerrank.com/challenges/2d-array/forum" style="background-color: transparent; border: 0px; color: #738f93; display: inline-block; font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline; width: 180px;"&gt;&lt;span class="ui-icon-label" style="border: 0px; display: inline-block; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: middle;"&gt;Discussions&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class="tab-item" style="border: 0px; display: table-cell; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; height: 40px; line-height: 41px; margin: 0px; min-width: 180px; outline: 0px; padding: 0px; text-align: center; transform: rotate(180deg); vertical-align: baseline;"&gt;&lt;a class="tab-item-color" data-analytics="ChallengeViewTab" data-attr1="/challenges/2d-array/editorial" data-attr2="Editorial" data-attr3="full_screen" href="https://www.hackerrank.com/challenges/2d-array/editorial" style="background-color: transparent; border: 0px; color: #738f93; display: inline-block; font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline; width: 180px;"&gt;&lt;span class="ui-icon-label" style="border: 0px; display: inline-block; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: middle;"&gt;Editorial&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="left-pane-content" style="border: 0px; box-shadow: rgba(0, 0, 0, 0.1) 0px 3px 10px 0px; color: #0e141e; flex: 1 1 0%; font-family: OpenSans, Arial, Helvetica, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; max-width: calc(100% - 40px); min-height: calc(100vh - 50px); outline: 0px; padding: 0px; transform: translate3d(0px, 0px, 0px); vertical-align: baseline;"&gt;&lt;div class="problem-statement-container" id="fullScreenLeftPane" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; min-height: 100%; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="theme-m hr_tour-problem-statement problem-statement have-external-links" style="border: 0px; font-family: var(--font-family-text); font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 1.2em; margin: 0px; min-width: auto; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="content-text challenge-text mlB hackdown-container theme-m" style="border: 0px; font-family: var(--font-family-text); font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 1.2em; margin: 0px 0px 20px; min-width: auto; outline: 0px; padding: 15px 30px; vertical-align: baseline;"&gt;&lt;div class="challenge-body-html" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="challenge_problem_statement" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="msB challenge_problem_statement_body" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="hackdown-content" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Given a&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 2223.9 936.9" width="5.165ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(722,0)"&gt;&lt;path d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1723,0)"&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;2D Array&lt;/span&gt;,&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-2-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="1.676ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -576.1 1432.5 721.6" width="3.327ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;:&lt;/p&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
&lt;/code&gt;&lt;/pre&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;An hourglass in&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-3-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 750.5 936.9" width="1.743ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;is a subset of values with indices falling in this pattern in&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-4-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="1.676ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -576.1 1432.5 721.6" width="3.327ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;'s graphical representation:&lt;/p&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;a b c
  d
e f g
&lt;/code&gt;&lt;/pre&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;There are&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-5-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 1001 936.9" width="2.325ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" stroke-width="1"&gt;&lt;/path&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1" transform="translate(500,0)"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;hourglasses in&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-6-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="1.676ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -576.1 1432.5 721.6" width="3.327ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;. An&amp;nbsp;&lt;span style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;hourglass sum&lt;/span&gt;&amp;nbsp;is the sum of an hourglass' values. Calculate the hourglass sum for every hourglass in&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-7-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="1.676ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -576.1 1432.5 721.6" width="3.327ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;, then print the&amp;nbsp;&lt;span style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;maximum&lt;/span&gt;&amp;nbsp;hourglass sum. The array will always be&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-8-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 2223.9 936.9" width="5.165ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(722,0)"&gt;&lt;path d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1723,0)"&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Example&lt;/span&gt;&lt;/p&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span class="MathJax_SVG" id="MathJax-Element-9-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="1.676ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -576.1 2488.8 721.6" width="5.78ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1710,0)"&gt;&lt;path d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;-9 -9 -9  1 1 1 
 0 -9  0  4 3 2
-9 -9 -9  1 2 3
 0  0  8  6 6 0
 0  0  0 -2 0 0
 0  0  1  2 4 0
&lt;/code&gt;&lt;/pre&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;The&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-10-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 1001 936.9" width="2.325ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" stroke-width="1"&gt;&lt;/path&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1" transform="translate(500,0)"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;hourglass sums are:&lt;/p&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;-63, -34, -9, 12, 
-10,   0, 28, 23, 
-27, -11, -2, 10, 
  9,  17, 25, 18
&lt;/code&gt;&lt;/pre&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;The highest hourglass sum is&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-11-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 1001 936.9" width="2.325ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" stroke-width="1"&gt;&lt;/path&gt;&lt;path d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" stroke-width="1" transform="translate(500,0)"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;from the hourglass beginning at row&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-12-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 500.5 936.9" width="1.162ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;, column&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-13-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 500.5 936.9" width="1.162ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;:&lt;/p&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;0 4 3
  1
8 6 6
&lt;/code&gt;&lt;/pre&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Note:&lt;/span&gt;&amp;nbsp;If you have already solved the Java domain's&amp;nbsp;&lt;span style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Java 2D Array&lt;/span&gt;&amp;nbsp;challenge, you may wish to skip this challenge.&lt;/p&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Function Description&lt;/span&gt;&lt;/p&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Complete the function&amp;nbsp;&lt;span style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;hourglassSum&lt;/span&gt;&amp;nbsp;in the editor below.&lt;/p&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;hourglassSum has the following parameter(s):&lt;/p&gt;&lt;ul style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 0px 20px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;li style="border: 0px; color: var(--color-text-dark-faded); font-family: inherit; font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 2; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;int arr[6][6]&lt;/span&gt;: an array of integers&lt;/li&gt;&lt;/ul&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Returns&lt;/span&gt;&lt;/p&gt;&lt;ul style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 0px 20px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;li style="border: 0px; color: var(--color-text-dark-faded); font-family: inherit; font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 2; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;int:&lt;/span&gt;&amp;nbsp;the maximum hourglass sum&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="challenge_input_format" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="msB challenge_input_format_title" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Input Format&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="msB challenge_input_format_body" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="hackdown-content" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Each of the&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 500.5 936.9" width="1.162ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;lines of inputs&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-2-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.843ex" role="img" style="vertical-align: -0.838ex;" viewbox="0 -863.1 2335 1223.9" width="5.423ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1432,0)"&gt;&lt;path d="M118 -250V750H255V710H158V-210H255V-250H118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1711,0)"&gt;&lt;path d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(2056,0)"&gt;&lt;path d="M22 710V750H159V-250H22V-210H119V710H22Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;contains&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-3-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 500.5 936.9" width="1.162ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;space-separated integers&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-4-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.843ex" role="img" style="vertical-align: -0.838ex;" viewbox="0 -863.1 3304.5 1223.9" width="7.675ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1432,0)"&gt;&lt;path d="M118 -250V750H255V710H158V-210H255V-250H118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1711,0)"&gt;&lt;path d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(2056,0)"&gt;&lt;path d="M22 710V750H159V-250H22V-210H119V710H22Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(2335,0)"&gt;&lt;path d="M118 -250V750H255V710H158V-210H255V-250H118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(2613,0)"&gt;&lt;path d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(3026,0)"&gt;&lt;path d="M22 710V750H159V-250H22V-210H119V710H22Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="challenge_constraints" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="msB challenge_constraints_title" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Constraints&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="msB challenge_constraints_body" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="hackdown-content" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;ul style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 0px 20px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;li style="border: 0px; color: var(--color-text-dark-faded); font-family: inherit; font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 2; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span class="MathJax_SVG" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.843ex" role="img" style="vertical-align: -0.838ex;" viewbox="0 -863.1 7752.1 1223.9" width="18.005ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(778,0)"&gt;&lt;path d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1556,0)"&gt;&lt;path d="M674 636Q682 636 688 630T694 615T687 601Q686 600 417 472L151 346L399 228Q687 92 691 87Q694 81 694 76Q694 58 676 56H670L382 192Q92 329 90 331Q83 336 83 348Q84 359 96 365Q104 369 382 500T665 634Q669 636 674 636ZM84 -118Q84 -108 99 -98H678Q694 -104 694 -118Q694 -130 679 -138H98Q84 -131 84 -118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(2613,0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(3142,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(3594,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(4045,0)"&gt;&lt;path d="M118 -250V750H255V710H158V-210H255V-250H118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(4324,0)"&gt;&lt;path d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(4669,0)"&gt;&lt;path d="M22 710V750H159V-250H22V-210H119V710H22Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(4948,0)"&gt;&lt;path d="M118 -250V750H255V710H158V-210H255V-250H118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(5226,0)"&gt;&lt;path d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(5639,0)"&gt;&lt;path d="M22 710V750H159V-250H22V-210H119V710H22Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(6195,0)"&gt;&lt;path d="M674 636Q682 636 688 630T694 615T687 601Q686 600 417 472L151 346L399 228Q687 92 691 87Q694 81 694 76Q694 58 676 56H670L382 192Q92 329 90 331Q83 336 83 348Q84 359 96 365Q104 369 382 500T665 634Q669 636 674 636ZM84 -118Q84 -108 99 -98H678Q694 -104 694 -118Q694 -130 679 -138H98Q84 -131 84 -118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(7251,0)"&gt;&lt;path d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="border: 0px; color: var(--color-text-dark-faded); font-family: inherit; font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 2; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span class="MathJax_SVG" id="MathJax-Element-2-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.509ex" role="img" style="vertical-align: -0.671ex;" viewbox="0 -791.3 4872.3 1080.4" width="11.316ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(778,0)"&gt;&lt;path d="M674 636Q682 636 688 630T694 615T687 601Q686 600 417 472L151 346L399 228Q687 92 691 87Q694 81 694 76Q694 58 676 56H670L382 192Q92 329 90 331Q83 336 83 348Q84 359 96 365Q104 369 382 500T665 634Q669 636 674 636ZM84 -118Q84 -108 99 -98H678Q694 -104 694 -118Q694 -130 679 -138H98Q84 -131 84 -118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(1834,0)"&gt;&lt;path d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(2180,0)"&gt;&lt;path d="M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(2625,0)"&gt;&lt;path d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(3315,0)"&gt;&lt;path d="M674 636Q682 636 688 630T694 615T687 601Q686 600 417 472L151 346L399 228Q687 92 691 87Q694 81 694 76Q694 58 676 56H670L382 192Q92 329 90 331Q83 336 83 348Q84 359 96 365Q104 369 382 500T665 634Q669 636 674 636ZM84 -118Q84 -108 99 -98H678Q694 -104 694 -118Q694 -130 679 -138H98Q84 -131 84 -118Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(4371,0)"&gt;&lt;path d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="challenge_output_format" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="msB challenge_output_format_title" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Output Format&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="msB challenge_output_format_body" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="hackdown-content" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Print the largest (maximum) hourglass sum found in&amp;nbsp;&lt;span class="MathJax_SVG" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="1.676ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -576.1 1432.5 721.6" width="3.327ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="challenge_sample_input" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="msB challenge_sample_input_title" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Sample Input&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="msB challenge_sample_input_body" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="hackdown-content" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0
0 0 2 4 4 0
0 0 0 2 0 0
0 0 1 2 4 0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="challenge_sample_output" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="msB challenge_sample_output_title" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Sample Output&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="msB challenge_sample_output_body" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="hackdown-content" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;19
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="challenge_explanation" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="msB challenge_explanation_title" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span style="border: 0px; color: var(--color-text-dark); font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: bolder; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Explanation&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="msB challenge_explanation_body" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px 0px 10px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;div class="hackdown-content" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;span class="MathJax_SVG" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="1.676ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -576.1 1432.5 721.6" width="3.327ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" stroke-width="1"&gt;&lt;/path&gt;&lt;g transform="translate(529,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g transform="translate(981,0)"&gt;&lt;path d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" stroke-width="1"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;&amp;nbsp;contains the following hourglasses:&lt;/p&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;&lt;img alt="image" src="https://s3.amazonaws.com/hr-assets/0/1534256743-35b846ad4a-hourglasssum.png" style="background-color: white; border: 0px none; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 15px 0px 0px; outline: 0px; padding: 15px; vertical-align: baseline;" title="" /&gt;&lt;/p&gt;&lt;p style="border: 0px; color: var(--color-text-dark-faded); font-family: var(--font-family-text); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 2; margin: 5px 0px 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;The hourglass with the maximum sum (&lt;span class="MathJax_SVG" id="MathJax-Element-2-Frame" style="border: 0px; direction: ltr; display: inline-block; float: none; font-family: inherit; font-stretch: inherit; font-variant: inherit; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; outline: 0px; overflow-wrap: normal; padding: 0px; vertical-align: baseline; white-space: nowrap; word-spacing: normal;"&gt;&lt;svg focusable="false" height="2.176ex" role="img" style="vertical-align: -0.338ex;" viewbox="0 -791.3 1001 936.9" width="2.325ex" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;&lt;g fill="currentColor" stroke-width="0" stroke="currentColor" transform="matrix(1 0 0 -1 0 0)"&gt;&lt;path d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" stroke-width="1"&gt;&lt;/path&gt;&lt;path d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z" stroke-width="1" transform="translate(500,0)"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/span&gt;) is:&lt;/p&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;2 4 4
  2
1 2 4&lt;/code&gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;Solution : &lt;/code&gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;&lt;div style="background-color: #fffffe; color: black; font-family: &amp;quot;SourceCodePro, monospace&amp;quot;, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 15px; line-height: 20px;"&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;import&lt;/span&gt;&amp;nbsp;java.io.*;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;import&lt;/span&gt;&amp;nbsp;java.math.*;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;import&lt;/span&gt;&amp;nbsp;java.security.*;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;import&lt;/span&gt;&amp;nbsp;java.text.*;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;import&lt;/span&gt;&amp;nbsp;java.util.*;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;import&lt;/span&gt;&amp;nbsp;java.util.concurrent.*;&lt;/div&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;import&lt;/span&gt;&amp;nbsp;java.util.regex.*;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #137c36;"&gt;/*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #137c36;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Complete&amp;nbsp;the&amp;nbsp;'hourglassSum'&amp;nbsp;function&amp;nbsp;below.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #137c36;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #137c36;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;The&amp;nbsp;function&amp;nbsp;is&amp;nbsp;expected&amp;nbsp;to&amp;nbsp;return&amp;nbsp;an&amp;nbsp;INTEGER.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #137c36;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;The&amp;nbsp;function&amp;nbsp;accepts&amp;nbsp;2D_INTEGER_ARRAY&amp;nbsp;arr&amp;nbsp;as&amp;nbsp;parameter.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #137c36;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;hourglassSum(List&amp;lt;List&amp;lt;Integer&amp;gt;&amp;gt;&amp;nbsp;arr)&amp;nbsp;{&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #137c36;"&gt;//&amp;nbsp;Write&amp;nbsp;your&amp;nbsp;code&amp;nbsp;here&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;maxSum=-&lt;span style="color: #137c36;"&gt;32565&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;for&lt;/span&gt;(&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;j=&lt;span style="color: #137c36;"&gt;0&lt;/span&gt;;j&amp;lt;=&lt;span style="color: #137c36;"&gt;3&lt;/span&gt;;j++)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;for&lt;/span&gt;(&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;i=&lt;span style="color: #137c36;"&gt;0&lt;/span&gt;;i&amp;lt;=&lt;span style="color: #137c36;"&gt;3&lt;/span&gt;;i++){&lt;/div&gt;&lt;div&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;&lt;/div&gt;&lt;div&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;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;line1&amp;nbsp;=&amp;nbsp;arr.get(i).get(j)&amp;nbsp;+&amp;nbsp;arr.get(i).get(j+&lt;span style="color: #137c36;"&gt;1&lt;/span&gt;)&amp;nbsp;+&amp;nbsp;arr.get(i).get(j+&lt;span style="color: #137c36;"&gt;2&lt;/span&gt;);&lt;/div&gt;&lt;div&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;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;line2&amp;nbsp;=&amp;nbsp;arr.get(i+&lt;span style="color: #137c36;"&gt;1&lt;/span&gt;).get(j+&lt;span style="color: #137c36;"&gt;1&lt;/span&gt;);&lt;/div&gt;&lt;div&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;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;line3&amp;nbsp;=&amp;nbsp;arr.get(i+&lt;span style="color: #137c36;"&gt;2&lt;/span&gt;).get(j)&amp;nbsp;+&amp;nbsp;arr.get(i+&lt;span style="color: #137c36;"&gt;2&lt;/span&gt;).get(j+&lt;span style="color: #137c36;"&gt;1&lt;/span&gt;)&amp;nbsp;+&amp;nbsp;arr.get(i+&lt;span style="color: #137c36;"&gt;2&lt;/span&gt;).get(j+&lt;span style="color: #137c36;"&gt;2&lt;/span&gt;);&lt;/div&gt;&lt;div&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;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;sum&amp;nbsp;=&amp;nbsp;line1+line2+line3;&lt;/div&gt;&lt;div&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;&lt;span style="color: blue;"&gt;if&lt;/span&gt;(sum&amp;gt;maxSum)&amp;nbsp;maxSum=sum;&lt;/div&gt;&lt;div&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;}&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;return&lt;/span&gt;&amp;nbsp;maxSum;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&amp;nbsp;Solution&amp;nbsp;{&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;void&lt;/span&gt;&amp;nbsp;main(String[]&amp;nbsp;args)&amp;nbsp;&lt;span style="color: blue;"&gt;throws&lt;/span&gt;&amp;nbsp;IOException&amp;nbsp;{&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BufferedReader&amp;nbsp;bufferedReader&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&amp;nbsp;BufferedReader(&lt;span style="color: blue;"&gt;new&lt;/span&gt;&amp;nbsp;InputStreamReader(System.in));&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BufferedWriter&amp;nbsp;bufferedWriter&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&amp;nbsp;BufferedWriter(&lt;span style="color: blue;"&gt;new&lt;/span&gt;&amp;nbsp;FileWriter(System.getenv(&lt;span style="color: #a31515;"&gt;"OUTPUT_PATH"&lt;/span&gt;)));&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;List&amp;lt;Integer&amp;gt;&amp;gt;&amp;nbsp;arr&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&amp;nbsp;ArrayList&amp;lt;&amp;gt;();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;&lt;span style="color: #137c36;"&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;&lt;span style="color: #137c36;"&gt;6&lt;/span&gt;;&amp;nbsp;i++)&amp;nbsp;{&lt;/div&gt;&lt;div&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;String[]&amp;nbsp;arrRowTempItems&amp;nbsp;=&amp;nbsp;bufferedReader.readLine().replaceAll(&lt;span style="color: #a31515;"&gt;"\\s+$"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #a31515;"&gt;""&lt;/span&gt;).split(&lt;span style="color: #a31515;"&gt;"&amp;nbsp;"&lt;/span&gt;);&lt;/div&gt;&lt;br /&gt;&lt;div&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;List&amp;lt;Integer&amp;gt;&amp;nbsp;arrRowItems&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&amp;nbsp;ArrayList&amp;lt;&amp;gt;();&lt;/div&gt;&lt;br /&gt;&lt;div&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;&lt;span style="color: blue;"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;j&amp;nbsp;=&amp;nbsp;&lt;span style="color: #137c36;"&gt;0&lt;/span&gt;;&amp;nbsp;j&amp;nbsp;&amp;lt;&amp;nbsp;&lt;span style="color: #137c36;"&gt;6&lt;/span&gt;;&amp;nbsp;j++)&amp;nbsp;{&lt;/div&gt;&lt;div&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;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;arrItem&amp;nbsp;=&amp;nbsp;Integer.parseInt(arrRowTempItems[j]);&lt;/div&gt;&lt;div&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;arrRowItems.add(arrItem);&lt;/div&gt;&lt;div&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;}&lt;/div&gt;&lt;br /&gt;&lt;div&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;arr.add(arrRowItems);&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;Result.hourglassSum(arr);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bufferedWriter.write(String.valueOf(result));&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bufferedWriter.newLine();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bufferedReader.close();&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bufferedWriter.close();&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 2px; border: none; color: var(--color-text-dark); font-family: var(--font-family-input); font-size: 14px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin-bottom: 0px; margin-top: 12px; outline: 0px; overflow-x: auto; padding: 20px; vertical-align: baseline;"&gt;&lt;code style="border: 0px; color: var(--color-text-medium-dark); font-family: var(--font-family-input); font-size: 1em; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; overflow-x: auto; padding: 0px; vertical-align: baseline; word-spacing: -2px;"&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2021/01/hackerrank-2d-array-ds.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-1935209491409511297</guid><pubDate>Thu, 10 Dec 2020 19:52:00 +0000</pubDate><atom:updated>2020-12-10T11:52:23.758-08:00</atom:updated><title/><description>&lt;h1 style="text-align: left;"&gt;Debug your WebDriver script easily by connecting to existing Chrome Browser&lt;/h1&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Step1:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Open Chrome browser using --remote-debugging-port&lt;/div&gt;&lt;div&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizOwYN8PiMNeMipTlI_wwp5FAsdLAbQs-JAPLaFEC9AeUj7uURmPY-hwEpcZLX0xBd1YYoyfMxWIgreN24PROitGDa_PF2boWB_v5WBDuVaWI6buy6dsp0eaJQjSjAfOhIMJY6QbzgUmg/" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img alt="" data-original-height="64" data-original-width="766" height="27" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizOwYN8PiMNeMipTlI_wwp5FAsdLAbQs-JAPLaFEC9AeUj7uURmPY-hwEpcZLX0xBd1YYoyfMxWIgreN24PROitGDa_PF2boWB_v5WBDuVaWI6buy6dsp0eaJQjSjAfOhIMJY6QbzgUmg/" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Step2:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Ensure you have correct chromedriver.exe downloaded which matches with your chrome browser version.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Step3:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Connect to this browser by writing a separate code for debug to handle browser&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ChromeOptions chromeOptions = new ChromeOptions();&lt;/div&gt;&lt;div&gt;chromeOptions.setExperimentalOption("debuggerAddress","localhost:1234");&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ChromeDriver driver = new ChromeDriver(chromeOptions);&lt;/div&gt;&lt;div&gt;.....&amp;nbsp;&lt;/div&gt;&lt;div&gt;......&lt;/div&gt;&lt;p&gt;Notes: You can set your application from where you want to test , and start from respective step.&lt;/p&gt;&lt;p&gt;In this example used port 1234 , you are free to use any available port in your system.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://bmaddys.blogspot.com/2020/12/debug-your-webdriver-script-easily-by.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizOwYN8PiMNeMipTlI_wwp5FAsdLAbQs-JAPLaFEC9AeUj7uURmPY-hwEpcZLX0xBd1YYoyfMxWIgreN24PROitGDa_PF2boWB_v5WBDuVaWI6buy6dsp0eaJQjSjAfOhIMJY6QbzgUmg/s72-c" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-757349763591640433</guid><pubDate>Wed, 25 Nov 2020 18:09:00 +0000</pubDate><atom:updated>2020-11-25T10:09:07.805-08:00</atom:updated><title/><description>&lt;div style="display: none;"&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Highlight Element and Disable Highlight using JSExecutor&lt;/h2&gt;&lt;div&gt;&lt;span face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="color: #24292e;"&gt;&lt;span style="background-color: white; font-size: 14px;"&gt;((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('style', arguments[1]);", element,"color: yellow; border: 5px solid red;");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="color: #24292e;"&gt;&lt;span style="background-color: white; font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="-apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="color: #24292e;"&gt;&lt;span style="background-color: white; font-size: 14px;"&gt;((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('style', arguments[1]);", element,"");&lt;span style="white-space: pre;"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2020/11/highlight-element-and-disable-highlight.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-4220243022105881048</guid><pubDate>Wed, 25 Nov 2020 18:08:00 +0000</pubDate><atom:updated>2020-11-25T10:08:29.977-08:00</atom:updated><title/><description>&lt;div style="display: none;"&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 class="with-breadcrumbs" id="title-text" style="background-color: white; clear: left; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 28px; font-weight: 500; letter-spacing: -0.01em; line-height: 1.25; margin: 0px; padding: 5px 0px 0px;"&gt;&lt;a href="https://confluence.elliemae.io/pages/viewpage.action?pageId=143577565" style="border-bottom-color: rgb(23, 43, 77); color: #172b4d; text-decoration-line: none;"&gt;QTP Jenkins Execution Issues &amp;amp; Solutions&lt;/a&gt;&lt;/h1&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ensure that the respective machine have been installed with QTP license, without this we can't run tests.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Resolution 1:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Login to the execution system and try to launch QTP manually. This step helps to find out any issues with license.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Resolution 2:&lt;/b&gt; Check the service Uft4Winrt is available, if not restart the system.&lt;/div&gt;&lt;div&gt;Select Uft4Winrt service , go to properties , click 'Log On'&lt;/div&gt;&lt;div&gt;Select 'Local System account' radio button and Select 'Allow service to interact with desktop' checkbox.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Resolution 3:&lt;/b&gt; Check the below DCom Config settings.&lt;/div&gt;&lt;div&gt;&lt;div&gt;From start command: type dcomcnfg to open the Component Services&lt;/div&gt;&lt;div&gt;Go to Component Services -&amp;gt; Computers-&amp;gt;My Computer-&amp;gt;DCOM Config-&amp;gt;&lt;/div&gt;&lt;div&gt;Configure properties of each application entries listed below. Double click each one check the details under Tabs ‘Security’ and ‘Identity’.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;List of Applications Names:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;HP Unified Functional Testing&lt;/div&gt;&lt;div&gt;HP.QTP.Automation.Agent.AOMObjects.AutomationUpdateRunOptionsObject&lt;/div&gt;&lt;div&gt;QtpExtensionInterface&lt;/div&gt;&lt;div&gt;QuickTest Professional Automation&lt;/div&gt;&lt;div&gt;UFTRemoteAgent&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In Identity tab &amp;gt; Ensure 'Interactive user' radiobutton is selected.&lt;/div&gt;&lt;div&gt;In Security tab &amp;gt; Access Permissions &amp;gt; Select 'Customize' radiobutton and Edit Button&lt;/div&gt;&lt;div&gt;Select Permissions to "Self' Ensure to select&amp;nbsp; 'Allow' for both Local and Remote Access.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Resolution 4:&lt;/b&gt; With above if issue is not resolved continue with below steps&lt;/div&gt;&lt;div&gt;UFT tried to launch with 32-bit , so need to update settings.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Use the command to open the DCOM&lt;/div&gt;&lt;div&gt;Go to CMD prompt and type the command: C:\WINDOWS\SysWOW64&amp;gt;mmc comexp.msc /32&lt;/div&gt;&lt;div&gt;DCOM window:&lt;/div&gt;&lt;div&gt;Console Root &amp;gt; Component Services &amp;gt; Computers &amp;gt;My Computer &amp;gt;DCOM Config &amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Repeat Resolution3.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Resolution 5:&lt;/b&gt; There might be issue with Microsoft Excel too&lt;/div&gt;&lt;div&gt;Run-&amp;gt;dcomcnfg-&amp;gt;Go to Component Services -&amp;gt; Computers-&amp;gt;My Computer-&amp;gt;DCOM Config-&amp;gt;Microsoft Excel Application-&amp;gt;Right click-&amp;gt;Identity Tab-&amp;gt; Select ‘The interactive user’-&amp;gt; OK.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Repeat the above if issue persist&amp;nbsp;with C:\WINDOWS\SysWOW64&amp;gt;mmc comexp.msc /32&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Resolution 6: &lt;/b&gt;Jenkins job might failed due to&amp;nbsp;msxml3.dll&amp;nbsp;&lt;/div&gt;&lt;div&gt;Register using below steps&lt;/div&gt;&lt;div&gt;&lt;div&gt;1.regsvr32 msxml3.dll hit enter&lt;/div&gt;&lt;div&gt;2. Should get the successful registration&lt;/div&gt;&lt;div&gt;3. Restart the system&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2020/11/qtp-jenkins-execution-issues-solutions.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-2299640172972497476</guid><pubDate>Mon, 04 Sep 2017 20:37:00 +0000</pubDate><atom:updated>2017-09-04T13:39:19.906-07:00</atom:updated><title>Do we need to use Protractor ?</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Protractor is an end-to-end test framework for Angular and AngularJS applications. &amp;nbsp;And allows us to test application&amp;nbsp;&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;from the user's perspective.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;Basically Protractor is wrapper over selenium WebDriver. (So you are inheriting all existing issues which are in open from WebDriver).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;One of the benefit of using protractor is that there is no need to add waits for synchronization as it is done automatically by Protractor.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;span style="font-size: 14px;"&gt;If you are already using your established framework with explicit , fluent and other wait mechanisms you should be able to write the tests as the same how you have done for Non Angular applications.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;span style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;span style="font-size: 14px;"&gt;I hope it might be little easy to maintain and write tests for Angular using your frameworks as you are already expertise and familiar&amp;nbsp;with your coding style, locator mechanism&amp;nbsp;, tool set and issues.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;span style="font-size: 14px;"&gt;And &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;I don't see a reason&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;To completely change the way you are presently doing &amp;nbsp;(unless you have done some POC to see the difference with new tools).&lt;/li&gt;
&lt;li&gt;Spending time to&amp;nbsp;&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;span style="font-size: 14px;"&gt;learn,understand new set of tools.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;span style="font-size: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; font-size: 14px;"&gt;(eg: Protractor,Mocha, Chai ,Jasmine,Reports etc.)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;span style="color: #333333; font-family: &amp;quot;q_serif&amp;quot; , &amp;quot;georgia&amp;quot; , &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;span style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
And finally its all depended on your POC and comparisons with your existing tools/framework Pros and Cons.&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2017/09/do-we-need-to-use-protractor.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-7343025802156654153</guid><pubDate>Tue, 04 Mar 2014 13:32:00 +0000</pubDate><atom:updated>2014-03-04T05:32:53.792-08:00</atom:updated><title>Mouse Action using JS</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;u&gt;&lt;b&gt;Mouse Over and MouseOut&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
JavascriptExecutor executor = (JavascriptExecutor)DriverFactory.getDriver();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; executor.executeScript("if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}", element);&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; executor.executeScript("if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseout', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseout');}", element);&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Mouse Click&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;JavascriptExecutor executor = (JavascriptExecutor)DriverFactory.getDriver();&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; executor.executeScript("if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mousedown', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmousedown');}", element);&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; executor.executeScript("if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseup', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseup');}", element);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2014/03/mouse-action-using-js.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-7836616510853850239</guid><pubDate>Mon, 08 Jul 2013 16:11:00 +0000</pubDate><atom:updated>2013-07-08T09:11:57.092-07:00</atom:updated><title>Mouse click event in WebDriver</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Due to changes in UI frameworks , some of the elements click operation wont have any didnt trigger any event. We may need to pass "onMouseClick" operation. And that can be achieved using the following code:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="x_MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0cm 0cm 0.0001pt;"&gt;
&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;Ex: ListboxView (For user view it looks like listbox but ..)&lt;/span&gt;&lt;/div&gt;
&lt;div class="x_MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0cm 0cm 0.0001pt;"&gt;
&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="x_MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0cm 0cm 0.0001pt;"&gt;
&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Mouse mouse = ((HasInputDevices) driver).getMouse();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="x_MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0cm 0cm 0.0001pt;"&gt;
&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Locatable hoverItem = (Locatable) listoption;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="x_MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0cm 0cm 0.0001pt;"&gt;
&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mouse.mouseDown(hoverItem.getCoordinates());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="x_MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0cm 0cm 0.0001pt;"&gt;
&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mouse.mouseUp(hoverItem.getCoordinates());&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2013/07/mouse-click-event-in-webdriver.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-4918680952164199494</guid><pubDate>Mon, 26 Nov 2012 06:09:00 +0000</pubDate><atom:updated>2013-02-13T08:11:42.205-08:00</atom:updated><title>Performing fireEvent in WebDriver</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
WebElement element = driver.findElement(By.id("myElement")); 
&lt;br /&gt;
JavascriptLibrary javascript = new JavascriptLibrary();&lt;br /&gt;
javascript.callEmbeddedSelenium(driver, "triggerEvent", element, "blur");&lt;br /&gt;
&lt;br /&gt;
Ref:https://groups.google.com/forum/?fromgroups#!topic/selenium-users/jk59XG2TQk8&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2012/11/performing-fireevent-in-webdriver.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-7799666777812320572</guid><pubDate>Sun, 18 Nov 2012 05:26:00 +0000</pubDate><atom:updated>2012-11-17T21:26:33.593-08:00</atom:updated><title>window.showModalDialog - Webdriver Issue</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Last month I was automating a scenario where the popup window showsup with Yes/No button. While verifying manually i thought it can be handled either by using Alert / selectWindow and perform actions.&lt;br /&gt;
At first I tried to record the same scenario using Selenium-IDE&lt;br /&gt;
Unfortunately IDE is not able to recognize the window :(.&lt;br /&gt;
&lt;br /&gt;
So I thought to verify how the popup window was actually called/invoked.&lt;br /&gt;
- On click a button , it popups&amp;nbsp;the child window&amp;nbsp;and the main window is still waiting to complete its transcation. &lt;br /&gt;
-&amp;nbsp;&amp;nbsp;Webdriver's driver will be waiting for its turn to complete the transcation , and not able to execute the statements until i close the popup manually. (In IE with selectWindow.. worked , but in Firefox ..NO).&lt;br /&gt;
-I verified the button using firebug , and the html code was something like &amp;lt;... onclick="return mypopup('Click Yes if you need to continue')"....&amp;gt;&lt;br /&gt;
-And in the mypopup javascript code is using window.shwoModalDialog&lt;br /&gt;
-For me I need to click Yes , and the application is actually returning true. if No, returns false.&lt;br /&gt;
&lt;br /&gt;
So finally I written a piece of code which updates the&amp;nbsp;the HTML code in the app at run time using. &lt;br /&gt;
&lt;br /&gt;
public void clickElementAndConfirmPopup(){&lt;br /&gt;
WebElement element =&amp;nbsp; ..findElement.....&lt;br /&gt;
((JavascriptExecutor) DriverFactory.getDriver()).executeScript(&lt;br /&gt;
"arguments[0].setAttribute('onclick',arguments[1]);", element, "return true");&lt;br /&gt;
element.click(); } public void clickElementAndConfirmPopup(){ &lt;br /&gt;
&lt;br /&gt;
WebElement element = ..findElement.....&lt;br /&gt;
((JavascriptExecutor) DriverFactory.getDriver()).executeScript(&lt;br /&gt;
"arguments[0].setAttribute('onclick',arguments[1]);", element, "return false");&lt;br /&gt;
element.click();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
- And now able to handle in both browsers (IE and FireFox)..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2012/11/windowshowmodaldialog-webdriver-issue.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-1341228890958822523</guid><pubDate>Tue, 30 Oct 2012 20:19:00 +0000</pubDate><atom:updated>2012-10-30T13:19:23.467-07:00</atom:updated><title>Java - How to compare two Images</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Ref: &lt;a href="http://mindmeat.blogspot.in/2008/07/java-image-comparison.html"&gt;http://mindmeat.blogspot.in/2008/07/java-image-comparison.html&lt;/a&gt;&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2012/10/java-how-to-compare-two-images.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-8105492792262212241</guid><pubDate>Fri, 26 Oct 2012 23:42:00 +0000</pubDate><atom:updated>2012-10-26T16:42:30.790-07:00</atom:updated><title>Memory Leak Analyzer (Got java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space)</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
One fine morning my client was asked me to develop an&amp;nbsp;a small&amp;nbsp;Framework as per his needs. And I started writing code in Java which drives lot of excel files , xmls etc. Due to emergency I delivered&amp;nbsp; code to accomplish the immediate needs and knowing that it&amp;nbsp;may have some memory leaks which I need to fix and which is my next immediate high priority one.&lt;br /&gt;
&lt;br /&gt;
So I used MAT to find and analyze the code. And found it was really a cool plug-in.&lt;br /&gt;
1. How to install MAT plugin&lt;br /&gt;
&lt;em&gt;Install plugin from - &lt;a href="http://download.eclipse.org/mat/1.2/update-site/"&gt;http://download.eclipse.org/mat/1.2/update-site/&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
2. MAT generates .hprof file , how to get it.&lt;br /&gt;
&lt;em&gt;In Run-Configuration , under Argument tab in VM argument section added&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;-XX:+HeapDumpOnOutOfMemoryError&lt;/em&gt;&lt;br /&gt;
3. If .hprof file is too&amp;nbsp;big?&lt;br /&gt;
&lt;em&gt;Add -vmargs -XX:PermSize=256m -XX:MaxPermSize=256m -Xms256m -Xmx1024m into eclipse.ini&lt;/em&gt;&lt;br /&gt;
4.How to open .hprof in Eclipse.&lt;br /&gt;
&amp;nbsp;&lt;em&gt;Open MAT perspective , and File-&amp;gt;Open Head Dump and Open .hprof generated in the project.&lt;/em&gt;&lt;br /&gt;
5.Analysis....&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2012/10/memory-leak-analyzer-got.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-3799152437883595303</guid><pubDate>Tue, 16 Oct 2012 21:12:00 +0000</pubDate><atom:updated>2012-10-16T14:12:40.073-07:00</atom:updated><title>WebDriver - How to run tests on InternetExplorer</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
1. Download IEDriverServer from &lt;a href="http://code.google.com/p/selenium/downloads/list"&gt;http://code.google.com/p/selenium/downloads/list&lt;/a&gt;&lt;br /&gt;
2.Create WebDriver instance as follows&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;WebDriver localDriver=;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;div align="LEFT"&gt;
capability = DesiredCapabilities.&lt;i&gt;internetExplorer&lt;/i&gt;();&lt;/div&gt;
capability.setJavascriptEnabled(&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;div align="LEFT"&gt;
capability.setCapability(CapabilityType.&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div align="LEFT"&gt;
&lt;i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;TAKES_SCREENSHOT&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;capability.setCapability(CapabilityType.&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;ACCEPT_SSL_CERTS&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;capability.setCapability(CapabilityType.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;SUPPORTS_JAVASCRIPT&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;capability.setCapability(InternetExplorerDriver.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;localDriver.setDriver(&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; RemoteWebDriver(&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; URL(&lt;/span&gt;&lt;span style="color: #2a00ff; font-size: x-small;"&gt;&lt;span style="color: #2a00ff; font-size: x-small;"&gt;"http://127.0.0.1:5555"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;), capability));&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;localDriver.getDriver().manage().timeouts().implicitlyWait(30, TimeUnit.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div align="LEFT"&gt;
&lt;i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;SECONDS&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;span style="color: #0000c0; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;} &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;span style="color: #7f0055; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; (MalformedURLException e) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;span style="color: #3f7f5f; font-size: x-small;"&gt;&lt;span style="color: #3f7f5f; font-size: x-small;"&gt;// &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-size: x-small;"&gt;&lt;span style="color: #7f9fbf; font-size: x-small;"&gt;TODO&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #7f9fbf; font-size: x-small;"&gt;&lt;span style="color: #7f9fbf; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #3f7f5f; font-size: x-small;"&gt;&lt;span style="color: #3f7f5f; font-size: x-small;"&gt; Auto-generated catch block&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3f7f5f; font-size: x-small;"&gt;&lt;span style="color: #3f7f5f; font-size: x-small;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;e.printStackTrace();&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;/span&gt;3. In your testcase method use localDriver &lt;br /&gt;
4. Run IEDriverServerxxx.exe&lt;br /&gt;
5. Run your tests.&lt;/div&gt;
</description><link>http://bmaddys.blogspot.com/2012/10/webdriver-how-to-run-tests-on.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-7878082837508106532</guid><pubDate>Thu, 02 Aug 2012 04:40:00 +0000</pubDate><atom:updated>2012-08-01T21:40:47.150-07:00</atom:updated><title>10 Commandments for Test Automation Outsourcing</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="http://shrinik.blogspot.in/2008/09/10-commandments-for-automation.html"&gt;http://shrinik.blogspot.in/2008/09/10-commandments-for-automation.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is an outline .. read complete details in the actual blog.&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Automation is not an answer to your 
testing problems&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Automation is White Elephant&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Anything that is quickly 
creatable – is quickly perishable&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Your business users can not create and own Automation 
solutions&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Judge your vendor by the questions they ask about 
automation&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Higher % of offshoring in automation higher investments 
to make&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Pay attention to dependencies and Quality of current 
test Artifacts&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Decide Acceptance criteria&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Avoid linking an automation project (and its 
deliverables) to application release dates&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;Record and Playback (RP) 
Automation is for Kids&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: large;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Do you agree with these 
commandments? Any different experience?&lt;br /&gt;&lt;br /&gt;[update]&lt;br /&gt;Some additional tips 
:&lt;br /&gt;What a Vendor should ask you&lt;br /&gt;- questions about your manual testing 
practice&lt;br /&gt;- Your objectives of Automation and expectations&lt;br /&gt;- Readiness to 
take up automation in terms of test cases, application state and 
environment&lt;br /&gt;- Ask about your expectations on ROI&lt;br /&gt;&lt;br /&gt;What vendor should 
suggest you&lt;br /&gt;- Plan for automation maintenance when supplier is gone.&lt;br /&gt;- 
Automation may or may not reduce cycle time – that depends upon nature of tests, 
application technology stack, nature of tool etc&lt;br /&gt;- Automation may or may not 
reduce the cost of testing.&lt;br /&gt;&lt;br /&gt;What to look for in an automation 
proposal&lt;br /&gt;- Acceptance criteria&lt;br /&gt;- Automation design details – how tests 
will be structured&lt;br /&gt;- Environment related assumptions&lt;br /&gt;- Pre-requisites 
about tool licenses, test cases, test data, access to developers, testers and 
business users (for clarifications about test cases)&lt;br /&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2012/08/10-commandments-for-test-automation.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-5550058526861999900</guid><pubDate>Mon, 09 Apr 2012 05:33:00 +0000</pubDate><atom:updated>2012-04-08T22:33:53.005-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><category domain="http://www.blogger.com/atom/ns#">WebDriver</category><title>Selenium usage tips- cookbook for identifying elements in webpage.</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Selenium usage tips- cookbook for identifying elements in webpage.&lt;br /&gt;
XPath, CSS, DOM and Selenium: The Rosetta Stone&lt;br /&gt;
&lt;a href="http://www.simple-talk.com/content/article.aspx?article=1269"&gt;http://www.simple-talk.com/content/article.aspx?article=1269&lt;/a&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2012/04/selenium-usage-tips-cookbook-for.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-5622035987782917561</guid><pubDate>Wed, 14 Mar 2012 07:22:00 +0000</pubDate><atom:updated>2012-03-14T00:22:56.254-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><category domain="http://www.blogger.com/atom/ns#">WebDriver</category><title>How to get the Element type in Selenium</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;Below command can be used to get the Element type i.e input,textarea,select..etc&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;selenium.getEval(String.format("this.browserbot.getCurrentWindow().document.getElementById('%s').type", ElementId)&lt;/span&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2012/03/how-to-get-element-type-in-selenium.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-2037482905836598291</guid><pubDate>Fri, 02 Mar 2012 09:32:00 +0000</pubDate><atom:updated>2012-03-02T01:46:46.678-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><title>Session Data loss popup problem</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Calibri;"&gt;I want to share one of my experiences in how easy to maintain scripts when we follow Page Object pattern with a recent change in one of the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;To avoid data loss while navigating or refreshing to a page, a popup window appears with message "Application session / Data will be loss" with OK and Cancel button. (And which is not a JavaScript popup :( )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Calibri;"&gt;Problem: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;There are too many flows where the application opens dialog boxes, frames, popup etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Calibri;"&gt;Everywhere we need to handle the Session popup. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Calibri;"&gt;Solution: When we view the source code of the page, we got to know the JavaScript for Session popup written as below&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-family: Times New Roman;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Calibri;"&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&amp;amp;lt script language="JavaScript" &amp;amp;gt&lt;/div&gt;&lt;span style="font-family: Times New Roman;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;var allowPrompt = true; &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;window.onbeforeunload = confirmExit; &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;.....&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;So, to avoid this we used &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;”this.browserbot.getCurrentWindow().allowPrompt=false" &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;command in our base page constructor which solved the problem.&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;  &lt;/span&gt;Now we are happily running our tests without any change in our test script(s).&lt;/div&gt;&lt;/span&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2012/03/session-data-loss-popup-problem.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-8956935615759394703</guid><pubDate>Wed, 18 Jan 2012 17:12:00 +0000</pubDate><atom:updated>2012-01-18T09:12:18.326-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">python</category><title>Python - Paramiko - Transport to negotiate SSH2 across the connection</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Recently i got a task , where i need to connect to linux box,copy some files and run some shell scripts before i am going to validate my UI using selenium in my windows box.&lt;br /&gt;
I felt both are good to use&lt;br /&gt;
1. Python - paramiko&lt;br /&gt;
2.&amp;nbsp;&lt;a href="http://code.google.com/p/sshxcute/" style="font-family: Calibri, sans-serif; font-size: 11pt;"&gt;sshxcute&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I want to share w.r.t paramiko,as for #2 , there are good examples available in the same site/page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import paramiko&lt;br /&gt;
import ConfigParser&lt;br /&gt;
from config import *&lt;br /&gt;
import glob&lt;br /&gt;
import os&lt;br /&gt;
import md5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
global ssh&lt;br /&gt;
dir_local = 'c:\paramikoLearn'&lt;br /&gt;
dir_remote = "/home/test"&lt;br /&gt;
filePattern = "*.txt"&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
def connectTo():&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;ssh.connect(HOSTNAME, username=USERNAME, password=PASSWORD)&lt;br /&gt;
&lt;br /&gt;
def closeConnection():&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ssh.close();&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
def copy():&lt;br /&gt;
&lt;br /&gt;
# Get paramiko Transport to negotiate SSH2 across the connection &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; try:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t = ssh.get_transport()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print "Start client"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if not t.is_authenticated():&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print "Connect Client"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t.connect(username=USERNAME, password=PASSWORD)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t.connect&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print "StartClient successful"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sftp = t.open_session()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print "StartClient successful"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sftp = paramiko.SFTPClient.from_transport(t)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # BETTER: use the get() and put() methods&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # for fname in os.listdir(dir_local):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for &amp;nbsp;fname in glob.glob(dir_local + os.sep + filePattern):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; is_up_to_date = False&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if fname.lower().endswith('txt'):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; local_file = os.path.join(dir_local, fname)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; remote_file = dir_remote + '/' + os.path.basename(fname)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #if remote file exists&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if sftp.stat(remote_file):&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; local_file_data = open(local_file, "rb").read()&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; remote_file_data = sftp.open(remote_file).read()&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; md1 = md5.new(local_file_data).digest()&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; md2 = md5.new(remote_file_data).digest()&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; if md1 == md2:&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; is_up_to_date = True&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; print "UNCHANGED:", os.path.basename(fname)&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; else:&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; print "MODIFIED:", os.path.basename(fname),&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; except:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print "NEW: ", os.path.basename(fname),&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if not is_up_to_date:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'Copying', local_file, 'to ', remote_file&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sftp.put(local_file, remote_file)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t.close()&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; except Exception as e:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print '*** Caught exception: %s: %s' % (e.__class__, e)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t.close()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; except:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pass&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
def executeShellScript():&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return ssh.exec_command("ls -l")&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ssh = paramiko.SSHClient()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; try:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connectTo()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output = executeShellScript()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print output[1].read()&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; closeConnection()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; except:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; closeConnection()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ************&lt;br /&gt;
In my junit testscript by using RunTime,Process i was able to run the python script and able to complete the task. :)&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2012/01/python-paramiko-transport-to-negotiate.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-2166305207212283668</guid><pubDate>Wed, 04 Jan 2012 16:51:00 +0000</pubDate><atom:updated>2012-01-04T08:51:56.788-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">XMLUnit</category><title>How to find the differences between two xml files</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;When i was struggling with&amp;nbsp; comparing two xml files by writing lot of Code , i came to know about XMLUnit.&lt;br /&gt;
Take a look at this cool code ( copied from &lt;a href="http://xmlunit.sourceforge.net/api/overview-summary.html"&gt;http://xmlunit.sourceforge.net/api/overview-summary.html&lt;/a&gt;)&lt;br /&gt;
XMLUnit provides extensions to the &lt;a href="http://www.junit.org/" target="_none"&gt;JUnit&lt;/a&gt; framework to allow assertions to be made about XML content.&lt;br /&gt;
&lt;h3&gt;Using XMLUnit&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Create a subclass of &lt;a href="http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/XMLTestCase.html" title="class in org.custommonkey.xmlunit"&gt;&lt;code&gt;XMLTestCase&lt;/code&gt;&lt;/a&gt;something like this:&lt;pre&gt;public class TestSomething extends XMLTestcase {
    // standard JUnit style constructor
    public TestSomething(String name) {
        super(name);
    }
    // standard JUnit style method
    public static TestSuite suite() {
        return new TestSuite(TestSomething.class);
    }
}
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Set the global JAXP settings in &lt;a href="http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/XMLUnit.html" title="class in org.custommonkey.xmlunit"&gt;&lt;code&gt;XMLUnit&lt;/code&gt;&lt;/a&gt;so that your chosen parser and transformer are used for the tests.&lt;br /&gt;
&lt;i&gt;Note:&lt;/i&gt;You can skip this bit if you use the default JAXP settings or you have an &lt;a href="http://jakarta.apache.org/ant"&gt;Ant task&lt;/a&gt; that uses&lt;i&gt;-D&lt;/i&gt; JVM options to specify the JAXP settings.&lt;pre&gt;// set the JAXP factories to use the Xerces parser
    // - declare to throw Exception as if this fails then all the tests will
    // fail, and JUnit copes with these Exceptions for us
    public void setUp() throws Exception {
        XMLUnit.setControlParser(
            "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
        // this next line is strictly not required - if no test parser is
        // explicitly specified then the same factory class will be used for
        // both test and control
        XMLUnit.setTestParser(
            "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");

        XMLUnit.setSAXParserFactory(
            "org.apache.xerces.jaxp.SAXParserFactoryImpl");
        XMLUnit.setTransformerFactory(
            "org.apache.xalan.processor.TransformerFactoryImpl");
    }
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Add test methods to make your assertions: the&lt;a href="http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/XMLTestCase.html" title="class in org.custommonkey.xmlunit"&gt;&lt;code&gt;XMLTestCase&lt;/code&gt;&lt;/a&gt; javadoc lists the available assertion methods and their usage, but here are some examples...&lt;pre&gt;public void testObjectAsXML() throws Exception {
        String expectedXML = "....";
        String objectAsXML = null;
        //...set up some object here and serialize its state into
        //our test String...
        assertXMLEqual(expectedXML, objectAsXML);
    }

    public void testTransformToFormatB() throws Exception {
        String expectedFormatB = "....";
        String formatA = "....";
        String transformXSLT = "....";
        Transform formatAToFormatB = new Transform(formatA, transformXSLT);
        assertXMLEqual(new Diff(expectedFormatB, formatAToFormatB), true);
    }

    public void testIsValidAfterTransform() throws Exception {
        String incomingMessage = "....";
        String toSourceSystemXSLT = "....";
        Transform transform = new Transform(incomingMessage, toSourceSystemXSLT);
        assertXMLValid(transform.getResultString());
    }

    public void testXpaths() throws Exception {
        String ukCustomerContactPhoneNos = "//customer[@country='UK']/contact/phone";
        String customerExtract1 = "....";
        String customerExtract2 = "....";
        assertXpathsNotEqual(ukCustomerContactPhoneNos, customerExtract1,
            ukCustomerContactPhoneNos, customerExtract2);
    }

    public void testXpathValues() throws Exception {
        String firstListItem = "/html/body/div[@id='myList']/h1/ol/li[1]";
        String secondListItem = "/html/body/div[@id='myList']/h1/ol/li[2]";
        String myHtmlPage = "....";
        assertXpathValuesNotEqual(firstListItem, secondListItem, myHtmlPage);
    }

    public void testSpecificXpath() throws Exception {
        String todaysTop10 = "count(//single[@topTen='true'])";
        String playlist = "....";
        assertXpathEvaluatesTo("10", todaysTop10, playlist);

    }
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2012/01/how-to-find-differences-between-two-xml.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-128722006555517869</guid><pubDate>Wed, 04 Jan 2012 09:19:00 +0000</pubDate><atom:updated>2012-01-04T01:19:57.439-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><category domain="http://www.blogger.com/atom/ns#">WebDriver</category><title>Selenium2 webelement.click is not working in Internet Explorer</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There is some issue with few versions of IE (includes OS).&lt;br /&gt;
we can use webelement.sendKeys("\n") instead of webelement.click();&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2012/01/selenium2-webelementclick-is-not.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-8314920752896966355</guid><pubDate>Wed, 21 Dec 2011 03:59:00 +0000</pubDate><atom:updated>2011-12-20T19:59:31.367-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><category domain="http://www.blogger.com/atom/ns#">WebDriver</category><title>Selenium ide for internet explorer</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Try &lt;a href="http://code.google.com/p/fire-ie-selenium/downloads"&gt;&lt;span style="color: #de7008;"&gt;http://code.google.com/p/fire-ie-selenium/downloads&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
This is not an IDE , a simple utility to get the locators ( ID,Name,Xpath,TagName).&lt;br /&gt;
&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2011/12/selenium-ide-for-internet-explorer.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-8588034792202423668</guid><pubDate>Tue, 20 Dec 2011 04:01:00 +0000</pubDate><atom:updated>2011-12-19T20:01:41.468-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><title>Selenium Click and ClickAt</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Click - to click on a Locator&lt;br /&gt;
ClickAt - to click on a Locator w.r.t coordinates&lt;br /&gt;
&lt;br /&gt;
Basically ClickAt can be used as&amp;nbsp;an alternate to Click for rich ui frameworks like DOJO,Wickets etc.&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2011/12/selenium-click-and-clickat.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-1888000238165409832</guid><pubDate>Wed, 14 Dec 2011 04:52:00 +0000</pubDate><atom:updated>2011-12-13T20:52:45.868-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><category domain="http://www.blogger.com/atom/ns#">WebDriver</category><title>How to get ID or Name or Xpath details for WebApps supports only IE</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Try &lt;a href="http://code.google.com/p/fire-ie-selenium/downloads"&gt;http://code.google.com/p/fire-ie-selenium/downloads&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2011/12/how-to-get-id-or-name-or-xpath-details.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2839311235793219358.post-8032941625429848273</guid><pubDate>Wed, 16 Nov 2011 06:58:00 +0000</pubDate><atom:updated>2011-11-16T01:30:02.729-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Selenium</category><title>Selenium - Autosuggest edit field</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Courier New;"&gt;keyPressNative m&lt;/span&gt;ethod will be used to handle autosuggestion.&lt;br /&gt;
keyPressNative method -Simulates a user pressing and releasing a key by sending a native operating system keystroke. This function uses the java.awt.Robot class to send a keystroke; this more accurately simulates typing a key on the keyboard. It does not honor settings from the shiftKeyDown, controlKeyDown, altKeyDown and metaKeyDown commands, and does not target any particular HTML element. To send a keystroke to a particular element, focus on the element first before running this command.&lt;br /&gt;
&lt;br /&gt;
public void selectAutosuggest(String webElementLocator,String inputValue){&lt;br /&gt;
char[] stringArray = inputValue.toUpperCase().toCharArray();&lt;br /&gt;
selenium.click(webElementLocator);&lt;br /&gt;
for(int i=0;i&lt;stringarray.length;i++)&lt; p=""&gt; &amp;amp;lt stringArray.length ; i + +)&lt;br /&gt;
selenium.keyPress(webElementLocator,""+(int)stringArray[i]); &lt;br /&gt;
//Press downarrow and click EnterKey &lt;br /&gt;
selenium.keyPressNative(String.valueOf(KeyEvent.VK_DOWN)); &lt;br /&gt;
selenium.keyPressNative(String.valueOf(KeyEvent.VK_ENTER)); &lt;br /&gt;
Thread.sleep(1000); &lt;br /&gt;
&lt;br /&gt;
} &lt;/div&gt;</description><link>http://bmaddys.blogspot.com/2011/11/selenium-autosuggest-edit-field.html</link><author>noreply@blogger.com (Madan Mohan Reddy)</author><thr:total>0</thr:total></item></channel></rss>